/api/v1/financials/snapshot-batchBatch version of /financials/snapshot — latest-TTM derived ratios for up to 100 tickers in a single call.
Batch version of /financials/snapshot — latest-TTM derived ratios for up to 100 tickers in a single call.
Why use this
Common use case
Batch companion to GET /api/v1/financials/snapshot. Returns the latest-TTM derived-ratio block for up to 100 tickers in a single request, so a screener with a candidate list does not have to call the single-ticker snapshot endpoint once per row (an N+1 that is slow and exhausts the financials rate limit on wide result sets). Per-ticker values are identical to the single-ticker endpoint's ratios block (same latest-TTM cf_derived_metrics source and the same gross_margin fallback), but flattened (no category nesting) and scoped to derived ratios only — the per-share, cash-runway, and Yahoo-Finance shares fallbacks of the single-ticker endpoint are intentionally omitted. Pair with GET /api/v1/financials/screen to resolve the candidate list first.
Parameters
| Name | In | Required | Default | Allowed | Description | Example |
|---|---|---|---|---|---|---|
| tickers | query | required | — | — | Comma-separated list of ticker symbols (canonical hyphen form; case-insensitive, normalized server-side). De-duplicated and capped at 100 — tokens beyond the first 100 are ignored. Unresolvable tickers are returned in `data.not_found` rather than failing the whole request. | AAPL,MSFT,KO |
Response schema
| Field | Type | Nullable | Description |
|---|---|---|---|
| data.count | integer | no | Number of requested tickers that resolved to a company and are present as keys in `data.ratios` (excludes `not_found`). |
| data.ratios | object | no | Map of ticker -> flat ratio object, one key per resolved requested ticker (keyed by the requested symbol). Each value is a flat object of latest-TTM derived metric -> value (un-nested, unlike single-ticker /financials/snapshot which groups ratios by category). A ticker that resolves but has no derived metrics on file maps to an empty object `{}`. |
| data.ratios.{TICKER}.{metric} | number | yes | Latest-TTM value of the derived ratio (margins/returns/growth are decimal fractions, e.g. 0.15 = 15%; leverage/liquidity are ratios). Rounded to 6 decimals. Identical to the value /financials/snapshot returns for that metric, including the gross_margin = gross_profit / revenue fallback when gross_margin is not directly derived. |
| data.not_found | array | no | Array of requested tickers (in requested form) that could not be resolved to a company via the ticker lookup. Empty array when every requested ticker resolved. |
Sample response
- "status": "success"
- "data":
- "count": 2
- "ratios":
- "not_found": []
Errors
| Status | Label | Description |
|---|---|---|
| 200 | OK | Request succeeded. |
| 400 | Bad Request | Invalid query, body, or path parameter. |
| 401 | Unauthorized | Missing or invalid Authorization header / api_Token. |
| 402 | Payment Required | Insufficient token balance for this call. Top up |
| 429 | Too Many Requests | Rate limit exceeded for your tier (see /pricing for tier limits). Tier limits |
| 500 | Server Error | Unexpected server-side failure. Retry with backoff; report if persistent. |
Code samples
curl "https://api.finradar.ai/api/v1/financials/snapshot-batch?api_Token=YOUR_API_KEY" \
-H "Authorization: Bearer YOUR_JWT_TOKEN"Generate an API key in /account/credentials to run live queries (literal YOUR_API_KEY placeholder shown until then).