read_synthetic_purge
Generated automatically from the published contract sources.
Build metadata: Registered in this build. Registration describes the default dispatcher in this build. It does not guarantee that a caller has the required credential or grant, that a tool is listed for that connection, or that the required service is configured.
A script calls this action over HTTPS at POST https://turnzero.ai/api/v1/actions/read_synthetic_purge, with a bearer credential and the action's payload as the JSON body. It also accepts GET.
Contract description
Read one synthetic-account purge's progress by its id. Platform operator or its harness (the `synthetic_estate` grant, the `synthetic_seed_purge` grant, or `super_admin`) only. It answers its state (`running`, `completed`, `failed`), its outcome (`account_failed` or `interrupted` on a failure), and its instants. Per account it answers the state, the instants, the receipts the deletion walk wrote, the error of a failed walk, and the purge the account joined. Under the `synthetic_seed_purge` grant it answers only a purge of the caller's own batches, and any other id as an unknown one. Readable while the platform's synthetic-account mode is off.
Access and action metadata
{
"name": "read_synthetic_purge",
"resource": "account",
"tier": "observe",
"grant": "synthetic_estate",
"admits": [
"synthetic_seed_purge"
],
"summary": "One purge's progress — its state (`running`, `completed`, or `failed`), its outcome, its instants, and per account the state, the instants, the receipts the deletion walk wrote (the estate receipts by member and one teardown receipt per application), the error of a failed walk, and the purge an account joined — to a credential holding `synthetic_estate` or `super_admin`, and to a token the `synthetic_seed_purge` grant bounds for a purge of its own batches alone, any other answered as an unknown id; readable with the `SYNTHETIC_ESTATE` mode `off`, so a purge in flight when the mode is set `off` is still read.",
"annotations": {
"readOnlyHint": true,
"destructiveHint": false,
"openWorldHint": false,
"idempotentHint": true
}
}
MCP catalog entry
{
"name": "read_synthetic_purge",
"tier": "observe",
"scenario": "API-L0-12",
"summary": "Read one synthetic-account purge's progress by its id. Platform operator or its harness (the `synthetic_estate` grant, the `synthetic_seed_purge` grant, or `super_admin`) only. It answers its state (`running`, `completed`, `failed`), its outcome (`account_failed` or `interrupted` on a failure), and its instants. Per account it answers the state, the instants, the receipts the deletion walk wrote, the error of a failed walk, and the purge the account joined. Under the `synthetic_seed_purge` grant it answers only a purge of the caller's own batches, and any other id as an unknown one. Readable while the platform's synthetic-account mode is off.",
"owners": []
}
request
| JSON pointer | Description and constraints |
|---|---|
| "" (root) | Type: object Required fields: ["purge"] |
| / |
The purge's id, from `purge_synthetic_accounts`; an unknown id refuses 404 `not_found`. Under the `synthetic_seed_purge` grant a purge of another credential's batches refuses the same. Type: string |
response
| JSON pointer | Description and constraints |
|---|---|
| "" (root) | Type: object Required fields: ["contract_version","purge","state","accounts","counts"] Additional properties: false |
| / |
Required value: 1 |
| / |
Type: string |
| / |
Type: string Allowed values: ["running","completed","failed"] |
| / |
null while running and on a completed purge; `account_failed` where an account's walk failed, `interrupted` where a restart or the stale sweep ended the purge. Type: ["string","null"] |
| / |
Type: boolean |
| / |
Type: string |
| / |
The instant the run last reported; a running purge whose heartbeat is older than the stale bound is ended `failed interrupted` by the sweep. Type: string |
| / |
Type: ["string","null"] |
| / |
Type: array |
| / |
Type: object Required fields: ["account","state","joined_purge","started_at","ended_at","receipts","error"] Additional properties: false |
| / |
Type: string |
| / |
The walk's state; for an account joined to another purge, that purge's state for the account. Type: string Allowed values: ["pending","running","completed","failed","joined"] |
| / |
The purge that walks the account where this purge joined it. Type: ["string","null"] |
| / |
Type: ["string","null"] |
| / |
Type: ["string","null"] |
| / |
The walk's receipts: `gone` (true where no account row stood), `estate` (one receipt per member, `delete_account`'s), `applications` (one teardown receipt per application, `delete_application`'s), and `metering` (the rows dropped per table where the purge dropped them). A failed walk carries the receipts written before the failing member. Type: ["object","null"] |
| / |
Type: ["string","null"] |
| / |
Type: object Required fields: ["pending","running","completed","failed","joined"] Additional properties: false |
| / |
Type: integer |
| / |
Type: integer |
| / |
Type: integer |
| / |
Type: integer |
| / |
Type: integer |
| / |
Type: string |
Complete payload contract
{
"request": {
"type": "object",
"required": [
"purge"
],
"properties": {
"purge": {
"type": "string",
"description": "The purge's id, from `purge_synthetic_accounts`; an unknown id refuses 404 `not_found`. Under the `synthetic_seed_purge` grant a purge of another credential's batches refuses the same."
}
}
},
"response": {
"type": "object",
"required": [
"contract_version",
"purge",
"state",
"accounts",
"counts"
],
"properties": {
"contract_version": {
"const": 1
},
"purge": {
"type": "string"
},
"state": {
"type": "string",
"enum": [
"running",
"completed",
"failed"
]
},
"outcome": {
"type": [
"string",
"null"
],
"description": "null while running and on a completed purge; `account_failed` where an account's walk failed, `interrupted` where a restart or the stale sweep ended the purge."
},
"drop_metering": {
"type": "boolean"
},
"requested_at": {
"type": "string"
},
"heartbeat_at": {
"type": "string",
"description": "The instant the run last reported; a running purge whose heartbeat is older than the stale bound is ended `failed interrupted` by the sweep."
},
"ended_at": {
"type": [
"string",
"null"
]
},
"accounts": {
"type": "array",
"items": {
"type": "object",
"required": [
"account",
"state",
"joined_purge",
"started_at",
"ended_at",
"receipts",
"error"
],
"properties": {
"account": {
"type": "string"
},
"state": {
"type": "string",
"enum": [
"pending",
"running",
"completed",
"failed",
"joined"
],
"description": "The walk's state; for an account joined to another purge, that purge's state for the account."
},
"joined_purge": {
"type": [
"string",
"null"
],
"description": "The purge that walks the account where this purge joined it."
},
"started_at": {
"type": [
"string",
"null"
]
},
"ended_at": {
"type": [
"string",
"null"
]
},
"receipts": {
"type": [
"object",
"null"
],
"description": "The walk's receipts: `gone` (true where no account row stood), `estate` (one receipt per member, `delete_account`'s), `applications` (one teardown receipt per application, `delete_application`'s), and `metering` (the rows dropped per table where the purge dropped them). A failed walk carries the receipts written before the failing member."
},
"error": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": false
}
},
"counts": {
"type": "object",
"required": [
"pending",
"running",
"completed",
"failed",
"joined"
],
"properties": {
"pending": {
"type": "integer"
},
"running": {
"type": "integer"
},
"completed": {
"type": "integer"
},
"failed": {
"type": "integer"
},
"joined": {
"type": "integer"
}
},
"additionalProperties": false
},
"detail": {
"type": "string"
}
},
"additionalProperties": false
}
}
Shared contracts
- Refusals: every refusal, by surface, with its cause and its remedy
- schemas/wire_error.schema.json
- schemas/wire_errors.json
- schemas/action_payloads.json (includes shared shapes)
- management_api_contract.md