# Revisions

> API version: v1

Restatement history: every period and line item whose value changed after we first recorded it, with each earlier value and when we recorded it. `recorded_at` is when our sync saw the value, not the filing date. The filing that restated a value can be found through the company's SEC filings link.

`GET /api/v1/companies/{symbol}/financials/revisions`

Requires an API key in the `X-Api-Key` header.

## Parameters

| Name | In | Type | Required | Description |
|---|---|---|---|---|
| `symbol` | path | string | yes | Ticker symbol of a listed company, for example `CSCO`. Case-insensitive. |
| `items` | query | string | no | Comma-separated line items to check. Default: all. One of: `revenue`, `net_income`, `eps_basic`, `dividends_per_share`, `free_cash_flow`, `shares_basic`, `shares_diluted`, `total_debt`, `cash_and_equivalents`, `roic`, `debt_to_fcf`. |
| `from` | query | string | no | Only revisions with a period end on or after this date (`YYYY-MM-DD`). |
| `to` | query | string | no | Only revisions with a period end on or before this date (`YYYY-MM-DD`). |
| `limit` | query | integer | no | Number of revised period and item pairs. Default 50, maximum 200. |

## Request

**curl**

```bash
curl "https://studyingstocks.com/api/v1/companies/CSCO/financials/revisions?items=revenue" \
  -H "X-Api-Key: $STUDYING_STOCKS_API_KEY"
```

**Python**

```python
import os
import requests

response = requests.get("https://studyingstocks.com/api/v1/companies/CSCO/financials/revisions", params={"items": "revenue"}, headers={"X-Api-Key": os.environ["STUDYING_STOCKS_API_KEY"]})
response.raise_for_status()
print(response.json())
```

**JavaScript**

```javascript
const response = await fetch("https://studyingstocks.com/api/v1/companies/CSCO/financials/revisions?items=revenue", {
  headers: { "X-Api-Key": process.env.STUDYING_STOCKS_API_KEY },
});
if (!response.ok) throw new Error(await response.text());
console.log(await response.json());
```

## Response

Revised values, newest period first. Empty when nothing was revised.

```json
{
    "data": [
        {
            "period": "2026Q3",
            "period_end": "2026-04-25",
            "item": "revenue",
            "current_value": 61500000000,
            "versions": [
                {
                    "version": 1,
                    "value": 61200000000,
                    "current": false,
                    "recorded_at": "2026-05-20T02:00:00Z"
                },
                {
                    "version": 2,
                    "value": 61500000000,
                    "current": true,
                    "recorded_at": "2026-08-14T02:00:00Z"
                }
            ]
        }
    ],
    "meta": {
        "symbol": "CSCO",
        "currency": "USD",
        "items": [
            "revenue"
        ],
        "count": 1,
        "source": "SEC EDGAR",
        "api_version": "v1",
        "generated_at": "2026-10-16T02:00:00Z"
    }
}
```

### Response fields

| Field | Type | Description |
|---|---|---|
| `data[].period` | string |  |
| `data[].period_end` | string |  |
| `data[].item` | string |  |
| `data[].current_value` | number or null |  |
| `data[].versions[].version` | integer |  |
| `data[].versions[].value` | number |  |
| `data[].versions[].current` | boolean |  |
| `data[].versions[].recorded_at` | string or null | When our sync recorded this value. |
| `meta.source` | string | Where the data comes from: always SEC EDGAR (calculated items are derived from it). |
| `meta.api_version` | string |  |
| `meta.generated_at` | string | When this response was generated (responses are cached for a few hours). |
| `meta.symbol` | string |  |
| `meta.currency` | string |  |
| `meta.items` | array of string |  |
| `meta.count` | integer |  |

## Errors

| Status | Code | When |
|---|---|---|
| 401 | [`unauthenticated`](https://studyingstocks.com/developers/errors#unauthenticated) | Missing or invalid API key. |
| 403 | [`subscription_inactive`](https://studyingstocks.com/developers/errors#subscription_inactive) | The Premium subscription behind the key is not active. |
| 404 | [`not_found`](https://studyingstocks.com/developers/errors#not_found) | The company is not covered. |
| 422 | [`invalid_parameter`](https://studyingstocks.com/developers/errors#invalid_parameter) | A query parameter is invalid. |
| 429 | [`rate_limited`](https://studyingstocks.com/developers/errors#rate_limited) | Rate limit reached. |
| 500 | [`server_error`](https://studyingstocks.com/developers/errors#server_error) | Something went wrong on our side. |

All errors have the [same shape](https://studyingstocks.com/developers/errors).
