Visibility writes
Supported visibility mutations accept an optionalIdempotency-Key header of up to 255 characters. Repeating a stored successful request with the same key and body returns its recorded response. A different body with the same key returns a conflict. A replayed response includes Idempotent-Replay: true.
Support is endpoint-specific. Prompt reruns support a 24-hour replay receipt: retry with the same key even if the original run has already completed. A deliberately new run needs a new key. Without a key, inspect the prompt’s answer state before resubmitting an ambiguous outcome.
Prompt updates, single-prompt deletion, and bulk activation/deactivation also support 24-hour replay receipts. A retried update returns its original response even if the prompt was edited again in the meantime; it does not overwrite the later edit. A replayed deletion returns the same bodyless 204 success. Bulk status changes commit together, count duplicate identifiers once, and roll back together on failure. These endpoints do not yet offer an optimistic revision precondition; serialize intentional edits to the same prompt.
Tracked coverage writes
Tracked coverage creation and changes use a transactional receipt: the successful change and its retry response commit together. Reuse the same idempotency key within the 24-hour retention window. A record’sversion is a separate concurrency check; after another change, read the current record before submitting a new command.
Archiving retains the record, evidence and history. Restore the record before editing its metadata. A duplicate page remains a duplicate when archived; inspect and restore the existing record rather than repeatedly creating it. Tracked coverage changes do not run prompts or fetch the submitted URL.
Data commands
Data commands that requireIdempotency-Key validate a 16–160 character value containing letters, digits, colons, underscores, or hyphens. Preserve that key through a retry. A command can report a retryable conflict while the original command is still in progress.
Keep the resource and version identifiers returned by each command. When an endpoint requires expectedRevision, send the revision you last read. Idempotency identifies a logical command; a revision check protects against applying it to a resource that has changed.
Build a bounded retry policy
- Separate reads from mutations in your client.
- Persist a mutation’s key before sending the request.
- Retry only the same operation and payload after a retryable outcome.
- Honour
Retry-Afterand use bounded backoff. - Stop on a non-retryable validation, permission, or conflict error.