{"openapi":"3.1.0","info":{"title":"static-klines","version":"0.1.8","description":"Type-safe, auto-generated client for the **static-klines** API — historical Binance spot klines served as pre-rendered static JSON. No rate limits, infinite cache lifetime, globally CDN'd.\n\n### Install\n\n```bash\nnpm install static-klines      # TypeScript client\npip install static-klines      # Python client\n```\n","license":{"name":"MIT"},"contact":{"name":"Source on GitHub","url":"https://github.com/finom/static-klines"}},"servers":[{"url":"https://finom.github.io/static-klines","description":"GitHub Pages (production)"}],"externalDocs":{"description":"Source code, issues, and endpoint enumeration on GitHub","url":"https://github.com/finom/static-klines"},"components":{"schemas":{"HttpStatus":{"type":"integer","description":"HTTP status code","enum":[100,101,102,103,200,201,202,203,204,205,206,300,301,302,303,304,307,308,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,424,428,429,500,501,502,503,504,505]},"VovkErrorResponse":{"type":"object","description":"Vovk error response","properties":{"cause":{"description":"Error cause of any shape"},"statusCode":{"$ref":"#/components/schemas/HttpStatus"},"message":{"type":"string","description":"Error message"},"isError":{"type":"boolean","const":true,"description":"Indicates that this object represents an error"}},"required":["statusCode","message","isError"],"additionalProperties":false}}},"paths":{"/api/klines/symbols.json":{"get":{"summary":"List supported symbols","description":"Returns the hardcoded list of Binance spot trading pairs covered by this cache. Same enum used by every `symbol` path parameter.","tags":["meta"],"x-codeSamples":[{"label":"TypeScript RPC","lang":"typescript","source":"import { KLinesAPI } from 'static-klines';\n\nconst response = await KLinesAPI.getSymbols({\n    apiRoot: 'https://finom.github.io/static-klines/api',\n});\n\nconsole.log(response); \n/* \n[\n    \"BTCUSDT\",\n    \"ETHUSDT\",\n    \"BNBUSDT\",\n    \"SOLUSDT\",\n    \"XRPUSDT\",\n    \"ADAUSDT\",\n    \"DOGEUSDT\",\n    \"AVAXUSDT\",\n    \"LINKUSDT\",\n    \"DOTUSDT\"\n]\n*/"},{"label":"Python RPC","lang":"python","source":"from static_klines import KLinesAPI\n\nresponse = KLinesAPI.get_symbols(\n    api_root=\"https://finom.github.io/static-klines/api\",\n)\n\nprint(response)\n[\n    \"BTCUSDT\",\n    \"ETHUSDT\",\n    \"BNBUSDT\",\n    \"SOLUSDT\",\n    \"XRPUSDT\",\n    \"ADAUSDT\",\n    \"DOGEUSDT\",\n    \"AVAXUSDT\",\n    \"LINKUSDT\",\n    \"DOTUSDT\"\n]"},{"label":"Rust RPC","lang":"rust","source":"use static_klines::k_lines_api;\nuse serde_json::{ \n  from_value, \n  json \n};\n#[tokio::main]\nasync fn main() {\n  let response = k_lines_api::get_symbols(\n    (), /* body */ \n    (), /* query */ \n    (), /* params */ \n    None, /* headers (HashMap) */ \n    Some(\"https://finom.github.io/static-klines/api\"), /* api_root */\n    false, /* disable_client_validation */\n  ).await;\n\nmatch response {\n    Ok(output) => println!(\"{:?}\", output),\n    /* \n    output [\n        \"BTCUSDT\",\n        \"ETHUSDT\",\n        \"BNBUSDT\",\n        \"SOLUSDT\",\n        \"XRPUSDT\",\n        \"ADAUSDT\",\n        \"DOGEUSDT\",\n        \"AVAXUSDT\",\n        \"LINKUSDT\",\n        \"DOTUSDT\"\n    ] \n    */\n    Err(e) => println!(\"error: {:?}\", e),\n  }\n}"}],"responses":{"200":{"description":"Ordered list of supported Binance spot trading pair symbols.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"array","items":{"type":"string","enum":["BTCUSDT","ETHUSDT","BNBUSDT","SOLUSDT","XRPUSDT","ADAUSDT","DOGEUSDT","AVAXUSDT","LINKUSDT","DOTUSDT"],"description":"Trading pair (Binance spot symbol, hardcoded list of 10)"},"description":"Ordered list of supported Binance spot trading pair symbols.","example":["BTCUSDT","ETHUSDT","BNBUSDT","SOLUSDT","XRPUSDT","ADAUSDT","DOGEUSDT","AVAXUSDT","LINKUSDT","DOTUSDT"]}}}}}}},"/api/klines/start-dates/{interval}.json":{"get":{"summary":"List valid startDates for an interval","description":"Returns the ordered list of `startDate` values accepted by the candle endpoints for a given interval. Every value is a calendar-aligned UTC date; iterate in order to walk the full history.","tags":["meta"],"x-codeSamples":[{"label":"TypeScript RPC","lang":"typescript","source":"import { KLinesAPI } from 'static-klines';\n\nconst response = await KLinesAPI.getStartDates({\n    params: {\n        // Binance kline interval code\n        interval: \"15m\"\n    },\n    apiRoot: 'https://finom.github.io/static-klines/api',\n});\n\nconsole.log(response); \n/* \n[\n    \"2024-01-01\",\n    \"2024-02-01\",\n    \"2024-03-01\",\n    \"2024-04-01\"\n]\n*/"},{"label":"Python RPC","lang":"python","source":"from static_klines import KLinesAPI\n\nresponse = KLinesAPI.get_start_dates(\n    params={\n        # Binance kline interval code\n        \"interval\": \"15m\"\n    },\n    api_root=\"https://finom.github.io/static-klines/api\",\n)\n\nprint(response)\n[\n    \"2024-01-01\",\n    \"2024-02-01\",\n    \"2024-03-01\",\n    \"2024-04-01\"\n]"},{"label":"Rust RPC","lang":"rust","source":"use static_klines::k_lines_api;\nuse serde_json::{ \n  from_value, \n  json \n};\n#[tokio::main]\nasync fn main() {\n  let response = k_lines_api::get_start_dates(\n    (), /* body */ \n    (), /* query */ \n    from_value(json!({\n        // Binance kline interval code\n        \"interval\": \"15m\"\n    })).unwrap(), /* params */ \n    None, /* headers (HashMap) */ \n    Some(\"https://finom.github.io/static-klines/api\"), /* api_root */\n    false, /* disable_client_validation */\n  ).await;\n\nmatch response {\n    Ok(output) => println!(\"{:?}\", output),\n    /* \n    output [\n        \"2024-01-01\",\n        \"2024-02-01\",\n        \"2024-03-01\",\n        \"2024-04-01\"\n    ] \n    */\n    Err(e) => println!(\"error: {:?}\", e),\n  }\n}"}],"parameters":[{"name":"interval","in":"path","required":true,"schema":{"type":"string","enum":["15m","30m","1h","2h","4h","6h","8h","12h","1d","3d","1w","1M"],"description":"Binance kline interval code"}}],"responses":{"200":{"description":"Ordered list of window-start dates (UTC, YYYY-MM-DD) for the given interval. Every value is a real calendar boundary (Monday, 1st of month, 1st of quarter, etc.) — pass any one of these back as `startDate` on the candle endpoints.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"array","items":{"type":"string","description":"Calendar-aligned window-start date (UTC, YYYY-MM-DD).","example":"2024-01-01"},"description":"Ordered list of window-start dates (UTC, YYYY-MM-DD) for the given interval. Every value is a real calendar boundary (Monday, 1st of month, 1st of quarter, etc.) — pass any one of these back as `startDate` on the candle endpoints.","example":["2024-01-01","2024-02-01","2024-03-01","2024-04-01"]}}}}}}},"/api/klines/15m/{symbol}/{startDate}.json":{"get":{"summary":"Get 15m klines window","description":"Fully-closed Binance spot candles at the 15m interval. Each file covers exactly 1 week (Monday-aligned), anchored at the calendar boundary shown by `startDate`. Call `GET /api/klines/start-dates/15m.json` for the full list of valid startDates.","tags":["klines"],"x-codeSamples":[{"label":"TypeScript RPC","lang":"typescript","source":"import { KLinesAPI } from 'static-klines';\n\nconst response = await KLinesAPI.getKlines15m({\n    params: {\n        // Trading pair (Binance spot symbol, hardcoded list of 10)\n        symbol: \"BTCUSDT\",\n        // 15m window start date (Monday, UTC, YYYY-MM-DD). Window covers 7 days / 672 candles.\n        startDate: \"2024-12-30\"\n    },\n    apiRoot: 'https://finom.github.io/static-klines/api',\n});\n\nconsole.log(response); \n/* \n[\n    [\n        1514764800000,\n        \"13715.65000000\",\n        \"13818.55000000\",\n        \"12750.00000000\",\n        \"13380.00000000\",\n        \"8609.91584400\",\n        1514851199999,\n        \"114799747.44197057\",\n        105595,\n        \"3961.93894600\",\n        \"52809747.44038045\",\n        \"0\"\n    ],\n    [\n        1514851200000,\n        \"13382.16000000\",\n        \"15473.49000000\",\n        \"12890.02000000\",\n        \"14675.11000000\",\n        \"20078.09211100\",\n        1514937599999,\n        \"275545340.79810440\",\n        197229,\n        \"9915.30471600\",\n        \"136355703.49029400\",\n        \"0\"\n    ]\n]\n*/"},{"label":"Python RPC","lang":"python","source":"from static_klines import KLinesAPI\n\nresponse = KLinesAPI.get_klines15m(\n    params={\n        # Trading pair (Binance spot symbol, hardcoded list of 10)\n        \"symbol\": \"BTCUSDT\",\n        # 15m window start date (Monday, UTC, YYYY-MM-DD). Window covers 7 days / 672 candles.\n        \"startDate\": \"2024-12-30\"\n    },\n    api_root=\"https://finom.github.io/static-klines/api\",\n)\n\nprint(response)\n[\n    [\n        1514764800000,\n        \"13715.65000000\",\n        \"13818.55000000\",\n        \"12750.00000000\",\n        \"13380.00000000\",\n        \"8609.91584400\",\n        1514851199999,\n        \"114799747.44197057\",\n        105595,\n        \"3961.93894600\",\n        \"52809747.44038045\",\n        \"0\"\n    ],\n    [\n        1514851200000,\n        \"13382.16000000\",\n        \"15473.49000000\",\n        \"12890.02000000\",\n        \"14675.11000000\",\n        \"20078.09211100\",\n        1514937599999,\n        \"275545340.79810440\",\n        197229,\n        \"9915.30471600\",\n        \"136355703.49029400\",\n        \"0\"\n    ]\n]"},{"label":"Rust RPC","lang":"rust","source":"use static_klines::k_lines_api;\nuse serde_json::{ \n  from_value, \n  json \n};\n#[tokio::main]\nasync fn main() {\n  let response = k_lines_api::get_klines15m(\n    (), /* body */ \n    (), /* query */ \n    from_value(json!({\n        // Trading pair (Binance spot symbol, hardcoded list of 10)\n        \"symbol\": \"BTCUSDT\",\n        // 15m window start date (Monday, UTC, YYYY-MM-DD). Window covers 7 days / 672 candles.\n        \"startDate\": \"2024-12-30\"\n    })).unwrap(), /* params */ \n    None, /* headers (HashMap) */ \n    Some(\"https://finom.github.io/static-klines/api\"), /* api_root */\n    false, /* disable_client_validation */\n  ).await;\n\nmatch response {\n    Ok(output) => println!(\"{:?}\", output),\n    /* \n    output [\n        [\n            1514764800000,\n            \"13715.65000000\",\n            \"13818.55000000\",\n            \"12750.00000000\",\n            \"13380.00000000\",\n            \"8609.91584400\",\n            1514851199999,\n            \"114799747.44197057\",\n            105595,\n            \"3961.93894600\",\n            \"52809747.44038045\",\n            \"0\"\n        ],\n        [\n            1514851200000,\n            \"13382.16000000\",\n            \"15473.49000000\",\n            \"12890.02000000\",\n            \"14675.11000000\",\n            \"20078.09211100\",\n            1514937599999,\n            \"275545340.79810440\",\n            197229,\n            \"9915.30471600\",\n            \"136355703.49029400\",\n            \"0\"\n        ]\n    ] \n    */\n    Err(e) => println!(\"error: {:?}\", e),\n  }\n}"}],"parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","enum":["BTCUSDT","ETHUSDT","BNBUSDT","SOLUSDT","XRPUSDT","ADAUSDT","DOGEUSDT","AVAXUSDT","LINKUSDT","DOTUSDT"],"description":"Trading pair (Binance spot symbol, hardcoded list of 10)"}},{"name":"startDate","in":"path","required":true,"schema":{"type":"string","enum":["2024-12-30","2025-01-06","2025-01-13","2025-01-20","2025-01-27","2025-02-03","2025-02-10","2025-02-17","2025-02-24","2025-03-03","2025-03-10","2025-03-17","2025-03-24","2025-03-31","2025-04-07","2025-04-14","2025-04-21","2025-04-28","2025-05-05","2025-05-12","2025-05-19","2025-05-26","2025-06-02","2025-06-09","2025-06-16","2025-06-23","2025-06-30","2025-07-07","2025-07-14","2025-07-21","2025-07-28","2025-08-04","2025-08-11","2025-08-18","2025-08-25","2025-09-01","2025-09-08","2025-09-15","2025-09-22","2025-09-29","2025-10-06","2025-10-13","2025-10-20","2025-10-27","2025-11-03","2025-11-10","2025-11-17","2025-11-24","2025-12-01","2025-12-08","2025-12-15","2025-12-22","2025-12-29","2026-01-05","2026-01-12","2026-01-19","2026-01-26","2026-02-02","2026-02-09","2026-02-16","2026-02-23","2026-03-02","2026-03-09","2026-03-16","2026-03-23","2026-03-30","2026-04-06","2026-04-13","2026-04-20","2026-04-27","2026-05-04","2026-05-11","2026-05-18","2026-05-25","2026-06-01","2026-06-08","2026-06-15","2026-06-22","2026-06-29","2026-07-06","2026-07-13","2026-07-20","2026-07-27","2026-08-03","2026-08-10","2026-08-17","2026-08-24","2026-08-31","2026-09-07","2026-09-14","2026-09-21","2026-09-28","2026-10-05","2026-10-12","2026-10-19","2026-10-26","2026-11-02","2026-11-09","2026-11-16","2026-11-23","2026-11-30","2026-12-07","2026-12-14","2026-12-21","2026-12-28","2027-01-04","2027-01-11","2027-01-18","2027-01-25","2027-02-01","2027-02-08","2027-02-15","2027-02-22","2027-03-01","2027-03-08","2027-03-15","2027-03-22","2027-03-29","2027-04-05","2027-04-12","2027-04-19","2027-04-26","2027-05-03","2027-05-10","2027-05-17","2027-05-24","2027-05-31","2027-06-07","2027-06-14","2027-06-21","2027-06-28","2027-07-05","2027-07-12","2027-07-19","2027-07-26","2027-08-02","2027-08-09","2027-08-16","2027-08-23","2027-08-30","2027-09-06","2027-09-13","2027-09-20","2027-09-27","2027-10-04","2027-10-11","2027-10-18","2027-10-25","2027-11-01","2027-11-08","2027-11-15","2027-11-22","2027-11-29","2027-12-06","2027-12-13","2027-12-20","2027-12-27","2028-01-03","2028-01-10","2028-01-17","2028-01-24","2028-01-31","2028-02-07","2028-02-14","2028-02-21","2028-02-28","2028-03-06","2028-03-13","2028-03-20","2028-03-27","2028-04-03","2028-04-10","2028-04-17","2028-04-24","2028-05-01","2028-05-08","2028-05-15","2028-05-22","2028-05-29","2028-06-05","2028-06-12","2028-06-19","2028-06-26","2028-07-03","2028-07-10","2028-07-17","2028-07-24","2028-07-31","2028-08-07","2028-08-14","2028-08-21","2028-08-28","2028-09-04","2028-09-11","2028-09-18","2028-09-25","2028-10-02","2028-10-09","2028-10-16","2028-10-23","2028-10-30","2028-11-06","2028-11-13","2028-11-20","2028-11-27","2028-12-04","2028-12-11","2028-12-18","2028-12-25","2029-01-01","2029-01-08","2029-01-15","2029-01-22","2029-01-29","2029-02-05","2029-02-12","2029-02-19","2029-02-26","2029-03-05","2029-03-12","2029-03-19","2029-03-26","2029-04-02","2029-04-09","2029-04-16","2029-04-23","2029-04-30","2029-05-07","2029-05-14","2029-05-21","2029-05-28","2029-06-04","2029-06-11","2029-06-18","2029-06-25","2029-07-02","2029-07-09","2029-07-16","2029-07-23","2029-07-30","2029-08-06","2029-08-13","2029-08-20","2029-08-27","2029-09-03","2029-09-10","2029-09-17","2029-09-24","2029-10-01","2029-10-08","2029-10-15","2029-10-22","2029-10-29","2029-11-05","2029-11-12","2029-11-19","2029-11-26","2029-12-03","2029-12-10","2029-12-17","2029-12-24","2029-12-31","2030-01-07","2030-01-14","2030-01-21","2030-01-28","2030-02-04","2030-02-11","2030-02-18","2030-02-25","2030-03-04","2030-03-11","2030-03-18","2030-03-25","2030-04-01","2030-04-08","2030-04-15","2030-04-22","2030-04-29","2030-05-06","2030-05-13","2030-05-20","2030-05-27","2030-06-03","2030-06-10","2030-06-17","2030-06-24","2030-07-01","2030-07-08","2030-07-15","2030-07-22","2030-07-29","2030-08-05","2030-08-12","2030-08-19","2030-08-26","2030-09-02","2030-09-09","2030-09-16","2030-09-23","2030-09-30","2030-10-07","2030-10-14","2030-10-21","2030-10-28","2030-11-04","2030-11-11","2030-11-18","2030-11-25","2030-12-02","2030-12-09","2030-12-16","2030-12-23","2030-12-30","2031-01-06","2031-01-13","2031-01-20","2031-01-27","2031-02-03","2031-02-10","2031-02-17","2031-02-24","2031-03-03","2031-03-10","2031-03-17","2031-03-24","2031-03-31","2031-04-07","2031-04-14","2031-04-21","2031-04-28","2031-05-05","2031-05-12","2031-05-19","2031-05-26","2031-06-02","2031-06-09","2031-06-16","2031-06-23","2031-06-30","2031-07-07","2031-07-14","2031-07-21","2031-07-28","2031-08-04","2031-08-11","2031-08-18","2031-08-25","2031-09-01","2031-09-08","2031-09-15","2031-09-22","2031-09-29","2031-10-06","2031-10-13","2031-10-20","2031-10-27","2031-11-03","2031-11-10","2031-11-17","2031-11-24","2031-12-01","2031-12-08","2031-12-15","2031-12-22","2031-12-29","2032-01-05","2032-01-12","2032-01-19","2032-01-26","2032-02-02","2032-02-09","2032-02-16","2032-02-23","2032-03-01","2032-03-08","2032-03-15","2032-03-22","2032-03-29","2032-04-05","2032-04-12","2032-04-19","2032-04-26","2032-05-03","2032-05-10","2032-05-17","2032-05-24","2032-05-31","2032-06-07","2032-06-14","2032-06-21","2032-06-28","2032-07-05","2032-07-12","2032-07-19","2032-07-26","2032-08-02","2032-08-09","2032-08-16","2032-08-23","2032-08-30","2032-09-06","2032-09-13","2032-09-20","2032-09-27","2032-10-04","2032-10-11","2032-10-18","2032-10-25","2032-11-01","2032-11-08","2032-11-15","2032-11-22","2032-11-29","2032-12-06","2032-12-13","2032-12-20","2032-12-27","2033-01-03","2033-01-10","2033-01-17","2033-01-24","2033-01-31","2033-02-07","2033-02-14","2033-02-21","2033-02-28","2033-03-07","2033-03-14","2033-03-21","2033-03-28","2033-04-04","2033-04-11","2033-04-18","2033-04-25","2033-05-02","2033-05-09","2033-05-16","2033-05-23","2033-05-30","2033-06-06","2033-06-13","2033-06-20","2033-06-27","2033-07-04","2033-07-11","2033-07-18","2033-07-25","2033-08-01","2033-08-08","2033-08-15","2033-08-22","2033-08-29","2033-09-05","2033-09-12","2033-09-19","2033-09-26","2033-10-03","2033-10-10","2033-10-17","2033-10-24","2033-10-31","2033-11-07","2033-11-14","2033-11-21","2033-11-28","2033-12-05","2033-12-12","2033-12-19","2033-12-26","2034-01-02","2034-01-09","2034-01-16","2034-01-23","2034-01-30","2034-02-06","2034-02-13","2034-02-20","2034-02-27","2034-03-06","2034-03-13","2034-03-20","2034-03-27","2034-04-03","2034-04-10","2034-04-17","2034-04-24","2034-05-01","2034-05-08","2034-05-15","2034-05-22","2034-05-29","2034-06-05","2034-06-12","2034-06-19","2034-06-26","2034-07-03","2034-07-10","2034-07-17","2034-07-24","2034-07-31","2034-08-07","2034-08-14","2034-08-21","2034-08-28","2034-09-04","2034-09-11","2034-09-18","2034-09-25","2034-10-02","2034-10-09","2034-10-16","2034-10-23","2034-10-30","2034-11-06","2034-11-13","2034-11-20","2034-11-27","2034-12-04","2034-12-11","2034-12-18","2034-12-25","2035-01-01","2035-01-08","2035-01-15","2035-01-22","2035-01-29","2035-02-05","2035-02-12","2035-02-19","2035-02-26","2035-03-05","2035-03-12","2035-03-19","2035-03-26","2035-04-02","2035-04-09","2035-04-16","2035-04-23","2035-04-30","2035-05-07","2035-05-14","2035-05-21","2035-05-28","2035-06-04","2035-06-11","2035-06-18","2035-06-25","2035-07-02","2035-07-09","2035-07-16","2035-07-23","2035-07-30","2035-08-06","2035-08-13","2035-08-20","2035-08-27","2035-09-03","2035-09-10","2035-09-17","2035-09-24","2035-10-01","2035-10-08","2035-10-15","2035-10-22","2035-10-29","2035-11-05","2035-11-12","2035-11-19","2035-11-26","2035-12-03","2035-12-10","2035-12-17","2035-12-24","2035-12-31","2036-01-07","2036-01-14","2036-01-21","2036-01-28","2036-02-04","2036-02-11","2036-02-18","2036-02-25","2036-03-03","2036-03-10","2036-03-17","2036-03-24","2036-03-31","2036-04-07","2036-04-14","2036-04-21","2036-04-28","2036-05-05","2036-05-12","2036-05-19","2036-05-26","2036-06-02","2036-06-09","2036-06-16","2036-06-23","2036-06-30","2036-07-07","2036-07-14","2036-07-21","2036-07-28","2036-08-04","2036-08-11","2036-08-18","2036-08-25","2036-09-01","2036-09-08","2036-09-15","2036-09-22","2036-09-29","2036-10-06","2036-10-13","2036-10-20","2036-10-27","2036-11-03","2036-11-10","2036-11-17","2036-11-24","2036-12-01","2036-12-08","2036-12-15","2036-12-22","2036-12-29","2037-01-05","2037-01-12","2037-01-19","2037-01-26","2037-02-02","2037-02-09","2037-02-16","2037-02-23","2037-03-02","2037-03-09","2037-03-16","2037-03-23","2037-03-30","2037-04-06","2037-04-13","2037-04-20","2037-04-27","2037-05-04","2037-05-11","2037-05-18","2037-05-25","2037-06-01","2037-06-08","2037-06-15","2037-06-22","2037-06-29","2037-07-06","2037-07-13","2037-07-20","2037-07-27","2037-08-03","2037-08-10","2037-08-17","2037-08-24","2037-08-31","2037-09-07","2037-09-14","2037-09-21","2037-09-28","2037-10-05","2037-10-12","2037-10-19","2037-10-26","2037-11-02","2037-11-09","2037-11-16","2037-11-23","2037-11-30","2037-12-07","2037-12-14","2037-12-21","2037-12-28","2038-01-04","2038-01-11","2038-01-18","2038-01-25","2038-02-01","2038-02-08","2038-02-15","2038-02-22","2038-03-01","2038-03-08","2038-03-15","2038-03-22","2038-03-29","2038-04-05","2038-04-12","2038-04-19","2038-04-26","2038-05-03","2038-05-10","2038-05-17","2038-05-24","2038-05-31","2038-06-07","2038-06-14","2038-06-21","2038-06-28","2038-07-05","2038-07-12","2038-07-19","2038-07-26","2038-08-02","2038-08-09","2038-08-16","2038-08-23","2038-08-30","2038-09-06","2038-09-13","2038-09-20","2038-09-27","2038-10-04","2038-10-11","2038-10-18","2038-10-25","2038-11-01","2038-11-08","2038-11-15","2038-11-22","2038-11-29","2038-12-06","2038-12-13","2038-12-20","2038-12-27","2039-01-03","2039-01-10","2039-01-17","2039-01-24","2039-01-31","2039-02-07","2039-02-14","2039-02-21","2039-02-28","2039-03-07","2039-03-14","2039-03-21","2039-03-28","2039-04-04","2039-04-11","2039-04-18","2039-04-25","2039-05-02","2039-05-09","2039-05-16","2039-05-23","2039-05-30","2039-06-06","2039-06-13","2039-06-20","2039-06-27","2039-07-04","2039-07-11","2039-07-18","2039-07-25","2039-08-01","2039-08-08","2039-08-15","2039-08-22","2039-08-29","2039-09-05","2039-09-12","2039-09-19","2039-09-26","2039-10-03","2039-10-10","2039-10-17","2039-10-24","2039-10-31","2039-11-07","2039-11-14","2039-11-21","2039-11-28","2039-12-05","2039-12-12","2039-12-19","2039-12-26"],"description":"15m window start date (Monday, UTC, YYYY-MM-DD). Window covers 7 days / 672 candles."}}],"responses":{"200":{"description":"Fully-closed candles for one (symbol, interval) window, ordered by openTime ascending. Each file covers one calendar-aligned stride (e.g. 1 ISO week for 15m, 1 month for 1h, 2 years for 1d). Returns an empty array for windows before the symbol was listed on Binance, or for future windows that have not yet been populated.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"array","items":{"type":"array","prefixItems":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Open time (ms since epoch, UTC)","example":1514764800000},{"type":"string","description":"Open price (stringified decimal)","example":"13715.65000000"},{"type":"string","description":"High price (stringified decimal)","example":"13818.55000000"},{"type":"string","description":"Low price (stringified decimal)","example":"12750.00000000"},{"type":"string","description":"Close price (stringified decimal)","example":"13380.00000000"},{"type":"string","description":"Base asset volume (stringified decimal)","example":"8609.91584400"},{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Close time (ms since epoch, UTC)","example":1514851199999},{"type":"string","description":"Quote asset volume (stringified decimal)","example":"114799747.44197057"},{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Number of trades in the candle","example":105595},{"type":"string","description":"Taker buy base asset volume (stringified decimal)","example":"3961.93894600"},{"type":"string","description":"Taker buy quote asset volume (stringified decimal)","example":"52809747.44038045"},{"type":"string","description":"Unused field (Binance legacy, historically \"ignore\")","example":"0"}],"description":"Single Binance spot kline row — 12-tuple, exactly as the Binance REST API returns it.","example":[1514764800000,"13715.65000000","13818.55000000","12750.00000000","13380.00000000","8609.91584400",1514851199999,"114799747.44197057",105595,"3961.93894600","52809747.44038045","0"]},"description":"Fully-closed candles for one (symbol, interval) window, ordered by openTime ascending. Each file covers one calendar-aligned stride (e.g. 1 ISO week for 15m, 1 month for 1h, 2 years for 1d). Returns an empty array for windows before the symbol was listed on Binance, or for future windows that have not yet been populated.","example":[[1514764800000,"13715.65000000","13818.55000000","12750.00000000","13380.00000000","8609.91584400",1514851199999,"114799747.44197057",105595,"3961.93894600","52809747.44038045","0"],[1514851200000,"13382.16000000","15473.49000000","12890.02000000","14675.11000000","20078.09211100",1514937599999,"275545340.79810440",197229,"9915.30471600","136355703.49029400","0"]]}}}}}}},"/api/klines/30m/{symbol}/{startDate}.json":{"get":{"summary":"Get 30m klines window","description":"Fully-closed Binance spot candles at the 30m interval. Each file covers exactly 2 weeks (Monday-aligned), anchored at the calendar boundary shown by `startDate`. Call `GET /api/klines/start-dates/30m.json` for the full list of valid startDates.","tags":["klines"],"x-codeSamples":[{"label":"TypeScript RPC","lang":"typescript","source":"import { KLinesAPI } from 'static-klines';\n\nconst response = await KLinesAPI.getKlines30m({\n    params: {\n        // Trading pair (Binance spot symbol, hardcoded list of 10)\n        symbol: \"BTCUSDT\",\n        // 30m window start date (Monday, UTC). Window covers 14 days / 672 candles.\n        startDate: \"2024-01-01\"\n    },\n    apiRoot: 'https://finom.github.io/static-klines/api',\n});\n\nconsole.log(response); \n/* \n[\n    [\n        1514764800000,\n        \"13715.65000000\",\n        \"13818.55000000\",\n        \"12750.00000000\",\n        \"13380.00000000\",\n        \"8609.91584400\",\n        1514851199999,\n        \"114799747.44197057\",\n        105595,\n        \"3961.93894600\",\n        \"52809747.44038045\",\n        \"0\"\n    ],\n    [\n        1514851200000,\n        \"13382.16000000\",\n        \"15473.49000000\",\n        \"12890.02000000\",\n        \"14675.11000000\",\n        \"20078.09211100\",\n        1514937599999,\n        \"275545340.79810440\",\n        197229,\n        \"9915.30471600\",\n        \"136355703.49029400\",\n        \"0\"\n    ]\n]\n*/"},{"label":"Python RPC","lang":"python","source":"from static_klines import KLinesAPI\n\nresponse = KLinesAPI.get_klines30m(\n    params={\n        # Trading pair (Binance spot symbol, hardcoded list of 10)\n        \"symbol\": \"BTCUSDT\",\n        # 30m window start date (Monday, UTC). Window covers 14 days / 672 candles.\n        \"startDate\": \"2024-01-01\"\n    },\n    api_root=\"https://finom.github.io/static-klines/api\",\n)\n\nprint(response)\n[\n    [\n        1514764800000,\n        \"13715.65000000\",\n        \"13818.55000000\",\n        \"12750.00000000\",\n        \"13380.00000000\",\n        \"8609.91584400\",\n        1514851199999,\n        \"114799747.44197057\",\n        105595,\n        \"3961.93894600\",\n        \"52809747.44038045\",\n        \"0\"\n    ],\n    [\n        1514851200000,\n        \"13382.16000000\",\n        \"15473.49000000\",\n        \"12890.02000000\",\n        \"14675.11000000\",\n        \"20078.09211100\",\n        1514937599999,\n        \"275545340.79810440\",\n        197229,\n        \"9915.30471600\",\n        \"136355703.49029400\",\n        \"0\"\n    ]\n]"},{"label":"Rust RPC","lang":"rust","source":"use static_klines::k_lines_api;\nuse serde_json::{ \n  from_value, \n  json \n};\n#[tokio::main]\nasync fn main() {\n  let response = k_lines_api::get_klines30m(\n    (), /* body */ \n    (), /* query */ \n    from_value(json!({\n        // Trading pair (Binance spot symbol, hardcoded list of 10)\n        \"symbol\": \"BTCUSDT\",\n        // 30m window start date (Monday, UTC). Window covers 14 days / 672 candles.\n        \"startDate\": \"2024-01-01\"\n    })).unwrap(), /* params */ \n    None, /* headers (HashMap) */ \n    Some(\"https://finom.github.io/static-klines/api\"), /* api_root */\n    false, /* disable_client_validation */\n  ).await;\n\nmatch response {\n    Ok(output) => println!(\"{:?}\", output),\n    /* \n    output [\n        [\n            1514764800000,\n            \"13715.65000000\",\n            \"13818.55000000\",\n            \"12750.00000000\",\n            \"13380.00000000\",\n            \"8609.91584400\",\n            1514851199999,\n            \"114799747.44197057\",\n            105595,\n            \"3961.93894600\",\n            \"52809747.44038045\",\n            \"0\"\n        ],\n        [\n            1514851200000,\n            \"13382.16000000\",\n            \"15473.49000000\",\n            \"12890.02000000\",\n            \"14675.11000000\",\n            \"20078.09211100\",\n            1514937599999,\n            \"275545340.79810440\",\n            197229,\n            \"9915.30471600\",\n            \"136355703.49029400\",\n            \"0\"\n        ]\n    ] \n    */\n    Err(e) => println!(\"error: {:?}\", e),\n  }\n}"}],"parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","enum":["BTCUSDT","ETHUSDT","BNBUSDT","SOLUSDT","XRPUSDT","ADAUSDT","DOGEUSDT","AVAXUSDT","LINKUSDT","DOTUSDT"],"description":"Trading pair (Binance spot symbol, hardcoded list of 10)"}},{"name":"startDate","in":"path","required":true,"schema":{"type":"string","enum":["2024-01-01","2024-01-15","2024-01-29","2024-02-12","2024-02-26","2024-03-11","2024-03-25","2024-04-08","2024-04-22","2024-05-06","2024-05-20","2024-06-03","2024-06-17","2024-07-01","2024-07-15","2024-07-29","2024-08-12","2024-08-26","2024-09-09","2024-09-23","2024-10-07","2024-10-21","2024-11-04","2024-11-18","2024-12-02","2024-12-16","2024-12-30","2025-01-13","2025-01-27","2025-02-10","2025-02-24","2025-03-10","2025-03-24","2025-04-07","2025-04-21","2025-05-05","2025-05-19","2025-06-02","2025-06-16","2025-06-30","2025-07-14","2025-07-28","2025-08-11","2025-08-25","2025-09-08","2025-09-22","2025-10-06","2025-10-20","2025-11-03","2025-11-17","2025-12-01","2025-12-15","2025-12-29","2026-01-12","2026-01-26","2026-02-09","2026-02-23","2026-03-09","2026-03-23","2026-04-06","2026-04-20","2026-05-04","2026-05-18","2026-06-01","2026-06-15","2026-06-29","2026-07-13","2026-07-27","2026-08-10","2026-08-24","2026-09-07","2026-09-21","2026-10-05","2026-10-19","2026-11-02","2026-11-16","2026-11-30","2026-12-14","2026-12-28","2027-01-11","2027-01-25","2027-02-08","2027-02-22","2027-03-08","2027-03-22","2027-04-05","2027-04-19","2027-05-03","2027-05-17","2027-05-31","2027-06-14","2027-06-28","2027-07-12","2027-07-26","2027-08-09","2027-08-23","2027-09-06","2027-09-20","2027-10-04","2027-10-18","2027-11-01","2027-11-15","2027-11-29","2027-12-13","2027-12-27","2028-01-10","2028-01-24","2028-02-07","2028-02-21","2028-03-06","2028-03-20","2028-04-03","2028-04-17","2028-05-01","2028-05-15","2028-05-29","2028-06-12","2028-06-26","2028-07-10","2028-07-24","2028-08-07","2028-08-21","2028-09-04","2028-09-18","2028-10-02","2028-10-16","2028-10-30","2028-11-13","2028-11-27","2028-12-11","2028-12-25","2029-01-08","2029-01-22","2029-02-05","2029-02-19","2029-03-05","2029-03-19","2029-04-02","2029-04-16","2029-04-30","2029-05-14","2029-05-28","2029-06-11","2029-06-25","2029-07-09","2029-07-23","2029-08-06","2029-08-20","2029-09-03","2029-09-17","2029-10-01","2029-10-15","2029-10-29","2029-11-12","2029-11-26","2029-12-10","2029-12-24","2030-01-07","2030-01-21","2030-02-04","2030-02-18","2030-03-04","2030-03-18","2030-04-01","2030-04-15","2030-04-29","2030-05-13","2030-05-27","2030-06-10","2030-06-24","2030-07-08","2030-07-22","2030-08-05","2030-08-19","2030-09-02","2030-09-16","2030-09-30","2030-10-14","2030-10-28","2030-11-11","2030-11-25","2030-12-09","2030-12-23","2031-01-06","2031-01-20","2031-02-03","2031-02-17","2031-03-03","2031-03-17","2031-03-31","2031-04-14","2031-04-28","2031-05-12","2031-05-26","2031-06-09","2031-06-23","2031-07-07","2031-07-21","2031-08-04","2031-08-18","2031-09-01","2031-09-15","2031-09-29","2031-10-13","2031-10-27","2031-11-10","2031-11-24","2031-12-08","2031-12-22","2032-01-05","2032-01-19","2032-02-02","2032-02-16","2032-03-01","2032-03-15","2032-03-29","2032-04-12","2032-04-26","2032-05-10","2032-05-24","2032-06-07","2032-06-21","2032-07-05","2032-07-19","2032-08-02","2032-08-16","2032-08-30","2032-09-13","2032-09-27","2032-10-11","2032-10-25","2032-11-08","2032-11-22","2032-12-06","2032-12-20","2033-01-03","2033-01-17","2033-01-31","2033-02-14","2033-02-28","2033-03-14","2033-03-28","2033-04-11","2033-04-25","2033-05-09","2033-05-23","2033-06-06","2033-06-20","2033-07-04","2033-07-18","2033-08-01","2033-08-15","2033-08-29","2033-09-12","2033-09-26","2033-10-10","2033-10-24","2033-11-07","2033-11-21","2033-12-05","2033-12-19","2034-01-02","2034-01-16","2034-01-30","2034-02-13","2034-02-27","2034-03-13","2034-03-27","2034-04-10","2034-04-24","2034-05-08","2034-05-22","2034-06-05","2034-06-19","2034-07-03","2034-07-17","2034-07-31","2034-08-14","2034-08-28","2034-09-11","2034-09-25","2034-10-09","2034-10-23","2034-11-06","2034-11-20","2034-12-04","2034-12-18","2035-01-01","2035-01-15","2035-01-29","2035-02-12","2035-02-26","2035-03-12","2035-03-26","2035-04-09","2035-04-23","2035-05-07","2035-05-21","2035-06-04","2035-06-18","2035-07-02","2035-07-16","2035-07-30","2035-08-13","2035-08-27","2035-09-10","2035-09-24","2035-10-08","2035-10-22","2035-11-05","2035-11-19","2035-12-03","2035-12-17","2035-12-31","2036-01-14","2036-01-28","2036-02-11","2036-02-25","2036-03-10","2036-03-24","2036-04-07","2036-04-21","2036-05-05","2036-05-19","2036-06-02","2036-06-16","2036-06-30","2036-07-14","2036-07-28","2036-08-11","2036-08-25","2036-09-08","2036-09-22","2036-10-06","2036-10-20","2036-11-03","2036-11-17","2036-12-01","2036-12-15","2036-12-29","2037-01-12","2037-01-26","2037-02-09","2037-02-23","2037-03-09","2037-03-23","2037-04-06","2037-04-20","2037-05-04","2037-05-18","2037-06-01","2037-06-15","2037-06-29","2037-07-13","2037-07-27","2037-08-10","2037-08-24","2037-09-07","2037-09-21","2037-10-05","2037-10-19","2037-11-02","2037-11-16","2037-11-30","2037-12-14","2037-12-28","2038-01-11","2038-01-25","2038-02-08","2038-02-22","2038-03-08","2038-03-22","2038-04-05","2038-04-19","2038-05-03","2038-05-17","2038-05-31","2038-06-14","2038-06-28","2038-07-12","2038-07-26","2038-08-09","2038-08-23","2038-09-06","2038-09-20","2038-10-04","2038-10-18","2038-11-01","2038-11-15","2038-11-29","2038-12-13","2038-12-27","2039-01-10","2039-01-24","2039-02-07","2039-02-21","2039-03-07","2039-03-21","2039-04-04","2039-04-18","2039-05-02","2039-05-16","2039-05-30","2039-06-13","2039-06-27","2039-07-11","2039-07-25","2039-08-08","2039-08-22","2039-09-05","2039-09-19","2039-10-03","2039-10-17","2039-10-31","2039-11-14","2039-11-28","2039-12-12","2039-12-26"],"description":"30m window start date (Monday, UTC). Window covers 14 days / 672 candles."}}],"responses":{"200":{"description":"Fully-closed candles for one (symbol, interval) window, ordered by openTime ascending. Each file covers one calendar-aligned stride (e.g. 1 ISO week for 15m, 1 month for 1h, 2 years for 1d). Returns an empty array for windows before the symbol was listed on Binance, or for future windows that have not yet been populated.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"array","items":{"type":"array","prefixItems":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Open time (ms since epoch, UTC)","example":1514764800000},{"type":"string","description":"Open price (stringified decimal)","example":"13715.65000000"},{"type":"string","description":"High price (stringified decimal)","example":"13818.55000000"},{"type":"string","description":"Low price (stringified decimal)","example":"12750.00000000"},{"type":"string","description":"Close price (stringified decimal)","example":"13380.00000000"},{"type":"string","description":"Base asset volume (stringified decimal)","example":"8609.91584400"},{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Close time (ms since epoch, UTC)","example":1514851199999},{"type":"string","description":"Quote asset volume (stringified decimal)","example":"114799747.44197057"},{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Number of trades in the candle","example":105595},{"type":"string","description":"Taker buy base asset volume (stringified decimal)","example":"3961.93894600"},{"type":"string","description":"Taker buy quote asset volume (stringified decimal)","example":"52809747.44038045"},{"type":"string","description":"Unused field (Binance legacy, historically \"ignore\")","example":"0"}],"description":"Single Binance spot kline row — 12-tuple, exactly as the Binance REST API returns it.","example":[1514764800000,"13715.65000000","13818.55000000","12750.00000000","13380.00000000","8609.91584400",1514851199999,"114799747.44197057",105595,"3961.93894600","52809747.44038045","0"]},"description":"Fully-closed candles for one (symbol, interval) window, ordered by openTime ascending. Each file covers one calendar-aligned stride (e.g. 1 ISO week for 15m, 1 month for 1h, 2 years for 1d). Returns an empty array for windows before the symbol was listed on Binance, or for future windows that have not yet been populated.","example":[[1514764800000,"13715.65000000","13818.55000000","12750.00000000","13380.00000000","8609.91584400",1514851199999,"114799747.44197057",105595,"3961.93894600","52809747.44038045","0"],[1514851200000,"13382.16000000","15473.49000000","12890.02000000","14675.11000000","20078.09211100",1514937599999,"275545340.79810440",197229,"9915.30471600","136355703.49029400","0"]]}}}}}}},"/api/klines/1h/{symbol}/{startDate}.json":{"get":{"summary":"Get 1h klines window","description":"Fully-closed Binance spot candles at the 1h interval. Each file covers exactly 1 calendar month, anchored at the calendar boundary shown by `startDate`. Call `GET /api/klines/start-dates/1h.json` for the full list of valid startDates.","tags":["klines"],"x-codeSamples":[{"label":"TypeScript RPC","lang":"typescript","source":"import { KLinesAPI } from 'static-klines';\n\nconst response = await KLinesAPI.getKlines1h({\n    params: {\n        // Trading pair (Binance spot symbol, hardcoded list of 10)\n        symbol: \"BTCUSDT\",\n        // 1h window start date (1st of month, UTC). Window covers 1 calendar month.\n        startDate: \"2022-01-01\"\n    },\n    apiRoot: 'https://finom.github.io/static-klines/api',\n});\n\nconsole.log(response); \n/* \n[\n    [\n        1514764800000,\n        \"13715.65000000\",\n        \"13818.55000000\",\n        \"12750.00000000\",\n        \"13380.00000000\",\n        \"8609.91584400\",\n        1514851199999,\n        \"114799747.44197057\",\n        105595,\n        \"3961.93894600\",\n        \"52809747.44038045\",\n        \"0\"\n    ],\n    [\n        1514851200000,\n        \"13382.16000000\",\n        \"15473.49000000\",\n        \"12890.02000000\",\n        \"14675.11000000\",\n        \"20078.09211100\",\n        1514937599999,\n        \"275545340.79810440\",\n        197229,\n        \"9915.30471600\",\n        \"136355703.49029400\",\n        \"0\"\n    ]\n]\n*/"},{"label":"Python RPC","lang":"python","source":"from static_klines import KLinesAPI\n\nresponse = KLinesAPI.get_klines1h(\n    params={\n        # Trading pair (Binance spot symbol, hardcoded list of 10)\n        \"symbol\": \"BTCUSDT\",\n        # 1h window start date (1st of month, UTC). Window covers 1 calendar month.\n        \"startDate\": \"2022-01-01\"\n    },\n    api_root=\"https://finom.github.io/static-klines/api\",\n)\n\nprint(response)\n[\n    [\n        1514764800000,\n        \"13715.65000000\",\n        \"13818.55000000\",\n        \"12750.00000000\",\n        \"13380.00000000\",\n        \"8609.91584400\",\n        1514851199999,\n        \"114799747.44197057\",\n        105595,\n        \"3961.93894600\",\n        \"52809747.44038045\",\n        \"0\"\n    ],\n    [\n        1514851200000,\n        \"13382.16000000\",\n        \"15473.49000000\",\n        \"12890.02000000\",\n        \"14675.11000000\",\n        \"20078.09211100\",\n        1514937599999,\n        \"275545340.79810440\",\n        197229,\n        \"9915.30471600\",\n        \"136355703.49029400\",\n        \"0\"\n    ]\n]"},{"label":"Rust RPC","lang":"rust","source":"use static_klines::k_lines_api;\nuse serde_json::{ \n  from_value, \n  json \n};\n#[tokio::main]\nasync fn main() {\n  let response = k_lines_api::get_klines1h(\n    (), /* body */ \n    (), /* query */ \n    from_value(json!({\n        // Trading pair (Binance spot symbol, hardcoded list of 10)\n        \"symbol\": \"BTCUSDT\",\n        // 1h window start date (1st of month, UTC). Window covers 1 calendar month.\n        \"startDate\": \"2022-01-01\"\n    })).unwrap(), /* params */ \n    None, /* headers (HashMap) */ \n    Some(\"https://finom.github.io/static-klines/api\"), /* api_root */\n    false, /* disable_client_validation */\n  ).await;\n\nmatch response {\n    Ok(output) => println!(\"{:?}\", output),\n    /* \n    output [\n        [\n            1514764800000,\n            \"13715.65000000\",\n            \"13818.55000000\",\n            \"12750.00000000\",\n            \"13380.00000000\",\n            \"8609.91584400\",\n            1514851199999,\n            \"114799747.44197057\",\n            105595,\n            \"3961.93894600\",\n            \"52809747.44038045\",\n            \"0\"\n        ],\n        [\n            1514851200000,\n            \"13382.16000000\",\n            \"15473.49000000\",\n            \"12890.02000000\",\n            \"14675.11000000\",\n            \"20078.09211100\",\n            1514937599999,\n            \"275545340.79810440\",\n            197229,\n            \"9915.30471600\",\n            \"136355703.49029400\",\n            \"0\"\n        ]\n    ] \n    */\n    Err(e) => println!(\"error: {:?}\", e),\n  }\n}"}],"parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","enum":["BTCUSDT","ETHUSDT","BNBUSDT","SOLUSDT","XRPUSDT","ADAUSDT","DOGEUSDT","AVAXUSDT","LINKUSDT","DOTUSDT"],"description":"Trading pair (Binance spot symbol, hardcoded list of 10)"}},{"name":"startDate","in":"path","required":true,"schema":{"type":"string","enum":["2022-01-01","2022-02-01","2022-03-01","2022-04-01","2022-05-01","2022-06-01","2022-07-01","2022-08-01","2022-09-01","2022-10-01","2022-11-01","2022-12-01","2023-01-01","2023-02-01","2023-03-01","2023-04-01","2023-05-01","2023-06-01","2023-07-01","2023-08-01","2023-09-01","2023-10-01","2023-11-01","2023-12-01","2024-01-01","2024-02-01","2024-03-01","2024-04-01","2024-05-01","2024-06-01","2024-07-01","2024-08-01","2024-09-01","2024-10-01","2024-11-01","2024-12-01","2025-01-01","2025-02-01","2025-03-01","2025-04-01","2025-05-01","2025-06-01","2025-07-01","2025-08-01","2025-09-01","2025-10-01","2025-11-01","2025-12-01","2026-01-01","2026-02-01","2026-03-01","2026-04-01","2026-05-01","2026-06-01","2026-07-01","2026-08-01","2026-09-01","2026-10-01","2026-11-01","2026-12-01","2027-01-01","2027-02-01","2027-03-01","2027-04-01","2027-05-01","2027-06-01","2027-07-01","2027-08-01","2027-09-01","2027-10-01","2027-11-01","2027-12-01","2028-01-01","2028-02-01","2028-03-01","2028-04-01","2028-05-01","2028-06-01","2028-07-01","2028-08-01","2028-09-01","2028-10-01","2028-11-01","2028-12-01","2029-01-01","2029-02-01","2029-03-01","2029-04-01","2029-05-01","2029-06-01","2029-07-01","2029-08-01","2029-09-01","2029-10-01","2029-11-01","2029-12-01","2030-01-01","2030-02-01","2030-03-01","2030-04-01","2030-05-01","2030-06-01","2030-07-01","2030-08-01","2030-09-01","2030-10-01","2030-11-01","2030-12-01","2031-01-01","2031-02-01","2031-03-01","2031-04-01","2031-05-01","2031-06-01","2031-07-01","2031-08-01","2031-09-01","2031-10-01","2031-11-01","2031-12-01","2032-01-01","2032-02-01","2032-03-01","2032-04-01","2032-05-01","2032-06-01","2032-07-01","2032-08-01","2032-09-01","2032-10-01","2032-11-01","2032-12-01","2033-01-01","2033-02-01","2033-03-01","2033-04-01","2033-05-01","2033-06-01","2033-07-01","2033-08-01","2033-09-01","2033-10-01","2033-11-01","2033-12-01","2034-01-01","2034-02-01","2034-03-01","2034-04-01","2034-05-01","2034-06-01","2034-07-01","2034-08-01","2034-09-01","2034-10-01","2034-11-01","2034-12-01","2035-01-01","2035-02-01","2035-03-01","2035-04-01","2035-05-01","2035-06-01","2035-07-01","2035-08-01","2035-09-01","2035-10-01","2035-11-01","2035-12-01","2036-01-01","2036-02-01","2036-03-01","2036-04-01","2036-05-01","2036-06-01","2036-07-01","2036-08-01","2036-09-01","2036-10-01","2036-11-01","2036-12-01","2037-01-01","2037-02-01","2037-03-01","2037-04-01","2037-05-01","2037-06-01","2037-07-01","2037-08-01","2037-09-01","2037-10-01","2037-11-01","2037-12-01","2038-01-01","2038-02-01","2038-03-01","2038-04-01","2038-05-01","2038-06-01","2038-07-01","2038-08-01","2038-09-01","2038-10-01","2038-11-01","2038-12-01","2039-01-01","2039-02-01","2039-03-01","2039-04-01","2039-05-01","2039-06-01","2039-07-01","2039-08-01","2039-09-01","2039-10-01","2039-11-01","2039-12-01"],"description":"1h window start date (1st of month, UTC). Window covers 1 calendar month."}}],"responses":{"200":{"description":"Fully-closed candles for one (symbol, interval) window, ordered by openTime ascending. Each file covers one calendar-aligned stride (e.g. 1 ISO week for 15m, 1 month for 1h, 2 years for 1d). Returns an empty array for windows before the symbol was listed on Binance, or for future windows that have not yet been populated.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"array","items":{"type":"array","prefixItems":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Open time (ms since epoch, UTC)","example":1514764800000},{"type":"string","description":"Open price (stringified decimal)","example":"13715.65000000"},{"type":"string","description":"High price (stringified decimal)","example":"13818.55000000"},{"type":"string","description":"Low price (stringified decimal)","example":"12750.00000000"},{"type":"string","description":"Close price (stringified decimal)","example":"13380.00000000"},{"type":"string","description":"Base asset volume (stringified decimal)","example":"8609.91584400"},{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Close time (ms since epoch, UTC)","example":1514851199999},{"type":"string","description":"Quote asset volume (stringified decimal)","example":"114799747.44197057"},{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Number of trades in the candle","example":105595},{"type":"string","description":"Taker buy base asset volume (stringified decimal)","example":"3961.93894600"},{"type":"string","description":"Taker buy quote asset volume (stringified decimal)","example":"52809747.44038045"},{"type":"string","description":"Unused field (Binance legacy, historically \"ignore\")","example":"0"}],"description":"Single Binance spot kline row — 12-tuple, exactly as the Binance REST API returns it.","example":[1514764800000,"13715.65000000","13818.55000000","12750.00000000","13380.00000000","8609.91584400",1514851199999,"114799747.44197057",105595,"3961.93894600","52809747.44038045","0"]},"description":"Fully-closed candles for one (symbol, interval) window, ordered by openTime ascending. Each file covers one calendar-aligned stride (e.g. 1 ISO week for 15m, 1 month for 1h, 2 years for 1d). Returns an empty array for windows before the symbol was listed on Binance, or for future windows that have not yet been populated.","example":[[1514764800000,"13715.65000000","13818.55000000","12750.00000000","13380.00000000","8609.91584400",1514851199999,"114799747.44197057",105595,"3961.93894600","52809747.44038045","0"],[1514851200000,"13382.16000000","15473.49000000","12890.02000000","14675.11000000","20078.09211100",1514937599999,"275545340.79810440",197229,"9915.30471600","136355703.49029400","0"]]}}}}}}},"/api/klines/2h/{symbol}/{startDate}.json":{"get":{"summary":"Get 2h klines window","description":"Fully-closed Binance spot candles at the 2h interval. Each file covers exactly 2 calendar months, anchored at the calendar boundary shown by `startDate`. Call `GET /api/klines/start-dates/2h.json` for the full list of valid startDates.","tags":["klines"],"x-codeSamples":[{"label":"TypeScript RPC","lang":"typescript","source":"import { KLinesAPI } from 'static-klines';\n\nconst response = await KLinesAPI.getKlines2h({\n    params: {\n        // Trading pair (Binance spot symbol, hardcoded list of 10)\n        symbol: \"BTCUSDT\",\n        // 2h window start date (UTC). Window covers 2 calendar months.\n        startDate: \"2017-07-01\"\n    },\n    apiRoot: 'https://finom.github.io/static-klines/api',\n});\n\nconsole.log(response); \n/* \n[\n    [\n        1514764800000,\n        \"13715.65000000\",\n        \"13818.55000000\",\n        \"12750.00000000\",\n        \"13380.00000000\",\n        \"8609.91584400\",\n        1514851199999,\n        \"114799747.44197057\",\n        105595,\n        \"3961.93894600\",\n        \"52809747.44038045\",\n        \"0\"\n    ],\n    [\n        1514851200000,\n        \"13382.16000000\",\n        \"15473.49000000\",\n        \"12890.02000000\",\n        \"14675.11000000\",\n        \"20078.09211100\",\n        1514937599999,\n        \"275545340.79810440\",\n        197229,\n        \"9915.30471600\",\n        \"136355703.49029400\",\n        \"0\"\n    ]\n]\n*/"},{"label":"Python RPC","lang":"python","source":"from static_klines import KLinesAPI\n\nresponse = KLinesAPI.get_klines2h(\n    params={\n        # Trading pair (Binance spot symbol, hardcoded list of 10)\n        \"symbol\": \"BTCUSDT\",\n        # 2h window start date (UTC). Window covers 2 calendar months.\n        \"startDate\": \"2017-07-01\"\n    },\n    api_root=\"https://finom.github.io/static-klines/api\",\n)\n\nprint(response)\n[\n    [\n        1514764800000,\n        \"13715.65000000\",\n        \"13818.55000000\",\n        \"12750.00000000\",\n        \"13380.00000000\",\n        \"8609.91584400\",\n        1514851199999,\n        \"114799747.44197057\",\n        105595,\n        \"3961.93894600\",\n        \"52809747.44038045\",\n        \"0\"\n    ],\n    [\n        1514851200000,\n        \"13382.16000000\",\n        \"15473.49000000\",\n        \"12890.02000000\",\n        \"14675.11000000\",\n        \"20078.09211100\",\n        1514937599999,\n        \"275545340.79810440\",\n        197229,\n        \"9915.30471600\",\n        \"136355703.49029400\",\n        \"0\"\n    ]\n]"},{"label":"Rust RPC","lang":"rust","source":"use static_klines::k_lines_api;\nuse serde_json::{ \n  from_value, \n  json \n};\n#[tokio::main]\nasync fn main() {\n  let response = k_lines_api::get_klines2h(\n    (), /* body */ \n    (), /* query */ \n    from_value(json!({\n        // Trading pair (Binance spot symbol, hardcoded list of 10)\n        \"symbol\": \"BTCUSDT\",\n        // 2h window start date (UTC). Window covers 2 calendar months.\n        \"startDate\": \"2017-07-01\"\n    })).unwrap(), /* params */ \n    None, /* headers (HashMap) */ \n    Some(\"https://finom.github.io/static-klines/api\"), /* api_root */\n    false, /* disable_client_validation */\n  ).await;\n\nmatch response {\n    Ok(output) => println!(\"{:?}\", output),\n    /* \n    output [\n        [\n            1514764800000,\n            \"13715.65000000\",\n            \"13818.55000000\",\n            \"12750.00000000\",\n            \"13380.00000000\",\n            \"8609.91584400\",\n            1514851199999,\n            \"114799747.44197057\",\n            105595,\n            \"3961.93894600\",\n            \"52809747.44038045\",\n            \"0\"\n        ],\n        [\n            1514851200000,\n            \"13382.16000000\",\n            \"15473.49000000\",\n            \"12890.02000000\",\n            \"14675.11000000\",\n            \"20078.09211100\",\n            1514937599999,\n            \"275545340.79810440\",\n            197229,\n            \"9915.30471600\",\n            \"136355703.49029400\",\n            \"0\"\n        ]\n    ] \n    */\n    Err(e) => println!(\"error: {:?}\", e),\n  }\n}"}],"parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","enum":["BTCUSDT","ETHUSDT","BNBUSDT","SOLUSDT","XRPUSDT","ADAUSDT","DOGEUSDT","AVAXUSDT","LINKUSDT","DOTUSDT"],"description":"Trading pair (Binance spot symbol, hardcoded list of 10)"}},{"name":"startDate","in":"path","required":true,"schema":{"type":"string","enum":["2017-07-01","2017-09-01","2017-11-01","2018-01-01","2018-03-01","2018-05-01","2018-07-01","2018-09-01","2018-11-01","2019-01-01","2019-03-01","2019-05-01","2019-07-01","2019-09-01","2019-11-01","2020-01-01","2020-03-01","2020-05-01","2020-07-01","2020-09-01","2020-11-01","2021-01-01","2021-03-01","2021-05-01","2021-07-01","2021-09-01","2021-11-01","2022-01-01","2022-03-01","2022-05-01","2022-07-01","2022-09-01","2022-11-01","2023-01-01","2023-03-01","2023-05-01","2023-07-01","2023-09-01","2023-11-01","2024-01-01","2024-03-01","2024-05-01","2024-07-01","2024-09-01","2024-11-01","2025-01-01","2025-03-01","2025-05-01","2025-07-01","2025-09-01","2025-11-01","2026-01-01","2026-03-01","2026-05-01","2026-07-01","2026-09-01","2026-11-01","2027-01-01","2027-03-01","2027-05-01","2027-07-01","2027-09-01","2027-11-01","2028-01-01","2028-03-01","2028-05-01","2028-07-01","2028-09-01","2028-11-01","2029-01-01","2029-03-01","2029-05-01","2029-07-01","2029-09-01","2029-11-01","2030-01-01","2030-03-01","2030-05-01","2030-07-01","2030-09-01","2030-11-01","2031-01-01","2031-03-01","2031-05-01","2031-07-01","2031-09-01","2031-11-01","2032-01-01","2032-03-01","2032-05-01","2032-07-01","2032-09-01","2032-11-01","2033-01-01","2033-03-01","2033-05-01","2033-07-01","2033-09-01","2033-11-01","2034-01-01","2034-03-01","2034-05-01","2034-07-01","2034-09-01","2034-11-01","2035-01-01","2035-03-01","2035-05-01","2035-07-01","2035-09-01","2035-11-01","2036-01-01","2036-03-01","2036-05-01","2036-07-01","2036-09-01","2036-11-01","2037-01-01","2037-03-01","2037-05-01","2037-07-01","2037-09-01","2037-11-01","2038-01-01","2038-03-01","2038-05-01","2038-07-01","2038-09-01","2038-11-01","2039-01-01","2039-03-01","2039-05-01","2039-07-01","2039-09-01","2039-11-01"],"description":"2h window start date (UTC). Window covers 2 calendar months."}}],"responses":{"200":{"description":"Fully-closed candles for one (symbol, interval) window, ordered by openTime ascending. Each file covers one calendar-aligned stride (e.g. 1 ISO week for 15m, 1 month for 1h, 2 years for 1d). Returns an empty array for windows before the symbol was listed on Binance, or for future windows that have not yet been populated.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"array","items":{"type":"array","prefixItems":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Open time (ms since epoch, UTC)","example":1514764800000},{"type":"string","description":"Open price (stringified decimal)","example":"13715.65000000"},{"type":"string","description":"High price (stringified decimal)","example":"13818.55000000"},{"type":"string","description":"Low price (stringified decimal)","example":"12750.00000000"},{"type":"string","description":"Close price (stringified decimal)","example":"13380.00000000"},{"type":"string","description":"Base asset volume (stringified decimal)","example":"8609.91584400"},{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Close time (ms since epoch, UTC)","example":1514851199999},{"type":"string","description":"Quote asset volume (stringified decimal)","example":"114799747.44197057"},{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Number of trades in the candle","example":105595},{"type":"string","description":"Taker buy base asset volume (stringified decimal)","example":"3961.93894600"},{"type":"string","description":"Taker buy quote asset volume (stringified decimal)","example":"52809747.44038045"},{"type":"string","description":"Unused field (Binance legacy, historically \"ignore\")","example":"0"}],"description":"Single Binance spot kline row — 12-tuple, exactly as the Binance REST API returns it.","example":[1514764800000,"13715.65000000","13818.55000000","12750.00000000","13380.00000000","8609.91584400",1514851199999,"114799747.44197057",105595,"3961.93894600","52809747.44038045","0"]},"description":"Fully-closed candles for one (symbol, interval) window, ordered by openTime ascending. Each file covers one calendar-aligned stride (e.g. 1 ISO week for 15m, 1 month for 1h, 2 years for 1d). Returns an empty array for windows before the symbol was listed on Binance, or for future windows that have not yet been populated.","example":[[1514764800000,"13715.65000000","13818.55000000","12750.00000000","13380.00000000","8609.91584400",1514851199999,"114799747.44197057",105595,"3961.93894600","52809747.44038045","0"],[1514851200000,"13382.16000000","15473.49000000","12890.02000000","14675.11000000","20078.09211100",1514937599999,"275545340.79810440",197229,"9915.30471600","136355703.49029400","0"]]}}}}}}},"/api/klines/4h/{symbol}/{startDate}.json":{"get":{"summary":"Get 4h klines window","description":"Fully-closed Binance spot candles at the 4h interval. Each file covers exactly 1 calendar quarter, anchored at the calendar boundary shown by `startDate`. Call `GET /api/klines/start-dates/4h.json` for the full list of valid startDates.","tags":["klines"],"x-codeSamples":[{"label":"TypeScript RPC","lang":"typescript","source":"import { KLinesAPI } from 'static-klines';\n\nconst response = await KLinesAPI.getKlines4h({\n    params: {\n        // Trading pair (Binance spot symbol, hardcoded list of 10)\n        symbol: \"BTCUSDT\",\n        // 4h window start date (1st of Jan/Apr/Jul/Oct, UTC). Window covers 1 calendar quarter.\n        startDate: \"2017-07-01\"\n    },\n    apiRoot: 'https://finom.github.io/static-klines/api',\n});\n\nconsole.log(response); \n/* \n[\n    [\n        1514764800000,\n        \"13715.65000000\",\n        \"13818.55000000\",\n        \"12750.00000000\",\n        \"13380.00000000\",\n        \"8609.91584400\",\n        1514851199999,\n        \"114799747.44197057\",\n        105595,\n        \"3961.93894600\",\n        \"52809747.44038045\",\n        \"0\"\n    ],\n    [\n        1514851200000,\n        \"13382.16000000\",\n        \"15473.49000000\",\n        \"12890.02000000\",\n        \"14675.11000000\",\n        \"20078.09211100\",\n        1514937599999,\n        \"275545340.79810440\",\n        197229,\n        \"9915.30471600\",\n        \"136355703.49029400\",\n        \"0\"\n    ]\n]\n*/"},{"label":"Python RPC","lang":"python","source":"from static_klines import KLinesAPI\n\nresponse = KLinesAPI.get_klines4h(\n    params={\n        # Trading pair (Binance spot symbol, hardcoded list of 10)\n        \"symbol\": \"BTCUSDT\",\n        # 4h window start date (1st of Jan/Apr/Jul/Oct, UTC). Window covers 1 calendar quarter.\n        \"startDate\": \"2017-07-01\"\n    },\n    api_root=\"https://finom.github.io/static-klines/api\",\n)\n\nprint(response)\n[\n    [\n        1514764800000,\n        \"13715.65000000\",\n        \"13818.55000000\",\n        \"12750.00000000\",\n        \"13380.00000000\",\n        \"8609.91584400\",\n        1514851199999,\n        \"114799747.44197057\",\n        105595,\n        \"3961.93894600\",\n        \"52809747.44038045\",\n        \"0\"\n    ],\n    [\n        1514851200000,\n        \"13382.16000000\",\n        \"15473.49000000\",\n        \"12890.02000000\",\n        \"14675.11000000\",\n        \"20078.09211100\",\n        1514937599999,\n        \"275545340.79810440\",\n        197229,\n        \"9915.30471600\",\n        \"136355703.49029400\",\n        \"0\"\n    ]\n]"},{"label":"Rust RPC","lang":"rust","source":"use static_klines::k_lines_api;\nuse serde_json::{ \n  from_value, \n  json \n};\n#[tokio::main]\nasync fn main() {\n  let response = k_lines_api::get_klines4h(\n    (), /* body */ \n    (), /* query */ \n    from_value(json!({\n        // Trading pair (Binance spot symbol, hardcoded list of 10)\n        \"symbol\": \"BTCUSDT\",\n        // 4h window start date (1st of Jan/Apr/Jul/Oct, UTC). Window covers 1 calendar quarter.\n        \"startDate\": \"2017-07-01\"\n    })).unwrap(), /* params */ \n    None, /* headers (HashMap) */ \n    Some(\"https://finom.github.io/static-klines/api\"), /* api_root */\n    false, /* disable_client_validation */\n  ).await;\n\nmatch response {\n    Ok(output) => println!(\"{:?}\", output),\n    /* \n    output [\n        [\n            1514764800000,\n            \"13715.65000000\",\n            \"13818.55000000\",\n            \"12750.00000000\",\n            \"13380.00000000\",\n            \"8609.91584400\",\n            1514851199999,\n            \"114799747.44197057\",\n            105595,\n            \"3961.93894600\",\n            \"52809747.44038045\",\n            \"0\"\n        ],\n        [\n            1514851200000,\n            \"13382.16000000\",\n            \"15473.49000000\",\n            \"12890.02000000\",\n            \"14675.11000000\",\n            \"20078.09211100\",\n            1514937599999,\n            \"275545340.79810440\",\n            197229,\n            \"9915.30471600\",\n            \"136355703.49029400\",\n            \"0\"\n        ]\n    ] \n    */\n    Err(e) => println!(\"error: {:?}\", e),\n  }\n}"}],"parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","enum":["BTCUSDT","ETHUSDT","BNBUSDT","SOLUSDT","XRPUSDT","ADAUSDT","DOGEUSDT","AVAXUSDT","LINKUSDT","DOTUSDT"],"description":"Trading pair (Binance spot symbol, hardcoded list of 10)"}},{"name":"startDate","in":"path","required":true,"schema":{"type":"string","enum":["2017-07-01","2017-10-01","2018-01-01","2018-04-01","2018-07-01","2018-10-01","2019-01-01","2019-04-01","2019-07-01","2019-10-01","2020-01-01","2020-04-01","2020-07-01","2020-10-01","2021-01-01","2021-04-01","2021-07-01","2021-10-01","2022-01-01","2022-04-01","2022-07-01","2022-10-01","2023-01-01","2023-04-01","2023-07-01","2023-10-01","2024-01-01","2024-04-01","2024-07-01","2024-10-01","2025-01-01","2025-04-01","2025-07-01","2025-10-01","2026-01-01","2026-04-01","2026-07-01","2026-10-01","2027-01-01","2027-04-01","2027-07-01","2027-10-01","2028-01-01","2028-04-01","2028-07-01","2028-10-01","2029-01-01","2029-04-01","2029-07-01","2029-10-01","2030-01-01","2030-04-01","2030-07-01","2030-10-01","2031-01-01","2031-04-01","2031-07-01","2031-10-01","2032-01-01","2032-04-01","2032-07-01","2032-10-01","2033-01-01","2033-04-01","2033-07-01","2033-10-01","2034-01-01","2034-04-01","2034-07-01","2034-10-01","2035-01-01","2035-04-01","2035-07-01","2035-10-01","2036-01-01","2036-04-01","2036-07-01","2036-10-01","2037-01-01","2037-04-01","2037-07-01","2037-10-01","2038-01-01","2038-04-01","2038-07-01","2038-10-01","2039-01-01","2039-04-01","2039-07-01","2039-10-01"],"description":"4h window start date (1st of Jan/Apr/Jul/Oct, UTC). Window covers 1 calendar quarter."}}],"responses":{"200":{"description":"Fully-closed candles for one (symbol, interval) window, ordered by openTime ascending. Each file covers one calendar-aligned stride (e.g. 1 ISO week for 15m, 1 month for 1h, 2 years for 1d). Returns an empty array for windows before the symbol was listed on Binance, or for future windows that have not yet been populated.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"array","items":{"type":"array","prefixItems":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Open time (ms since epoch, UTC)","example":1514764800000},{"type":"string","description":"Open price (stringified decimal)","example":"13715.65000000"},{"type":"string","description":"High price (stringified decimal)","example":"13818.55000000"},{"type":"string","description":"Low price (stringified decimal)","example":"12750.00000000"},{"type":"string","description":"Close price (stringified decimal)","example":"13380.00000000"},{"type":"string","description":"Base asset volume (stringified decimal)","example":"8609.91584400"},{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Close time (ms since epoch, UTC)","example":1514851199999},{"type":"string","description":"Quote asset volume (stringified decimal)","example":"114799747.44197057"},{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Number of trades in the candle","example":105595},{"type":"string","description":"Taker buy base asset volume (stringified decimal)","example":"3961.93894600"},{"type":"string","description":"Taker buy quote asset volume (stringified decimal)","example":"52809747.44038045"},{"type":"string","description":"Unused field (Binance legacy, historically \"ignore\")","example":"0"}],"description":"Single Binance spot kline row — 12-tuple, exactly as the Binance REST API returns it.","example":[1514764800000,"13715.65000000","13818.55000000","12750.00000000","13380.00000000","8609.91584400",1514851199999,"114799747.44197057",105595,"3961.93894600","52809747.44038045","0"]},"description":"Fully-closed candles for one (symbol, interval) window, ordered by openTime ascending. Each file covers one calendar-aligned stride (e.g. 1 ISO week for 15m, 1 month for 1h, 2 years for 1d). Returns an empty array for windows before the symbol was listed on Binance, or for future windows that have not yet been populated.","example":[[1514764800000,"13715.65000000","13818.55000000","12750.00000000","13380.00000000","8609.91584400",1514851199999,"114799747.44197057",105595,"3961.93894600","52809747.44038045","0"],[1514851200000,"13382.16000000","15473.49000000","12890.02000000","14675.11000000","20078.09211100",1514937599999,"275545340.79810440",197229,"9915.30471600","136355703.49029400","0"]]}}}}}}},"/api/klines/6h/{symbol}/{startDate}.json":{"get":{"summary":"Get 6h klines window","description":"Fully-closed Binance spot candles at the 6h interval. Each file covers exactly 6 months (Jan/Jul), anchored at the calendar boundary shown by `startDate`. Call `GET /api/klines/start-dates/6h.json` for the full list of valid startDates.","tags":["klines"],"x-codeSamples":[{"label":"TypeScript RPC","lang":"typescript","source":"import { KLinesAPI } from 'static-klines';\n\nconst response = await KLinesAPI.getKlines6h({\n    params: {\n        // Trading pair (Binance spot symbol, hardcoded list of 10)\n        symbol: \"BTCUSDT\",\n        // 6h window start date (1st of Jan/Jul, UTC). Window covers 6 calendar months.\n        startDate: \"2017-07-01\"\n    },\n    apiRoot: 'https://finom.github.io/static-klines/api',\n});\n\nconsole.log(response); \n/* \n[\n    [\n        1514764800000,\n        \"13715.65000000\",\n        \"13818.55000000\",\n        \"12750.00000000\",\n        \"13380.00000000\",\n        \"8609.91584400\",\n        1514851199999,\n        \"114799747.44197057\",\n        105595,\n        \"3961.93894600\",\n        \"52809747.44038045\",\n        \"0\"\n    ],\n    [\n        1514851200000,\n        \"13382.16000000\",\n        \"15473.49000000\",\n        \"12890.02000000\",\n        \"14675.11000000\",\n        \"20078.09211100\",\n        1514937599999,\n        \"275545340.79810440\",\n        197229,\n        \"9915.30471600\",\n        \"136355703.49029400\",\n        \"0\"\n    ]\n]\n*/"},{"label":"Python RPC","lang":"python","source":"from static_klines import KLinesAPI\n\nresponse = KLinesAPI.get_klines6h(\n    params={\n        # Trading pair (Binance spot symbol, hardcoded list of 10)\n        \"symbol\": \"BTCUSDT\",\n        # 6h window start date (1st of Jan/Jul, UTC). Window covers 6 calendar months.\n        \"startDate\": \"2017-07-01\"\n    },\n    api_root=\"https://finom.github.io/static-klines/api\",\n)\n\nprint(response)\n[\n    [\n        1514764800000,\n        \"13715.65000000\",\n        \"13818.55000000\",\n        \"12750.00000000\",\n        \"13380.00000000\",\n        \"8609.91584400\",\n        1514851199999,\n        \"114799747.44197057\",\n        105595,\n        \"3961.93894600\",\n        \"52809747.44038045\",\n        \"0\"\n    ],\n    [\n        1514851200000,\n        \"13382.16000000\",\n        \"15473.49000000\",\n        \"12890.02000000\",\n        \"14675.11000000\",\n        \"20078.09211100\",\n        1514937599999,\n        \"275545340.79810440\",\n        197229,\n        \"9915.30471600\",\n        \"136355703.49029400\",\n        \"0\"\n    ]\n]"},{"label":"Rust RPC","lang":"rust","source":"use static_klines::k_lines_api;\nuse serde_json::{ \n  from_value, \n  json \n};\n#[tokio::main]\nasync fn main() {\n  let response = k_lines_api::get_klines6h(\n    (), /* body */ \n    (), /* query */ \n    from_value(json!({\n        // Trading pair (Binance spot symbol, hardcoded list of 10)\n        \"symbol\": \"BTCUSDT\",\n        // 6h window start date (1st of Jan/Jul, UTC). Window covers 6 calendar months.\n        \"startDate\": \"2017-07-01\"\n    })).unwrap(), /* params */ \n    None, /* headers (HashMap) */ \n    Some(\"https://finom.github.io/static-klines/api\"), /* api_root */\n    false, /* disable_client_validation */\n  ).await;\n\nmatch response {\n    Ok(output) => println!(\"{:?}\", output),\n    /* \n    output [\n        [\n            1514764800000,\n            \"13715.65000000\",\n            \"13818.55000000\",\n            \"12750.00000000\",\n            \"13380.00000000\",\n            \"8609.91584400\",\n            1514851199999,\n            \"114799747.44197057\",\n            105595,\n            \"3961.93894600\",\n            \"52809747.44038045\",\n            \"0\"\n        ],\n        [\n            1514851200000,\n            \"13382.16000000\",\n            \"15473.49000000\",\n            \"12890.02000000\",\n            \"14675.11000000\",\n            \"20078.09211100\",\n            1514937599999,\n            \"275545340.79810440\",\n            197229,\n            \"9915.30471600\",\n            \"136355703.49029400\",\n            \"0\"\n        ]\n    ] \n    */\n    Err(e) => println!(\"error: {:?}\", e),\n  }\n}"}],"parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","enum":["BTCUSDT","ETHUSDT","BNBUSDT","SOLUSDT","XRPUSDT","ADAUSDT","DOGEUSDT","AVAXUSDT","LINKUSDT","DOTUSDT"],"description":"Trading pair (Binance spot symbol, hardcoded list of 10)"}},{"name":"startDate","in":"path","required":true,"schema":{"type":"string","enum":["2017-07-01","2018-01-01","2018-07-01","2019-01-01","2019-07-01","2020-01-01","2020-07-01","2021-01-01","2021-07-01","2022-01-01","2022-07-01","2023-01-01","2023-07-01","2024-01-01","2024-07-01","2025-01-01","2025-07-01","2026-01-01","2026-07-01","2027-01-01","2027-07-01","2028-01-01","2028-07-01","2029-01-01","2029-07-01","2030-01-01","2030-07-01","2031-01-01","2031-07-01","2032-01-01","2032-07-01","2033-01-01","2033-07-01","2034-01-01","2034-07-01","2035-01-01","2035-07-01","2036-01-01","2036-07-01","2037-01-01","2037-07-01","2038-01-01","2038-07-01","2039-01-01","2039-07-01"],"description":"6h window start date (1st of Jan/Jul, UTC). Window covers 6 calendar months."}}],"responses":{"200":{"description":"Fully-closed candles for one (symbol, interval) window, ordered by openTime ascending. Each file covers one calendar-aligned stride (e.g. 1 ISO week for 15m, 1 month for 1h, 2 years for 1d). Returns an empty array for windows before the symbol was listed on Binance, or for future windows that have not yet been populated.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"array","items":{"type":"array","prefixItems":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Open time (ms since epoch, UTC)","example":1514764800000},{"type":"string","description":"Open price (stringified decimal)","example":"13715.65000000"},{"type":"string","description":"High price (stringified decimal)","example":"13818.55000000"},{"type":"string","description":"Low price (stringified decimal)","example":"12750.00000000"},{"type":"string","description":"Close price (stringified decimal)","example":"13380.00000000"},{"type":"string","description":"Base asset volume (stringified decimal)","example":"8609.91584400"},{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Close time (ms since epoch, UTC)","example":1514851199999},{"type":"string","description":"Quote asset volume (stringified decimal)","example":"114799747.44197057"},{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Number of trades in the candle","example":105595},{"type":"string","description":"Taker buy base asset volume (stringified decimal)","example":"3961.93894600"},{"type":"string","description":"Taker buy quote asset volume (stringified decimal)","example":"52809747.44038045"},{"type":"string","description":"Unused field (Binance legacy, historically \"ignore\")","example":"0"}],"description":"Single Binance spot kline row — 12-tuple, exactly as the Binance REST API returns it.","example":[1514764800000,"13715.65000000","13818.55000000","12750.00000000","13380.00000000","8609.91584400",1514851199999,"114799747.44197057",105595,"3961.93894600","52809747.44038045","0"]},"description":"Fully-closed candles for one (symbol, interval) window, ordered by openTime ascending. Each file covers one calendar-aligned stride (e.g. 1 ISO week for 15m, 1 month for 1h, 2 years for 1d). Returns an empty array for windows before the symbol was listed on Binance, or for future windows that have not yet been populated.","example":[[1514764800000,"13715.65000000","13818.55000000","12750.00000000","13380.00000000","8609.91584400",1514851199999,"114799747.44197057",105595,"3961.93894600","52809747.44038045","0"],[1514851200000,"13382.16000000","15473.49000000","12890.02000000","14675.11000000","20078.09211100",1514937599999,"275545340.79810440",197229,"9915.30471600","136355703.49029400","0"]]}}}}}}},"/api/klines/8h/{symbol}/{startDate}.json":{"get":{"summary":"Get 8h klines window","description":"Fully-closed Binance spot candles at the 8h interval. Each file covers exactly 6 months (Jan/Jul), anchored at the calendar boundary shown by `startDate`. Call `GET /api/klines/start-dates/8h.json` for the full list of valid startDates.","tags":["klines"],"x-codeSamples":[{"label":"TypeScript RPC","lang":"typescript","source":"import { KLinesAPI } from 'static-klines';\n\nconst response = await KLinesAPI.getKlines8h({\n    params: {\n        // Trading pair (Binance spot symbol, hardcoded list of 10)\n        symbol: \"BTCUSDT\",\n        // 8h window start date (1st of Jan/Jul, UTC). Window covers 6 calendar months.\n        startDate: \"2017-07-01\"\n    },\n    apiRoot: 'https://finom.github.io/static-klines/api',\n});\n\nconsole.log(response); \n/* \n[\n    [\n        1514764800000,\n        \"13715.65000000\",\n        \"13818.55000000\",\n        \"12750.00000000\",\n        \"13380.00000000\",\n        \"8609.91584400\",\n        1514851199999,\n        \"114799747.44197057\",\n        105595,\n        \"3961.93894600\",\n        \"52809747.44038045\",\n        \"0\"\n    ],\n    [\n        1514851200000,\n        \"13382.16000000\",\n        \"15473.49000000\",\n        \"12890.02000000\",\n        \"14675.11000000\",\n        \"20078.09211100\",\n        1514937599999,\n        \"275545340.79810440\",\n        197229,\n        \"9915.30471600\",\n        \"136355703.49029400\",\n        \"0\"\n    ]\n]\n*/"},{"label":"Python RPC","lang":"python","source":"from static_klines import KLinesAPI\n\nresponse = KLinesAPI.get_klines8h(\n    params={\n        # Trading pair (Binance spot symbol, hardcoded list of 10)\n        \"symbol\": \"BTCUSDT\",\n        # 8h window start date (1st of Jan/Jul, UTC). Window covers 6 calendar months.\n        \"startDate\": \"2017-07-01\"\n    },\n    api_root=\"https://finom.github.io/static-klines/api\",\n)\n\nprint(response)\n[\n    [\n        1514764800000,\n        \"13715.65000000\",\n        \"13818.55000000\",\n        \"12750.00000000\",\n        \"13380.00000000\",\n        \"8609.91584400\",\n        1514851199999,\n        \"114799747.44197057\",\n        105595,\n        \"3961.93894600\",\n        \"52809747.44038045\",\n        \"0\"\n    ],\n    [\n        1514851200000,\n        \"13382.16000000\",\n        \"15473.49000000\",\n        \"12890.02000000\",\n        \"14675.11000000\",\n        \"20078.09211100\",\n        1514937599999,\n        \"275545340.79810440\",\n        197229,\n        \"9915.30471600\",\n        \"136355703.49029400\",\n        \"0\"\n    ]\n]"},{"label":"Rust RPC","lang":"rust","source":"use static_klines::k_lines_api;\nuse serde_json::{ \n  from_value, \n  json \n};\n#[tokio::main]\nasync fn main() {\n  let response = k_lines_api::get_klines8h(\n    (), /* body */ \n    (), /* query */ \n    from_value(json!({\n        // Trading pair (Binance spot symbol, hardcoded list of 10)\n        \"symbol\": \"BTCUSDT\",\n        // 8h window start date (1st of Jan/Jul, UTC). Window covers 6 calendar months.\n        \"startDate\": \"2017-07-01\"\n    })).unwrap(), /* params */ \n    None, /* headers (HashMap) */ \n    Some(\"https://finom.github.io/static-klines/api\"), /* api_root */\n    false, /* disable_client_validation */\n  ).await;\n\nmatch response {\n    Ok(output) => println!(\"{:?}\", output),\n    /* \n    output [\n        [\n            1514764800000,\n            \"13715.65000000\",\n            \"13818.55000000\",\n            \"12750.00000000\",\n            \"13380.00000000\",\n            \"8609.91584400\",\n            1514851199999,\n            \"114799747.44197057\",\n            105595,\n            \"3961.93894600\",\n            \"52809747.44038045\",\n            \"0\"\n        ],\n        [\n            1514851200000,\n            \"13382.16000000\",\n            \"15473.49000000\",\n            \"12890.02000000\",\n            \"14675.11000000\",\n            \"20078.09211100\",\n            1514937599999,\n            \"275545340.79810440\",\n            197229,\n            \"9915.30471600\",\n            \"136355703.49029400\",\n            \"0\"\n        ]\n    ] \n    */\n    Err(e) => println!(\"error: {:?}\", e),\n  }\n}"}],"parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","enum":["BTCUSDT","ETHUSDT","BNBUSDT","SOLUSDT","XRPUSDT","ADAUSDT","DOGEUSDT","AVAXUSDT","LINKUSDT","DOTUSDT"],"description":"Trading pair (Binance spot symbol, hardcoded list of 10)"}},{"name":"startDate","in":"path","required":true,"schema":{"type":"string","enum":["2017-07-01","2018-01-01","2018-07-01","2019-01-01","2019-07-01","2020-01-01","2020-07-01","2021-01-01","2021-07-01","2022-01-01","2022-07-01","2023-01-01","2023-07-01","2024-01-01","2024-07-01","2025-01-01","2025-07-01","2026-01-01","2026-07-01","2027-01-01","2027-07-01","2028-01-01","2028-07-01","2029-01-01","2029-07-01","2030-01-01","2030-07-01","2031-01-01","2031-07-01","2032-01-01","2032-07-01","2033-01-01","2033-07-01","2034-01-01","2034-07-01","2035-01-01","2035-07-01","2036-01-01","2036-07-01","2037-01-01","2037-07-01","2038-01-01","2038-07-01","2039-01-01","2039-07-01"],"description":"8h window start date (1st of Jan/Jul, UTC). Window covers 6 calendar months."}}],"responses":{"200":{"description":"Fully-closed candles for one (symbol, interval) window, ordered by openTime ascending. Each file covers one calendar-aligned stride (e.g. 1 ISO week for 15m, 1 month for 1h, 2 years for 1d). Returns an empty array for windows before the symbol was listed on Binance, or for future windows that have not yet been populated.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"array","items":{"type":"array","prefixItems":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Open time (ms since epoch, UTC)","example":1514764800000},{"type":"string","description":"Open price (stringified decimal)","example":"13715.65000000"},{"type":"string","description":"High price (stringified decimal)","example":"13818.55000000"},{"type":"string","description":"Low price (stringified decimal)","example":"12750.00000000"},{"type":"string","description":"Close price (stringified decimal)","example":"13380.00000000"},{"type":"string","description":"Base asset volume (stringified decimal)","example":"8609.91584400"},{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Close time (ms since epoch, UTC)","example":1514851199999},{"type":"string","description":"Quote asset volume (stringified decimal)","example":"114799747.44197057"},{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Number of trades in the candle","example":105595},{"type":"string","description":"Taker buy base asset volume (stringified decimal)","example":"3961.93894600"},{"type":"string","description":"Taker buy quote asset volume (stringified decimal)","example":"52809747.44038045"},{"type":"string","description":"Unused field (Binance legacy, historically \"ignore\")","example":"0"}],"description":"Single Binance spot kline row — 12-tuple, exactly as the Binance REST API returns it.","example":[1514764800000,"13715.65000000","13818.55000000","12750.00000000","13380.00000000","8609.91584400",1514851199999,"114799747.44197057",105595,"3961.93894600","52809747.44038045","0"]},"description":"Fully-closed candles for one (symbol, interval) window, ordered by openTime ascending. Each file covers one calendar-aligned stride (e.g. 1 ISO week for 15m, 1 month for 1h, 2 years for 1d). Returns an empty array for windows before the symbol was listed on Binance, or for future windows that have not yet been populated.","example":[[1514764800000,"13715.65000000","13818.55000000","12750.00000000","13380.00000000","8609.91584400",1514851199999,"114799747.44197057",105595,"3961.93894600","52809747.44038045","0"],[1514851200000,"13382.16000000","15473.49000000","12890.02000000","14675.11000000","20078.09211100",1514937599999,"275545340.79810440",197229,"9915.30471600","136355703.49029400","0"]]}}}}}}},"/api/klines/12h/{symbol}/{startDate}.json":{"get":{"summary":"Get 12h klines window","description":"Fully-closed Binance spot candles at the 12h interval. Each file covers exactly 1 calendar year, anchored at the calendar boundary shown by `startDate`. Call `GET /api/klines/start-dates/12h.json` for the full list of valid startDates.","tags":["klines"],"x-codeSamples":[{"label":"TypeScript RPC","lang":"typescript","source":"import { KLinesAPI } from 'static-klines';\n\nconst response = await KLinesAPI.getKlines12h({\n    params: {\n        // Trading pair (Binance spot symbol, hardcoded list of 10)\n        symbol: \"BTCUSDT\",\n        // 12h window start date (1st of Jan, UTC). Window covers 1 calendar year.\n        startDate: \"2017-01-01\"\n    },\n    apiRoot: 'https://finom.github.io/static-klines/api',\n});\n\nconsole.log(response); \n/* \n[\n    [\n        1514764800000,\n        \"13715.65000000\",\n        \"13818.55000000\",\n        \"12750.00000000\",\n        \"13380.00000000\",\n        \"8609.91584400\",\n        1514851199999,\n        \"114799747.44197057\",\n        105595,\n        \"3961.93894600\",\n        \"52809747.44038045\",\n        \"0\"\n    ],\n    [\n        1514851200000,\n        \"13382.16000000\",\n        \"15473.49000000\",\n        \"12890.02000000\",\n        \"14675.11000000\",\n        \"20078.09211100\",\n        1514937599999,\n        \"275545340.79810440\",\n        197229,\n        \"9915.30471600\",\n        \"136355703.49029400\",\n        \"0\"\n    ]\n]\n*/"},{"label":"Python RPC","lang":"python","source":"from static_klines import KLinesAPI\n\nresponse = KLinesAPI.get_klines12h(\n    params={\n        # Trading pair (Binance spot symbol, hardcoded list of 10)\n        \"symbol\": \"BTCUSDT\",\n        # 12h window start date (1st of Jan, UTC). Window covers 1 calendar year.\n        \"startDate\": \"2017-01-01\"\n    },\n    api_root=\"https://finom.github.io/static-klines/api\",\n)\n\nprint(response)\n[\n    [\n        1514764800000,\n        \"13715.65000000\",\n        \"13818.55000000\",\n        \"12750.00000000\",\n        \"13380.00000000\",\n        \"8609.91584400\",\n        1514851199999,\n        \"114799747.44197057\",\n        105595,\n        \"3961.93894600\",\n        \"52809747.44038045\",\n        \"0\"\n    ],\n    [\n        1514851200000,\n        \"13382.16000000\",\n        \"15473.49000000\",\n        \"12890.02000000\",\n        \"14675.11000000\",\n        \"20078.09211100\",\n        1514937599999,\n        \"275545340.79810440\",\n        197229,\n        \"9915.30471600\",\n        \"136355703.49029400\",\n        \"0\"\n    ]\n]"},{"label":"Rust RPC","lang":"rust","source":"use static_klines::k_lines_api;\nuse serde_json::{ \n  from_value, \n  json \n};\n#[tokio::main]\nasync fn main() {\n  let response = k_lines_api::get_klines12h(\n    (), /* body */ \n    (), /* query */ \n    from_value(json!({\n        // Trading pair (Binance spot symbol, hardcoded list of 10)\n        \"symbol\": \"BTCUSDT\",\n        // 12h window start date (1st of Jan, UTC). Window covers 1 calendar year.\n        \"startDate\": \"2017-01-01\"\n    })).unwrap(), /* params */ \n    None, /* headers (HashMap) */ \n    Some(\"https://finom.github.io/static-klines/api\"), /* api_root */\n    false, /* disable_client_validation */\n  ).await;\n\nmatch response {\n    Ok(output) => println!(\"{:?}\", output),\n    /* \n    output [\n        [\n            1514764800000,\n            \"13715.65000000\",\n            \"13818.55000000\",\n            \"12750.00000000\",\n            \"13380.00000000\",\n            \"8609.91584400\",\n            1514851199999,\n            \"114799747.44197057\",\n            105595,\n            \"3961.93894600\",\n            \"52809747.44038045\",\n            \"0\"\n        ],\n        [\n            1514851200000,\n            \"13382.16000000\",\n            \"15473.49000000\",\n            \"12890.02000000\",\n            \"14675.11000000\",\n            \"20078.09211100\",\n            1514937599999,\n            \"275545340.79810440\",\n            197229,\n            \"9915.30471600\",\n            \"136355703.49029400\",\n            \"0\"\n        ]\n    ] \n    */\n    Err(e) => println!(\"error: {:?}\", e),\n  }\n}"}],"parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","enum":["BTCUSDT","ETHUSDT","BNBUSDT","SOLUSDT","XRPUSDT","ADAUSDT","DOGEUSDT","AVAXUSDT","LINKUSDT","DOTUSDT"],"description":"Trading pair (Binance spot symbol, hardcoded list of 10)"}},{"name":"startDate","in":"path","required":true,"schema":{"type":"string","enum":["2017-01-01","2018-01-01","2019-01-01","2020-01-01","2021-01-01","2022-01-01","2023-01-01","2024-01-01","2025-01-01","2026-01-01","2027-01-01","2028-01-01","2029-01-01","2030-01-01","2031-01-01","2032-01-01","2033-01-01","2034-01-01","2035-01-01","2036-01-01","2037-01-01","2038-01-01","2039-01-01"],"description":"12h window start date (1st of Jan, UTC). Window covers 1 calendar year."}}],"responses":{"200":{"description":"Fully-closed candles for one (symbol, interval) window, ordered by openTime ascending. Each file covers one calendar-aligned stride (e.g. 1 ISO week for 15m, 1 month for 1h, 2 years for 1d). Returns an empty array for windows before the symbol was listed on Binance, or for future windows that have not yet been populated.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"array","items":{"type":"array","prefixItems":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Open time (ms since epoch, UTC)","example":1514764800000},{"type":"string","description":"Open price (stringified decimal)","example":"13715.65000000"},{"type":"string","description":"High price (stringified decimal)","example":"13818.55000000"},{"type":"string","description":"Low price (stringified decimal)","example":"12750.00000000"},{"type":"string","description":"Close price (stringified decimal)","example":"13380.00000000"},{"type":"string","description":"Base asset volume (stringified decimal)","example":"8609.91584400"},{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Close time (ms since epoch, UTC)","example":1514851199999},{"type":"string","description":"Quote asset volume (stringified decimal)","example":"114799747.44197057"},{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Number of trades in the candle","example":105595},{"type":"string","description":"Taker buy base asset volume (stringified decimal)","example":"3961.93894600"},{"type":"string","description":"Taker buy quote asset volume (stringified decimal)","example":"52809747.44038045"},{"type":"string","description":"Unused field (Binance legacy, historically \"ignore\")","example":"0"}],"description":"Single Binance spot kline row — 12-tuple, exactly as the Binance REST API returns it.","example":[1514764800000,"13715.65000000","13818.55000000","12750.00000000","13380.00000000","8609.91584400",1514851199999,"114799747.44197057",105595,"3961.93894600","52809747.44038045","0"]},"description":"Fully-closed candles for one (symbol, interval) window, ordered by openTime ascending. Each file covers one calendar-aligned stride (e.g. 1 ISO week for 15m, 1 month for 1h, 2 years for 1d). Returns an empty array for windows before the symbol was listed on Binance, or for future windows that have not yet been populated.","example":[[1514764800000,"13715.65000000","13818.55000000","12750.00000000","13380.00000000","8609.91584400",1514851199999,"114799747.44197057",105595,"3961.93894600","52809747.44038045","0"],[1514851200000,"13382.16000000","15473.49000000","12890.02000000","14675.11000000","20078.09211100",1514937599999,"275545340.79810440",197229,"9915.30471600","136355703.49029400","0"]]}}}}}}},"/api/klines/1d/{symbol}/{startDate}.json":{"get":{"summary":"Get 1d klines window","description":"Fully-closed Binance spot candles at the 1d interval. Each file covers exactly 2 calendar years, anchored at the calendar boundary shown by `startDate`. Call `GET /api/klines/start-dates/1d.json` for the full list of valid startDates.","tags":["klines"],"x-codeSamples":[{"label":"TypeScript RPC","lang":"typescript","source":"import { KLinesAPI } from 'static-klines';\n\nconst response = await KLinesAPI.getKlines1d({\n    params: {\n        // Trading pair (Binance spot symbol, hardcoded list of 10)\n        symbol: \"BTCUSDT\",\n        // 1d window start date (1st of Jan, even years, UTC). Window covers 2 calendar years.\n        startDate: \"2016-01-01\"\n    },\n    apiRoot: 'https://finom.github.io/static-klines/api',\n});\n\nconsole.log(response); \n/* \n[\n    [\n        1514764800000,\n        \"13715.65000000\",\n        \"13818.55000000\",\n        \"12750.00000000\",\n        \"13380.00000000\",\n        \"8609.91584400\",\n        1514851199999,\n        \"114799747.44197057\",\n        105595,\n        \"3961.93894600\",\n        \"52809747.44038045\",\n        \"0\"\n    ],\n    [\n        1514851200000,\n        \"13382.16000000\",\n        \"15473.49000000\",\n        \"12890.02000000\",\n        \"14675.11000000\",\n        \"20078.09211100\",\n        1514937599999,\n        \"275545340.79810440\",\n        197229,\n        \"9915.30471600\",\n        \"136355703.49029400\",\n        \"0\"\n    ]\n]\n*/"},{"label":"Python RPC","lang":"python","source":"from static_klines import KLinesAPI\n\nresponse = KLinesAPI.get_klines1d(\n    params={\n        # Trading pair (Binance spot symbol, hardcoded list of 10)\n        \"symbol\": \"BTCUSDT\",\n        # 1d window start date (1st of Jan, even years, UTC). Window covers 2 calendar years.\n        \"startDate\": \"2016-01-01\"\n    },\n    api_root=\"https://finom.github.io/static-klines/api\",\n)\n\nprint(response)\n[\n    [\n        1514764800000,\n        \"13715.65000000\",\n        \"13818.55000000\",\n        \"12750.00000000\",\n        \"13380.00000000\",\n        \"8609.91584400\",\n        1514851199999,\n        \"114799747.44197057\",\n        105595,\n        \"3961.93894600\",\n        \"52809747.44038045\",\n        \"0\"\n    ],\n    [\n        1514851200000,\n        \"13382.16000000\",\n        \"15473.49000000\",\n        \"12890.02000000\",\n        \"14675.11000000\",\n        \"20078.09211100\",\n        1514937599999,\n        \"275545340.79810440\",\n        197229,\n        \"9915.30471600\",\n        \"136355703.49029400\",\n        \"0\"\n    ]\n]"},{"label":"Rust RPC","lang":"rust","source":"use static_klines::k_lines_api;\nuse serde_json::{ \n  from_value, \n  json \n};\n#[tokio::main]\nasync fn main() {\n  let response = k_lines_api::get_klines1d(\n    (), /* body */ \n    (), /* query */ \n    from_value(json!({\n        // Trading pair (Binance spot symbol, hardcoded list of 10)\n        \"symbol\": \"BTCUSDT\",\n        // 1d window start date (1st of Jan, even years, UTC). Window covers 2 calendar years.\n        \"startDate\": \"2016-01-01\"\n    })).unwrap(), /* params */ \n    None, /* headers (HashMap) */ \n    Some(\"https://finom.github.io/static-klines/api\"), /* api_root */\n    false, /* disable_client_validation */\n  ).await;\n\nmatch response {\n    Ok(output) => println!(\"{:?}\", output),\n    /* \n    output [\n        [\n            1514764800000,\n            \"13715.65000000\",\n            \"13818.55000000\",\n            \"12750.00000000\",\n            \"13380.00000000\",\n            \"8609.91584400\",\n            1514851199999,\n            \"114799747.44197057\",\n            105595,\n            \"3961.93894600\",\n            \"52809747.44038045\",\n            \"0\"\n        ],\n        [\n            1514851200000,\n            \"13382.16000000\",\n            \"15473.49000000\",\n            \"12890.02000000\",\n            \"14675.11000000\",\n            \"20078.09211100\",\n            1514937599999,\n            \"275545340.79810440\",\n            197229,\n            \"9915.30471600\",\n            \"136355703.49029400\",\n            \"0\"\n        ]\n    ] \n    */\n    Err(e) => println!(\"error: {:?}\", e),\n  }\n}"}],"parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","enum":["BTCUSDT","ETHUSDT","BNBUSDT","SOLUSDT","XRPUSDT","ADAUSDT","DOGEUSDT","AVAXUSDT","LINKUSDT","DOTUSDT"],"description":"Trading pair (Binance spot symbol, hardcoded list of 10)"}},{"name":"startDate","in":"path","required":true,"schema":{"type":"string","enum":["2016-01-01","2018-01-01","2020-01-01","2022-01-01","2024-01-01","2026-01-01","2028-01-01","2030-01-01","2032-01-01","2034-01-01","2036-01-01","2038-01-01"],"description":"1d window start date (1st of Jan, even years, UTC). Window covers 2 calendar years."}}],"responses":{"200":{"description":"Fully-closed candles for one (symbol, interval) window, ordered by openTime ascending. Each file covers one calendar-aligned stride (e.g. 1 ISO week for 15m, 1 month for 1h, 2 years for 1d). Returns an empty array for windows before the symbol was listed on Binance, or for future windows that have not yet been populated.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"array","items":{"type":"array","prefixItems":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Open time (ms since epoch, UTC)","example":1514764800000},{"type":"string","description":"Open price (stringified decimal)","example":"13715.65000000"},{"type":"string","description":"High price (stringified decimal)","example":"13818.55000000"},{"type":"string","description":"Low price (stringified decimal)","example":"12750.00000000"},{"type":"string","description":"Close price (stringified decimal)","example":"13380.00000000"},{"type":"string","description":"Base asset volume (stringified decimal)","example":"8609.91584400"},{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Close time (ms since epoch, UTC)","example":1514851199999},{"type":"string","description":"Quote asset volume (stringified decimal)","example":"114799747.44197057"},{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Number of trades in the candle","example":105595},{"type":"string","description":"Taker buy base asset volume (stringified decimal)","example":"3961.93894600"},{"type":"string","description":"Taker buy quote asset volume (stringified decimal)","example":"52809747.44038045"},{"type":"string","description":"Unused field (Binance legacy, historically \"ignore\")","example":"0"}],"description":"Single Binance spot kline row — 12-tuple, exactly as the Binance REST API returns it.","example":[1514764800000,"13715.65000000","13818.55000000","12750.00000000","13380.00000000","8609.91584400",1514851199999,"114799747.44197057",105595,"3961.93894600","52809747.44038045","0"]},"description":"Fully-closed candles for one (symbol, interval) window, ordered by openTime ascending. Each file covers one calendar-aligned stride (e.g. 1 ISO week for 15m, 1 month for 1h, 2 years for 1d). Returns an empty array for windows before the symbol was listed on Binance, or for future windows that have not yet been populated.","example":[[1514764800000,"13715.65000000","13818.55000000","12750.00000000","13380.00000000","8609.91584400",1514851199999,"114799747.44197057",105595,"3961.93894600","52809747.44038045","0"],[1514851200000,"13382.16000000","15473.49000000","12890.02000000","14675.11000000","20078.09211100",1514937599999,"275545340.79810440",197229,"9915.30471600","136355703.49029400","0"]]}}}}}}},"/api/klines/3d/{symbol}/{startDate}.json":{"get":{"summary":"Get 3d klines window","description":"Fully-closed Binance spot candles at the 3d interval. Each file covers exactly 5 calendar years, anchored at the calendar boundary shown by `startDate`. Call `GET /api/klines/start-dates/3d.json` for the full list of valid startDates.","tags":["klines"],"x-codeSamples":[{"label":"TypeScript RPC","lang":"typescript","source":"import { KLinesAPI } from 'static-klines';\n\nconst response = await KLinesAPI.getKlines3d({\n    params: {\n        // Trading pair (Binance spot symbol, hardcoded list of 10)\n        symbol: \"BTCUSDT\",\n        // 3d window start date (1st of Jan, every 5 years, UTC). Window covers 5 calendar years.\n        startDate: \"2015-01-01\"\n    },\n    apiRoot: 'https://finom.github.io/static-klines/api',\n});\n\nconsole.log(response); \n/* \n[\n    [\n        1514764800000,\n        \"13715.65000000\",\n        \"13818.55000000\",\n        \"12750.00000000\",\n        \"13380.00000000\",\n        \"8609.91584400\",\n        1514851199999,\n        \"114799747.44197057\",\n        105595,\n        \"3961.93894600\",\n        \"52809747.44038045\",\n        \"0\"\n    ],\n    [\n        1514851200000,\n        \"13382.16000000\",\n        \"15473.49000000\",\n        \"12890.02000000\",\n        \"14675.11000000\",\n        \"20078.09211100\",\n        1514937599999,\n        \"275545340.79810440\",\n        197229,\n        \"9915.30471600\",\n        \"136355703.49029400\",\n        \"0\"\n    ]\n]\n*/"},{"label":"Python RPC","lang":"python","source":"from static_klines import KLinesAPI\n\nresponse = KLinesAPI.get_klines3d(\n    params={\n        # Trading pair (Binance spot symbol, hardcoded list of 10)\n        \"symbol\": \"BTCUSDT\",\n        # 3d window start date (1st of Jan, every 5 years, UTC). Window covers 5 calendar years.\n        \"startDate\": \"2015-01-01\"\n    },\n    api_root=\"https://finom.github.io/static-klines/api\",\n)\n\nprint(response)\n[\n    [\n        1514764800000,\n        \"13715.65000000\",\n        \"13818.55000000\",\n        \"12750.00000000\",\n        \"13380.00000000\",\n        \"8609.91584400\",\n        1514851199999,\n        \"114799747.44197057\",\n        105595,\n        \"3961.93894600\",\n        \"52809747.44038045\",\n        \"0\"\n    ],\n    [\n        1514851200000,\n        \"13382.16000000\",\n        \"15473.49000000\",\n        \"12890.02000000\",\n        \"14675.11000000\",\n        \"20078.09211100\",\n        1514937599999,\n        \"275545340.79810440\",\n        197229,\n        \"9915.30471600\",\n        \"136355703.49029400\",\n        \"0\"\n    ]\n]"},{"label":"Rust RPC","lang":"rust","source":"use static_klines::k_lines_api;\nuse serde_json::{ \n  from_value, \n  json \n};\n#[tokio::main]\nasync fn main() {\n  let response = k_lines_api::get_klines3d(\n    (), /* body */ \n    (), /* query */ \n    from_value(json!({\n        // Trading pair (Binance spot symbol, hardcoded list of 10)\n        \"symbol\": \"BTCUSDT\",\n        // 3d window start date (1st of Jan, every 5 years, UTC). Window covers 5 calendar years.\n        \"startDate\": \"2015-01-01\"\n    })).unwrap(), /* params */ \n    None, /* headers (HashMap) */ \n    Some(\"https://finom.github.io/static-klines/api\"), /* api_root */\n    false, /* disable_client_validation */\n  ).await;\n\nmatch response {\n    Ok(output) => println!(\"{:?}\", output),\n    /* \n    output [\n        [\n            1514764800000,\n            \"13715.65000000\",\n            \"13818.55000000\",\n            \"12750.00000000\",\n            \"13380.00000000\",\n            \"8609.91584400\",\n            1514851199999,\n            \"114799747.44197057\",\n            105595,\n            \"3961.93894600\",\n            \"52809747.44038045\",\n            \"0\"\n        ],\n        [\n            1514851200000,\n            \"13382.16000000\",\n            \"15473.49000000\",\n            \"12890.02000000\",\n            \"14675.11000000\",\n            \"20078.09211100\",\n            1514937599999,\n            \"275545340.79810440\",\n            197229,\n            \"9915.30471600\",\n            \"136355703.49029400\",\n            \"0\"\n        ]\n    ] \n    */\n    Err(e) => println!(\"error: {:?}\", e),\n  }\n}"}],"parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","enum":["BTCUSDT","ETHUSDT","BNBUSDT","SOLUSDT","XRPUSDT","ADAUSDT","DOGEUSDT","AVAXUSDT","LINKUSDT","DOTUSDT"],"description":"Trading pair (Binance spot symbol, hardcoded list of 10)"}},{"name":"startDate","in":"path","required":true,"schema":{"type":"string","enum":["2015-01-01","2020-01-01","2025-01-01","2030-01-01","2035-01-01"],"description":"3d window start date (1st of Jan, every 5 years, UTC). Window covers 5 calendar years."}}],"responses":{"200":{"description":"Fully-closed candles for one (symbol, interval) window, ordered by openTime ascending. Each file covers one calendar-aligned stride (e.g. 1 ISO week for 15m, 1 month for 1h, 2 years for 1d). Returns an empty array for windows before the symbol was listed on Binance, or for future windows that have not yet been populated.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"array","items":{"type":"array","prefixItems":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Open time (ms since epoch, UTC)","example":1514764800000},{"type":"string","description":"Open price (stringified decimal)","example":"13715.65000000"},{"type":"string","description":"High price (stringified decimal)","example":"13818.55000000"},{"type":"string","description":"Low price (stringified decimal)","example":"12750.00000000"},{"type":"string","description":"Close price (stringified decimal)","example":"13380.00000000"},{"type":"string","description":"Base asset volume (stringified decimal)","example":"8609.91584400"},{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Close time (ms since epoch, UTC)","example":1514851199999},{"type":"string","description":"Quote asset volume (stringified decimal)","example":"114799747.44197057"},{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Number of trades in the candle","example":105595},{"type":"string","description":"Taker buy base asset volume (stringified decimal)","example":"3961.93894600"},{"type":"string","description":"Taker buy quote asset volume (stringified decimal)","example":"52809747.44038045"},{"type":"string","description":"Unused field (Binance legacy, historically \"ignore\")","example":"0"}],"description":"Single Binance spot kline row — 12-tuple, exactly as the Binance REST API returns it.","example":[1514764800000,"13715.65000000","13818.55000000","12750.00000000","13380.00000000","8609.91584400",1514851199999,"114799747.44197057",105595,"3961.93894600","52809747.44038045","0"]},"description":"Fully-closed candles for one (symbol, interval) window, ordered by openTime ascending. Each file covers one calendar-aligned stride (e.g. 1 ISO week for 15m, 1 month for 1h, 2 years for 1d). Returns an empty array for windows before the symbol was listed on Binance, or for future windows that have not yet been populated.","example":[[1514764800000,"13715.65000000","13818.55000000","12750.00000000","13380.00000000","8609.91584400",1514851199999,"114799747.44197057",105595,"3961.93894600","52809747.44038045","0"],[1514851200000,"13382.16000000","15473.49000000","12890.02000000","14675.11000000","20078.09211100",1514937599999,"275545340.79810440",197229,"9915.30471600","136355703.49029400","0"]]}}}}}}},"/api/klines/1w/{symbol}/{startDate}.json":{"get":{"summary":"Get 1w klines window","description":"Fully-closed Binance spot candles at the 1w interval. Each file covers exactly 10 calendar years, anchored at the calendar boundary shown by `startDate`. Call `GET /api/klines/start-dates/1w.json` for the full list of valid startDates.","tags":["klines"],"x-codeSamples":[{"label":"TypeScript RPC","lang":"typescript","source":"import { KLinesAPI } from 'static-klines';\n\nconst response = await KLinesAPI.getKlines1w({\n    params: {\n        // Trading pair (Binance spot symbol, hardcoded list of 10)\n        symbol: \"BTCUSDT\",\n        // 1w window start date (1st of Jan, every 10 years, UTC). Window covers 10 calendar years.\n        startDate: \"2010-01-01\"\n    },\n    apiRoot: 'https://finom.github.io/static-klines/api',\n});\n\nconsole.log(response); \n/* \n[\n    [\n        1514764800000,\n        \"13715.65000000\",\n        \"13818.55000000\",\n        \"12750.00000000\",\n        \"13380.00000000\",\n        \"8609.91584400\",\n        1514851199999,\n        \"114799747.44197057\",\n        105595,\n        \"3961.93894600\",\n        \"52809747.44038045\",\n        \"0\"\n    ],\n    [\n        1514851200000,\n        \"13382.16000000\",\n        \"15473.49000000\",\n        \"12890.02000000\",\n        \"14675.11000000\",\n        \"20078.09211100\",\n        1514937599999,\n        \"275545340.79810440\",\n        197229,\n        \"9915.30471600\",\n        \"136355703.49029400\",\n        \"0\"\n    ]\n]\n*/"},{"label":"Python RPC","lang":"python","source":"from static_klines import KLinesAPI\n\nresponse = KLinesAPI.get_klines1w(\n    params={\n        # Trading pair (Binance spot symbol, hardcoded list of 10)\n        \"symbol\": \"BTCUSDT\",\n        # 1w window start date (1st of Jan, every 10 years, UTC). Window covers 10 calendar years.\n        \"startDate\": \"2010-01-01\"\n    },\n    api_root=\"https://finom.github.io/static-klines/api\",\n)\n\nprint(response)\n[\n    [\n        1514764800000,\n        \"13715.65000000\",\n        \"13818.55000000\",\n        \"12750.00000000\",\n        \"13380.00000000\",\n        \"8609.91584400\",\n        1514851199999,\n        \"114799747.44197057\",\n        105595,\n        \"3961.93894600\",\n        \"52809747.44038045\",\n        \"0\"\n    ],\n    [\n        1514851200000,\n        \"13382.16000000\",\n        \"15473.49000000\",\n        \"12890.02000000\",\n        \"14675.11000000\",\n        \"20078.09211100\",\n        1514937599999,\n        \"275545340.79810440\",\n        197229,\n        \"9915.30471600\",\n        \"136355703.49029400\",\n        \"0\"\n    ]\n]"},{"label":"Rust RPC","lang":"rust","source":"use static_klines::k_lines_api;\nuse serde_json::{ \n  from_value, \n  json \n};\n#[tokio::main]\nasync fn main() {\n  let response = k_lines_api::get_klines1w(\n    (), /* body */ \n    (), /* query */ \n    from_value(json!({\n        // Trading pair (Binance spot symbol, hardcoded list of 10)\n        \"symbol\": \"BTCUSDT\",\n        // 1w window start date (1st of Jan, every 10 years, UTC). Window covers 10 calendar years.\n        \"startDate\": \"2010-01-01\"\n    })).unwrap(), /* params */ \n    None, /* headers (HashMap) */ \n    Some(\"https://finom.github.io/static-klines/api\"), /* api_root */\n    false, /* disable_client_validation */\n  ).await;\n\nmatch response {\n    Ok(output) => println!(\"{:?}\", output),\n    /* \n    output [\n        [\n            1514764800000,\n            \"13715.65000000\",\n            \"13818.55000000\",\n            \"12750.00000000\",\n            \"13380.00000000\",\n            \"8609.91584400\",\n            1514851199999,\n            \"114799747.44197057\",\n            105595,\n            \"3961.93894600\",\n            \"52809747.44038045\",\n            \"0\"\n        ],\n        [\n            1514851200000,\n            \"13382.16000000\",\n            \"15473.49000000\",\n            \"12890.02000000\",\n            \"14675.11000000\",\n            \"20078.09211100\",\n            1514937599999,\n            \"275545340.79810440\",\n            197229,\n            \"9915.30471600\",\n            \"136355703.49029400\",\n            \"0\"\n        ]\n    ] \n    */\n    Err(e) => println!(\"error: {:?}\", e),\n  }\n}"}],"parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","enum":["BTCUSDT","ETHUSDT","BNBUSDT","SOLUSDT","XRPUSDT","ADAUSDT","DOGEUSDT","AVAXUSDT","LINKUSDT","DOTUSDT"],"description":"Trading pair (Binance spot symbol, hardcoded list of 10)"}},{"name":"startDate","in":"path","required":true,"schema":{"type":"string","enum":["2010-01-01","2020-01-01","2030-01-01"],"description":"1w window start date (1st of Jan, every 10 years, UTC). Window covers 10 calendar years."}}],"responses":{"200":{"description":"Fully-closed candles for one (symbol, interval) window, ordered by openTime ascending. Each file covers one calendar-aligned stride (e.g. 1 ISO week for 15m, 1 month for 1h, 2 years for 1d). Returns an empty array for windows before the symbol was listed on Binance, or for future windows that have not yet been populated.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"array","items":{"type":"array","prefixItems":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Open time (ms since epoch, UTC)","example":1514764800000},{"type":"string","description":"Open price (stringified decimal)","example":"13715.65000000"},{"type":"string","description":"High price (stringified decimal)","example":"13818.55000000"},{"type":"string","description":"Low price (stringified decimal)","example":"12750.00000000"},{"type":"string","description":"Close price (stringified decimal)","example":"13380.00000000"},{"type":"string","description":"Base asset volume (stringified decimal)","example":"8609.91584400"},{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Close time (ms since epoch, UTC)","example":1514851199999},{"type":"string","description":"Quote asset volume (stringified decimal)","example":"114799747.44197057"},{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Number of trades in the candle","example":105595},{"type":"string","description":"Taker buy base asset volume (stringified decimal)","example":"3961.93894600"},{"type":"string","description":"Taker buy quote asset volume (stringified decimal)","example":"52809747.44038045"},{"type":"string","description":"Unused field (Binance legacy, historically \"ignore\")","example":"0"}],"description":"Single Binance spot kline row — 12-tuple, exactly as the Binance REST API returns it.","example":[1514764800000,"13715.65000000","13818.55000000","12750.00000000","13380.00000000","8609.91584400",1514851199999,"114799747.44197057",105595,"3961.93894600","52809747.44038045","0"]},"description":"Fully-closed candles for one (symbol, interval) window, ordered by openTime ascending. Each file covers one calendar-aligned stride (e.g. 1 ISO week for 15m, 1 month for 1h, 2 years for 1d). Returns an empty array for windows before the symbol was listed on Binance, or for future windows that have not yet been populated.","example":[[1514764800000,"13715.65000000","13818.55000000","12750.00000000","13380.00000000","8609.91584400",1514851199999,"114799747.44197057",105595,"3961.93894600","52809747.44038045","0"],[1514851200000,"13382.16000000","15473.49000000","12890.02000000","14675.11000000","20078.09211100",1514937599999,"275545340.79810440",197229,"9915.30471600","136355703.49029400","0"]]}}}}}}},"/api/klines/1M/{symbol}/{startDate}.json":{"get":{"summary":"Get 1M klines window","description":"Fully-closed Binance spot candles at the 1M interval. Each file covers exactly 20 calendar years, anchored at the calendar boundary shown by `startDate`. Call `GET /api/klines/start-dates/1M.json` for the full list of valid startDates.","tags":["klines"],"x-codeSamples":[{"label":"TypeScript RPC","lang":"typescript","source":"import { KLinesAPI } from 'static-klines';\n\nconst response = await KLinesAPI.getKlines1M({\n    params: {\n        // Trading pair (Binance spot symbol, hardcoded list of 10)\n        symbol: \"BTCUSDT\",\n        // 1M window start date (1st of Jan, every 20 years, UTC). Window covers 20 calendar years of monthly candles (≤240).\n        startDate: \"2010-01-01\"\n    },\n    apiRoot: 'https://finom.github.io/static-klines/api',\n});\n\nconsole.log(response); \n/* \n[\n    [\n        1514764800000,\n        \"13715.65000000\",\n        \"13818.55000000\",\n        \"12750.00000000\",\n        \"13380.00000000\",\n        \"8609.91584400\",\n        1514851199999,\n        \"114799747.44197057\",\n        105595,\n        \"3961.93894600\",\n        \"52809747.44038045\",\n        \"0\"\n    ],\n    [\n        1514851200000,\n        \"13382.16000000\",\n        \"15473.49000000\",\n        \"12890.02000000\",\n        \"14675.11000000\",\n        \"20078.09211100\",\n        1514937599999,\n        \"275545340.79810440\",\n        197229,\n        \"9915.30471600\",\n        \"136355703.49029400\",\n        \"0\"\n    ]\n]\n*/"},{"label":"Python RPC","lang":"python","source":"from static_klines import KLinesAPI\n\nresponse = KLinesAPI.get_klines1_m(\n    params={\n        # Trading pair (Binance spot symbol, hardcoded list of 10)\n        \"symbol\": \"BTCUSDT\",\n        # 1M window start date (1st of Jan, every 20 years, UTC). Window covers 20 calendar years of monthly candles (≤240).\n        \"startDate\": \"2010-01-01\"\n    },\n    api_root=\"https://finom.github.io/static-klines/api\",\n)\n\nprint(response)\n[\n    [\n        1514764800000,\n        \"13715.65000000\",\n        \"13818.55000000\",\n        \"12750.00000000\",\n        \"13380.00000000\",\n        \"8609.91584400\",\n        1514851199999,\n        \"114799747.44197057\",\n        105595,\n        \"3961.93894600\",\n        \"52809747.44038045\",\n        \"0\"\n    ],\n    [\n        1514851200000,\n        \"13382.16000000\",\n        \"15473.49000000\",\n        \"12890.02000000\",\n        \"14675.11000000\",\n        \"20078.09211100\",\n        1514937599999,\n        \"275545340.79810440\",\n        197229,\n        \"9915.30471600\",\n        \"136355703.49029400\",\n        \"0\"\n    ]\n]"},{"label":"Rust RPC","lang":"rust","source":"use static_klines::k_lines_api;\nuse serde_json::{ \n  from_value, \n  json \n};\n#[tokio::main]\nasync fn main() {\n  let response = k_lines_api::get_klines1_m(\n    (), /* body */ \n    (), /* query */ \n    from_value(json!({\n        // Trading pair (Binance spot symbol, hardcoded list of 10)\n        \"symbol\": \"BTCUSDT\",\n        // 1M window start date (1st of Jan, every 20 years, UTC). Window covers 20 calendar years of monthly candles (≤240).\n        \"startDate\": \"2010-01-01\"\n    })).unwrap(), /* params */ \n    None, /* headers (HashMap) */ \n    Some(\"https://finom.github.io/static-klines/api\"), /* api_root */\n    false, /* disable_client_validation */\n  ).await;\n\nmatch response {\n    Ok(output) => println!(\"{:?}\", output),\n    /* \n    output [\n        [\n            1514764800000,\n            \"13715.65000000\",\n            \"13818.55000000\",\n            \"12750.00000000\",\n            \"13380.00000000\",\n            \"8609.91584400\",\n            1514851199999,\n            \"114799747.44197057\",\n            105595,\n            \"3961.93894600\",\n            \"52809747.44038045\",\n            \"0\"\n        ],\n        [\n            1514851200000,\n            \"13382.16000000\",\n            \"15473.49000000\",\n            \"12890.02000000\",\n            \"14675.11000000\",\n            \"20078.09211100\",\n            1514937599999,\n            \"275545340.79810440\",\n            197229,\n            \"9915.30471600\",\n            \"136355703.49029400\",\n            \"0\"\n        ]\n    ] \n    */\n    Err(e) => println!(\"error: {:?}\", e),\n  }\n}"}],"parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","enum":["BTCUSDT","ETHUSDT","BNBUSDT","SOLUSDT","XRPUSDT","ADAUSDT","DOGEUSDT","AVAXUSDT","LINKUSDT","DOTUSDT"],"description":"Trading pair (Binance spot symbol, hardcoded list of 10)"}},{"name":"startDate","in":"path","required":true,"schema":{"type":"string","enum":["2010-01-01","2030-01-01"],"description":"1M window start date (1st of Jan, every 20 years, UTC). Window covers 20 calendar years of monthly candles (≤240)."}}],"responses":{"200":{"description":"Fully-closed candles for one (symbol, interval) window, ordered by openTime ascending. Each file covers one calendar-aligned stride (e.g. 1 ISO week for 15m, 1 month for 1h, 2 years for 1d). Returns an empty array for windows before the symbol was listed on Binance, or for future windows that have not yet been populated.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"array","items":{"type":"array","prefixItems":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Open time (ms since epoch, UTC)","example":1514764800000},{"type":"string","description":"Open price (stringified decimal)","example":"13715.65000000"},{"type":"string","description":"High price (stringified decimal)","example":"13818.55000000"},{"type":"string","description":"Low price (stringified decimal)","example":"12750.00000000"},{"type":"string","description":"Close price (stringified decimal)","example":"13380.00000000"},{"type":"string","description":"Base asset volume (stringified decimal)","example":"8609.91584400"},{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Close time (ms since epoch, UTC)","example":1514851199999},{"type":"string","description":"Quote asset volume (stringified decimal)","example":"114799747.44197057"},{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Number of trades in the candle","example":105595},{"type":"string","description":"Taker buy base asset volume (stringified decimal)","example":"3961.93894600"},{"type":"string","description":"Taker buy quote asset volume (stringified decimal)","example":"52809747.44038045"},{"type":"string","description":"Unused field (Binance legacy, historically \"ignore\")","example":"0"}],"description":"Single Binance spot kline row — 12-tuple, exactly as the Binance REST API returns it.","example":[1514764800000,"13715.65000000","13818.55000000","12750.00000000","13380.00000000","8609.91584400",1514851199999,"114799747.44197057",105595,"3961.93894600","52809747.44038045","0"]},"description":"Fully-closed candles for one (symbol, interval) window, ordered by openTime ascending. Each file covers one calendar-aligned stride (e.g. 1 ISO week for 15m, 1 month for 1h, 2 years for 1d). Returns an empty array for windows before the symbol was listed on Binance, or for future windows that have not yet been populated.","example":[[1514764800000,"13715.65000000","13818.55000000","12750.00000000","13380.00000000","8609.91584400",1514851199999,"114799747.44197057",105595,"3961.93894600","52809747.44038045","0"],[1514851200000,"13382.16000000","15473.49000000","12890.02000000","14675.11000000","20078.09211100",1514937599999,"275545340.79810440",197229,"9915.30471600","136355703.49029400","0"]]}}}}}}},"/api/openapi.json":{"get":{"summary":"OpenAPI 3.1 specification","description":"Full OpenAPI document describing this API. Consume with Scalar, Swagger UI, or any OpenAPI-based client generator.","tags":["meta"],"x-codeSamples":[{"label":"TypeScript RPC","lang":"typescript","source":"import { OpenAPI } from 'static-klines';\n\nconst response = await OpenAPI.getSpec({\n    apiRoot: 'https://finom.github.io/static-klines/api',\n});"},{"label":"Python RPC","lang":"python","source":"from static_klines import OpenAPI\n\nresponse = OpenAPI.get_spec(\n    api_root=\"https://finom.github.io/static-klines/api\",\n)"},{"label":"Rust RPC","lang":"rust","source":"use static_klines::open_api;\nuse serde_json::{ \n  from_value, \n  json \n};\n#[tokio::main]\nasync fn main() {\n  let response = open_api::get_spec(\n    (), /* body */ \n    (), /* query */ \n    (), /* params */ \n    None, /* headers (HashMap) */ \n    Some(\"https://finom.github.io/static-klines/api\"), /* api_root */\n    false, /* disable_client_validation */\n  ).await;\n}"}]}}}}