Skip to main content
A failed procedure returns an HTTP error status and a JSON body in the same json envelope as a success:

Codes

Conflicts and expected values

Several procedures take an “expected” value so two people editing the same thing do not overwrite each other:
  • bots/update takes expectedInstructions.
  • botFiles/update takes expectedContent.
  • memory/update takes expectedRevision.
Send the value you started from. If it no longer matches, you get CONFLICT instead of a silent overwrite.

Retrying safely

Some procedures take a clientNonce (for example threads/send and artifacts/create). Use one random value per logical action and reuse it on retries. A retry with the same nonce does not create a second message or upload.