Plans & Rate Limits
API access comes in three plans: Starter, Power User and Business. They differ in two ways: how many requests you can make, and which datasets you can read. They do not differ in what a scan can do. Every plan runs the full scanner on every timeframe, universe and filter category, with no delay and no cap on results.
Prices are on API pricing.
Request limits
How requests are counted:
- Per account, per endpoint. Each endpoint has its own counters, shared by all of your tokens. Running 30 scans in a minute on Starter doesn't use up the minute's budget for
/api/v2/stocks/search-securities, and a second token doesn't add capacity. - All three windows apply at once. A request must fit under the minute, hour and day limits.
- MCP tools count separately. Each MCP tool has its own counters at the same limits, independent of the REST endpoints.
- Windows are fixed. A window opens with your first request to an endpoint and resets a full minute, hour or day later, however many requests you make in between. A request refused with
429doesn't move the reset, so retrying doesn't lock you out for longer, but it can't succeed before the reset either. The429carries aRetry-Afterheader with the seconds to wait, and its message gives the reset time.
Live usage per token is under Account → API Usage.
Rate-limit headers
Every response to an API-token request carries these headers:
"Closest to running out" means the window with the fewest requests left. On a 429 it's the window that refused the request.
When RateLimit-Remaining reaches 0, the next request to that endpoint gets a 429 until RateLimit-Reset seconds have passed. The AI credit budget below is separate: its 429 is a JSON body with a resetAt time, and it has no Retry-After header.
Staying inside the limits
- Scan once, then enrich. One scan returns every match. Enrich the matches with a single batched call (most data endpoints take a
tickerslist) instead of one call per ticker. - Cache reference data. The scan catalog, sectors, industries, themes and countries change rarely. Fetch them once a day.
- Throttle loops. On Starter, one request every 2 seconds to any one endpoint stays under the per-minute limit.
- Don't re-run to poll. An identical scan within two minutes may be answered from cache (
"cached": true, window set bycache_ttl_seconds), and it still counts as a request. To follow a scan through the day, save it and read its alerts instead.
AI credits
Natural-language scanning (POST /api/v2/scan/natural, POST /api/v2/scan/refine, and the natural_scan and refine_payload MCP tools) runs a language model, so it also draws on a daily AI credit budget:
- Credits are weighted by the model work a request needs, so a long or complicated description costs more than a short one.
- The budget is shared by the REST endpoints and the MCP tools, and is separate from the AI allowance you use in the scanr.ai app.
- It resets at 00:00 UTC.
- A request that starts under budget completes even if it crosses it. The next one gets a
429with"code": "api_ai_quota_exceeded"and the reset time (see Errors).
Running a scan (POST /api/v2/scan) uses no AI credits, including a scan of a payload the AI generated. Generate a payload once and run it as often as you like.
Endpoints by plan
Each endpoint requires a minimum plan. A token below it gets 403 with the plan it needs.
Paths are relative to https://scanr.ai/api/v2.
Regime indicators are Business-only
The relative-strength and stock-indicator endpoints also return regime fields (trend_efficiency, regime_extension, regime_divergence, regime_divergence_pct, group_strength, market_strength, market_efficiency). On a Business token they hold real values. On Power User they are null and named in the response's withheld_fields.


