threadapiDocs

Errors

The error envelope, every error code, and when to retry.

Errors share one shape:

{
  "error": {
    "code": "not_found",
    "message": "Reddit has no such post or subreddit.",
    "retryable": false
  }
}

Retry only when retryable is true, after Retry-After when the response has one. Failed requests cost nothing. Every response, error or not, carries an X-Request-Id; include it when you write to us.

StatusCodeMeaningRetry
400invalid_requestA parameter is missing or invalid; the message says which.No
401unauthorizedThe key is missing, invalid or revoked.No
402insufficient_creditsThe balance is empty. Add credits.After a top-up
402monitor_limit_reachedYou have as many monitors as your plan allows. The error carries limit and used; a larger credit pack raises the limit.After deleting a monitor or buying a pack
403forbiddenThe key cannot call this endpoint.No
403nsfw_subredditThe subreddit is marked NSFW. Pass nsfw=true to read it.With nsfw=true
403reddit_refusedReddit doesn't show this to logged-out readers: a private, quarantined or age-gated subreddit.No
404not_foundReddit has no such post or subreddit, or has banned it.No
429rate_limitedToo many requests for this key.After Retry-After
429daily_limit_reachedA free key used its 100 requests for the UTC day.At 00:00 UTC, or buy a pack
503upstream_busyReddit is refusing requests or our capacity is momentarily used up.Yes, in a few seconds
503upstream_timeoutReddit took too long to answer.Yes
503upstream_errorFetching from Reddit failed.Yes
503upstream_changedReddit changed its comment search page, and comment search fails until we update. Other endpoints are unaffected.No
503service_unavailableOur billing, key check or monitoring service is briefly unavailable.Yes

A post deleted on Reddit usually still exists as an empty shell: it returns 200 with [deleted] as its author and text.