API reference
Conclude an unknown job
job_reconcile_conclude — Record what really happened to an unknown job, with a reason (3–500 characters, e.g.
job_reconcile_conclude · Changes an X-Buddy setting
Record what really happened to an unknown job, with a reason (3–500 characters, e.g. what you saw on the profile): applied or not_applied closes it and cancels the remaining checks; unknown keeps it open for a person. It never re-sends, and the quota already counted stays counted. To redo the action, start a new job yourself after not_applied.
| REST | POST /api/public/v1/jobs/{job_id}/reconcile |
| MCP tool | job_reconcile_conclude |
| Permission needed | accounts.run — Owner, Manager, Operator |
| Scope group | x:engage |
| Group | Core: X accounts, jobs, tool search |
| Shown up front in profiles | Operate X accounts |
Input
| Field | Type | Required | Description |
|---|---|---|---|
job_id |
string (uuid) | Yes | The unknown job. |
verdict |
applied · not_applied · unknown |
Yes | applied = X did it · not_applied = X did not · unknown = still cannot tell. |
reason |
string (3–500 chars) | Yes | Why: what was seen on X, or where it was checked. |
expected_revision |
integer (1–∞) | Yes | The revision you read (optimistic locking); a newer revision fails with revision_conflict. |
Result
Returns the operation's result in the { data, meta } envelope.
Needs an idempotency key (Idempotency-Key, 8–128 characters). Retrying with the same key never repeats the action.
Versioned setting: send the expected_revision (or If-Match) you read, or the write is refused.
Example
Call over REST
curl -X POST "https://reach-link-craft.lovable.app/api/public/v1/jobs/00000000-0000-4000-8000-000000000001/reconcile" \
-H "Authorization: Bearer $XBUDDY_API_KEY" \
-H "Idempotency-Key: 6f1c2a90-example-key" \
-H 'If-Match: "3"' \
-H "Content-Type: application/json" \
-d '{"verdict":"applied","reason":"example","expected_revision":1}'
Call over MCP
{
"method": "tools/call",
"params": {
"name": "job_reconcile_conclude",
"arguments": {
"job_id": "00000000-0000-4000-8000-000000000001",
"verdict": "applied",
"reason": "example",
"expected_revision": 1,
"idempotency_key": "6f1c2a90-example-key"
}
}
}
Errors you may get
| Code | HTTP | Retryable |
|---|---|---|
unauthorized |
401 | No |
key_expired |
401 | No |
integration_revoked |
401 | No |
connection_not_linked |
403 | No |
integration_paused |
403 | No |
workspace_integrations_paused |
403 | No |
integration_authorization_lost |
403 | No |
workspace_suspended |
403 | No |
forbidden |
403 | No |
invalid_input |
422 | No |
rate_limited |
429 | Yes |
internal |
500 | Yes |
read_only |
403 | No |
idempotency_key_required |
428 | No |
idempotency_conflict |
409 | No |
idempotency_processing |
409 | Yes |
conflict |
409 | No |
precondition_failed |
422 | No |
revision_required |
428 | No |
revision_conflict |
412 | No |
not_found |
404 | No |