Integration runbook
A quant or researcher working in Python and a backtesting framework.
Get TWMD into your research environment without letting a backtest see the future.
Each step below says which surface carries it and whether it works today. Every "Works today" step was probed against the live API on 2026-08-21; the rest say what is missing. Nothing here is written in the present tense because it is planned.
Create a key in the dashboard and call https://api.twmarketdata.com/v2/datasets/* with X-API-Key. The older proxy on the website domain is retired and answers 410 with this address in the error body, so following the error lands you in the right place.
as_of=YYYY-MM-DD returns what was public on that date. The response's request_context says so explicitly: point_in_time, as_of_applied, and knowledge_time_field — trade_date for prices, knowledge_date for disclosures, so an as_of of 2026-07-05 cannot see June revenue that was published on 10 July. Omit as_of and you get present values, with point_in_time: false.
Since 2026-08-21 as_of is applied before the limit: the response carries as_of_filter_applied_before_limit: true, so limit=3 returns three rows. It did not work that way before — the limit took N rows first and as_of filtered afterwards, so limit=3 could return one row without that meaning only one row existed. If your code was written before that date, it is worth a second look. For paging, read rows_excluded_by_as_of and rows_excluded_after_the_page rather than inferring exhaustion from the count.
coverage.missing (what you asked for and did not get, with a reason), freshness.is_stale (judged against that dataset's own cadence budget) and meta.query_id are on the MCP layer, not in the REST envelope. Go through MCP when you need them, and keep the query_id in your research notes — replay returns the bytes that were actually served.
The REST envelope carries request_context, lineage, source_role and data_as_of. It has no coverage, freshness or query_id. This step sat under REST in the source skeleton; probing moved it here.
Daily series are delivered as Parquet files that DuckDB or pandas can read directly, without paging an API.
This is an enterprise-plan delivery and a public probe cannot reach it, so it is not marked as served here. Ask us for an actual file manifest and delivery cadence before you design around it.
Send strategy returns through a diagnostic pass and get DSR, HAC-t and IS/OOS reports back.
The tooling exists internally; there is no public interface and no endpoint to call.
Point-in-time stops leakage through the data pipeline. It cannot stop leakage inside model weights: if your language model saw that history during pre-training, that is a model problem and no data delivery fixes it.
For how the proofs map onto published standards, see Standards & Interop.