Errors & Caching

Error codes, response format, and caching behavior

Error Responses

All errors return a JSON body with error type and message.

StatusTypeDescription
400invalid_parameterInvalid ticker, timeframe, or parameter value
401unauthorizedMissing or invalid Bearer token
403tier_restrictedEndpoint requires a higher tier. Includes upgrade_url
404not_foundTicker not in supported universe
429rate_limit_exceededDaily request limit reached. Includes upgrade_url and reset time
500internal_errorServer error
503data_unavailableData feed temporarily unavailable

Example Error

{ "error": "tier_restricted", "message": "GET /v1/summary requires Plus or Pro plan.", "upgrade_url": "https://tickerapi.ai/pricing" }

Response Caching

All data is pre-computed after market close. Responses are cached and served from edge.

  • Daily timeframe: Refreshes after market close (~5:15 PM ET)
  • Weekly timeframe: Refreshes after Friday close
  • Cache-Control + ETag headers are included for conditional requests
  • 304 Not Modified responses do not count against request limits
Conditional Requests
Use the ETag header from responses to make conditional requests with If-None-Match. If data hasn't changed, you'll get a 304 that doesn't count against your limit.