Errors
Understand the error responses you may encounter when using the Guavy API, including authentication failures, rate limit violations, and standard HTTP status codes. Learn how to handle these errors gracefully in your application.
Authentication Errors
Authentication errors occur when you make a request without a valid Bearer token or API key in the Authorization header. When authentication fails, the API returns a JSON response with
"error": true
and an HTTP 401 Unauthorized status code.
HTTP Response Codes
The Guavy API uses standard HTTP response codes to indicate the success or failure of an API request. Here are some common response codes you may encounter:
-
400Bad Request - A malformed request. Most commonly astrategypath segment outside the supported set (aggressiveorconservative); the response names the offending value. -
401Unauthorized - Missing or invalid Bearer token in the Authorization header, or your token budget is exhausted until the next reset -
402Payment Required - Market not included in your entitlement. You should not see this today: every live market is reachable on the free Sandbox tier -
404Not Found - The requested endpoint or resource does not exist, or the market you asked for is not one we serve yet. A market that is coming but not live says so, and lists the markets that are -
422Unprocessable Entity - The request was well-formed but contains invalid data or parameters -
429Too Many Requests - Rate limit exceeded, retry after the time specified in the response headers -
503Service Unavailable - A data source we depend on is temporarily unavailable — the trade-simulator upstream, or the datastore behind the trend endpoints. Your request was valid; retry after theRetry-Afterinterval. Tokens charged for a 503 are credited back, less a 1-token floor.
We don't bill you for our failures. When a request fails on our side — a 503 from the upstream provider, or a resource that turns out not to exist (404) after we've already charged — the tokens are credited back to your budget, less a 1-token floor that keeps a failing call from being infinitely free. A malformed request on your side (400) is charged normally.
Token Costs
Each API call consumes tokens from your monthly budget. Endpoints that return richer or deeper data cost more tokens. Historical endpoints scale with the amount of data requested.
You never have to guess how much is left: every metered response carries your balance in
x-tokens-* headers — x-tokens-cost (what this call cost),
x-tokens-limit / x-tokens-remaining (monthly), and
x-tokens-limit-today / x-tokens-remaining-today (daily). The
remaining values are net of any credit applied to the same request.
| Endpoint | Token Cost |
|---|---|
| GET /api/v1/ping | 1 |
| GET /api/v1/instruments/list-symbols | 1 |
| GET /api/v1/instruments/search-instruments/:query | 2 |
| GET /api/v1/instruments/get-detail/:symbol | 5 |
| GET /api/v1/instruments/scorecard/:symbol | 10 |
| GET /api/v1/newsroom/get-market-summary | 3 |
| GET /api/v1/newsroom/get-article/:id | 3 |
| GET /api/v1/newsroom/get-recent-briefs/:symbol | 3 – 8 (scales with limit) |
| GET /api/v1/newsroom/search-briefs/:symbol | 3 – 8 (scales with limit) |
| GET /api/v1/newsroom/get-instrument-analysis/:symbol | 10 |
| GET /api/v1/trades/get-recent-buys | 3 |
| GET /api/v1/trades/get-recent-sells | 3 |
| GET /api/v1/trades/get-recommendations | 5 |
| GET /api/v1/trades/get-current-action/:symbol/:strategy | 5 |
| GET /api/v1/trades/get-trend-history/:symbol/:limit | 5 – 15 (scales with limit) |
| GET /api/v1/trades/get-backtest-history/:symbol/:strategy | 8 – 20 (scales with years) |
| GET /api/v1/trades/get-backtest-summary/:symbol/:strategy | 8 – 20 (scales with years) |
| GET /api/v1/sentiment/get-sentiment-history/:symbol | 3 – 12 (scales with limit) |
| GET /api/v1/technical-analysis/get-price-history/:symbol | 5 |
| GET /api/v1/technical-analysis/get-indicators/:symbol | 8 |
Account Limits
Each plan includes a monthly token budget: 3,000 for Sandbox, 250,000 for Quant, and 1,000,000 for Pro. Your monthly plan budget resets to the full amount on the 1st of each month — unused base tokens don't carry over. You can top up at any time with a one-time token pack; pack tokens never expire and any unused pack balance rolls forward. If you exceed your budget, the API returns a 401 until the next reset or until you purchase more tokens.
Connection Limits
The Guavy API has a limit of 10 simultaneous connections and a 120-second timeout per request. We recommend caching responses that don't change frequently to reduce token consumption and improve performance.