Cancel a consolidation job
⚠️
Preview — this feature is being built; the design below is the spec.
POST https://app.syntic.ai/v1/memory_stores/{store_id}/consolidations/{job_id}/cancelStop a queued or running job. Changes already applied stay applied and are listed in the report; nothing further is changed.
For how this fits into a full workflow, see Memory consolidation.
Headers
| Header | Required | Value |
|---|---|---|
Authorization | Yes | Bearer <key>: a private inference key (sk_live_...). See Authentication. |
syntic-beta | Yes, while in preview | agents-2026-11-01. Without it the call fails with 400 beta_required. See Versioning. |
Idempotency-Key | No | Up to 255 characters. Retrying with the same key within 24 hours returns the first result instead of acting twice. See Idempotency. |
Path parameters
| Parameter | Type | Description |
|---|---|---|
store_id | string | The memory store id, starting with mem_. |
job_id | string | The job id, starting with mcj_. |
Response
200 OK, Content-Type: application/json
{
"id": "mcj_01JCG6J8L0N2Q4S6U8W0",
"type": "memory_consolidation",
"store_id": "mem_01JC1A3C5E7G9J1L3N5Q",
"scope": "customer:*",
"strategies": [
"merge_duplicates",
"resolve_conflicts",
"expire_stale"
],
"dry_run": false,
"status": "canceled",
"changes": {
"examined": 900,
"merged": 12,
"rewritten": 2,
"expired": 0,
"unchanged": 886
},
"usage": {
"input_tokens": 412880,
"output_tokens": 18406,
"cost_usd": "1.2530"
},
"created_at": "2026-11-05T02:00:00Z",
"finished_at": "2026-11-05T02:06:12Z",
"error": null
}| Field | Type | Description |
|---|---|---|
strategies | array | merge_duplicates folds near-identical memories into one; resolve_conflicts keeps the newest of two contradicting memories and rewrites the other; expire_stale sets expires_at on memories no session has read for stale_after_days. |
dry_run | boolean | When true, nothing changes and changes reports what would have happened; the proposed edits are in the job’s report file. |
changes | object | Counts of memories examined, merged, rewritten, expired and left alone. |
usage | object | The model work the job did, billed like any request. |
Examples
curl -sS -X POST "https://app.syntic.ai/v1/memory_stores/mem_01JC1A3C5E7G9J1L3N5Q/consolidations/mcj_01JCG6J8L0N2Q4S6U8W0/cancel" \
-H "Authorization: Bearer $SYNTIC_API_KEY" \
-H "syntic-beta: agents-2026-11-01" \
-H "Idempotency-Key: 8d6f0c1e-4b2a-4a57-9f0e-2f1d3c4b5a69"Errors
Errors use the error envelope and carry a request_id. Codes specific to this operation:
| Status | type | code | When |
|---|---|---|---|
| 400 | invalid_request_error | beta_required | The syntic-beta header is missing. |
| 409 | conflict_error | consolidation_finished | The job already ended. |
| 404 | not_found_error | consolidation_not_found | No job with this id on the store. |
| 401 | authentication_error | invalid_api_key | The key is missing, unknown, revoked or expired. |
| 429 | rate_limit_error | rate_limited | Too many requests; wait for Retry-After. See Rate-limit headers. |
Was this page helpful?