{"openapi":"3.1.0","info":{"title":"Kalshi Eye API","description":"Research API for the Kalshi archive: search the catalog, list markets, pull a preview, and download snapshots or L2 (CSV / Parquet / JSON).\n\n## Authentication\n\nCreate an API key in the web app (**API keys**), then send it as a Bearer token:\n\n```bash\ncurl -s \"$BASE/api/v1/series\" \\\n  -H \"Authorization: Bearer clab_…\"\n```\n\nSession login routes power the website only and are not part of this research API.\n\n## Quick path\n\n1. `GET /api/v1/search?q=super+bowl` — series, events, markets  \n2. `GET /api/v1/series?category=politics` — browse by category  \n3. `GET /api/v1/markets?series=KXHIGHNY` — markets in a series  \n4. `GET /api/v1/markets/{ticker}/preview` — coverage, YES path, sample rows  \n5. `GET /api/v1/markets/{ticker}/snapshots` — research window (up to 6 hours)  \n6. `POST /api/v1/exports` — download a file (`format`: `csv` | `parquet` | `json`)","version":"0.1.0"},"paths":{"/api/v1/search":{"get":{"tags":["Research"],"summary":"Search catalog","description":"Search series, events, and markets by name, ticker, category, and close date.","operationId":"search_catalog_api_v1_search_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","examples":["bitcoin"],"default":"","title":"Q"}},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"examples":["crypto"],"title":"Category"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"examples":["live"],"title":"Status"}},{"name":"from_ts","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"From Ts"}},{"name":"to_ts","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"To Ts"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":0,"default":0,"title":"Offset"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":40,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Search Catalog Api V1 Search Get"}}}},"401":{"description":"Missing or invalid bearer token"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/categories":{"get":{"tags":["Research"],"summary":"List categories","description":"Return archive categories with series and live-market counts.","operationId":"categories_api_v1_categories_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Categories Api V1 Categories Get"}}}},"401":{"description":"Missing or invalid bearer token"}},"security":[{"HTTPBearer":[]}]}},"/api/v1/series":{"get":{"tags":["Research"],"summary":"List series","description":"List Kalshi series from the archive catalog (searchable, filterable by category).","operationId":"series_api_v1_series_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"examples":["crypto"],"title":"Category"}},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"examples":["bitcoin"],"title":"Q"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"examples":["live"],"title":"Status"}},{"name":"from_ts","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"From Ts"}},{"name":"to_ts","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"To Ts"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":0,"default":0,"title":"Offset"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":80,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SeriesResponse"}}}},"401":{"description":"Missing or invalid bearer token"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/series/{series_id}":{"get":{"tags":["Research"],"summary":"Get series","description":"Series metadata plus recent markets (and events when the series is not rolling).","operationId":"series_detail_api_v1_series__series_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"series_id","in":"path","required":true,"schema":{"type":"string","title":"Series Id"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"from_ts","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"From Ts"}},{"name":"to_ts","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"To Ts"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":0,"default":0,"title":"Offset"}},{"name":"event_offset","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":0,"default":0,"title":"Event Offset"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":80,"title":"Limit"}},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"examples":["MN-05"],"title":"Q"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Series Detail Api V1 Series  Series Id  Get"}}}},"401":{"description":"Missing or invalid bearer token"},"404":{"description":"Unknown series"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/events/{event_id}":{"get":{"tags":["Research"],"summary":"Get event","description":"One Kalshi event: metadata and all markets (strike ladder when present).","operationId":"event_detail_api_v1_events__event_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"event_id","in":"path","required":true,"schema":{"type":"string","title":"Event Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":400,"minimum":1,"default":200,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Event Detail Api V1 Events  Event Id  Get"}}}},"401":{"description":"Missing or invalid bearer token"},"404":{"description":"Unknown event"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/exports/formats":{"get":{"tags":["Research"],"summary":"List export formats","description":"Supported download types for `POST /api/v1/exports`.","operationId":"export_formats_api_v1_exports_formats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportFormatsResponse"}}}},"401":{"description":"Missing or invalid bearer token"}},"security":[{"HTTPBearer":[]}]}},"/api/v1/markets":{"get":{"tags":["Research"],"summary":"List markets","description":"List markets, optionally filtered by series, event, category, query, or close time.","operationId":"markets_api_v1_markets_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"series","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"examples":["KXBTC15M"],"title":"Series"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"examples":["finalized"],"title":"Status"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":7,"minimum":1,"default":1,"title":"Days"}},{"name":"from_ts","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"From Ts"}},{"name":"to_ts","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"To Ts"}},{"name":"event","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Event"}},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Q"}},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarketsResponse"}}}},"401":{"description":"Missing or invalid bearer token"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/markets/{ticker}":{"get":{"tags":["Research"],"summary":"Get market","description":"Fetch settlement metadata for one window.","operationId":"market_detail_api_v1_markets__ticker__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"ticker","in":"path","required":true,"schema":{"type":"string","title":"Ticker"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarketDetailResponse"}}}},"401":{"description":"Missing or invalid bearer token"},"404":{"description":"Unknown ticker"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/markets/{ticker}/preview":{"get":{"tags":["Research"],"summary":"Get market preview","description":"Coverage, YES path, and sample rows. Cache miss returns pending:true; poll until ready.","operationId":"market_preview_api_v1_markets__ticker__preview_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"ticker","in":"path","required":true,"schema":{"type":"string","title":"Ticker"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreviewResponse"}}}},"401":{"description":"Missing or invalid bearer token"},"400":{"description":"Invalid window bounds"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/markets/{ticker}/snapshots":{"get":{"tags":["Research"],"summary":"Get snapshots","description":"Return time series of top-of-book and coin price for a window.","operationId":"market_snapshots_api_v1_markets__ticker__snapshots_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"ticker","in":"path","required":true,"schema":{"type":"string","title":"Ticker"}},{"name":"start_ts","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Start Ts"}},{"name":"end_ts","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"End Ts"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":5000,"minimum":1,"default":1000,"title":"Limit"}},{"name":"step_ms","in":"query","required":false,"schema":{"type":"integer","maximum":60000,"minimum":0,"description":"Downsample interval in ms","default":1000,"title":"Step Ms"},"description":"Downsample interval in ms"},{"name":"include_book","in":"query","required":false,"schema":{"type":"boolean","description":"Include full L2 arrays (large)","default":false,"title":"Include Book"},"description":"Include full L2 arrays (large)"},{"name":"preview","in":"query","required":false,"schema":{"type":"boolean","description":"Clamp to a short research window and scan fewer L2 files. Prefer GET /preview for the UI.","default":false,"title":"Preview"},"description":"Clamp to a short research window and scan fewer L2 files. Prefer GET /preview for the UI."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SnapshotsResponse"}}}},"401":{"description":"Missing or invalid bearer token"},"400":{"description":"Invalid window bounds"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/exports":{"post":{"tags":["Research"],"summary":"Create export","description":"Queue a file. Poll `GET /exports/{id}` until `status` is `ready`, then download.\n\n- **Event (preferred):** `{ \"event\": \"KXHIGHNY-26OCT07\", \"format\": \"csv\" }`\n- **Window:** `{ \"ticker\": \"…\", \"format\": \"csv\" }` (billed as that market's event)\n- **Day pack:** `{ \"series\": \"KXBTC15M\", \"day\": \"2026-10-05\", \"format\": \"csv\" }`","operationId":"create_export_api_v1_exports_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportCreateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportResponse"}}}},"401":{"description":"Missing or invalid bearer token"},"400":{"description":"Missing event, ticker, or series+day"},"402":{"description":"Purchase or plan upgrade required"},"429":{"description":"Plan limit exceeded"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/cart":{"get":{"tags":["Research"],"summary":"Get à la carte cart","operationId":"get_cart_api_v1_cart_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Cart Api V1 Cart Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/cart/event-exports":{"post":{"tags":["Research"],"summary":"Add event export to cart","operationId":"cart_add_event_api_v1_cart_event_exports_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CartEventBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Cart Add Event Api V1 Cart Event Exports Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/cart/event-exports/{event_id}":{"delete":{"tags":["Research"],"summary":"Remove event from cart","operationId":"cart_remove_event_api_v1_cart_event_exports__event_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"event_id","in":"path","required":true,"schema":{"type":"string","title":"Event Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Cart Remove Event Api V1 Cart Event Exports  Event Id  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/cart/checkout":{"post":{"tags":["Research"],"summary":"Checkout à la carte cart","description":"Stripe Checkout when `CRYPTOLAB_BILLING=stripe`; stub grants unlocks immediately.","operationId":"cart_checkout_api_v1_cart_checkout_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Cart Checkout Api V1 Cart Checkout Post"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/billing/upgrade":{"post":{"tags":["Research"],"summary":"Start plan subscription checkout","operationId":"billing_upgrade_api_v1_billing_upgrade_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpgradeBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Billing Upgrade Api V1 Billing Upgrade Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/billing/portal":{"post":{"tags":["Research"],"summary":"Open Stripe customer portal","operationId":"billing_portal_api_v1_billing_portal_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Billing Portal Api V1 Billing Portal Post"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/plan":{"get":{"tags":["Research"],"summary":"Plan, entitlements, and free export credit","operationId":"get_plan_api_v1_plan_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Plan Api V1 Plan Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/exports/{export_id}":{"get":{"tags":["Research"],"summary":"Get export","description":"Re-fetch export metadata. Ready jobs include a short-lived signed URL.","operationId":"get_export_api_v1_exports__export_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"export_id","in":"path","required":true,"schema":{"type":"string","title":"Export Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportResponse"}}}},"401":{"description":"Missing or invalid bearer token"},"404":{"description":"Unknown export id"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/exports/{export_id}/file":{"get":{"tags":["Research"],"summary":"Download export file","description":"Same-origin file download. Stay on the site; the browser saves the file.","operationId":"download_export_file_api_v1_exports__export_id__file_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"export_id","in":"path","required":true,"schema":{"type":"string","title":"Export Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"401":{"description":"Missing or invalid bearer token"},"404":{"description":"Unknown export id"},"409":{"description":"Export is still preparing"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/keys":{"get":{"tags":["Research","API keys"],"summary":"List API keys","description":"List API keys for the authenticated user (session or key).","operationId":"list_keys_api_v1_keys_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response List Keys Api V1 Keys Get"}}}},"401":{"description":"Missing or invalid bearer token"}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["Research","API keys"],"summary":"Create API key","description":"Create a research API key. The raw secret is returned once.","operationId":"create_key_api_v1_keys_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Create Key Api V1 Keys Post"}}}},"401":{"description":"Missing or invalid bearer token"},"403":{"description":"Plan key limit reached"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/keys/{key_id}":{"delete":{"tags":["Research","API keys"],"summary":"Revoke API key","description":"Revoke an API key you own.","operationId":"revoke_key_api_v1_keys__key_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"string","title":"Key Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Revoke Key Api V1 Keys  Key Id  Delete"}}}},"401":{"description":"Missing or invalid bearer token"},"404":{"description":"Key not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"ApiKeyBody":{"properties":{"name":{"type":"string","maxLength":80,"minLength":1,"title":"Name","default":"default"}},"type":"object","title":"ApiKeyBody"},"CartEventBody":{"properties":{"event":{"type":"string","maxLength":120,"minLength":1,"title":"Event","examples":["KXHIGHNY-26OCT07"]}},"type":"object","required":["event"],"title":"CartEventBody"},"ExportCreateRequest":{"properties":{"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ticker","description":"Market ticker for a single-window export.","examples":["KXBTC15M-26OCT051600-00"]},"series":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Series","description":"Series id when creating a day pack (use with day).","examples":["KXBTC15M"]},"day":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Day","description":"UTC calendar day YYYY-MM-DD for a day pack.","examples":["2026-10-05"]},"event":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Event","description":"Event ticker for a single-event export (preferred self-serve SKU).","examples":["KXHIGHNY-26OCT07"]},"streams":{"items":{"type":"string"},"type":"array","title":"Streams","examples":[["snapshots","settlement"],["l2"]]},"format":{"type":"string","enum":["csv","parquet","json","jsonl.gz"],"title":"Format","description":"File type for the download.","default":"csv","examples":["csv"]}},"type":"object","title":"ExportCreateRequest"},"ExportFormat":{"properties":{"id":{"type":"string","enum":["csv","parquet","json","jsonl.gz"],"title":"Id"},"label":{"type":"string","title":"Label"},"opens_in":{"type":"string","title":"Opens In"}},"type":"object","required":["id","label","opens_in"],"title":"ExportFormat"},"ExportFormatsResponse":{"properties":{"formats":{"items":{"$ref":"#/components/schemas/ExportFormat"},"type":"array","title":"Formats"}},"type":"object","required":["formats"],"title":"ExportFormatsResponse"},"ExportResponse":{"properties":{"id":{"type":"string","title":"Id","examples":["ea54844a-43f6-4c3f-ba26-6407abaa7508"]},"status":{"type":"string","title":"Status","examples":["ready"]},"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ticker"},"series":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Series"},"day":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Day"},"event":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Event"},"format":{"type":"string","title":"Format","examples":["csv"]},"streams":{"items":{"type":"string"},"type":"array","title":"Streams"},"grant":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Grant"},"bytes":{"type":"integer","title":"Bytes","default":0,"examples":[13634]},"row_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Row Count","examples":[24]},"markets":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Markets"},"filename":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filename","examples":["KXBTC15M-26OCT051600-00.csv"]},"s3_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"S3 Key"},"download_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Download Url","examples":["https://cryptolab-dev-tape-953744260928.s3.amazonaws.com/exports/.../file.csv?..."]},"expires_in_s":{"type":"integer","title":"Expires In S","default":0,"examples":[3600]},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","examples":["text/csv"]},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["id","status","format"],"title":"ExportResponse","examples":[{"bytes":13634,"content_type":"text/csv","download_url":"https://bucket.s3.amazonaws.com/exports/.../file.csv?X-Amz-Signature=…","expires_in_s":3600,"filename":"KXBTC15M-26OCT051600-00.csv","format":"csv","id":"ea54844a-43f6-4c3f-ba26-6407abaa7508","row_count":48,"status":"ready","streams":["snapshots","settlement"],"ticker":"KXBTC15M-26OCT051600-00"}]},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"Market":{"properties":{"ticker":{"type":"string","title":"Ticker","examples":["KXBTC15M-26OCT051600-00"]},"series":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Series","examples":["KXBTC15M"]},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title","examples":["BTC price up in next 15 mins?"]},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"result":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Result","examples":["yes"]},"open_ts":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Open Ts"},"close_ts":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Close Ts"},"floor_strike":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Floor Strike","examples":[85718.26]},"strike_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Strike Type"},"coin_price_start":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Coin Price Start"},"coin_price_end":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Coin Price End"},"expiration_value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Expiration Value"},"settlement_ts":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Settlement Ts"},"event_ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Event Ticker","examples":["KXBTC15M-26OCT051600"]},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category","examples":["crypto"]},"shape":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Shape","examples":["rolling"]},"capture":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Capture","examples":["l2"]}},"type":"object","required":["ticker"],"title":"Market"},"MarketDetailResponse":{"properties":{"source":{"type":"string","title":"Source","examples":["dynamodb"]},"market":{"$ref":"#/components/schemas/Market"}},"type":"object","required":["source","market"],"title":"MarketDetailResponse"},"MarketsResponse":{"properties":{"count":{"type":"integer","title":"Count"},"source":{"type":"string","title":"Source","examples":["dynamodb"]},"markets":{"items":{"$ref":"#/components/schemas/Market"},"type":"array","title":"Markets"}},"type":"object","required":["count","source","markets"],"title":"MarketsResponse"},"PreviewCoverage":{"properties":{"first_print_ts":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"First Print Ts"},"last_print_ts":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Last Print Ts"},"has_l2":{"type":"boolean","title":"Has L2","default":false},"prints":{"type":"integer","title":"Prints","default":0}},"type":"object","title":"PreviewCoverage"},"PreviewResponse":{"properties":{"ticker":{"type":"string","title":"Ticker"},"series":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Series"},"start_ts":{"type":"number","title":"Start Ts"},"end_ts":{"type":"number","title":"End Ts"},"step_ms":{"type":"integer","title":"Step Ms"},"include_book":{"type":"boolean","title":"Include Book"},"matched":{"type":"integer","title":"Matched"},"count":{"type":"integer","title":"Count"},"market":{"anyOf":[{"$ref":"#/components/schemas/Market"},{"type":"null"}]},"snapshots":{"items":{"$ref":"#/components/schemas/Snapshot"},"type":"array","title":"Snapshots"},"key_mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key Mode"},"clamped":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Clamped"},"preview":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Preview"},"layer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Layer"},"tape":{"items":{"$ref":"#/components/schemas/Snapshot"},"type":"array","title":"Tape"},"window_s":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Window S"},"cached":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Cached"},"cache_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cache Source"},"coverage":{"anyOf":[{"$ref":"#/components/schemas/PreviewCoverage"},{"type":"null"}]},"useful":{"anyOf":[{"$ref":"#/components/schemas/PreviewUseful"},{"type":"null"}]},"path":{"items":{"$ref":"#/components/schemas/Snapshot"},"type":"array","title":"Path"},"sample":{"items":{"$ref":"#/components/schemas/Snapshot"},"type":"array","title":"Sample"},"l2_sample":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"L2 Sample"},"chartable":{"type":"boolean","title":"Chartable","default":false},"schema":{"type":"integer","title":"Schema","default":3},"style":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Style"},"pending":{"type":"boolean","title":"Pending","default":false}},"additionalProperties":true,"type":"object","required":["ticker","start_ts","end_ts","step_ms","include_book","matched","count","snapshots"],"title":"PreviewResponse"},"PreviewUseful":{"properties":{"start_ts":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Start Ts"},"end_ts":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"End Ts"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason","examples":["locked"]}},"type":"object","title":"PreviewUseful"},"SeriesItem":{"properties":{"id":{"type":"string","title":"Id","examples":["KXBTC15M"]},"label":{"type":"string","title":"Label","examples":["Bitcoin 15 minutes"]},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category","examples":["crypto"]},"category_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category Label","examples":["Crypto"]},"shape":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Shape","examples":["rolling"]},"markets_n":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Markets N","examples":[96]},"live_n":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Live N","examples":[1]},"closed_n":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Closed N","examples":[0]},"events_n":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Events N","examples":[33]},"sample_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sample Title","examples":["BTC price up in next 15 mins?"]},"next_close_ts":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Next Close Ts"},"last_close_ts":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Last Close Ts"},"min_open_ts":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Min Open Ts"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","examples":["live"]}},"type":"object","required":["id","label"],"title":"SeriesItem"},"SeriesResponse":{"properties":{"count":{"type":"integer","title":"Count","examples":[4]},"series":{"items":{"$ref":"#/components/schemas/SeriesItem"},"type":"array","title":"Series"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source","examples":["catalog"]},"saved_ts":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Saved Ts"},"markets_n":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Markets N"},"series_n":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Series N"},"events_n":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Events N"}},"type":"object","required":["count","series"],"title":"SeriesResponse","examples":[{"count":4,"series":[{"category":"crypto","id":"KXBTC15M","label":"Bitcoin 15 minutes","shape":"rolling"},{"category":"crypto","id":"KXETH15M","label":"Ethereum 15 minutes","shape":"rolling"}],"source":"catalog"}]},"Snapshot":{"properties":{"ts":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ts","examples":[1728153900.0]},"venue_ts":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Venue Ts"},"seq":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Seq"},"yes_best_bid":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Yes Best Bid","examples":[0.42]},"yes_best_ask":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Yes Best Ask","examples":[0.43]},"coin_price":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Coin Price","examples":[85693.97]},"orderbook_yes":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Orderbook Yes"},"orderbook_no":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Orderbook No"}},"additionalProperties":true,"type":"object","title":"Snapshot"},"SnapshotsResponse":{"properties":{"ticker":{"type":"string","title":"Ticker"},"series":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Series"},"start_ts":{"type":"number","title":"Start Ts"},"end_ts":{"type":"number","title":"End Ts"},"step_ms":{"type":"integer","title":"Step Ms"},"include_book":{"type":"boolean","title":"Include Book"},"matched":{"type":"integer","title":"Matched"},"count":{"type":"integer","title":"Count"},"market":{"anyOf":[{"$ref":"#/components/schemas/Market"},{"type":"null"}]},"snapshots":{"items":{"$ref":"#/components/schemas/Snapshot"},"type":"array","title":"Snapshots"},"key_mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key Mode"},"clamped":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Clamped"},"preview":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Preview"},"layer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Layer"}},"type":"object","required":["ticker","start_ts","end_ts","step_ms","include_book","matched","count","snapshots"],"title":"SnapshotsResponse"},"UpgradeBody":{"properties":{"tier_id":{"type":"string","title":"Tier Id","description":"pro or full_book","examples":["pro"]}},"type":"object","required":["tier_id"],"title":"UpgradeBody"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer","bearerFormat":"API key","description":"Paste an API key from the web app (`clab_…`)."}}},"servers":[{"url":"https://kalshieye.com","description":"Production"}],"tags":[{"name":"Auth","description":"Session JWT via email/password login."},{"name":"Research","description":"Kalshi archive catalog, snapshots, and file exports."}]}