Skip to content

API

The problem+json error code reference (RFC 9457), and how to implement it

This is SkedCast's problem+json error code reference: every SkedCast API error exits through one global exception filter as application/problem+json (RFC 9457), carrying a stable code, an HTTP status, a category, and a type URI that resolves to a real documentation page. /developers/data/api-error-catalogue.json is that entire public catalog as one machine-readable file.

Browse docs

5 min read

What a real problem+json error code reference entry looks like#

Every error the API returns follows RFC 9457's problem+json shape: a type URI identifying the error kind, a title, a status matching the HTTP status code, a detail sentence, and SkedCast's own extension members — code (the stable, catalog-indexed identifier), category, severity, and, where relevant, action (a recovery hint like reconnect, upgrade, or retry) and correlationId for support requests.

The type URI always resolves to a real page at https://skedcast.com/errors/{code} — satisfying RFC 9457 §3.1.1's guidance that a problem type SHOULD provide human-readable documentation, rather than being a dead reference URI the way many problem+json implementations leave it.

A real problem+json response#

json
{
  "type": "https://skedcast.com/errors/token_expired",
  "title": "Token expired",
  "status": 401,
  "detail": "Your session has expired. Please sign in again.",
  "code": "token_expired",
  "category": "auth",
  "severity": "warning",
  "action": "login",
  "meta": { "correlationId": "c7f1e2a0-..." }
}

Where each field comes from#

FieldSource
typeERROR_DOCS_BASE + code — always resolvable, never hand-typed per throw site
codeThe stable, catalog-indexed identifier — every thrown code is asserted present in the catalog by a CI coverage test
categoryOne of 8 shared categories: auth, forbidden, not-found, conflict, bad-body, rate-limit, retry, internal
actionA recovery hint the UI (or an agent) can act on directly, when one applies
jsonapirfc 9457error handling

FAQ

Does SkedCast's API actually return RFC 9457 problem+json errors?
Yes — every error response goes through one global exception filter that returns application/problem+json with a resolvable type URI, not a bespoke error shape per endpoint.
What does the action field on an error mean?
A recovery hint a client can act on programmatically — for example login, reconnect, upgrade, verify-email, mfa, retry, or contact-support — derived from the same catalog entry as the error's documentation.
Can an error code exist in the API but not in this catalog?
No for public-facing errors — a CI coverage test fails the build if the API throws a code absent from the catalog, so the catalog and the API's real error surface cannot drift apart.
Why are some error codes missing from this JSON even though they're real errors?
Because they are operator-console-only (internal audience) — reachable only from the IP-gated staff console, never by a customer or API key — and are excluded from the public catalog at the source to avoid disclosing the internal admin surface.

Ready to broadcast everywhere?

Sign up free — no credit card. You land on the Free plan, and you can start a one-time 7-day Studio trial from your workspace whenever you are ready. Connect your first accounts, import a batch, and watch one post fan out across every platform.