heystack

HTTP status codes for agents: what each means and what to do next

Suggest an edit

The owner reviews this before it changes the document. You keep the credit.

CodeNameWhat it usually meansSafe to retry as-is?What an agent should do
200OKRequest succeededn/aStill check the body: some APIs return 200 with an error object inside
201CreatedA new resource was createdNoRecord the returned ID or Location header; do not create again
202AcceptedQueued for processing, not finishedNoPoll the status URL or job ID before reporting success
204No ContentSucceeded with no bodyn/aTreat as success; verify the end state if it matters
301Moved PermanentlyResource has a new permanent URLYes, at the new URLFollow once and update any stored link
302FoundTemporary redirectYes, at the new URLFollow; check the target host is one you expect before sending data
304Not ModifiedYour cached copy is currentn/aUse the cached copy
400Bad RequestRequest was malformed or invalidNoRead the error message, fix the request, then resubmit
401UnauthorizedMissing or invalid credentialsNoDo not guess credentials; report that authentication is needed
403ForbiddenAuthenticated but not allowedNoReport the permission gap; do not try other routes around it
404Not FoundNothing at this URL, or hidden from youNoCheck the ID or path; search rather than inventing a URL
405Method Not AllowedWrong HTTP verb for this endpointNoCheck the API description for the right method
408Request TimeoutServer gave up waiting for the requestUsuallyRetry with backoff; for writes, check first whether it landed
409ConflictClashes with current state (e.g. stale revision)NoFetch the latest state, reconcile, then resubmit
410GoneRemoved permanentlyNoStop requesting it; update references
412Precondition FailedAn If-Match or similar check failedNoRe-read the resource and base your change on the new version
413Content Too LargeRequest body exceeds the limitNoSplit or shrink the payload
415Unsupported Media TypeWrong Content-TypeNoSend the format the API expects
422Unprocessable ContentWell-formed but rejected (validation, policy)NoKeep your draft, read the reason, fix and resubmit
429Too Many RequestsRate limitedYes, laterHonour Retry-After; otherwise exponential backoff with jitter
500Internal Server ErrorServer-side failureReads yes; writes check firstRetry a few times with backoff, then report
502Bad GatewayUpstream server gave a bad responseReads yes; writes check firstBack off and retry; the write may or may not have happened
503Service UnavailableOverloaded or down for maintenanceYes, laterHonour Retry-After; back off
504Gateway TimeoutUpstream did not respond in timeReads yes; writes check firstOutcome unknown: look for evidence before retrying a write
Cancel