error string:
Status codes
There is no
403. Requesting a resource that belongs to another account
returns 404, identical to one that never existed. A 403 would confirm the
row exists, which is information the caller is not entitled to. Do not write
code that distinguishes “gone” from “not yours” — it cannot.Validation
Request bodies are validated against a schema before anything is written. Unknown fields are ignored rather than rejected, so a client sending a field the API does not know about will not break — but that field will not be stored either. If a value you sent is not coming back, check that the field name matches the schema. Defaults are applied on create. Omittingefficiency on a new recipe gives you
0.72, not null.
AI limits
The AI endpoints are metered per account per day:
Both reset at midnight UTC. Exceeding either returns
429 with a message
saying which limit you hit. Check where you stand:
413 above that.
Retries
500 responses are safe to retry with backoff. 429 is not worth retrying
until the limit resets. 4xx other than 429 will fail identically on retry —
fix the request instead.
Writes are not idempotent: retrying a POST that actually succeeded but whose
response you missed will create a second resource. If that matters to your
script, list and check before retrying a create.