For developers
The engine under Studio
Studio is one way in: a sentence becomes a typed spec and the spec runs. Underneath it is a point-in-time record of the US public filings — every row carrying the clock it arrived on, every read bounded to an instant you name, and every run leaving a receipt somebody else can recompute. All of it is addressable directly.
Three commands
A bounded read, a run with the network off, an agent connected
The first needs no key: /v1/sample is public and
rate-limited to 30 requests a minute per IP. The second installs
the evaluation harness, which runs entirely on your machine and
has no runtime dependency on this service. The third points an
MCP client at the same record, with no install at all.
$ curl -s "https://api.pit.aqx.llc/v1/sample/news?example=svb&as_of=2023-03-10T23:59:59Z" { "as_of": "2023-03-10T23:59:59Z", "visible_by": "published_at", "status": "ok", "count": 1, "coverage": { "touched": ["sec.edgar/2023-03-10"], "missing": [] } }
$ pip install git+https://github.com/sharath/pit-harness
$ claude mcp add --transport http pit https://api.pit.aqx.llc/mcp \
--header "Authorization: Bearer pit_live_..."
pit_query pit_diff pit_coverage pit_meta
/v1/meta on 2026-08-27. Oldest partition
2008-09-01; the tape has written forward every 15 minutes since
2026-08-26, so the count keeps rising.
The record
One corpus, five clocks, and a refusal where the evidence stops
A point-in-time read filters on exactly one timestamp field and the response repeats which one it used. That is the whole contract: you never get today's copy of a file back from a question about 2023, and you never get a silent zero where we simply have no data.
event_atpublished_atvisible_by.available_atacceptance_atcommitted_atcommitted_at.
visible_by accepts published_at,
available_at and committed_at. All 563,594
sec.edgar rows carry available_at: null,
because SEC publishes no dissemination clock — so a strict cut over
SEC data returns HTTP 409 with count as JSON null rather
than an empty list that looks like an answer. A coverage gap refuses
the same way. The rules are on
Coverage certificates, and the
definitions on as-of and
lookahead bias.
The harness
Run an agent against a frozen window with the network off
pit-harness is Apache-2.0, installs with pip, and runs
on your machine with no account and no key. Every tool call is
answered from the frozen window and nowhere else, and the whole
trajectory is hashed into a receipt anyone holding the same files
can recompute.
$ pit-harness run --config run.json \
--trajectory trajectory.jsonl --receipt receipt.json
run bf78382b9021b3be valid=True receipt sha256:4580ffd92e09f045e71d4e63069ce200c9d14f865aef5a6ef88026410718c395
main leaky reachable=False
main pit reachable=True
Transcribed from the run on Evaluation
Harness, executed 2026-08-27 against the
pit-eval-sec-2022-11_2023-03 release on a laptop. The
leaky arm is the control that is supposed to be
unreachable; a run where it is reachable is a run that read the
future. Methods covers the arms,
Benchmarks the measured results.
The interfaces
REST for your code, MCP for your agent, Studio for a sentence
REST
Hosthttps://api.pit.aqx.llc. One envelope on every
response, bound cursor pagination, twelve error codes. OpenAPI 3
at /v1/openapi.json,
generated from the server types.
API reference →
MCP
POST /mcp, four read-only tools —
pit_query, pit_diff,
pit_coverage, pit_meta. One connect
string for Claude Code, Claude.ai and Cursor; no install.
MCP server →
Studio
POST /v1/studio/runs takes a prompt or a typed spec
and returns the run document;
GET /v1/studio/runs/{id} returns the same document
again. The spec is readable before anything executes.
Studio, in detail →
Files
Flat parquet partitions, one sha256 each, pinned to a corpus version. For a backtest that reads the whole corpus rather than paging an API. Flat Files →Everything under Studio
Fifteen surfaces over the same corpus and the same envelope
Each one is a documented way to reach the same rows under the same clock rules, so a coverage certificate means the same thing in a flat file, in a benchmark release and on a live query. The full index says what each one serves today.
Reference