What the API does about it
How the API keeps the future out
Every cut names its clock
A query filters on published_at,
available_at or committed_at, and the
response repeats which one it used. Rows carry
acceptance_at alongside, so you can run the same
study on both clocks and report the difference.
Identity resolves at the instant you ask about
Ticker to CIK is answered at the query instant: CIK 1326801 comes
back as FB in October 2021 and as META in June 2022. A join against
today’s ticker table uses assignments nobody had at the
instant being studied. That is where a filings backtest usually
starts leaking, before anyone looks at the clocks.
An uncertified day refuses
Every answer lists the days it read with a status of
complete, partial or missing.
A day we certified with nothing matching answers
count: 0. A day we never read makes the whole call come
back 409, with that day named in coverage.missing. A
hole in the corpus therefore cannot enter your study as a zero.
a day the corpus has not certified
409 coverage_missing
$ curl -s "$PIT/v1/sample/news?example=svb&as_of=2021-07-15T23:59:59Z"
{
"status": "coverage_missing",
"count": null,
"coverage": { "missing": ["sec.edgar/2021-07-15", "us.federal_register.pi/2021-07-15"] },
"error": {
"code": "coverage_missing",
"message": "This cut touches at least one day we have not certified, so count is null: the answer is unknown, not empty. coverage.missing names the days."
}
}
PIT=https://api.pit.aqx.llc. That call takes no key; the
response above is trimmed to the fields being discussed.