/api/v1/financials/changes/{ticker}Get details of what changed for a specific company in the last 7 days.
Get details of what changed for a specific company in the last 7 days.
Why use this
Common use case
Per-ticker drill-down on what changed in FinRadar's standardized XBRL data over the last 7 days (or a custom since window). Surfaces both the affected fiscal periods AND the specific metrics + derived ratios that changed — useful for selective downstream cache invalidation rather than full re-fetch. Use after /api/v1/financials/changes flags a ticker as updated. The metrics_affected and ratios_affected lists come from a delta-detection pass that runs at the end of the daily XBRL ETL — restatement events that backfill historical periods will surface here even when the original filing date is years old.
Parameters
| Name | In | Required | Default | Allowed | Description | Example |
|---|---|---|---|---|---|---|
| ticker | path | required | — | — | Stock ticker symbol (canonical hyphen form). Returns 404 if ticker has no XBRL coverage; returns empty `periods_updated[]` if ticker exists but has no recent updates. | AAPL |
| since | query | optional | 7d-ago | — | ISO-8601 UTC timestamp lower-bound on `updated_at`. Default = 7 days ago. Pass a wider window to surface restatement events that backfill historical periods. | 2026-04-25T00:00:00Z |
Response schema
| Field | Type | Nullable | Description |
|---|---|---|---|
| data.ticker | string | no | Issuer ticker echoed back (canonical hyphen form). |
| data.company | string | no | Company name (Title Case from EDGAR's company-tickers.json). |
| data.cik | string | no | Issuer CIK in 10-char zero-padded form (e.g. `0000320193`). |
| data.since | string | no | ISO-8601 UTC timestamp echoed back — the lower-bound used for the query. |
| data.periods_updated[] | array | no | Array of period-update rows, sorted by `updated_at DESC`. Empty array when no updates within `since` window. Restatement events emit multiple rows (one per affected historical period); typical 10-Q/10-K loads emit one row. |
| data.periods_updated[].year | integer | no | Fiscal year of the updated period (e.g. `2025`). |
| data.periods_updated[].period | string | no | Fiscal period label: `Q1`/`Q2`/`Q3`/`Q4` for quarterly, `FY` for annual. |
| data.periods_updated[].period_end | string | no | ISO `YYYY-MM-DD` end-date of the updated fiscal period. Non-calendar fiscal-year-end-aware. |
| data.periods_updated[].metrics_count | integer | no | Total count of standardized metrics that were inserted or updated for this period in this load. Typical 10-Q: 30-40; 10-K: 40-60; restatement: variable. |
| data.periods_updated[].updated_at | string | no | ISO-8601 UTC timestamp of when the ETL load completed for this period. |
| data.periods_updated[].trigger | string | yes | Human-readable cause: `10-Q filing` / `10-K filing` / `8-K/A restatement` / `XBRL re-parse` / `Backfill load`. Null when uncertain. |
| data.metrics_affected | array | no | Deduplicated list of standardized metric names (matches `/financials/metrics` response field names) that changed in any of the `periods_updated` rows. Use to selectively re-fetch only the affected metrics in your downstream sync. |
| data.ratios_affected | array | no | Deduplicated list of derived ratio names (matches `/financials/ratios` response field names) that changed because their underlying metrics changed. Useful for cache-invalidation in ratio-driven UIs. |
Sample response
- "status": "success"
- "data":
- "ticker": "AAPL"
- "company": "Apple Inc."
- "cik": "0000320193"
- "since": "2026-04-25T00:00:00Z"
- "periods_updated":
- "metrics_affected":
- "ratios_affected":
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/changes/{ticker}?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).