API reference

Revisions

View as Markdown

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

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

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

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.

{
    "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 Missing or invalid API key.
403 subscription_inactive The Premium subscription behind the key is not active.
404 not_found The company is not covered.
422 invalid_parameter A query parameter is invalid.
429 rate_limited Rate limit reached.
500 server_error Something went wrong on our side.

All errors have the same shape.