{"openapi":"3.1.0","info":{"title":"outcometick API","version":"3.0.0","summary":"Historical tick data for Polymarket and Predict.fun crypto up/down markets, and a hosted backtester.","description":"Public endpoints need no key. Data endpoints take a data subscription key, backtest endpoints a backtest key, both as `Authorization: Bearer <key>`. Operations marked x-requires-human-confirmation spend money or credits: an agent must get the user's explicit approval first. Full documentation: https://outcometick.com/llms-full.txt","contact":{"email":"support@outcometick.com","url":"https://outcometick.com/docs"}},"servers":[{"url":"https://outcometick.com"}],"externalDocs":{"url":"https://outcometick.com/llms-full.txt"},"tags":[{"name":"public","description":"No key"},{"name":"data","description":"Archive data; data subscription key"},{"name":"smart-money","description":"Smart-money wallet lists; smart-money key"},{"name":"backtest","description":"Hosted backtester"},{"name":"purchase","description":"Buying plans, ranges and credits"}],"security":[],"paths":{"/v1/health":{"get":{"operationId":"health","tags":["public"],"security":[],"summary":"Service health (database reachable)","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"const":true}},"additionalProperties":true}}}},"503":{"description":"Database unreachable","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/v1/openapi.json":{"get":{"operationId":"openapi","tags":["public"],"security":[],"summary":"This document","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/public/coverage":{"get":{"operationId":"coverage","tags":["public"],"security":[],"summary":"What the archive holds, per venue: assets, datasets and day range","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Coverage"}}}},"429":{"description":"Rate limited; retry after the Retry-After header","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporarily unavailable; retry","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/public/plans":{"get":{"operationId":"plans","tags":["public","purchase"],"security":[],"summary":"Data subscription plans and prepaid offers with live prices","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"plans":{"type":"array","items":{"$ref":"#/components/schemas/Plan"}},"prepay":{"type":"array","items":{"$ref":"#/components/schemas/PrepayOffer"}}}}}}},"429":{"description":"Rate limited; retry after the Retry-After header","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporarily unavailable; retry","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/public/asset-stats":{"get":{"operationId":"assetStats","tags":["public"],"security":[],"summary":"Settlement statistics per venue and asset over a recent window","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"429":{"description":"Rate limited; retry after the Retry-After header","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporarily unavailable; retry","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/public/settlement-audit":{"get":{"operationId":"settlementAudit","tags":["public"],"security":[],"summary":"Settlement audit index: per-day verdict totals recomputed from the archived feeds","parameters":[{"name":"venue","in":"query","required":false,"schema":{"type":"string","enum":["polymarket","predict"],"default":"polymarket"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Unknown venue","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; retry after the Retry-After header","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporarily unavailable; retry","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/public/settlement-audit/{day}":{"get":{"operationId":"settlementAuditDay","tags":["public"],"security":[],"summary":"Download one day of the settlement audit (every market's verdict and evidence)","parameters":[{"name":"day","in":"path","required":true,"schema":{"type":"string","format":"date","description":"UTC day, YYYY-MM-DD"},"description":"UTC day"},{"name":"venue","in":"query","required":false,"schema":{"type":"string","enum":["polymarket","predict"],"default":"polymarket"}}],"responses":{"302":{"description":"Redirect to the JSON file"},"400":{"description":"Bad day or venue","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No audit for that day","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; retry after the Retry-After header","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporarily unavailable; retry","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/meta":{"get":{"operationId":"meta","tags":["data"],"security":[{"dataKey":[]}],"summary":"The date window your key can download and every filter value inside it","description":"Call before /v1/files: it names the real venue, asset, interval and dataset values.","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Meta"}}}},"401":{"description":"Missing, unknown, revoked or expired key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Smart-money key used on a data route","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; retry after the Retry-After header","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporarily unavailable; retry","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/files":{"get":{"operationId":"listFiles","tags":["data"],"security":[{"dataKey":[]}],"summary":"Search archive files your key can download","description":"Every filter is optional and takes a comma-separated list. asset is the BASE symbol (BTC, not BTCUSD — an unknown value matches nothing). interval=5m excludes the period-less settlement streams; use interval=5m,none for both. Without date/from/to it lists the newest day in reach.","parameters":[{"name":"date","in":"query","required":false,"schema":{"type":"string","format":"date","description":"UTC day, YYYY-MM-DD"},"description":"One day (instead of from/to)"},{"name":"from","in":"query","required":false,"schema":{"type":"string","format":"date","description":"UTC day, YYYY-MM-DD"},"description":"Range start"},{"name":"to","in":"query","required":false,"schema":{"type":"string","format":"date","description":"UTC day, YYYY-MM-DD"},"description":"Range end (default: from)"},{"name":"venue","in":"query","required":false,"schema":{"type":"string"},"description":"polymarket | predict"},{"name":"dataset","in":"query","required":false,"schema":{"type":"string"},"description":"e.g. prices, twap60s, book, trades, markets"},{"name":"asset","in":"query","required":false,"schema":{"type":"string"},"description":"Base symbol, e.g. BTC"},{"name":"interval","in":"query","required":false,"schema":{"type":"string"},"description":"e.g. 5m, 15m, or none"},{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["gz","parquet"],"default":"gz"},"description":"parquet lists the Parquet copy of each file"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"from":{"type":"string","format":"date","description":"UTC day, YYYY-MM-DD"},"to":{"type":"string","format":"date","description":"UTC day, YYYY-MM-DD"},"days":{"type":"integer"},"format":{"type":"string"},"count":{"type":"integer"},"pending":{"type":"integer","description":"Parquet only: matching files not converted yet"},"bytes":{"type":"integer"},"files":{"type":"array","items":{"$ref":"#/components/schemas/ApiFile"}}}}}}},"400":{"description":"Bad date, range too large, or bad format","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, unknown, revoked or expired key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Outside your coverage window","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; retry after the Retry-After header","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporarily unavailable; retry","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/dl/{date}/{name}":{"get":{"operationId":"download","tags":["data"],"security":[{"dataKey":[]},{"dataKeyQuery":[]}],"summary":"Download one file: redirects to a signed URL valid for 15 minutes","description":"The response carries x-outcometick-sha256; verify the bytes against it. The key may be passed as ?api_key= here (and only here) for tools that cannot set headers.","parameters":[{"name":"date","in":"path","required":true,"schema":{"type":"string","format":"date","description":"UTC day, YYYY-MM-DD"},"description":"UTC day"},{"name":"name","in":"path","required":true,"schema":{"type":"string"},"description":"File name exactly as /v1/files reports it"}],"responses":{"302":{"description":"Redirect to the file","headers":{"x-outcometick-sha256":{"schema":{"type":"string"}}}},"400":{"description":"Bad date","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, unknown, revoked or expired key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Outside your coverage window","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such file in your scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; retry after the Retry-After header","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporarily unavailable; retry","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/public/smart-plans":{"get":{"operationId":"smartPlans","tags":["smart-money","purchase"],"security":[],"summary":"Smart-money wallet list plans (USD only)","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"onSale":{"type":"boolean"},"plans":{"type":"array","items":{"type":"object","properties":{"planId":{"type":"string"},"plan":{"type":"string","enum":["smart100","smart1000"]},"usd":{"type":"number"},"passUsd":{"type":["number","null"]},"interval":{"type":"string"}}}}}}}}},"429":{"description":"Rate limited; retry after the Retry-After header","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporarily unavailable; retry","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/public/smart-coverage":{"get":{"operationId":"smartCoverage","tags":["smart-money"],"security":[],"summary":"Day range of published smart-money lists","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"firstDay":{"type":"string","format":"date","description":"UTC day, YYYY-MM-DD"},"lastDay":{"type":"string","format":"date","description":"UTC day, YYYY-MM-DD"},"days":{"type":"integer"}}}}}},"429":{"description":"Rate limited; retry after the Retry-After header","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporarily unavailable; retry","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/public/smart-freshness":{"get":{"operationId":"smartFreshness","tags":["smart-money"],"security":[],"summary":"Whether the newest smart-money day is on time","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"429":{"description":"Rate limited; retry after the Retry-After header","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Late or unreadable","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/v1/smart/days":{"get":{"operationId":"smartDays","tags":["smart-money"],"security":[{"dataKey":[]}],"summary":"Days your smart-money key can download, with per-list publish status","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Missing, unknown, revoked or expired key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Not a smart-money key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; retry after the Retry-After header","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporarily unavailable; retry","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/smart/download":{"get":{"operationId":"smartDownload","tags":["smart-money"],"security":[{"dataKey":[]}],"summary":"Download one day of one list: redirects to a signed URL","parameters":[{"name":"day","in":"query","required":true,"schema":{"type":"string","format":"date","description":"UTC day, YYYY-MM-DD"},"description":"UTC day"},{"name":"list","in":"query","required":true,"schema":{"type":"string","enum":["top100","top1000"]},"description":"Which list"}],"responses":{"302":{"description":"Redirect to the file","headers":{"x-outcometick-sha256":{"schema":{"type":"string"}}}},"400":{"description":"day and list are required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, unknown, revoked or expired key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Outside your window or plan","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not published yet","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Not published for this day","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; retry after the Retry-After header","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporarily unavailable; retry","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/backtest/contract":{"get":{"operationId":"backtestContract","tags":["backtest"],"security":[],"summary":"The strategy contract: languages, hooks, datasets, limits","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"429":{"description":"Rate limited; retry after the Retry-After header","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/backtest/packs":{"get":{"operationId":"backtestPacks","tags":["backtest","purchase"],"security":[],"summary":"Credit packs, prices, sellable venues/assets and run limits","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"429":{"description":"Rate limited; retry after the Retry-After header","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/backtest/capacity":{"get":{"operationId":"backtestCapacity","tags":["backtest"],"security":[],"summary":"Which days can be backtested on a venue, and how busy the queue is","parameters":[{"name":"venue","in":"query","required":false,"schema":{"type":"string","enum":["polymarket","predict"]},"description":"Venue (recommended: the windows differ)"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"429":{"description":"Rate limited; retry after the Retry-After header","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporarily unavailable; retry","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/backtest/quote":{"post":{"operationId":"backtestQuote","tags":["backtest"],"security":[],"summary":"Price a backtest scope in credits (1 credit = 1 market-day). Free; submits nothing.","requestBody":{"required":true,"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/BacktestScope"},{"type":"object","properties":{"mode":{"type":"string","enum":["market","session"],"default":"market"},"intervals":{"type":"array","items":{"type":"string"}},"language":{"type":"string","enum":["python@3.14","nodejs@24"]}}}]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"const":true},"quote":{"$ref":"#/components/schemas/Quote"}}}}}},"422":{"description":"Scope refused","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Rejection"}}}},"429":{"description":"Rate limited; retry after the Retry-After header","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporarily unavailable; retry","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/backtest/check":{"post":{"operationId":"backtestCheck","tags":["backtest"],"security":[{},{"backtestKey":[]}],"summary":"Validate a strategy with the exact validator the queue runs, and price it. Free.","description":"A backtest key is required only when the body names uploads.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Submission"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"const":true},"manifest":{"type":"object","additionalProperties":true},"hooks":{"type":"array","items":{"type":"string"}},"files":{"type":"array","items":{"type":"object"}},"total_bytes":{"type":"integer"},"imports":{"type":"array","items":{"type":"string"}},"quote":{"$ref":"#/components/schemas/Quote"}}}}}},"401":{"description":"Uploads named without a valid backtest key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Rejected; costs nothing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Rejection"}}}},"429":{"description":"Rate limited; retry after the Retry-After header","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporarily unavailable; retry","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/backtest/upload":{"post":{"operationId":"backtestUpload","tags":["backtest"],"security":[{"backtestKey":[]}],"summary":"Get a 5-minute signed URL to PUT one series CSV, for use in submit","x-requires-human-confirmation":true,"description":"Part of submitting a run. Spends money or credits. An agent must show the quote to the user and get explicit approval before calling this.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"bytes":{"type":"integer","minimum":1}},"required":["bytes"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"key":{"type":"string"},"bytes":{"type":"integer"},"expires_in":{"type":"integer"},"headers":{"type":"object","additionalProperties":{"type":"string"}}}}}}},"400":{"description":"Bad size","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, unknown, revoked or expired key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; retry after the Retry-After header","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporarily unavailable; retry","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/backtest/submit":{"post":{"operationId":"backtestSubmit","tags":["backtest"],"security":[{"backtestKey":[]}],"summary":"Queue a backtest run. Holds credits; refunded in full unless a report is produced.","x-requires-human-confirmation":true,"description":"Spends money or credits. An agent must show the quote to the user and get explicit approval before calling this.","requestBody":{"required":true,"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Submission"},{"type":"object","properties":{"email":{"type":"string","format":"email"},"locale":{"type":"string","enum":["en","zh"],"default":"en","description":"Decides the currency (zh pays in CNY) and the return page"}}}]}}}},"responses":{"202":{"description":"Queued","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"const":true},"run_id":{"type":"string"},"status":{"const":"queued"},"credits_held":{"type":"integer"},"quote":{"$ref":"#/components/schemas/Quote"},"source_sha256":{"type":"string"}}}}}},"401":{"description":"Missing, unknown, revoked or expired key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"balance":{"type":"integer"},"required":{"type":"integer"},"quote":{"$ref":"#/components/schemas/Quote"}}}}}},"422":{"description":"Rejected; costs nothing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Rejection"}}}},"429":{"description":"Rate limited; retry after the Retry-After header","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporarily unavailable; retry","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/backtest/balance":{"get":{"operationId":"backtestBalance","tags":["backtest"],"security":[{"backtestKey":[]}],"summary":"Credit balance and the 25 most recent ledger entries","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"balance":{"type":"integer"},"history":{"type":"array","items":{"type":"object","additionalProperties":true}}}}}}},"401":{"description":"Missing, unknown, revoked or expired key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; retry after the Retry-After header","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporarily unavailable; retry","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/backtest/runs":{"get":{"operationId":"backtestRuns","tags":["backtest"],"security":[{"backtestKey":[]}],"summary":"Recent runs under your backtest key","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1},"description":"How many"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"runs":{"type":"array","items":{"type":"object","additionalProperties":true}}}}}}},"401":{"description":"Missing, unknown, revoked or expired key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; retry after the Retry-After header","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporarily unavailable; retry","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/backtest/run/{id}":{"get":{"operationId":"backtestRun","tags":["backtest"],"security":[{"backtestKey":[]}],"summary":"One run: status, progress, credits and report summary","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"run_id"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Run"}}}},"401":{"description":"Missing, unknown, revoked or expired key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such run under this key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; retry after the Retry-After header","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporarily unavailable; retry","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/backtest/run/{id}/archive":{"get":{"operationId":"backtestRunArchive","tags":["backtest"],"security":[{"backtestKey":[]}],"summary":"Download the run's report archive (signed URL, 15 minutes)","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"run_id"},{"name":"as","in":"query","required":false,"schema":{"type":"string","enum":["json"]},"description":"json returns {url, expires_in} instead of redirecting"}],"responses":{"200":{"description":"With as=json","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"expires_in":{"type":"integer"}}}}}},"302":{"description":"Redirect to the archive"},"401":{"description":"Missing, unknown, revoked or expired key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"No archive for this run","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; retry after the Retry-After header","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporarily unavailable; retry","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/public/checkout":{"post":{"operationId":"checkout","tags":["purchase"],"security":[],"summary":"Start a card checkout for a data or smart-money plan; returns a Stripe payment page URL","x-requires-human-confirmation":true,"description":"Spends money or credits. An agent must show the quote to the user and get explicit approval before calling this. A person completes payment on the returned page; the key is shown on the return page and emailed. Pass apiKey to extend that key's subscription instead of getting a new one.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"planId":{"type":"string","pattern":"^[a-z0-9_]{1,64}$"},"kind":{"type":"string","enum":["sub","pass"],"default":"sub","description":"sub renews monthly; pass is one-time"},"locale":{"type":"string","enum":["en","zh"],"default":"en","description":"Decides the currency (zh pays in CNY) and the return page"},"apiKey":{"type":"string","description":"Existing key to top up (proof of ownership)"}},"required":["planId"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutUrl"}}}},"400":{"description":"Bad request or key for another product","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"apiKey not recognised","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Plan not available","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; retry after the Retry-After header","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporarily unavailable; retry","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/public/claim-key":{"post":{"operationId":"claimKey","tags":["purchase"],"security":[],"summary":"After a card checkout: the key it bought (shown once)","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"sessionId":{"type":"string","pattern":"^cs_[A-Za-z0-9_]{10,200}$","description":"Stripe Checkout Session id from the success redirect"}},"required":["sessionId"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IssuedKey"}}}},"202":{"description":"Paid but not active yet; poll","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pending"}}}},"400":{"description":"Bad session id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Key already issued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; retry after the Retry-After header","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporarily unavailable; retry","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/public/range-quote":{"post":{"operationId":"rangeQuote","tags":["purchase"],"security":[],"summary":"Price a one-time purchase of a fixed date range. Without from/to, prices the whole sellable window.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"venue":{"type":"string","enum":["polymarket","predict","all"]},"from":{"type":"string","format":"date","description":"UTC day, YYYY-MM-DD"},"to":{"type":"string","format":"date","description":"UTC day, YYYY-MM-DD"},"locale":{"type":"string","enum":["en","zh"],"default":"en","description":"Decides the currency (zh pays in CNY) and the return page"}},"required":["venue"]}}}},"responses":{"200":{"description":"ok:true with the price, or ok:false with a code","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Bad venue","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; retry after the Retry-After header","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporarily unavailable; retry","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/public/range-checkout":{"post":{"operationId":"rangeCheckout","tags":["purchase"],"security":[],"summary":"Start a card checkout for a fixed date range","x-requires-human-confirmation":true,"description":"Spends money or credits. An agent must show the quote to the user and get explicit approval before calling this.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"venue":{"type":"string","enum":["polymarket","predict","all"]},"from":{"type":"string","format":"date","description":"UTC day, YYYY-MM-DD"},"to":{"type":"string","format":"date","description":"UTC day, YYYY-MM-DD"},"locale":{"type":"string","enum":["en","zh"],"default":"en","description":"Decides the currency (zh pays in CNY) and the return page"}},"required":["venue","from","to"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutUrl"}}}},"400":{"description":"Range refused","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; retry after the Retry-After header","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporarily unavailable; retry","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/public/crypto-order":{"post":{"operationId":"cryptoOrder","tags":["purchase"],"security":[],"summary":"Pay for a plan with USDT/USDC (one-time; priced in USD)","x-requires-human-confirmation":true,"description":"Spends money or credits. An agent must show the quote to the user and get explicit approval before calling this. Then poll GET /v1/public/crypto-order/{id} and claim the key with POST /v1/public/crypto-claim.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"planId":{"type":"string","pattern":"^[a-z0-9_]{1,64}$"},"asset":{"type":"string","enum":["USDT","USDC"],"default":"USDT"},"apiKey":{"type":"string","description":"Existing key to top up"}},"required":["planId"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CryptoOrder"}}}},"400":{"description":"Bad plan or asset","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"apiKey not recognised","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Plan not available","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Plan cannot be combined with that key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; retry after the Retry-After header","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporarily unavailable; retry","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/public/range-crypto-order":{"post":{"operationId":"rangeCryptoOrder","tags":["purchase"],"security":[],"summary":"Pay for a fixed date range with USDT/USDC","x-requires-human-confirmation":true,"description":"Spends money or credits. An agent must show the quote to the user and get explicit approval before calling this.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"venue":{"type":"string","enum":["polymarket","predict","all"]},"from":{"type":"string","format":"date","description":"UTC day, YYYY-MM-DD"},"to":{"type":"string","format":"date","description":"UTC day, YYYY-MM-DD"},"asset":{"type":"string","enum":["USDT","USDC"],"default":"USDT"}},"required":["venue","from","to"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CryptoOrder"}}}},"400":{"description":"Range refused","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; retry after the Retry-After header","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporarily unavailable; retry","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/public/crypto-order/{id}":{"get":{"operationId":"cryptoOrderStatus","tags":["purchase"],"security":[],"summary":"A stablecoin order and its payment status","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^co_[0-9a-f]{18}$"},"description":"orderId"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/CryptoOrder"},{"type":"object","properties":{"planId":{"type":"string"},"status":{"type":"string","description":"pending, paid, expired, void"}}}]}}}},"400":{"description":"Bad order id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; retry after the Retry-After header","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/public/crypto-claim":{"post":{"operationId":"cryptoClaim","tags":["purchase"],"security":[],"summary":"After a stablecoin order is paid: the key it bought (shown once)","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"orderId":{"type":"string","pattern":"^co_[0-9a-f]{18}$"}},"required":["orderId"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IssuedKey"}}}},"202":{"description":"Not paid yet; poll","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pending"}}}},"400":{"description":"Bad order id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Key already issued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Order closed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; retry after the Retry-After header","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporarily unavailable; retry","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/public/crypto-ack":{"post":{"operationId":"cryptoAck","tags":["purchase"],"security":[],"summary":"Confirm the key from a stablecoin order is saved","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"orderId":{"type":"string","pattern":"^co_[0-9a-f]{18}$"}},"required":["orderId"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"acked":{"type":"boolean"}}}}}},"400":{"description":"Bad order id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; retry after the Retry-After header","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/backtest/checkout":{"post":{"operationId":"backtestCreditsCheckout","tags":["backtest","purchase"],"security":[],"summary":"Buy a credit pack by card; returns a Stripe payment page URL","x-requires-human-confirmation":true,"description":"Spends money or credits. An agent must show the quote to the user and get explicit approval before calling this. Pass key to add the credits to an existing backtest key.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"pack":{"type":"string","description":"Pack id from /v1/backtest/packs"},"locale":{"type":"string","enum":["en","zh"],"default":"en","description":"Decides the currency (zh pays in CNY) and the return page"},"key":{"type":"string","description":"Existing backtest key to top up"}},"required":["pack"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"session_id":{"type":"string"}}}}}},"401":{"description":"Backtest key not valid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown pack","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Account cannot be topped up here","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; retry after the Retry-After header","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporarily unavailable; retry","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/backtest/claim-credits":{"post":{"operationId":"backtestClaimCredits","tags":["backtest","purchase"],"security":[],"summary":"After a credit-pack card checkout: the backtest key (shown once) and balance","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"sessionId":{"type":"string","pattern":"^cs_[A-Za-z0-9_]{10,200}$","description":"Stripe Checkout Session id from the success redirect"}},"required":["sessionId"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"202":{"description":"Not active yet; poll","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pending"}}}},"400":{"description":"Bad session id or not a credits checkout","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; retry after the Retry-After header","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporarily unavailable; retry","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/backtest/crypto-order":{"post":{"operationId":"backtestCreditsCryptoOrder","tags":["backtest","purchase"],"security":[],"summary":"Buy a credit pack with USDT/USDC","x-requires-human-confirmation":true,"description":"Spends money or credits. An agent must show the quote to the user and get explicit approval before calling this. Claim with POST /v1/public/crypto-claim once paid.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"pack":{"type":"string"},"asset":{"type":"string","enum":["USDT","USDC"],"default":"USDT"},"key":{"type":"string","description":"Existing backtest key to top up"}},"required":["pack"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CryptoOrder"}}}},"400":{"description":"Unsupported asset","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Backtest key not valid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown pack","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; retry after the Retry-After header","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporarily unavailable; retry","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"Error":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"],"additionalProperties":true},"Rejection":{"type":"object","description":"A backtest validation rejection. Costs nothing.","properties":{"ok":{"const":false},"code":{"type":"string","description":"E_MANIFEST, E_SCOPE, E_LIMIT, ..."},"detail":{"type":"string"}},"required":["ok","code","detail"],"additionalProperties":true},"Amounts":{"type":"object","description":"Price in major units per currency the plan can be bought in.","properties":{"usd":{"type":"number"},"cny":{"type":"number"}},"additionalProperties":false},"Plan":{"type":"object","properties":{"planId":{"type":"string"},"tier":{"type":"string"},"venue":{"type":"string","enum":["polymarket","predict","all"]},"dateScope":{"type":"string","description":"e.g. rolling-30, or full"},"usd":{"type":"number"},"amounts":{"$ref":"#/components/schemas/Amounts"},"hasPass":{"type":"boolean","description":"A one-time pass (no auto-renewal) is sold for this plan"},"passUsd":{"type":["number","null"]},"passAmounts":{"oneOf":[{"$ref":"#/components/schemas/Amounts"},{"type":"null"}]},"interval":{"type":"string","description":"Billing interval of the subscription"}}},"PrepayOffer":{"type":"object","properties":{"planId":{"type":"string"},"venue":{"type":"string"},"months":{"type":"integer"},"days":{"type":"integer"},"usd":{"type":"number"},"amounts":{"$ref":"#/components/schemas/Amounts"}}},"VenueCoverage":{"type":"object","properties":{"assets":{"type":"array","items":{"type":"string"}},"assetCount":{"type":"integer"},"datasets":{"type":"array","items":{"type":"string"}}}},"Coverage":{"type":"object","properties":{"firstDay":{"type":"string","format":"date","description":"First day the archive holds (may be partial)"},"lastDay":{"type":"string","format":"date","description":"Newest archived day"},"days":{"type":"integer"},"firstCompleteDay":{"type":"string","format":"date","description":"First full UTC day"},"completeDays":{"type":"integer"},"venues":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/VenueCoverage"}},"sampledFrom":{"type":"string","format":"date","description":"Day the venue/asset/dataset sets were read from"}}},"ApiFile":{"type":"object","properties":{"date":{"type":"string","format":"date","description":"UTC day, YYYY-MM-DD"},"name":{"type":"string"},"venue":{"type":"string"},"dataset":{"type":"string"},"asset":{"type":["string","null"]},"interval":{"type":["string","null"]},"bytes":{"type":"integer"},"sha256":{"type":"string"},"rows":{"type":"integer","description":"Parquet listings only"},"source":{"type":"string","description":"Parquet listings only: the archive file it was converted from"},"url":{"type":"string","format":"uri","description":"One-step download (GET /v1/dl/{date}/{name})"}}},"Meta":{"type":"object","properties":{"firstDay":{"type":"string","format":"date","description":"UTC day, YYYY-MM-DD"},"lastDay":{"type":"string","format":"date","description":"UTC day, YYYY-MM-DD"},"days":{"type":"integer"},"venues":{"type":"array","items":{"type":"string"}},"assets":{"type":"array","items":{"type":"string"}},"intervals":{"type":"array","items":{"type":"string"}},"filterTokens":{"type":"object","properties":{"noValue":{"const":"none"},"appliesTo":{"type":"array","items":{"type":"string"}}}},"datasets":{"type":"object","additionalProperties":{"type":"string"},"description":"Dataset name to description"},"scope":{"type":"object","additionalProperties":true},"sampledFrom":{"type":"string","format":"date","description":"UTC day, YYYY-MM-DD"}}},"CryptoOrder":{"type":"object","description":"Send exactly `amount` of `asset` on BNB Smart Chain (BEP-20) to `address` before `expiresMs`. The exact amount identifies the payment.","properties":{"orderId":{"type":"string","pattern":"^co_[0-9a-f]{18}$"},"asset":{"type":"string","enum":["USDT","USDC"]},"amount":{"type":"string","description":"Exact amount to send, 6 decimals"},"address":{"type":"string"},"expiresMs":{"type":"integer"},"ttlMs":{"type":"integer"},"usd":{"type":"number"},"qrSvg":{"type":["string","null"]},"kind":{"type":["string","null"]},"credits":{"type":["integer","null"]}}},"CheckoutUrl":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"Stripe-hosted payment page; a person opens it"}},"required":["url"]},"IssuedKey":{"type":"object","description":"Returned once. `key` is present only on the first successful claim; later claims say where it went.","properties":{"key":{"type":"string","description":"The plaintext key. Shown once."},"keyId":{"type":"string"},"alreadyIssued":{"type":"boolean"},"emailedTo":{"type":"string"},"topUp":{"type":"boolean"},"product":{"type":"string","enum":["data","smart"]},"tier":{"type":"string"},"venue":{"type":"string"},"dateScope":{"type":"string"},"expiresAt":{"type":["string","null"],"format":"date-time"}},"additionalProperties":true},"Pending":{"type":"object","properties":{"pending":{"const":true},"reason":{"type":"string"},"status":{"type":"string"}}},"BacktestScope":{"type":"object","description":"Give from/to, or days (the most recent n backtestable days), or range.","properties":{"venue":{"type":"string","enum":["polymarket","predict"],"default":"polymarket"},"assets":{"type":"array","items":{"type":"string"},"description":"Base symbols, e.g. [\"BTC\"]"},"from":{"type":"string","format":"date","description":"UTC day, YYYY-MM-DD"},"to":{"type":"string","format":"date","description":"UTC day, YYYY-MM-DD"},"days":{"type":"integer","minimum":1},"range":{"type":"string","enum":["7 days","30 days"]},"sweep_cells":{"type":"integer","minimum":1,"default":1}}},"Quote":{"type":"object","properties":{"venue":{"type":"string"},"assets":{"type":"array","items":{"type":"string"}},"from":{"type":"string","format":"date","description":"UTC day, YYYY-MM-DD"},"to":{"type":"string","format":"date","description":"UTC day, YYYY-MM-DD"},"requestedFrom":{"type":"string","format":"date","description":"UTC day, YYYY-MM-DD"},"requestedTo":{"type":"string","format":"date","description":"UTC day, YYYY-MM-DD"},"requestedDays":{"type":"integer"},"archivedDayCount":{"type":"integer"},"missingDays":{"type":"integer"},"marketDays":{"type":"integer"},"mode":{"type":"string"},"sweepCells":{"type":"integer"},"credits":{"type":"integer","description":"What the run will hold; refunded in full unless a report is produced"},"approxUsd":{"type":"number"},"approx":{"type":"object","additionalProperties":{"type":"number"}}},"additionalProperties":true},"SourceFile":{"type":"object","properties":{"name":{"type":"string"},"content":{"type":"string"}},"required":["name","content"]},"Submission":{"allOf":[{"$ref":"#/components/schemas/BacktestScope"},{"type":"object","properties":{"files":{"type":"array","items":{"$ref":"#/components/schemas/SourceFile"},"description":"manifest.json plus source files"},"uploads":{"type":"object","additionalProperties":{"type":"string"},"description":"Series file name to the `key` from POST /v1/backtest/upload"}}}]},"Run":{"type":"object","properties":{"run_id":{"type":"string"},"status":{"type":"string","description":"staging, queued, running, done, failed, ..."},"language":{"type":"string","enum":["python@3.14","nodejs@24"]},"mode":{"type":"string"},"venue":{"type":"string"},"assets":{"type":"array","items":{"type":"string"}},"from":{"type":"string","format":"date","description":"UTC day, YYYY-MM-DD"},"to":{"type":"string","format":"date","description":"UTC day, YYYY-MM-DD"},"market_days":{"type":"integer"},"credits_held":{"type":"integer"},"credits_spent":{"type":["integer","null"]},"rejection":{"type":["object","null"],"additionalProperties":true},"report":{"type":["object","null"],"additionalProperties":true},"progress":{"type":["object","null"],"additionalProperties":true},"queue_position":{"type":["integer","null"]},"archive_available":{"type":"boolean"},"archive_bytes":{"type":["integer","null"]},"source_sha256":{"type":["string","null"]},"created_ms":{"type":"integer"},"started_ms":{"type":["integer","null"]},"finished_ms":{"type":["integer","null"]}}}},"securitySchemes":{"dataKey":{"type":"http","scheme":"bearer","description":"Data (or smart-money) subscription key, ck_…."},"dataKeyQuery":{"type":"apiKey","in":"query","name":"api_key","description":"Only on /v1/dl/{date}/{name}"},"backtestKey":{"type":"http","scheme":"bearer","description":"Backtest key. X-Backtest-Key header also accepted."}}}}