StorytellerContent API

Errors and limits

Handle failed requests without losing your last valid snapshot.

Failed reads return application/problem+json; charset=utf-8. The response’s HTTP status is also in the body. External read errors have no machine code field; use the HTTP status, and treat detail as an explanation.

{
  "type": "about:blank",
  "title": "Not Found",
  "status": 404,
  "detail": "The requested fixture feed does not exist.",
  "instance": "/v1/fixtures/unknown/feeds/pulse"
}
StatusMeaningClient action
400 Bad RequestMalformed, repeated or unsupported replay parameter.Correct the query. Portland does not support replay.
404 Not FoundUnknown path, sample, asset or feed, or a live game with no published item yet.Check the path. A live feed may not have its first item yet. Do not clear your last valid snapshot.
405 Method Not AllowedUnsupported method on the external read surface.Use GET, HEAD or OPTIONS. The Allow header names these methods.
500 Internal Server ErrorUnexpected failure while completing the request.Retain state and retry with bounded backoff. Contact Storyteller if it persists.

HEAD errors have the same status and headers without a problem body. Error responses use Cache-Control: no-store.

Edge errors

An edge security check can return 403 before the request reaches the Worker. Use a descriptive User-Agent for your server client; the Python example supplies one. Contact Storyteller if access is denied. An edge response may have different headers or an error format from the Worker responses above.

Feed bounds

A feed is bounded at publication: up to 1,000 published item identities and 49 published revisions per item, with separate capacity reserved for withdrawals. These are publishing bounds, not read pagination. A read does not return a feed_limit error; it reads the accepted snapshot. Contact Storyteller if you expect more content than appears. There is no application read-rate-limit response or specified request quota in the current Worker.

On this page