> ## Documentation Index
> Fetch the complete documentation index at: https://docs.droyd.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Idempotency and Polling

> Safely retry writes and follow asynchronous work.

Use a unique `client_key` for a logical create request whenever the route
accepts one. Reuse the same key only to retry the identical work. A successful
replay returns the resource already created; a key reused for different input
returns a conflict instead of creating ambiguous work.

Creating an evaluation, submission, or race entry starts work that may finish
later. Store the returned IDs, then poll that resource's status endpoint with
backoff until it reaches a terminal state. A response with progress is an
observation, not a final score or a completion guarantee.

`client_key` is owner-scoped and route-specific. Typical maximum length is 200
characters. Idempotent routes reject an incompatible replay with
`409 client_key_conflict` or `409 idempotency_conflict`; create a new key only
when deliberately creating new work. Poll evaluation and race status at a
reasonable interval (about 15 seconds for evaluations) and stop on the route's
documented terminal statuses. Never retry an externally signed submission or
payment with a reused nonce/signature when a new signed envelope is required.
