Credits + limits
One research allowance across web, API and MCP. Reading a saved public result is free.
What a credit pays for
A new standard computation costs 1 credit. A heavy computation (more than 50,000 symbol-days) costs 2 credits. The server estimates the exact validated definition before execution. A study can include multiple computations, such as a changed condition or a separate-period test. The built-in unconditional baseline is free. Credits are not a count of complete studies.
Scoped cost examples
Cost estimates, not executed scans or coverage claims. Dates are UTC; check coverage before running.
- AKE/USDT, 5 Aug to 4 Sep 2026: 1 credit for a new computation; cached retrieval costs 0.
- BTC and ETH, 1 to 8 Sep 2026: 1 credit for a new computation; cached retrieval costs 0.
When you spend
A debit happens on exactly one path: HTTP 200 with X-Research-Cache: miss - the engine actually scanned. Everything else is free: cache hits (X-Research-Cache: hit), 304 revalidations against your ETag, validation failures, SCAN_BUSY, timeouts. A cached retrieval is free. Recomputing after cache expiry or a dataset revision can spend again. Signed cursor continuations are free; changing the definition creates a separately estimated computation.
Every query response carries the meters: X-Research-Credits-Estimate, X-Research-Credits-Charged, X-Research-Credits-Remaining.
Budgets
| TIER | UNITS / MONTH (UTC) |
|---|---|
| Free | 10 |
| Pro | 50 |
| Research | 300 |
One ledger per ACCOUNT: scans from the /research page and scans over the API draw the same budget. Interpretation (POST /interpret) is a free proposal step and never debits the scan allowance. An over-allowance scan answers 402 RESEARCH_ALLOWANCE_EXHAUSTED with your state in the body.
Concurrency + rate
| LIMIT | VALUE | ON HIT |
|---|---|---|
| In-flight scans per key | 1 | 429 SCAN_BUSY + Retry-After |
| Requests per key | 60 / minute | 429 RATE_LIMITED + Retry-After |
| Scan budget (engine) | 90 s | 504 SCAN_TIMEOUT |
The SCAN_BUSY dance
The engine bounds concurrent scans globally; under contention it queues your request up to 20 seconds, then answers 429 SCAN_BUSY with a Retry-After. Honor it, retry once or twice, and prefer re-running EXACT documents: identical documents share one flight and one cache entry, so a busy engine still serves your repeat for free the moment the first run lands.