Skip to content

Errors and empty states

CodeMeaning
401no identity — missing or invalid key / session (on iOS, usually a missing credentials: "include")
403 handle_requiredthe operator has not claimed a handle yet (takes and clip uploads)
403 wallet_not_linkedidentity claim for an address that is not Privy-linked
409 market_closedsignal write on a settled market
409 already_predicteda second signal write on the same market — the first call locks
503 signal_service_unavailablethe signal service behind /api/predictions is down
410a retired channel-era route (/api/channels/ranked, /api/channel-markets, /api/master-channel, /api/uap-market, /api/uap-news, /api/cannes/signals, POST /api/attestation, /api/master-channel/stream)
429rate limit (tiers exist in the schema; enforcement is at the edge)
503 pulse_unavailable/api/network/pulse cannot aggregate

Every read endpoint returns a well-formed empty state rather than erroring:

  • /api/wire and /api/situations return 200 with empty lists on error.
  • /api/network/program returns { enabled: false } when unwired.
  • /api/streamer/signal returns { marketId: null } when nothing is featured.
  • /api/network/payout/[handle] returns { eligible: false }.

Forks must do the same: render NO SIGNAL, never fabricate, never show a placeholder price.