{"openapi":"3.1.0","info":{"title":"Barchart.com Adapter API","version":"0.1.0","description":"Barchart.com adapter contract for bluedoor.\n\nBarchart-backed routes for quotes, historical bars, options chains, options flow, futures, and COT data.\n\nBarchart.com source API for bluedoor Financial Data.\nCombines options, futures, COT, and broad market utility routes.\nCoverage: Multi-symbol quotes; Historical and intraday bars; Options chains and flow; Futures and COT data.\nGenerated from the live source contract and representative live API responses on 2026-06-07T01:30:59.456Z.","x-bluedoor-adapter":{"slug":"barchart","source_id":"bfin","upstream":"barchart.com","docs_url":"https://bluedoor.sh/adapters/barchart/docs"}},"servers":[{"url":"https://api.bluedoor.sh/adapters/barchart","description":"bluedoor adapter namespace"},{"url":"https://api.bfin.bluedoor.sh","description":"Current source API host"}],"externalDocs":{"description":"Barchart.com adapter docs","url":"https://bluedoor.sh/adapters/barchart/docs"},"tags":[{"name":"News"},{"name":"Options"},{"name":"Quotes"}],"paths":{"/v1/cot":{"get":{"summary":"COT","parameters":[{"name":"refresh","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"x-bfin-contact","in":"header","required":false,"schema":{"type":"string","format":"email"},"description":"Optional contact email for higher public rate limits and support diagnostics."},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","example":"Bearer <key>"},"description":"Optional API-key authorization for higher-volume access tiers."}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/bfin_get_cotResponse"},"examples":{"live":{"summary":"Live response","value":{"meta":{"provider":"barchart","endpoint":"www.proxies.core-api.v1.commitment-of-traders.get","family":"cot","cache":"hit","ttl_seconds":21600,"stale_seconds":3600,"generated_at":"2026-06-07T00:11:39.442Z","route":"cot"},"data":{"count":8,"total":372,"data":{"Grains":[{"symbol":"ZWN26","symbolName":"Wheat","category":"Grains","net52wHigh":"93,573","net52wLow":"-3,033","history":[{"date":"Jun 2, 2026","net":"38,439","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false},{"date":"May 26, 2026","net":"7,530","isNewPositive":true,"isNewNegative":false,"is52wHigh":false,"is52wLow":false},{"date":"May 19, 2026","net":"-1,992","isNewPositive":false,"isNewNegative":true,"is52wHigh":false,"is52wLow":false}]},{"symbol":"ZCN26","symbolName":"Corn","category":"Grains","net52wHigh":"174,260","net52wLow":"-368,848","history":[{"date":"Jun 2, 2026","net":"-111,394","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false},{"date":"May 26, 2026","net":"-231,519","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false},{"date":"May 19, 2026","net":"-288,625","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false}]},{"symbol":"ZSN26","symbolName":"Soybean","category":"Grains","net52wHigh":"54,893","net52wLow":"-229,882","history":[{"date":"Jun 2, 2026","net":"-164,890","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false},{"date":"May 26, 2026","net":"-176,610","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false},{"date":"May 19, 2026","net":"-183,266","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false}]}],"Energies":[{"symbol":"CLN26","symbolName":"Crude Oil WTI","category":"Energies","net52wHigh":"-55,056","net52wLow":"-276,447","history":[{"date":"Jun 2, 2026","net":"-188,109","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false},{"date":"May 26, 2026","net":"-195,473","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false},{"date":"May 19, 2026","net":"-200,409","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false}]},{"symbol":"HON26","symbolName":"ULSD NY Harbor","category":"Energies","net52wHigh":"-20,773","net52wLow":"-64,495","history":[{"date":"Jun 2, 2026","net":"-31,186","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false},{"date":"May 26, 2026","net":"-29,852","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false},{"date":"May 19, 2026","net":"-31,776","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false}]},{"symbol":"RBN26","symbolName":"Gasoline RBOB","category":"Energies","net52wHigh":"-35,447","net52wLow":"-111,747","history":[{"date":"Jun 2, 2026","net":"-66,859","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false},{"date":"May 26, 2026","net":"-68,417","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false},{"date":"May 19, 2026","net":"-64,242","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false}]}],"Meats":[{"symbol":"LEQ26","symbolName":"Live Cattle","category":"Meats","net52wHigh":"-61,974","net52wLow":"-98,291","history":[{"date":"Jun 2, 2026","net":"-66,666","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false},{"date":"May 26, 2026","net":"-75,333","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false},{"date":"May 19, 2026","net":"-78,298","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false}]},{"symbol":"GFQ26","symbolName":"Feeder Cattle","category":"Meats","net52wHigh":"1,201","net52wLow":"-13,632","history":[{"date":"Jun 2, 2026","net":"1,201","isNewPositive":false,"isNewNegative":false,"is52wHigh":true,"is52wLow":false},{"date":"May 26, 2026","net":"468","isNewPositive":true,"isNewNegative":false,"is52wHigh":false,"is52wLow":false},{"date":"May 19, 2026","net":"-2,136","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false}]},{"symbol":"HEN26","symbolName":"Lean Hogs","category":"Meats","net52wHigh":"39,700","net52wLow":"-96,861","history":[{"date":"Jun 2, 2026","net":"39,700","isNewPositive":false,"isNewNegative":false,"is52wHigh":true,"is52wLow":false},{"date":"May 26, 2026","net":"25,553","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false},{"date":"May 19, 2026","net":"10,228","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false}]}],"Metals":[{"symbol":"GCQ26","symbolName":"Gold","category":"Metals","net52wHigh":"-185,766","net52wLow":"-302,371","history":[{"date":"Jun 2, 2026","net":"-206,345","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false},{"date":"May 26, 2026","net":"-185,766","isNewPositive":false,"isNewNegative":false,"is52wHigh":true,"is52wLow":false},{"date":"May 19, 2026","net":"-191,629","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false}]},{"symbol":"SIN26","symbolName":"Silver","category":"Metals","net52wHigh":"-38,358","net52wLow":"-85,948","history":[{"date":"Jun 2, 2026","net":"-42,661","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false},{"date":"May 26, 2026","net":"-40,893","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false},{"date":"May 19, 2026","net":"-42,668","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false}]},{"symbol":"HGN26","symbolName":"High Grade Copper","category":"Metals","net52wHigh":"-28,683","net52wLow":"-88,645","history":[{"date":"Jun 2, 2026","net":"-88,645","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":true},{"date":"May 26, 2026","net":"-83,712","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false},{"date":"May 19, 2026","net":"-85,499","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false}]}],"Softs":[{"symbol":"CTZ26","symbolName":"Cotton #2","category":"Softs","net52wHigh":"68,333","net52wLow":"-117,159","history":[{"date":"Jun 2, 2026","net":"-93,421","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false},{"date":"May 26, 2026","net":"-96,751","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false},{"date":"May 19, 2026","net":"-103,545","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false}]},{"symbol":"OJN26","symbolName":"Orange Juice","category":"Softs","net52wHigh":"1,606","net52wLow":"-3,474","history":[{"date":"Jun 2, 2026","net":"-1,045","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false},{"date":"May 26, 2026","net":"-1,358","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false},{"date":"May 19, 2026","net":"-1,600","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false}]},{"symbol":"KCN26","symbolName":"Coffee","category":"Softs","net52wHigh":"-10,840","net52wLow":"-47,350","history":[{"date":"Jun 2, 2026","net":"-13,505","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false},{"date":"May 26, 2026","net":"-16,766","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false},{"date":"May 19, 2026","net":"-15,381","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false}]}],"Currencies":[{"symbol":"DXM26","symbolName":"U.S. Dollar Index","category":"Currencies","net52wHigh":"15,939","net52wLow":"-6,675","history":[{"date":"Jun 2, 2026","net":"-5,402","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false},{"date":"May 26, 2026","net":"-2,413","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false},{"date":"May 19, 2026","net":"-1,551","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false}]},{"symbol":"BAM26","symbolName":"Bitcoin Micro","category":"Currencies","net52wHigh":"1,984","net52wLow":"137","history":[{"date":"Jun 2, 2026","net":"137","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":true},{"date":"May 26, 2026","net":"717","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false},{"date":"May 19, 2026","net":"606","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false}]},{"symbol":"TAM26","symbolName":"Ether Micro","category":"Currencies","net52wHigh":"6,130","net52wLow":"-13,559","history":[{"date":"Jun 2, 2026","net":"40","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false},{"date":"May 26, 2026","net":"40","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false},{"date":"May 19, 2026","net":"0","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false}]}],"Financials":[{"symbol":"ZBU26","symbolName":"30-Year T-Bond","category":"Financials","net52wHigh":"115,899","net52wLow":"-179,711","history":[{"date":"Jun 2, 2026","net":"72,372","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false},{"date":"May 26, 2026","net":"115,899","isNewPositive":false,"isNewNegative":false,"is52wHigh":true,"is52wLow":false},{"date":"May 19, 2026","net":"111,298","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false}]},{"symbol":"UDU26","symbolName":"Ultra T-Bond","category":"Financials","net52wHigh":"297,249","net52wLow":"192,463","history":[{"date":"Jun 2, 2026","net":"296,004","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false},{"date":"May 26, 2026","net":"271,954","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false},{"date":"May 19, 2026","net":"264,146","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false}]},{"symbol":"ZNU26","symbolName":"10-Year T-Note","category":"Financials","net52wHigh":"843,450","net52wLow":"496,185","history":[{"date":"Jun 2, 2026","net":"821,742","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false},{"date":"May 26, 2026","net":"496,185","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":true},{"date":"May 19, 2026","net":"786,275","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false}]}],"Indices":[{"symbol":"ESM26","symbolName":"S&P 500 E-Mini","category":"Indices","net52wHigh":"134,019","net52wLow":"-50,620","history":[{"date":"Jun 2, 2026","net":"110,074","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false},{"date":"May 26, 2026","net":"54,929","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false},{"date":"May 19, 2026","net":"38,808","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false}]},{"symbol":"ETM26","symbolName":"S&P 500 Micro","category":"Indices","net52wHigh":"71,853","net52wLow":"-22,541","history":[{"date":"Jun 2, 2026","net":"18,058","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false},{"date":"May 26, 2026","net":"10,959","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false},{"date":"May 19, 2026","net":"12,766","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false}]},{"symbol":"EWM26","symbolName":"S&P Midcap E-Mini","category":"Indices","net52wHigh":"-2,743","net52wLow":"-11,060","history":[{"date":"Jun 2, 2026","net":"-4,153","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false},{"date":"May 26, 2026","net":"-3,149","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false},{"date":"May 19, 2026","net":"-3,802","isNewPositive":false,"isNewNegative":false,"is52wHigh":false,"is52wLow":false}]}]},"meta":{"field":{"name":{"symbol":"Symbol","symbolName":"Commodity","category":"Category","net52wHigh":"52W High","net52wLow":"52W Low","history":["Jun 2, 2026","May 26, 2026","May 19, 2026"]}},"lastUpdate":"June 2, 2026"}}}}}}}},"400":{"description":"Bad request. A required parameter is missing, malformed, or outside the supported range.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 400 error","value":{"ok":false,"error":{"code":"bad_request","message":"Required query parameter is missing or invalid."}}}}}}},"401":{"description":"Unauthorized. API-key authenticated tiers use an Authorization bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 401 error","value":{"ok":false,"error":{"code":"unauthorized","message":"A valid API key is required for this tier."}}}}}}},"404":{"description":"Not found. The requested route, resource, or symbol could not be resolved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 404 error","value":{"ok":false,"error":{"code":"not_found","message":"The requested resource was not found."}}}}}}},"405":{"description":"Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 405 error","value":{"ok":false,"error":{"code":"method_not_allowed","message":"This route does not support the requested HTTP method."}}}}}}},"429":{"description":"Rate limited. Retry after the limit reset or include the documented contact/API-key headers.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 429 error","value":{"ok":false,"error":{"code":"rate_limited","message":"Too many requests. Retry after the rate-limit reset."}}}}}}},"502":{"description":"Upstream source error. The source service rejected or failed the upstream request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 502 error","value":{"ok":false,"error":{"code":"upstream_error","message":"The upstream source returned an error."}}}}}}},"503":{"description":"Service unavailable. The source API or an upstream dependency is temporarily unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 503 error","value":{"ok":false,"error":{"code":"service_unavailable","message":"The service is temporarily unavailable."}}}}}}},"504":{"description":"Upstream timeout. The upstream source did not return within the source API timeout window.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 504 error","value":{"ok":false,"error":{"code":"upstream_timeout","message":"The upstream source timed out."}}}}}}}},"x-bfin-endpoint-id":"www.proxies.core-api.v1.commitment-of-traders.get","operationId":"bfin_get_cot","description":"Returns COT with source-native fields and identifiers.","x-source-api":"bfin","x-source-name":"Barchart.com","x-source-upstream":"barchart.com","x-docs-example-url":"https://api.bfin.bluedoor.sh/v1/cot","x-docs-example-status":200,"x-docs-captured-at":"2026-06-07T01:32:55.029Z"}},"/v1/exchanges":{"get":{"summary":"Exchanges","parameters":[{"name":"refresh","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"x-bfin-contact","in":"header","required":false,"schema":{"type":"string","format":"email"},"description":"Optional contact email for higher public rate limits and support diagnostics."},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","example":"Bearer <key>"},"description":"Optional API-key authorization for higher-volume access tiers."}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/bfin_get_exchangesResponse"},"examples":{"live":{"summary":"Live response","value":{"meta":{"provider":"barchart","endpoint":"instruments-prod.exchanges","family":"exchanges","cache":"hit","ttl_seconds":86400,"stale_seconds":86400,"generated_at":"2026-06-07T00:11:46.773Z","route":"exchanges"},"data":[{"id":"AGC_PRICES","display":"AGC_PRICES","description":"Black Sea Grain Prices","frequency":1,"delay":15,"timezoneLocal":"America/Chicago","timezoneDdf":"America/Chicago","category":"Cash Prices"},{"id":"AGIDX_B_COU","display":"AG IDX Cou Basis","description":"AG Index Basis (County)","frequency":13,"delay":15,"timezoneLocal":"America/Chicago","timezoneDdf":"America/Chicago","category":"Indexes"},{"id":"AGIDX_B_CRD","display":"AG IDX CRD Basis","description":"AG Index Basis (Crop Reporting District)","frequency":13,"delay":15,"timezoneLocal":"America/Chicago","timezoneDdf":"America/Chicago","category":"Indexes"}]}}}}}},"400":{"description":"Bad request. A required parameter is missing, malformed, or outside the supported range.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 400 error","value":{"ok":false,"error":{"code":"bad_request","message":"Required query parameter is missing or invalid."}}}}}}},"401":{"description":"Unauthorized. API-key authenticated tiers use an Authorization bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 401 error","value":{"ok":false,"error":{"code":"unauthorized","message":"A valid API key is required for this tier."}}}}}}},"404":{"description":"Not found. The requested route, resource, or symbol could not be resolved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 404 error","value":{"ok":false,"error":{"code":"not_found","message":"The requested resource was not found."}}}}}}},"405":{"description":"Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 405 error","value":{"ok":false,"error":{"code":"method_not_allowed","message":"This route does not support the requested HTTP method."}}}}}}},"429":{"description":"Rate limited. Retry after the limit reset or include the documented contact/API-key headers.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 429 error","value":{"ok":false,"error":{"code":"rate_limited","message":"Too many requests. Retry after the rate-limit reset."}}}}}}},"502":{"description":"Upstream source error. The source service rejected or failed the upstream request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 502 error","value":{"ok":false,"error":{"code":"upstream_error","message":"The upstream source returned an error."}}}}}}},"503":{"description":"Service unavailable. The source API or an upstream dependency is temporarily unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 503 error","value":{"ok":false,"error":{"code":"service_unavailable","message":"The service is temporarily unavailable."}}}}}}},"504":{"description":"Upstream timeout. The upstream source did not return within the source API timeout window.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 504 error","value":{"ok":false,"error":{"code":"upstream_timeout","message":"The upstream source timed out."}}}}}}}},"x-bfin-endpoint-id":"instruments-prod.exchanges","operationId":"bfin_get_exchanges","description":"Returns exchanges with source-native fields and identifiers.","x-source-api":"bfin","x-source-name":"Barchart.com","x-source-upstream":"barchart.com","x-docs-example-url":"https://api.bfin.bluedoor.sh/v1/exchanges","x-docs-example-status":200,"x-docs-captured-at":"2026-06-07T01:32:55.485Z"}},"/v1/insider-trades":{"get":{"summary":"Insider trades","parameters":[{"name":"refresh","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"x-bfin-contact","in":"header","required":false,"schema":{"type":"string","format":"email"},"description":"Optional contact email for higher public rate limits and support diagnostics."},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","example":"Bearer <key>"},"description":"Optional API-key authorization for higher-volume access tiers."}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/bfin_get_insider_tradesResponse"},"examples":{"live":{"summary":"Live response","value":{"meta":{"provider":"barchart","endpoint":"www.proxies.core-api.v1.insiderTrades.get","family":"insider-trades","cache":"hit","ttl_seconds":1800,"stale_seconds":3600,"generated_at":"2026-06-07T01:25:46.378Z","route":"insider_trades"},"data":{"count":10,"total":2220,"data":[{"symbol":"AAPL","transactionDate":"04/15/21","transactionType":"Award","raw":{"symbol":"AAPL","transactionDate":"2021-04-15","transactionType":"Award"}},{"symbol":"AAPL","transactionDate":"04/15/21","transactionType":"Sale Post-exercise*","raw":{"symbol":"AAPL","transactionDate":"2021-04-15","transactionType":"Sale Post-exercise*"}},{"symbol":"AAPL","transactionDate":"04/15/21","transactionType":"Award","raw":{"symbol":"AAPL","transactionDate":"2021-04-15","transactionType":"Award"}}]}}}}}}},"400":{"description":"Bad request. A required parameter is missing, malformed, or outside the supported range.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 400 error","value":{"ok":false,"error":{"code":"bad_request","message":"Required query parameter is missing or invalid."}}}}}}},"401":{"description":"Unauthorized. API-key authenticated tiers use an Authorization bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 401 error","value":{"ok":false,"error":{"code":"unauthorized","message":"A valid API key is required for this tier."}}}}}}},"404":{"description":"Not found. The requested route, resource, or symbol could not be resolved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 404 error","value":{"ok":false,"error":{"code":"not_found","message":"The requested resource was not found."}}}}}}},"405":{"description":"Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 405 error","value":{"ok":false,"error":{"code":"method_not_allowed","message":"This route does not support the requested HTTP method."}}}}}}},"429":{"description":"Rate limited. Retry after the limit reset or include the documented contact/API-key headers.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 429 error","value":{"ok":false,"error":{"code":"rate_limited","message":"Too many requests. Retry after the rate-limit reset."}}}}}}},"502":{"description":"Upstream source error. The source service rejected or failed the upstream request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 502 error","value":{"ok":false,"error":{"code":"upstream_error","message":"The upstream source returned an error."}}}}}}},"503":{"description":"Service unavailable. The source API or an upstream dependency is temporarily unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 503 error","value":{"ok":false,"error":{"code":"service_unavailable","message":"The service is temporarily unavailable."}}}}}}},"504":{"description":"Upstream timeout. The upstream source did not return within the source API timeout window.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 504 error","value":{"ok":false,"error":{"code":"upstream_timeout","message":"The upstream source timed out."}}}}}}}},"x-bfin-endpoint-id":"www.proxies.core-api.v1.insiderTrades.get","operationId":"bfin_get_insider_trades","description":"Returns insider trades with source-native fields and identifiers.","x-source-api":"bfin","x-source-name":"Barchart.com","x-source-upstream":"barchart.com","x-docs-example-url":"https://api.bfin.bluedoor.sh/v1/insider-trades","x-docs-example-status":200,"x-docs-captured-at":"2026-06-07T01:32:56.044Z"}},"/v1/news":{"get":{"summary":"Headlines","parameters":[{"name":"refresh","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"x-bfin-contact","in":"header","required":false,"schema":{"type":"string","format":"email"},"description":"Optional contact email for higher public rate limits and support diagnostics."},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","example":"Bearer <key>"},"description":"Optional API-key authorization for higher-volume access tiers."}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/bfin_get_newsResponse"},"examples":{"live":{"summary":"Live response","value":{"meta":{"provider":"barchart","endpoint":"www.proxies.core-api.v1.news.get","family":"news","cache":"miss","ttl_seconds":300,"stale_seconds":1800,"generated_at":"2026-06-07T01:32:57.085Z","route":"news"},"data":{"count":10,"total":3,"data":[{"symbol":"N/A","title":"The Dow's Split Personality: Why Some Winners Soar While Others Drag Down the Dow","canonicalUrl":"https://www.barchart.com/story/news/2341785/the-dow-s-split-personality-why-some-winners-soar-while-others-drag-down-the-dow","raw":{"symbol":null,"title":"The Dow's Split Personality: Why Some Winners Soar While Others Drag Down the Dow","canonicalUrl":"https://www.barchart.com/story/news/2341785/the-dow-s-split-personality-why-some-winners-soar-while-others-drag-down-the-dow"}},{"symbol":"N/A","title":"Greg Abel is Writing Checks for Berkshire Hathaway in a Hurry. You Should Write One for BRK.B Stock.","canonicalUrl":"https://www.barchart.com/story/news/2341486/greg-abel-is-writing-checks-for-berkshire-hathaway-in-a-hurry-you-should-write-one-for-brk-b-stock","raw":{"symbol":null,"title":"Greg Abel is Writing Checks for Berkshire Hathaway in a Hurry. You Should Write One for BRK.B Stock.","canonicalUrl":"https://www.barchart.com/story/news/2341486/greg-abel-is-writing-checks-for-berkshire-hathaway-in-a-hurry-you-should-write-one-for-brk-b-stock"}},{"symbol":"N/A","title":"Hunting for the Next Nvidia Is No Easy Feat. Small-Cap Tech Stocks Promise Riches but Really Are Just Rags.","canonicalUrl":"https://www.barchart.com/story/news/2340255/hunting-for-the-next-nvidia-is-no-easy-feat-small-cap-tech-stocks-promise-riches-but-really-are-just-rags","raw":{"symbol":null,"title":"Hunting for the Next Nvidia Is No Easy Feat. Small-Cap Tech Stocks Promise Riches but Really Are Just Rags.","canonicalUrl":"https://www.barchart.com/story/news/2340255/hunting-for-the-next-nvidia-is-no-easy-feat-small-cap-tech-stocks-promise-riches-but-really-are-just-rags"}}]}}}}}}},"400":{"description":"Bad request. A required parameter is missing, malformed, or outside the supported range.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 400 error","value":{"ok":false,"error":{"code":"bad_request","message":"Required query parameter is missing or invalid."}}}}}}},"401":{"description":"Unauthorized. API-key authenticated tiers use an Authorization bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 401 error","value":{"ok":false,"error":{"code":"unauthorized","message":"A valid API key is required for this tier."}}}}}}},"404":{"description":"Not found. The requested route, resource, or symbol could not be resolved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 404 error","value":{"ok":false,"error":{"code":"not_found","message":"The requested resource was not found."}}}}}}},"405":{"description":"Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 405 error","value":{"ok":false,"error":{"code":"method_not_allowed","message":"This route does not support the requested HTTP method."}}}}}}},"429":{"description":"Rate limited. Retry after the limit reset or include the documented contact/API-key headers.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 429 error","value":{"ok":false,"error":{"code":"rate_limited","message":"Too many requests. Retry after the rate-limit reset."}}}}}}},"502":{"description":"Upstream source error. The source service rejected or failed the upstream request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 502 error","value":{"ok":false,"error":{"code":"upstream_error","message":"The upstream source returned an error."}}}}}}},"503":{"description":"Service unavailable. The source API or an upstream dependency is temporarily unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 503 error","value":{"ok":false,"error":{"code":"service_unavailable","message":"The service is temporarily unavailable."}}}}}}},"504":{"description":"Upstream timeout. The upstream source did not return within the source API timeout window.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 504 error","value":{"ok":false,"error":{"code":"upstream_timeout","message":"The upstream source timed out."}}}}}}}},"x-bfin-endpoint-id":"www.proxies.core-api.v1.news.get","operationId":"bfin_get_news","description":"Returns headlines with headline, timestamp, symbol, and source fields where available.","tags":["News"],"x-source-api":"bfin","x-source-name":"Barchart.com","x-source-upstream":"barchart.com","x-docs-example-url":"https://api.bfin.bluedoor.sh/v1/news","x-docs-example-status":200,"x-docs-captured-at":"2026-06-07T01:32:57.346Z"}},"/v1/quotes":{"get":{"summary":"Snapshots","parameters":[{"name":"symbols","in":"query","required":true,"schema":{"type":"string"}},{"name":"refresh","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"x-bfin-contact","in":"header","required":false,"schema":{"type":"string","format":"email"},"description":"Optional contact email for higher public rate limits and support diagnostics."},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","example":"Bearer <key>"},"description":"Optional API-key authorization for higher-volume access tiers."}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/bfin_get_quotesResponse"},"examples":{"live":{"summary":"Live response","value":{"meta":{"provider":"barchart","endpoint":"www.proxies.core-api.v1.quotes.get","family":"quote","cache":"miss","ttl_seconds":15,"stale_seconds":60,"generated_at":"2026-06-07T01:32:57.978Z","route":"quotes"},"data":{"count":2,"total":2,"data":[{"symbol":"AAPL","symbolName":"Apple Inc","lastPrice":"307.34","priceChange":"-3.89","percentChange":"-1.25%","tradeTime":"06/05/26","raw":{"symbol":"AAPL","symbolName":"Apple Inc","lastPrice":307.34,"priceChange":-3.89,"percentChange":-0.0125,"tradeTime":1780700100}},{"symbol":"MSFT","symbolName":"Microsoft Corp","lastPrice":"416.67","priceChange":"-11.38","percentChange":"-2.66%","tradeTime":"06/05/26","raw":{"symbol":"MSFT","symbolName":"Microsoft Corp","lastPrice":416.67,"priceChange":-11.38,"percentChange":-0.0266,"tradeTime":1780700100}}],"errors":null}}}}}}},"400":{"description":"Bad request. A required parameter is missing, malformed, or outside the supported range.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 400 error","value":{"ok":false,"error":{"code":"bad_request","message":"Required query parameter is missing or invalid."}}}}}}},"401":{"description":"Unauthorized. API-key authenticated tiers use an Authorization bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 401 error","value":{"ok":false,"error":{"code":"unauthorized","message":"A valid API key is required for this tier."}}}}}}},"404":{"description":"Not found. The requested route, resource, or symbol could not be resolved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 404 error","value":{"ok":false,"error":{"code":"not_found","message":"The requested resource was not found."}}}}}}},"405":{"description":"Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 405 error","value":{"ok":false,"error":{"code":"method_not_allowed","message":"This route does not support the requested HTTP method."}}}}}}},"429":{"description":"Rate limited. Retry after the limit reset or include the documented contact/API-key headers.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 429 error","value":{"ok":false,"error":{"code":"rate_limited","message":"Too many requests. Retry after the rate-limit reset."}}}}}}},"502":{"description":"Upstream source error. The source service rejected or failed the upstream request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 502 error","value":{"ok":false,"error":{"code":"upstream_error","message":"The upstream source returned an error."}}}}}}},"503":{"description":"Service unavailable. The source API or an upstream dependency is temporarily unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 503 error","value":{"ok":false,"error":{"code":"service_unavailable","message":"The service is temporarily unavailable."}}}}}}},"504":{"description":"Upstream timeout. The upstream source did not return within the source API timeout window.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 504 error","value":{"ok":false,"error":{"code":"upstream_timeout","message":"The upstream source timed out."}}}}}}}},"x-bfin-endpoint-id":"www.proxies.core-api.v1.quotes.get","operationId":"bfin_get_quotes","description":"Returns snapshots with source-native price, change, volume, and instrument fields.","tags":["Quotes"],"x-source-api":"bfin","x-source-name":"Barchart.com","x-source-upstream":"barchart.com","x-docs-example-url":"https://api.bfin.bluedoor.sh/v1/quotes?symbols=AAPL,MSFT","x-docs-example-status":200,"x-docs-captured-at":"2026-06-07T01:32:58.221Z"}},"/v1/calendar/earnings-dividends":{"get":{"summary":"Earnings and dividends","parameters":[{"name":"refresh","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"x-bfin-contact","in":"header","required":false,"schema":{"type":"string","format":"email"},"description":"Optional contact email for higher public rate limits and support diagnostics."},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","example":"Bearer <key>"},"description":"Optional API-key authorization for higher-volume access tiers."}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/bfin_get_calendar_earnings_dividendsResponse"},"examples":{"live":{"summary":"Live response","value":{"meta":{"provider":"barchart","endpoint":"www.proxies.core-api.v1.earnings-dividends.get","family":"calendar","cache":"hit","ttl_seconds":1800,"stale_seconds":3600,"generated_at":"2026-06-07T01:25:49.202Z","route":"calendar_earnings_dividends"},"data":{"count":45,"total":45,"data":[{"symbol":"AGRO","symbolName":"Adecoagro S.A.","lastPrice":"11.42","priceChange":"-0.69","amount":"$0.121","yield":"2.12%","exDivDate":"05/04/26","payableDate":"05/19/26","raw":{"symbol":"AGRO","symbolName":"Adecoagro S.A.","lastPrice":11.42,"priceChange":-0.69,"amount":0.121,"yield":2.12,"exDivDate":"2026-05-04","payableDate":"2026-05-19"}},{"symbol":"AMP","symbolName":"Ameriprise Financial Services","lastPrice":"454.66","priceChange":"-0.43","amount":"$1.700","yield":"1.50%","exDivDate":"05/04/26","payableDate":"05/22/26","raw":{"symbol":"AMP","symbolName":"Ameriprise Financial Services","lastPrice":454.66,"priceChange":-0.43,"amount":1.7,"yield":1.5,"exDivDate":"2026-05-04","payableDate":"2026-05-22"}},{"symbol":"ASRV","symbolName":"Ameriserv Financial","lastPrice":"3.74","priceChange":"-0.04","amount":"$0.030","yield":"3.21%","exDivDate":"05/04/26","payableDate":"05/18/26","raw":{"symbol":"ASRV","symbolName":"Ameriserv Financial","lastPrice":3.74,"priceChange":-0.04,"amount":0.03,"yield":3.21,"exDivDate":"2026-05-04","payableDate":"2026-05-18"}}],"meta":{"field":{"shortName":{"symbol":"Symbol","symbolName":"Name","lastPrice":"Latest","priceChange":"Change","amount":"Dividend","yield":"Yield","exDivDate":"Ex-Div Date","payableDate":"Payable Date"},"type":{"symbol":"string","symbolName":"string","lastPrice":"price","priceChange":"priceChange","amount":"float","yield":"percent","exDivDate":"date","payableDate":"date"}}}}}}}}}},"400":{"description":"Bad request. A required parameter is missing, malformed, or outside the supported range.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 400 error","value":{"ok":false,"error":{"code":"bad_request","message":"Required query parameter is missing or invalid."}}}}}}},"401":{"description":"Unauthorized. API-key authenticated tiers use an Authorization bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 401 error","value":{"ok":false,"error":{"code":"unauthorized","message":"A valid API key is required for this tier."}}}}}}},"404":{"description":"Not found. The requested route, resource, or symbol could not be resolved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 404 error","value":{"ok":false,"error":{"code":"not_found","message":"The requested resource was not found."}}}}}}},"405":{"description":"Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 405 error","value":{"ok":false,"error":{"code":"method_not_allowed","message":"This route does not support the requested HTTP method."}}}}}}},"429":{"description":"Rate limited. Retry after the limit reset or include the documented contact/API-key headers.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 429 error","value":{"ok":false,"error":{"code":"rate_limited","message":"Too many requests. Retry after the rate-limit reset."}}}}}}},"502":{"description":"Upstream source error. The source service rejected or failed the upstream request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 502 error","value":{"ok":false,"error":{"code":"upstream_error","message":"The upstream source returned an error."}}}}}}},"503":{"description":"Service unavailable. The source API or an upstream dependency is temporarily unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 503 error","value":{"ok":false,"error":{"code":"service_unavailable","message":"The service is temporarily unavailable."}}}}}}},"504":{"description":"Upstream timeout. The upstream source did not return within the source API timeout window.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 504 error","value":{"ok":false,"error":{"code":"upstream_timeout","message":"The upstream source timed out."}}}}}}}},"x-bfin-endpoint-id":"www.proxies.core-api.v1.earnings-dividends.get","operationId":"bfin_get_calendar_earnings_dividends","description":"Returns earnings and dividends with source-native dates, event fields, and pagination where available.","x-source-api":"bfin","x-source-name":"Barchart.com","x-source-upstream":"barchart.com","x-docs-example-url":"https://api.bfin.bluedoor.sh/v1/calendar/earnings-dividends","x-docs-example-status":200,"x-docs-captured-at":"2026-06-07T01:32:58.587Z"}},"/v1/futures/hilo":{"get":{"summary":"Futures high/low","parameters":[{"name":"symbols","in":"query","required":true,"schema":{"type":"string"}},{"name":"refresh","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"x-bfin-contact","in":"header","required":false,"schema":{"type":"string","format":"email"},"description":"Optional contact email for higher public rate limits and support diagnostics."},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","example":"Bearer <key>"},"description":"Optional API-key authorization for higher-volume access tiers."}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/bfin_get_futures_hiloResponse"},"examples":{"live":{"summary":"Live response","value":{"meta":{"provider":"barchart","endpoint":"instrument-extensions.v1.futures.hilo","family":"futures","cache":"miss","ttl_seconds":60,"stale_seconds":600,"generated_at":"2026-06-07T01:32:59.314Z","route":"futures_hilo"},"data":[{"symbol":"AAPL","hilo":null},{"symbol":"MSFT","hilo":null}]}}}}}},"400":{"description":"Bad request. A required parameter is missing, malformed, or outside the supported range.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 400 error","value":{"ok":false,"error":{"code":"bad_request","message":"Required query parameter is missing or invalid."}}}}}}},"401":{"description":"Unauthorized. API-key authenticated tiers use an Authorization bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 401 error","value":{"ok":false,"error":{"code":"unauthorized","message":"A valid API key is required for this tier."}}}}}}},"404":{"description":"Not found. The requested route, resource, or symbol could not be resolved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 404 error","value":{"ok":false,"error":{"code":"not_found","message":"The requested resource was not found."}}}}}}},"405":{"description":"Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 405 error","value":{"ok":false,"error":{"code":"method_not_allowed","message":"This route does not support the requested HTTP method."}}}}}}},"429":{"description":"Rate limited. Retry after the limit reset or include the documented contact/API-key headers.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 429 error","value":{"ok":false,"error":{"code":"rate_limited","message":"Too many requests. Retry after the rate-limit reset."}}}}}}},"502":{"description":"Upstream source error. The source service rejected or failed the upstream request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 502 error","value":{"ok":false,"error":{"code":"upstream_error","message":"The upstream source returned an error."}}}}}}},"503":{"description":"Service unavailable. The source API or an upstream dependency is temporarily unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 503 error","value":{"ok":false,"error":{"code":"service_unavailable","message":"The service is temporarily unavailable."}}}}}}},"504":{"description":"Upstream timeout. The upstream source did not return within the source API timeout window.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 504 error","value":{"ok":false,"error":{"code":"upstream_timeout","message":"The upstream source timed out."}}}}}}}},"x-bfin-endpoint-id":"instrument-extensions.v1.futures.hilo","operationId":"bfin_get_futures_hilo","description":"Returns futures high/low with contract, root, settlement, or market fields from the upstream data shape.","x-source-api":"bfin","x-source-name":"Barchart.com","x-source-upstream":"barchart.com","x-docs-example-url":"https://api.bfin.bluedoor.sh/v1/futures/hilo?symbols=AAPL%2CMSFT","x-docs-example-status":200,"x-docs-captured-at":"2026-06-07T01:32:59.593Z"}},"/v1/news/stories":{"get":{"summary":"Stories","parameters":[{"name":"refresh","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"x-bfin-contact","in":"header","required":false,"schema":{"type":"string","format":"email"},"description":"Optional contact email for higher public rate limits and support diagnostics."},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","example":"Bearer <key>"},"description":"Optional API-key authorization for higher-volume access tiers."}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/bfin_get_news_storiesResponse"},"examples":{"live":{"summary":"Live response","value":{"meta":{"provider":"barchart","endpoint":"www.proxies.core-api.v1.news.stories","family":"news","cache":"miss","ttl_seconds":300,"stale_seconds":1800,"generated_at":"2026-06-07T01:33:00.093Z","route":"news_stories"},"data":{"count":1,"total":1,"data":[{"symbol":"AAPL","articles":[{"id":"2341788","sequence":0,"title":"The Dow's Split Personality: Why Some Winners Soar While Others Drag Down the Dow","slug":"the-dow-s-split-personality-why-some-winners-soar-while-others-drag-down-the-dow","feed":"BCNEWS","originalFeed":"EXCLSV","feedName":"Barchart","author":"Rob Isbitts","authorUrl":null,"authorBadge":null,"authorImageUrl":null,"source":"10866898","sourceFeed":"CONT2","media":"text","language":"en","external":false,"url":null,"published":"2026-06-06 17:00:02","publishedTime":"8 hours ago","updated":"2026-06-06 17:00:02 +0000","summary":"The oldest stock index in the world is suffering from a severe case of split personality. This internal friction has triggered a mechanical phenomenon, the likes of which I cannot recall, at least to this degree.","content":null,"thumbnail":{"url":"https://media.barchart.com/contributors-admin/common-images/images/Stocks%2C%20Markets%2C%20%26%20Global%20Economy/Charts%2C%20tickers%2C%20traders/3d%20illustration%20inflation%20and%20deflation%20graph%20by%20Deepadesigns%20via%20Shutterstock.jpg","width":1600,"height":1067,"caption":"3d illustration inflation and deflation graph by Deepadesigns via Shutterstock"},"image":{"url":"https://media.barchart.com/contributors-admin/common-images/images/Stocks%2C%20Markets%2C%20%26%20Global%20Economy/Charts%2C%20tickers%2C%20traders/3d%20illustration%20inflation%20and%20deflation%20graph%20by%20Deepadesigns%20via%20Shutterstock.jpg","width":1600,"height":1067,"caption":"3d illustration inflation and deflation graph by Deepadesigns via Shutterstock"},"symbols":["NVDA","AAPL","$NASX"],"primarySymbol":null,"categories":["STK.FIN.ETF","STK.EQY"],"copyright":null,"canonicalUrl":null,"organizationUrl":null,"organizationLogoUrl":null,"originalId":"2341785","meta":null},{"id":"2341489","sequence":0,"title":"Greg Abel is Writing Checks for Berkshire Hathaway in a Hurry. You Should Write One for BRK.B Stock.","slug":"greg-abel-is-writing-checks-for-berkshire-hathaway-in-a-hurry-you-should-write-one-for-brk-b-stock","feed":"BCNEWS","originalFeed":"EXCLSV","feedName":"Barchart","author":"Mohit Oberoi","authorUrl":null,"authorBadge":null,"authorImageUrl":null,"source":"10855027","sourceFeed":"CONT2","media":"text","language":"en","external":false,"url":null,"published":"2026-06-06 16:00:02","publishedTime":"9 hours ago","updated":"2026-06-06 16:00:02 +0000","summary":"Berkshire Hathaway has announced investments worth $16.8 billion over the last few days, as CEO Greg Abel tries to put the conglomerate's massive cash pile to work. Is it time to buy BRK.B stock?","content":null,"thumbnail":{"url":"https://media.barchart.com/contributors-admin/common-images/images/Famous%20People/Image%20of%20Warren%20Buffett%20by%20Rokas%20Tenys%20via%20Shutterstock.jpg","width":1600,"height":950,"caption":"Image of Warren Buffett by Rokas Tenys via Shutterstock"},"image":{"url":"https://media.barchart.com/contributors-admin/common-images/images/Famous%20People/Image%20of%20Warren%20Buffett%20by%20Rokas%20Tenys%20via%20Shutterstock.jpg","width":1600,"height":950,"caption":"Image of Warren Buffett by Rokas Tenys via Shutterstock"},"symbols":["GOOG","GOOGL","AAPL"],"primarySymbol":null,"categories":["STK.EQY"],"copyright":null,"canonicalUrl":null,"organizationUrl":null,"organizationLogoUrl":null,"originalId":"2341486","meta":null},{"id":"2340258","sequence":0,"title":"Hunting for the Next Nvidia Is No Easy Feat. Small-Cap Tech Stocks Promise Riches but Really Are Just Rags.","slug":"hunting-for-the-next-nvidia-is-no-easy-feat-small-cap-tech-stocks-promise-riches-but-really-are-just-rags","feed":"BCNEWS","originalFeed":"EXCLSV","feedName":"Barchart","author":"Rob Isbitts","authorUrl":null,"authorBadge":null,"authorImageUrl":null,"source":"10867014","sourceFeed":"CONT2","media":"text","language":"en","external":false,"url":null,"published":"2026-06-06 15:00:02","publishedTime":"10 hours ago","updated":"2026-06-06 15:00:02 +0000","summary":"There is no such thing as a perfect basket of small-cap AI stocks.","content":null,"thumbnail":{"url":"https://media.barchart.com/contributors-admin/common-images/images/Tech%20(Ecommerce%2C%20Social%20Media%2C%20etc.)/AI%20(artificial%20intelligence)/Chat%20bot%20with%20AI%20Artificial%20Intelligence%20generate%20by%20MMD%20Creative%20via%20Shutterstock.jpg","width":1600,"height":1067,"caption":"Chat bot with AI Artificial Intelligence generate by MMD Creative via Shutterstock"},"image":{"url":"https://media.barchart.com/contributors-admin/common-images/images/Tech%20(Ecommerce%2C%20Social%20Media%2C%20etc.)/AI%20(artificial%20intelligence)/Chat%20bot%20with%20AI%20Artificial%20Intelligence%20generate%20by%20MMD%20Creative%20via%20Shutterstock.jpg","width":1600,"height":1067,"caption":"Chat bot with AI Artificial Intelligence generate by MMD Creative via Shutterstock"},"symbols":["NVDA","PSCT","XITK"],"primarySymbol":null,"categories":["STK.FIN.ETF","STK.EQY"],"copyright":null,"canonicalUrl":null,"organizationUrl":null,"organizationLogoUrl":null,"originalId":"2340255","meta":null}],"raw":{"symbol":"AAPL","articles":[{"id":"2341788","sequence":0,"title":"The Dow's Split Personality: Why Some Winners Soar While Others Drag Down the Dow","slug":"the-dow-s-split-personality-why-some-winners-soar-while-others-drag-down-the-dow","feed":"BCNEWS","originalFeed":"EXCLSV","feedName":"Barchart","author":"Rob Isbitts","authorUrl":null,"authorBadge":null,"authorImageUrl":null,"source":"10866898","sourceFeed":"CONT2","media":"text","language":"en","external":false,"url":null,"published":"2026-06-06 17:00:02","publishedTime":"8 hours ago","updated":"2026-06-06 17:00:02 +0000","summary":"The oldest stock index in the world is suffering from a severe case of split personality. This internal friction has triggered a mechanical phenomenon, the likes of which I cannot recall, at least to this degree.","content":null,"thumbnail":{"url":"https://media.barchart.com/contributors-admin/common-images/images/Stocks%2C%20Markets%2C%20%26%20Global%20Economy/Charts%2C%20tickers%2C%20traders/3d%20illustration%20inflation%20and%20deflation%20graph%20by%20Deepadesigns%20via%20Shutterstock.jpg","width":1600,"height":1067,"caption":"3d illustration inflation and deflation graph by Deepadesigns via Shutterstock"},"image":{"url":"https://media.barchart.com/contributors-admin/common-images/images/Stocks%2C%20Markets%2C%20%26%20Global%20Economy/Charts%2C%20tickers%2C%20traders/3d%20illustration%20inflation%20and%20deflation%20graph%20by%20Deepadesigns%20via%20Shutterstock.jpg","width":1600,"height":1067,"caption":"3d illustration inflation and deflation graph by Deepadesigns via Shutterstock"},"symbols":["NVDA","AAPL","$NASX"],"primarySymbol":null,"categories":["STK.FIN.ETF","STK.EQY"],"copyright":null,"canonicalUrl":null,"organizationUrl":null,"organizationLogoUrl":null,"originalId":"2341785","meta":null},{"id":"2341489","sequence":0,"title":"Greg Abel is Writing Checks for Berkshire Hathaway in a Hurry. You Should Write One for BRK.B Stock.","slug":"greg-abel-is-writing-checks-for-berkshire-hathaway-in-a-hurry-you-should-write-one-for-brk-b-stock","feed":"BCNEWS","originalFeed":"EXCLSV","feedName":"Barchart","author":"Mohit Oberoi","authorUrl":null,"authorBadge":null,"authorImageUrl":null,"source":"10855027","sourceFeed":"CONT2","media":"text","language":"en","external":false,"url":null,"published":"2026-06-06 16:00:02","publishedTime":"9 hours ago","updated":"2026-06-06 16:00:02 +0000","summary":"Berkshire Hathaway has announced investments worth $16.8 billion over the last few days, as CEO Greg Abel tries to put the conglomerate's massive cash pile to work. Is it time to buy BRK.B stock?","content":null,"thumbnail":{"url":"https://media.barchart.com/contributors-admin/common-images/images/Famous%20People/Image%20of%20Warren%20Buffett%20by%20Rokas%20Tenys%20via%20Shutterstock.jpg","width":1600,"height":950,"caption":"Image of Warren Buffett by Rokas Tenys via Shutterstock"},"image":{"url":"https://media.barchart.com/contributors-admin/common-images/images/Famous%20People/Image%20of%20Warren%20Buffett%20by%20Rokas%20Tenys%20via%20Shutterstock.jpg","width":1600,"height":950,"caption":"Image of Warren Buffett by Rokas Tenys via Shutterstock"},"symbols":["GOOG","GOOGL","AAPL"],"primarySymbol":null,"categories":["STK.EQY"],"copyright":null,"canonicalUrl":null,"organizationUrl":null,"organizationLogoUrl":null,"originalId":"2341486","meta":null},{"id":"2340258","sequence":0,"title":"Hunting for the Next Nvidia Is No Easy Feat. Small-Cap Tech Stocks Promise Riches but Really Are Just Rags.","slug":"hunting-for-the-next-nvidia-is-no-easy-feat-small-cap-tech-stocks-promise-riches-but-really-are-just-rags","feed":"BCNEWS","originalFeed":"EXCLSV","feedName":"Barchart","author":"Rob Isbitts","authorUrl":null,"authorBadge":null,"authorImageUrl":null,"source":"10867014","sourceFeed":"CONT2","media":"text","language":"en","external":false,"url":null,"published":"2026-06-06 15:00:02","publishedTime":"10 hours ago","updated":"2026-06-06 15:00:02 +0000","summary":"There is no such thing as a perfect basket of small-cap AI stocks.","content":null,"thumbnail":{"url":"https://media.barchart.com/contributors-admin/common-images/images/Tech%20(Ecommerce%2C%20Social%20Media%2C%20etc.)/AI%20(artificial%20intelligence)/Chat%20bot%20with%20AI%20Artificial%20Intelligence%20generate%20by%20MMD%20Creative%20via%20Shutterstock.jpg","width":1600,"height":1067,"caption":"Chat bot with AI Artificial Intelligence generate by MMD Creative via Shutterstock"},"image":{"url":"https://media.barchart.com/contributors-admin/common-images/images/Tech%20(Ecommerce%2C%20Social%20Media%2C%20etc.)/AI%20(artificial%20intelligence)/Chat%20bot%20with%20AI%20Artificial%20Intelligence%20generate%20by%20MMD%20Creative%20via%20Shutterstock.jpg","width":1600,"height":1067,"caption":"Chat bot with AI Artificial Intelligence generate by MMD Creative via Shutterstock"},"symbols":["NVDA","PSCT","XITK"],"primarySymbol":null,"categories":["STK.FIN.ETF","STK.EQY"],"copyright":null,"canonicalUrl":null,"organizationUrl":null,"organizationLogoUrl":null,"originalId":"2340255","meta":null}]},"symbolInfo":{"symbol":"AAPL","symbolName":"Apple Inc","symbolType":1,"symbolCode":"STK"}}]}}}}}}},"400":{"description":"Bad request. A required parameter is missing, malformed, or outside the supported range.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 400 error","value":{"ok":false,"error":{"code":"bad_request","message":"Required query parameter is missing or invalid."}}}}}}},"401":{"description":"Unauthorized. API-key authenticated tiers use an Authorization bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 401 error","value":{"ok":false,"error":{"code":"unauthorized","message":"A valid API key is required for this tier."}}}}}}},"404":{"description":"Not found. The requested route, resource, or symbol could not be resolved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 404 error","value":{"ok":false,"error":{"code":"not_found","message":"The requested resource was not found."}}}}}}},"405":{"description":"Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 405 error","value":{"ok":false,"error":{"code":"method_not_allowed","message":"This route does not support the requested HTTP method."}}}}}}},"429":{"description":"Rate limited. Retry after the limit reset or include the documented contact/API-key headers.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 429 error","value":{"ok":false,"error":{"code":"rate_limited","message":"Too many requests. Retry after the rate-limit reset."}}}}}}},"502":{"description":"Upstream source error. The source service rejected or failed the upstream request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 502 error","value":{"ok":false,"error":{"code":"upstream_error","message":"The upstream source returned an error."}}}}}}},"503":{"description":"Service unavailable. The source API or an upstream dependency is temporarily unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 503 error","value":{"ok":false,"error":{"code":"service_unavailable","message":"The service is temporarily unavailable."}}}}}}},"504":{"description":"Upstream timeout. The upstream source did not return within the source API timeout window.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 504 error","value":{"ok":false,"error":{"code":"upstream_timeout","message":"The upstream source timed out."}}}}}}}},"x-bfin-endpoint-id":"www.proxies.core-api.v1.news.stories","operationId":"bfin_get_news_stories","description":"Returns stories with headline, timestamp, symbol, and source fields where available.","tags":["News"],"x-source-api":"bfin","x-source-name":"Barchart.com","x-source-upstream":"barchart.com","x-docs-example-url":"https://api.bfin.bluedoor.sh/v1/news/stories","x-docs-example-status":200,"x-docs-captured-at":"2026-06-07T01:33:00.352Z"}},"/v1/news/story":{"get":{"summary":"Story","parameters":[{"name":"refresh","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"x-bfin-contact","in":"header","required":false,"schema":{"type":"string","format":"email"},"description":"Optional contact email for higher public rate limits and support diagnostics."},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","example":"Bearer <key>"},"description":"Optional API-key authorization for higher-volume access tiers."}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/bfin_get_news_storyResponse"},"examples":{"live":{"summary":"Live response","value":{"meta":{"provider":"barchart","endpoint":"www.proxies.core-api.v1.news.story","family":"news","cache":"miss","ttl_seconds":300,"stale_seconds":1800,"generated_at":"2026-06-07T01:33:00.836Z","route":"news_story"},"data":{"count":1,"total":3,"data":[{"id":"1673534","title":"Jobs, Earnings and Other Key Things to Watch this Week","content":"<p>Markets enter a big week following last week's Federal Reserve meeting and mega-cap technology earnings convergence, with focus now shifting to Friday's April jobs report at 8:30am that will provide insights into labor market health amid geopolitical uncertainties and energy-driven economic pressures. </p><p>The emp...","canonicalUrl":"https://www.barchart.com/story/news/1673534/jobs-earnings-and-other-key-things-to-watch-this-week","raw":{"id":"1673534","title":"Jobs, Earnings and Other Key Things to Watch this Week","content":"<p>Markets enter a big week following last week's Federal Reserve meeting and mega-cap technology earnings convergence, with focus now shifting to Friday's April jobs report at 8:30am that will provide insights into labor market health amid geopolitical uncertainties and energy-driven economic pressures. </p><p>The emp...","canonicalUrl":"https://www.barchart.com/story/news/1673534/jobs-earnings-and-other-key-things-to-watch-this-week"}}]}}}}}}},"400":{"description":"Bad request. A required parameter is missing, malformed, or outside the supported range.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 400 error","value":{"ok":false,"error":{"code":"bad_request","message":"Required query parameter is missing or invalid."}}}}}}},"401":{"description":"Unauthorized. API-key authenticated tiers use an Authorization bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 401 error","value":{"ok":false,"error":{"code":"unauthorized","message":"A valid API key is required for this tier."}}}}}}},"404":{"description":"Not found. The requested route, resource, or symbol could not be resolved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 404 error","value":{"ok":false,"error":{"code":"not_found","message":"The requested resource was not found."}}}}}}},"405":{"description":"Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 405 error","value":{"ok":false,"error":{"code":"method_not_allowed","message":"This route does not support the requested HTTP method."}}}}}}},"429":{"description":"Rate limited. Retry after the limit reset or include the documented contact/API-key headers.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 429 error","value":{"ok":false,"error":{"code":"rate_limited","message":"Too many requests. Retry after the rate-limit reset."}}}}}}},"502":{"description":"Upstream source error. The source service rejected or failed the upstream request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 502 error","value":{"ok":false,"error":{"code":"upstream_error","message":"The upstream source returned an error."}}}}}}},"503":{"description":"Service unavailable. The source API or an upstream dependency is temporarily unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 503 error","value":{"ok":false,"error":{"code":"service_unavailable","message":"The service is temporarily unavailable."}}}}}}},"504":{"description":"Upstream timeout. The upstream source did not return within the source API timeout window.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 504 error","value":{"ok":false,"error":{"code":"upstream_timeout","message":"The upstream source timed out."}}}}}}}},"x-bfin-endpoint-id":"www.proxies.core-api.v1.news.story","operationId":"bfin_get_news_story","description":"Returns story with headline, timestamp, symbol, and source fields where available.","tags":["News"],"x-source-api":"bfin","x-source-name":"Barchart.com","x-source-upstream":"barchart.com","x-docs-example-url":"https://api.bfin.bluedoor.sh/v1/news/story","x-docs-example-status":200,"x-docs-captured-at":"2026-06-07T01:33:01.082Z"}},"/v1/options/flow":{"get":{"summary":"Flow","parameters":[{"name":"refresh","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"symbol","in":"query","required":false,"schema":{"type":"string"},"example":"AAPL","description":"Query parameter `symbol`."},{"name":"x-bfin-contact","in":"header","required":false,"schema":{"type":"string","format":"email"},"description":"Optional contact email for higher public rate limits and support diagnostics."},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","example":"Bearer <key>"},"description":"Optional API-key authorization for higher-volume access tiers."}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/bfin_get_options_flowResponse"},"examples":{"live":{"summary":"Live response","value":{"meta":{"provider":"barchart","endpoint":"www.proxies.core-api.v1.options.flow","family":"options-flow","cache":"miss","ttl_seconds":30,"stale_seconds":300,"generated_at":"2026-06-07T01:33:01.632Z","route":"options_flow"},"data":{"count":20,"total":200,"data":[{"symbol":"AAPL|20260618|300.00C","baseSymbol":"AAPL","expirationDate":"06/18/26","strikePrice":"300.00","volume":"11,615","openInterest":"36,296","lastPrice":"309.74","tradeTime":"06/05/26 14:49:31","raw":{"symbol":"AAPL|20260618|300.00C","baseSymbol":"AAPL","expirationDate":"2026-06-18T16:30:00-05:00","strikePrice":300,"volume":11615,"openInterest":36296,"lastPrice":309.74,"tradeTime":1780685371}},{"symbol":"AAPL|20260918|265.00C","baseSymbol":"AAPL","expirationDate":"09/18/26","strikePrice":"265.00","volume":"1,051","openInterest":"5,539","lastPrice":"313.42","tradeTime":"06/05/26 09:32:44","raw":{"symbol":"AAPL|20260918|265.00C","baseSymbol":"AAPL","expirationDate":"2026-09-18T16:30:00-05:00","strikePrice":265,"volume":1051,"openInterest":5539,"lastPrice":313.42,"tradeTime":1780666364}},{"symbol":"AAPL|20260918|265.00C","baseSymbol":"AAPL","expirationDate":"09/18/26","strikePrice":"265.00","volume":"2,052","openInterest":"5,539","lastPrice":"313.83","tradeTime":"06/05/26 09:40:45","raw":{"symbol":"AAPL|20260918|265.00C","baseSymbol":"AAPL","expirationDate":"2026-09-18T16:30:00-05:00","strikePrice":265,"volume":2052,"openInterest":5539,"lastPrice":313.83,"tradeTime":1780666845}}]}}}}}}},"400":{"description":"Bad request. A required parameter is missing, malformed, or outside the supported range.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 400 error","value":{"ok":false,"error":{"code":"bad_request","message":"Required query parameter is missing or invalid."}}}}}}},"401":{"description":"Unauthorized. API-key authenticated tiers use an Authorization bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 401 error","value":{"ok":false,"error":{"code":"unauthorized","message":"A valid API key is required for this tier."}}}}}}},"404":{"description":"Not found. The requested route, resource, or symbol could not be resolved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 404 error","value":{"ok":false,"error":{"code":"not_found","message":"The requested resource was not found."}}}}}}},"405":{"description":"Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 405 error","value":{"ok":false,"error":{"code":"method_not_allowed","message":"This route does not support the requested HTTP method."}}}}}}},"429":{"description":"Rate limited. Retry after the limit reset or include the documented contact/API-key headers.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 429 error","value":{"ok":false,"error":{"code":"rate_limited","message":"Too many requests. Retry after the rate-limit reset."}}}}}}},"502":{"description":"Upstream source error. The source service rejected or failed the upstream request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 502 error","value":{"ok":false,"error":{"code":"upstream_error","message":"The upstream source returned an error."}}}}}}},"503":{"description":"Service unavailable. The source API or an upstream dependency is temporarily unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 503 error","value":{"ok":false,"error":{"code":"service_unavailable","message":"The service is temporarily unavailable."}}}}}}},"504":{"description":"Upstream timeout. The upstream source did not return within the source API timeout window.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 504 error","value":{"ok":false,"error":{"code":"upstream_timeout","message":"The upstream source timed out."}}}}}}}},"x-bfin-endpoint-id":"www.proxies.core-api.v1.options.flow","operationId":"bfin_get_options_flow","description":"Returns flow with contract, chain, volume, open-interest, or strategy fields where available.","tags":["Options"],"x-source-api":"bfin","x-source-name":"Barchart.com","x-source-upstream":"barchart.com","x-docs-example-url":"https://api.bfin.bluedoor.sh/v1/options/flow?symbol=AAPL","x-docs-example-status":200,"x-docs-captured-at":"2026-06-07T01:33:01.918Z"}},"/v1/raw/{endpointId}":{"get":{"summary":"Raw endpoint","parameters":[{"name":"endpointId","in":"path","required":true,"schema":{"type":"string"}},{"name":"x-bfin-contact","in":"header","required":false,"schema":{"type":"string","format":"email"},"description":"Optional contact email for higher public rate limits and support diagnostics."},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","example":"Bearer <key>"},"description":"Optional API-key authorization for higher-volume access tiers."}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/bfin_get_raw_endpointidResponse"},"examples":{"live":{"summary":"Live response","value":{"meta":{"provider":"barchart","endpoint":"instruments-prod.exchanges","family":"exchanges","cache":"hit","ttl_seconds":86400,"stale_seconds":86400,"generated_at":"2026-06-07T00:11:46.773Z","route":"exchanges"},"data":[{"id":"AGC_PRICES","display":"AGC_PRICES","description":"Black Sea Grain Prices","frequency":1,"delay":15,"timezoneLocal":"America/Chicago","timezoneDdf":"America/Chicago","category":"Cash Prices"},{"id":"AGIDX_B_COU","display":"AG IDX Cou Basis","description":"AG Index Basis (County)","frequency":13,"delay":15,"timezoneLocal":"America/Chicago","timezoneDdf":"America/Chicago","category":"Indexes"},{"id":"AGIDX_B_CRD","display":"AG IDX CRD Basis","description":"AG Index Basis (Crop Reporting District)","frequency":13,"delay":15,"timezoneLocal":"America/Chicago","timezoneDdf":"America/Chicago","category":"Indexes"}]}}}}}},"400":{"description":"Bad request. A required parameter is missing, malformed, or outside the supported range.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 400 error","value":{"ok":false,"error":{"code":"bad_request","message":"Required query parameter is missing or invalid."}}}}}}},"401":{"description":"Unauthorized. API-key authenticated tiers use an Authorization bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 401 error","value":{"ok":false,"error":{"code":"unauthorized","message":"A valid API key is required for this tier."}}}}}}},"404":{"description":"Not found. The requested route, resource, or symbol could not be resolved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 404 error","value":{"ok":false,"error":{"code":"not_found","message":"The requested resource was not found."}}}}}}},"405":{"description":"Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 405 error","value":{"ok":false,"error":{"code":"method_not_allowed","message":"This route does not support the requested HTTP method."}}}}}}},"429":{"description":"Rate limited. Retry after the limit reset or include the documented contact/API-key headers.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 429 error","value":{"ok":false,"error":{"code":"rate_limited","message":"Too many requests. Retry after the rate-limit reset."}}}}}}},"502":{"description":"Upstream source error. The source service rejected or failed the upstream request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 502 error","value":{"ok":false,"error":{"code":"upstream_error","message":"The upstream source returned an error."}}}}}}},"503":{"description":"Service unavailable. The source API or an upstream dependency is temporarily unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 503 error","value":{"ok":false,"error":{"code":"service_unavailable","message":"The service is temporarily unavailable."}}}}}}},"504":{"description":"Upstream timeout. The upstream source did not return within the source API timeout window.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 504 error","value":{"ok":false,"error":{"code":"upstream_timeout","message":"The upstream source timed out."}}}}}}}},"operationId":"bfin_get_raw_endpointid","description":"Returns raw endpoint with source-native fields and identifiers.","x-source-api":"bfin","x-source-name":"Barchart.com","x-source-upstream":"barchart.com","x-docs-example-url":"https://api.bfin.bluedoor.sh/v1/raw/instruments-prod.exchanges","x-docs-example-status":200,"x-docs-captured-at":"2026-06-07T01:33:02.158Z"}},"/v1/strategies/top":{"get":{"summary":"Top strategies","parameters":[{"name":"refresh","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"x-bfin-contact","in":"header","required":false,"schema":{"type":"string","format":"email"},"description":"Optional contact email for higher public rate limits and support diagnostics."},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","example":"Bearer <key>"},"description":"Optional API-key authorization for higher-volume access tiers."}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/bfin_get_strategies_topResponse"},"examples":{"live":{"summary":"Live response","value":{"meta":{"provider":"barchart","endpoint":"www.proxies.core-api.v1.trading-strategies.top","family":"strategies","cache":"hit","ttl_seconds":600,"stale_seconds":1800,"generated_at":"2026-06-07T01:25:57.394Z","route":"strategies_top"},"data":{"count":10,"total":222,"data":[{"symbol":"AAPL","signalName":"50-150 Day MA Crossover","entryDate":"05/19/26","entryPrice":"298.97","lastPrice":"307.34","priceChange":"-3.89","percentChange":"+447.64%","raw":{"symbol":"AAPL","signalName":"50-150 Day MA Crossover","entryDate":"2026-05-19","entryPrice":298.97,"lastPrice":307.34,"priceChange":-3.89,"percentChange":4.4764}},{"symbol":"AAPL","signalName":"50-100 Day MA Crossover","entryDate":"05/14/26","entryPrice":"298.21","lastPrice":"307.34","priceChange":"-3.89","percentChange":"+432.90%","raw":{"symbol":"AAPL","signalName":"50-100 Day MA Crossover","entryDate":"2026-05-14","entryPrice":298.21,"lastPrice":307.34,"priceChange":-3.89,"percentChange":4.329}},{"symbol":"AAPL","signalName":"20-100 Day MA Crossover","entryDate":"04/29/26","entryPrice":"270.17","lastPrice":"307.34","priceChange":"-3.89","percentChange":"+380.24%","raw":{"symbol":"AAPL","signalName":"20-100 Day MA Crossover","entryDate":"2026-04-29","entryPrice":270.17,"lastPrice":307.34,"priceChange":-3.89,"percentChange":3.8024}}]}}}}}}},"400":{"description":"Bad request. A required parameter is missing, malformed, or outside the supported range.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 400 error","value":{"ok":false,"error":{"code":"bad_request","message":"Required query parameter is missing or invalid."}}}}}}},"401":{"description":"Unauthorized. API-key authenticated tiers use an Authorization bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 401 error","value":{"ok":false,"error":{"code":"unauthorized","message":"A valid API key is required for this tier."}}}}}}},"404":{"description":"Not found. The requested route, resource, or symbol could not be resolved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 404 error","value":{"ok":false,"error":{"code":"not_found","message":"The requested resource was not found."}}}}}}},"405":{"description":"Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 405 error","value":{"ok":false,"error":{"code":"method_not_allowed","message":"This route does not support the requested HTTP method."}}}}}}},"429":{"description":"Rate limited. Retry after the limit reset or include the documented contact/API-key headers.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 429 error","value":{"ok":false,"error":{"code":"rate_limited","message":"Too many requests. Retry after the rate-limit reset."}}}}}}},"502":{"description":"Upstream source error. The source service rejected or failed the upstream request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 502 error","value":{"ok":false,"error":{"code":"upstream_error","message":"The upstream source returned an error."}}}}}}},"503":{"description":"Service unavailable. The source API or an upstream dependency is temporarily unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 503 error","value":{"ok":false,"error":{"code":"service_unavailable","message":"The service is temporarily unavailable."}}}}}}},"504":{"description":"Upstream timeout. The upstream source did not return within the source API timeout window.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 504 error","value":{"ok":false,"error":{"code":"upstream_timeout","message":"The upstream source timed out."}}}}}}}},"x-bfin-endpoint-id":"www.proxies.core-api.v1.trading-strategies.top","operationId":"bfin_get_strategies_top","description":"Returns top strategies with source-native fields and identifiers.","x-source-api":"bfin","x-source-name":"Barchart.com","x-source-upstream":"barchart.com","x-docs-example-url":"https://api.bfin.bluedoor.sh/v1/strategies/top","x-docs-example-status":200,"x-docs-captured-at":"2026-06-07T01:33:02.516Z"}},"/v1/options/strategies/{strategy_slug}":{"get":{"summary":"Strategy screen","parameters":[{"name":"strategy_slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"refresh","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"x-bfin-contact","in":"header","required":false,"schema":{"type":"string","format":"email"},"description":"Optional contact email for higher public rate limits and support diagnostics."},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","example":"Bearer <key>"},"description":"Optional API-key authorization for higher-volume access tiers."}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/bfin_get_options_strategies_strategy_slugResponse"},"examples":{"live":{"summary":"Live response","value":{"meta":{"provider":"barchart","endpoint":"www.proxies.core-api.v1.options.<strategy_slug>","family":"options","cache":"miss","ttl_seconds":60,"stale_seconds":600,"generated_at":"2026-06-07T01:33:05.963Z","route":"options_strategy"},"data":{"count":10,"total":215519,"data":[{"symbol":"$DJX|20260618|505.00C","baseSymbol":"$DJX","baseLastPrice":"5.08","expirationDate":"06/18/26","daysToExpiration":"12","strike":"505.00C","breakEvenBid":"1.08","percentToBreakEvenBid":"-78.74%","potentialReturn":"46,659.3%","flatAnnual":"11,265.4%","raw":{"symbol":"$DJX|20260618|505.00C","baseSymbol":"$DJX","baseLastPrice":5.08,"expirationDate":"2026-06-18","daysToExpiration":12,"strike":505,"breakEvenBid":1.08,"percentToBreakEvenBid":-78.740157480315,"potentialReturn":466.593,"flatAnnual":112.654}},{"symbol":"^USDCAD|20260717|138.50C","baseSymbol":"^USDCAD","baseLastPrice":"1.39407","expirationDate":"07/17/26","daysToExpiration":"42","strike":"138.50C","breakEvenBid":"0.27407","percentToBreakEvenBid":"-80.34%","potentialReturn":"50,434.5%","flatAnnual":"3,551.4%","raw":{"symbol":"^USDCAD|20260717|138.50C","baseSymbol":"^USDCAD","baseLastPrice":1.39407,"expirationDate":"2026-07-17","daysToExpiration":42,"strike":138.5,"breakEvenBid":0.27407,"percentToBreakEvenBid":-80.340298550288,"potentialReturn":504.345,"flatAnnual":35.514}},{"symbol":"$DJX|20260612|520.00C","baseSymbol":"$DJX","baseLastPrice":"5.08","expirationDate":"06/12/26","daysToExpiration":"6","strike":"520.00C","breakEvenBid":"4.18","percentToBreakEvenBid":"-17.72%","potentialReturn":"12,340.2%","flatAnnual":"1,309.8%","raw":{"symbol":"$DJX|20260612|520.00C","baseSymbol":"$DJX","baseLastPrice":5.08,"expirationDate":"2026-06-12","daysToExpiration":6,"strike":520,"breakEvenBid":4.18,"percentToBreakEvenBid":-17.716535433071,"potentialReturn":123.402,"flatAnnual":13.0981}}]}}}}}}},"400":{"description":"Bad request. A required parameter is missing, malformed, or outside the supported range.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 400 error","value":{"ok":false,"error":{"code":"bad_request","message":"Required query parameter is missing or invalid."}}}}}}},"401":{"description":"Unauthorized. API-key authenticated tiers use an Authorization bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 401 error","value":{"ok":false,"error":{"code":"unauthorized","message":"A valid API key is required for this tier."}}}}}}},"404":{"description":"Not found. The requested route, resource, or symbol could not be resolved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 404 error","value":{"ok":false,"error":{"code":"not_found","message":"The requested resource was not found."}}}}}}},"405":{"description":"Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 405 error","value":{"ok":false,"error":{"code":"method_not_allowed","message":"This route does not support the requested HTTP method."}}}}}}},"429":{"description":"Rate limited. Retry after the limit reset or include the documented contact/API-key headers.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 429 error","value":{"ok":false,"error":{"code":"rate_limited","message":"Too many requests. Retry after the rate-limit reset."}}}}}}},"502":{"description":"Upstream source error. The source service rejected or failed the upstream request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 502 error","value":{"ok":false,"error":{"code":"upstream_error","message":"The upstream source returned an error."}}}}}}},"503":{"description":"Service unavailable. The source API or an upstream dependency is temporarily unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 503 error","value":{"ok":false,"error":{"code":"service_unavailable","message":"The service is temporarily unavailable."}}}}}}},"504":{"description":"Upstream timeout. The upstream source did not return within the source API timeout window.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 504 error","value":{"ok":false,"error":{"code":"upstream_timeout","message":"The upstream source timed out."}}}}}}}},"x-bfin-endpoint-id":"www.proxies.core-api.v1.options.<strategy_slug>","operationId":"bfin_get_options_strategies_strategy_slug","description":"Returns strategy screen with contract, chain, volume, open-interest, or strategy fields where available.","tags":["Options"],"x-source-api":"bfin","x-source-name":"Barchart.com","x-source-upstream":"barchart.com","x-docs-example-url":"https://api.bfin.bluedoor.sh/v1/options/strategies/covered-calls","x-docs-example-status":200,"x-docs-captured-at":"2026-06-07T01:33:06.205Z"}},"/v1/quote/{symbol}/corporate-actions":{"get":{"summary":"Corporate actions","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string"}},{"name":"refresh","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"x-bfin-contact","in":"header","required":false,"schema":{"type":"string","format":"email"},"description":"Optional contact email for higher public rate limits and support diagnostics."},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","example":"Bearer <key>"},"description":"Optional API-key authorization for higher-volume access tiers."}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/bfin_get_quote_symbol_corporate_actionsResponse"},"examples":{"live":{"summary":"Live response","value":{"meta":{"provider":"barchart","endpoint":"www.proxies.core-api.v1.corporateActions","family":"corporate-actions","cache":"hit","ttl_seconds":1800,"stale_seconds":3600,"generated_at":"2026-06-07T01:26:01.787Z","route":"quote_corporate_actions"},"data":{"count":211,"total":3,"data":[{"eventType":"Dividend","raw":{"eventType":"Dividend"}},{"eventType":"Split","raw":{"eventType":"Split"}},{"eventType":"Dividend","raw":{"eventType":"Dividend"}}]}}}}}}},"400":{"description":"Bad request. A required parameter is missing, malformed, or outside the supported range.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 400 error","value":{"ok":false,"error":{"code":"bad_request","message":"Required query parameter is missing or invalid."}}}}}}},"401":{"description":"Unauthorized. API-key authenticated tiers use an Authorization bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 401 error","value":{"ok":false,"error":{"code":"unauthorized","message":"A valid API key is required for this tier."}}}}}}},"404":{"description":"Not found. The requested route, resource, or symbol could not be resolved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 404 error","value":{"ok":false,"error":{"code":"not_found","message":"The requested resource was not found."}}}}}}},"405":{"description":"Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 405 error","value":{"ok":false,"error":{"code":"method_not_allowed","message":"This route does not support the requested HTTP method."}}}}}}},"429":{"description":"Rate limited. Retry after the limit reset or include the documented contact/API-key headers.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 429 error","value":{"ok":false,"error":{"code":"rate_limited","message":"Too many requests. Retry after the rate-limit reset."}}}}}}},"502":{"description":"Upstream source error. The source service rejected or failed the upstream request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 502 error","value":{"ok":false,"error":{"code":"upstream_error","message":"The upstream source returned an error."}}}}}}},"503":{"description":"Service unavailable. The source API or an upstream dependency is temporarily unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 503 error","value":{"ok":false,"error":{"code":"service_unavailable","message":"The service is temporarily unavailable."}}}}}}},"504":{"description":"Upstream timeout. The upstream source did not return within the source API timeout window.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 504 error","value":{"ok":false,"error":{"code":"upstream_timeout","message":"The upstream source timed out."}}}}}}}},"x-bfin-endpoint-id":"www.proxies.core-api.v1.corporateActions","operationId":"bfin_get_quote_symbol_corporate_actions","description":"Returns corporate actions with source-native price, change, volume, and instrument fields.","tags":["Quotes"],"x-source-api":"bfin","x-source-name":"Barchart.com","x-source-upstream":"barchart.com","x-docs-example-url":"https://api.bfin.bluedoor.sh/v1/quote/AAPL/corporate-actions","x-docs-example-status":200,"x-docs-captured-at":"2026-06-07T01:33:06.569Z"}},"/v1/quote/{symbol}/historical":{"get":{"summary":"Historical bars","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string"}},{"name":"refresh","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"x-bfin-contact","in":"header","required":false,"schema":{"type":"string","format":"email"},"description":"Optional contact email for higher public rate limits and support diagnostics."},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","example":"Bearer <key>"},"description":"Optional API-key authorization for higher-volume access tiers."}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/bfin_get_quote_symbol_historicalResponse"},"examples":{"live":{"summary":"Live response","value":{"meta":{"provider":"barchart","endpoint":"www.proxies.core-api.v1.historical.get","family":"history","cache":"miss","ttl_seconds":60,"stale_seconds":600,"generated_at":"2026-06-07T01:33:07.140Z","route":"quote_historical"},"data":{"count":30,"total":3,"data":[{"tradeTime":"06/05/26 00:00:00","openPrice":"312.86","highPrice":"315.17","lowPrice":"307.15","lastPrice":"307.34","volume":"65,310,500","raw":{"tradeTime":"2026-06-05","openPrice":312.86,"highPrice":315.17,"lowPrice":307.15,"lastPrice":307.34,"volume":65310500}},{"tradeTime":"06/04/26 00:00:00","openPrice":"313.23","highPrice":"313.54","lowPrice":"309.65","lastPrice":"311.23","volume":"44,869,100","raw":{"tradeTime":"2026-06-04","openPrice":313.23,"highPrice":313.54,"lowPrice":309.65,"lastPrice":311.23,"volume":44869100}},{"tradeTime":"06/03/26 00:00:00","openPrice":"314.17","highPrice":"316.94","lowPrice":"308.85","lastPrice":"310.26","volume":"50,836,700","raw":{"tradeTime":"2026-06-03","openPrice":314.17,"highPrice":316.94,"lowPrice":308.85,"lastPrice":310.26,"volume":50836700}}]}}}}}}},"400":{"description":"Bad request. A required parameter is missing, malformed, or outside the supported range.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 400 error","value":{"ok":false,"error":{"code":"bad_request","message":"Required query parameter is missing or invalid."}}}}}}},"401":{"description":"Unauthorized. API-key authenticated tiers use an Authorization bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 401 error","value":{"ok":false,"error":{"code":"unauthorized","message":"A valid API key is required for this tier."}}}}}}},"404":{"description":"Not found. The requested route, resource, or symbol could not be resolved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 404 error","value":{"ok":false,"error":{"code":"not_found","message":"The requested resource was not found."}}}}}}},"405":{"description":"Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 405 error","value":{"ok":false,"error":{"code":"method_not_allowed","message":"This route does not support the requested HTTP method."}}}}}}},"429":{"description":"Rate limited. Retry after the limit reset or include the documented contact/API-key headers.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 429 error","value":{"ok":false,"error":{"code":"rate_limited","message":"Too many requests. Retry after the rate-limit reset."}}}}}}},"502":{"description":"Upstream source error. The source service rejected or failed the upstream request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 502 error","value":{"ok":false,"error":{"code":"upstream_error","message":"The upstream source returned an error."}}}}}}},"503":{"description":"Service unavailable. The source API or an upstream dependency is temporarily unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 503 error","value":{"ok":false,"error":{"code":"service_unavailable","message":"The service is temporarily unavailable."}}}}}}},"504":{"description":"Upstream timeout. The upstream source did not return within the source API timeout window.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 504 error","value":{"ok":false,"error":{"code":"upstream_timeout","message":"The upstream source timed out."}}}}}}}},"x-bfin-endpoint-id":"www.proxies.core-api.v1.historical.get","operationId":"bfin_get_quote_symbol_historical","description":"Returns historical bars with source-native price, change, volume, and instrument fields.","tags":["Quotes"],"x-source-api":"bfin","x-source-name":"Barchart.com","x-source-upstream":"barchart.com","x-docs-example-url":"https://api.bfin.bluedoor.sh/v1/quote/AAPL/historical","x-docs-example-status":200,"x-docs-captured-at":"2026-06-07T01:33:07.386Z"}},"/v1/quote/{symbol}/historical-volatility":{"get":{"summary":"Historical volatility","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string"}},{"name":"refresh","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"x-bfin-contact","in":"header","required":false,"schema":{"type":"string","format":"email"},"description":"Optional contact email for higher public rate limits and support diagnostics."},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","example":"Bearer <key>"},"description":"Optional API-key authorization for higher-volume access tiers."}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/bfin_get_quote_symbol_historical_volatilityResponse"},"examples":{"live":{"summary":"Live response","value":{"meta":{"provider":"barchart","endpoint":"www.proxies.core-api.v1.historical-volatility","family":"history","cache":"miss","ttl_seconds":60,"stale_seconds":600,"generated_at":"2026-06-07T01:33:07.920Z","route":"quote_historical_volatility"},"data":{"count":30,"total":3,"data":[{"volatility":"N/A","tradeTime":"2026-04-24","raw":{"volatility":null,"tradeTime":"2026-04-24"}},{"volatility":"0.00","tradeTime":"2026-04-27","raw":{"volatility":0,"tradeTime":"2026-04-27"}},{"volatility":"0.00","tradeTime":"2026-04-28","raw":{"volatility":0,"tradeTime":"2026-04-28"}}]}}}}}}},"400":{"description":"Bad request. A required parameter is missing, malformed, or outside the supported range.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 400 error","value":{"ok":false,"error":{"code":"bad_request","message":"Required query parameter is missing or invalid."}}}}}}},"401":{"description":"Unauthorized. API-key authenticated tiers use an Authorization bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 401 error","value":{"ok":false,"error":{"code":"unauthorized","message":"A valid API key is required for this tier."}}}}}}},"404":{"description":"Not found. The requested route, resource, or symbol could not be resolved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 404 error","value":{"ok":false,"error":{"code":"not_found","message":"The requested resource was not found."}}}}}}},"405":{"description":"Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 405 error","value":{"ok":false,"error":{"code":"method_not_allowed","message":"This route does not support the requested HTTP method."}}}}}}},"429":{"description":"Rate limited. Retry after the limit reset or include the documented contact/API-key headers.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 429 error","value":{"ok":false,"error":{"code":"rate_limited","message":"Too many requests. Retry after the rate-limit reset."}}}}}}},"502":{"description":"Upstream source error. The source service rejected or failed the upstream request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 502 error","value":{"ok":false,"error":{"code":"upstream_error","message":"The upstream source returned an error."}}}}}}},"503":{"description":"Service unavailable. The source API or an upstream dependency is temporarily unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 503 error","value":{"ok":false,"error":{"code":"service_unavailable","message":"The service is temporarily unavailable."}}}}}}},"504":{"description":"Upstream timeout. The upstream source did not return within the source API timeout window.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 504 error","value":{"ok":false,"error":{"code":"upstream_timeout","message":"The upstream source timed out."}}}}}}}},"x-bfin-endpoint-id":"www.proxies.core-api.v1.historical-volatility","operationId":"bfin_get_quote_symbol_historical_volatility","description":"Returns historical volatility with source-native price, change, volume, and instrument fields.","tags":["Quotes"],"x-source-api":"bfin","x-source-name":"Barchart.com","x-source-upstream":"barchart.com","x-docs-example-url":"https://api.bfin.bluedoor.sh/v1/quote/AAPL/historical-volatility","x-docs-example-status":200,"x-docs-captured-at":"2026-06-07T01:33:08.207Z"}},"/v1/quote/{symbol}/intraday":{"get":{"summary":"Intraday bars","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string"}},{"name":"refresh","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"x-bfin-contact","in":"header","required":false,"schema":{"type":"string","format":"email"},"description":"Optional contact email for higher public rate limits and support diagnostics."},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","example":"Bearer <key>"},"description":"Optional API-key authorization for higher-volume access tiers."}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/bfin_get_quote_symbol_intradayResponse"},"examples":{"live":{"summary":"Live response","value":{"meta":{"provider":"barchart","endpoint":"www.proxies.timeseries.historical.queryminutes_ashx","family":"history","cache":"miss","ttl_seconds":60,"stale_seconds":600,"generated_at":"2026-06-07T01:33:08.715Z","route":"quote_intraday"},"data":"2026-05-01 09:30,1,278.855,281.75,278.37,281.4,2663170\n2026-05-01 09:31,1,281.4,282.77,280.525,281.075,1196060\n2026-05-01 09:32,1,281.055,283.25,280.85,283.02,958440\n2026-05-01 09:33,1,283,283.75,282.17,282.39,771027\n2026-05-01 09:34,1,282.43,282.82,280.61,280.75,568303\n2026-05-01 09:35,1,280.68,281.38,279.75,279.96,55..."}}}}}},"400":{"description":"Bad request. A required parameter is missing, malformed, or outside the supported range.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 400 error","value":{"ok":false,"error":{"code":"bad_request","message":"Required query parameter is missing or invalid."}}}}}}},"401":{"description":"Unauthorized. API-key authenticated tiers use an Authorization bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 401 error","value":{"ok":false,"error":{"code":"unauthorized","message":"A valid API key is required for this tier."}}}}}}},"404":{"description":"Not found. The requested route, resource, or symbol could not be resolved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 404 error","value":{"ok":false,"error":{"code":"not_found","message":"The requested resource was not found."}}}}}}},"405":{"description":"Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 405 error","value":{"ok":false,"error":{"code":"method_not_allowed","message":"This route does not support the requested HTTP method."}}}}}}},"429":{"description":"Rate limited. Retry after the limit reset or include the documented contact/API-key headers.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 429 error","value":{"ok":false,"error":{"code":"rate_limited","message":"Too many requests. Retry after the rate-limit reset."}}}}}}},"502":{"description":"Upstream source error. The source service rejected or failed the upstream request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 502 error","value":{"ok":false,"error":{"code":"upstream_error","message":"The upstream source returned an error."}}}}}}},"503":{"description":"Service unavailable. The source API or an upstream dependency is temporarily unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 503 error","value":{"ok":false,"error":{"code":"service_unavailable","message":"The service is temporarily unavailable."}}}}}}},"504":{"description":"Upstream timeout. The upstream source did not return within the source API timeout window.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 504 error","value":{"ok":false,"error":{"code":"upstream_timeout","message":"The upstream source timed out."}}}}}}}},"x-bfin-endpoint-id":"www.proxies.timeseries.historical.queryminutes_ashx","operationId":"bfin_get_quote_symbol_intraday","description":"Returns intraday bars with source-native price, change, volume, and instrument fields.","tags":["Quotes"],"x-source-api":"bfin","x-source-name":"Barchart.com","x-source-upstream":"barchart.com","x-docs-example-url":"https://api.bfin.bluedoor.sh/v1/quote/AAPL/intraday","x-docs-example-status":200,"x-docs-captured-at":"2026-06-07T01:33:08.986Z"}},"/v1/quote/{symbol}/options":{"get":{"summary":"Summary","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string"}},{"name":"refresh","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"x-bfin-contact","in":"header","required":false,"schema":{"type":"string","format":"email"},"description":"Optional contact email for higher public rate limits and support diagnostics."},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","example":"Bearer <key>"},"description":"Optional API-key authorization for higher-volume access tiers."}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/bfin_get_quote_symbol_optionsResponse"},"examples":{"live":{"summary":"Live response","value":{"meta":{"provider":"barchart","endpoint":"www.proxies.core-api.v1.options.get","family":"options","cache":"miss","ttl_seconds":60,"stale_seconds":600,"generated_at":"2026-06-07T01:33:09.560Z","route":"options_get"},"data":{"count":20,"total":3546,"data":[{"symbol":"AAPL|20280121|5.00C","baseSymbol":"AAPL","expirationDate":"01/21/28","strikePrice":"5.00","optionType":"Call","bidPrice":"300.75","askPrice":"304.70","lastPrice":"0.00","volume":"0","openInterest":"21","volatility":"180.36%","delta":"0.9975","raw":{"symbol":"AAPL|20280121|5.00C","baseSymbol":"AAPL","expirationDate":"2028-01-21","strikePrice":5,"optionType":"Call","bidPrice":300.75,"askPrice":304.7,"lastPrice":0,"volume":0,"openInterest":21,"volatility":1.8036,"delta":0.997511}},{"symbol":"AAPL|20271217|5.00P","baseSymbol":"AAPL","expirationDate":"12/17/27","strikePrice":"5.00","optionType":"Put","bidPrice":"0.00","askPrice":"0.35","lastPrice":"0.00","volume":"0","openInterest":"41","volatility":"145.73%","delta":"-0.0007","raw":{"symbol":"AAPL|20271217|5.00P","baseSymbol":"AAPL","expirationDate":"2027-12-17","strikePrice":5,"optionType":"Put","bidPrice":0,"askPrice":0.35,"lastPrice":0,"volume":0,"openInterest":41,"volatility":1.4573,"delta":-0.000654}},{"symbol":"AAPL|20270617|5.00C","baseSymbol":"AAPL","expirationDate":"06/17/27","strikePrice":"5.00","optionType":"Call","bidPrice":"300.75","askPrice":"304.65","lastPrice":"0.00","volume":"0","openInterest":"1","volatility":"216.41%","delta":"0.9979","raw":{"symbol":"AAPL|20270617|5.00C","baseSymbol":"AAPL","expirationDate":"2027-06-17","strikePrice":5,"optionType":"Call","bidPrice":300.75,"askPrice":304.65,"lastPrice":0,"volume":0,"openInterest":1,"volatility":2.1641,"delta":0.997942}}]}}}}}}},"400":{"description":"Bad request. A required parameter is missing, malformed, or outside the supported range.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 400 error","value":{"ok":false,"error":{"code":"bad_request","message":"Required query parameter is missing or invalid."}}}}}}},"401":{"description":"Unauthorized. API-key authenticated tiers use an Authorization bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 401 error","value":{"ok":false,"error":{"code":"unauthorized","message":"A valid API key is required for this tier."}}}}}}},"404":{"description":"Not found. The requested route, resource, or symbol could not be resolved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 404 error","value":{"ok":false,"error":{"code":"not_found","message":"The requested resource was not found."}}}}}}},"405":{"description":"Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 405 error","value":{"ok":false,"error":{"code":"method_not_allowed","message":"This route does not support the requested HTTP method."}}}}}}},"429":{"description":"Rate limited. Retry after the limit reset or include the documented contact/API-key headers.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 429 error","value":{"ok":false,"error":{"code":"rate_limited","message":"Too many requests. Retry after the rate-limit reset."}}}}}}},"502":{"description":"Upstream source error. The source service rejected or failed the upstream request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 502 error","value":{"ok":false,"error":{"code":"upstream_error","message":"The upstream source returned an error."}}}}}}},"503":{"description":"Service unavailable. The source API or an upstream dependency is temporarily unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 503 error","value":{"ok":false,"error":{"code":"service_unavailable","message":"The service is temporarily unavailable."}}}}}}},"504":{"description":"Upstream timeout. The upstream source did not return within the source API timeout window.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 504 error","value":{"ok":false,"error":{"code":"upstream_timeout","message":"The upstream source timed out."}}}}}}}},"x-bfin-endpoint-id":"www.proxies.core-api.v1.options.get","operationId":"bfin_get_quote_symbol_options","description":"Returns summary with contract, chain, volume, open-interest, or strategy fields where available.","tags":["Options"],"x-source-api":"bfin","x-source-name":"Barchart.com","x-source-upstream":"barchart.com","x-docs-example-url":"https://api.bfin.bluedoor.sh/v1/quote/AAPL/options","x-docs-example-status":200,"x-docs-captured-at":"2026-06-07T01:33:09.811Z"}},"/v1/quote/{symbol}/options/chain":{"get":{"summary":"Chain","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string"}},{"name":"refresh","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"x-bfin-contact","in":"header","required":false,"schema":{"type":"string","format":"email"},"description":"Optional contact email for higher public rate limits and support diagnostics."},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","example":"Bearer <key>"},"description":"Optional API-key authorization for higher-volume access tiers."}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/bfin_get_quote_symbol_options_chainResponse"},"examples":{"live":{"summary":"Live response","value":{"meta":{"provider":"barchart","endpoint":"www.proxies.core-api.v1.options.chain","family":"options","cache":"miss","ttl_seconds":60,"stale_seconds":600,"generated_at":"2026-06-07T01:33:11.999Z","route":"options_chain"},"data":{"count":72,"total":3,"data":[{"symbol":"AAPL|20260608|250.00C","baseSymbol":"AAPL","expirationDate":"06/08/26","strikePrice":"250.00","optionType":"Call","bidPrice":"55.65","askPrice":"59.55","lastPrice":"N/A","volume":"N/A","openInterest":"1","raw":{"symbol":"AAPL|20260608|250.00C","baseSymbol":"AAPL","expirationDate":"2026-06-08","strikePrice":250,"optionType":"Call","bidPrice":55.65,"askPrice":59.55,"lastPrice":0,"volume":null,"openInterest":1}},{"symbol":"AAPL|20260608|255.00C","baseSymbol":"AAPL","expirationDate":"06/08/26","strikePrice":"255.00","optionType":"Call","bidPrice":"50.70","askPrice":"54.55","lastPrice":"N/A","volume":"N/A","openInterest":"2","raw":{"symbol":"AAPL|20260608|255.00C","baseSymbol":"AAPL","expirationDate":"2026-06-08","strikePrice":255,"optionType":"Call","bidPrice":50.7,"askPrice":54.55,"lastPrice":0,"volume":null,"openInterest":2}},{"symbol":"AAPL|20260608|260.00C","baseSymbol":"AAPL","expirationDate":"06/08/26","strikePrice":"260.00","optionType":"Call","bidPrice":"45.70","askPrice":"49.55","lastPrice":"53.85","volume":"3","openInterest":"3","raw":{"symbol":"AAPL|20260608|260.00C","baseSymbol":"AAPL","expirationDate":"2026-06-08","strikePrice":260,"optionType":"Call","bidPrice":45.7,"askPrice":49.55,"lastPrice":53.85,"volume":3,"openInterest":3}}],"meta":{"expirations":["2026-06-08","2026-06-10","2026-06-12"],"isMonthly":{"2026-06-08":false,"2026-06-10":false,"2026-06-12":false,"2026-06-15":false,"2026-06-17":false,"2026-06-18":true,"2026-06-26":false,"2026-07-02":false,"2026-07-10":false,"2026-07-17":true,"2026-07-24":false,"2026-08-21":true,"2026-09-18":true,"2026-10-16":true,"2026-11-20":true,"2026-12-18":true,"2027-01-15":true,"2027-02-19":true,"2027-03-19":true,"2027-06-17":true,"2027-09-17":true,"2027-12-17":true,"2028-01-21":true,"2028-03-17":true,"2028-12-15":true}}}}}}}}},"400":{"description":"Bad request. A required parameter is missing, malformed, or outside the supported range.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 400 error","value":{"ok":false,"error":{"code":"bad_request","message":"Required query parameter is missing or invalid."}}}}}}},"401":{"description":"Unauthorized. API-key authenticated tiers use an Authorization bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 401 error","value":{"ok":false,"error":{"code":"unauthorized","message":"A valid API key is required for this tier."}}}}}}},"404":{"description":"Not found. The requested route, resource, or symbol could not be resolved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 404 error","value":{"ok":false,"error":{"code":"not_found","message":"The requested resource was not found."}}}}}}},"405":{"description":"Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 405 error","value":{"ok":false,"error":{"code":"method_not_allowed","message":"This route does not support the requested HTTP method."}}}}}}},"429":{"description":"Rate limited. Retry after the limit reset or include the documented contact/API-key headers.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 429 error","value":{"ok":false,"error":{"code":"rate_limited","message":"Too many requests. Retry after the rate-limit reset."}}}}}}},"502":{"description":"Upstream source error. The source service rejected or failed the upstream request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 502 error","value":{"ok":false,"error":{"code":"upstream_error","message":"The upstream source returned an error."}}}}}}},"503":{"description":"Service unavailable. The source API or an upstream dependency is temporarily unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 503 error","value":{"ok":false,"error":{"code":"service_unavailable","message":"The service is temporarily unavailable."}}}}}}},"504":{"description":"Upstream timeout. The upstream source did not return within the source API timeout window.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 504 error","value":{"ok":false,"error":{"code":"upstream_timeout","message":"The upstream source timed out."}}}}}}}},"x-bfin-endpoint-id":"www.proxies.core-api.v1.options.chain","operationId":"bfin_get_quote_symbol_options_chain","description":"Returns chain with contract, chain, volume, open-interest, or strategy fields where available.","tags":["Options"],"x-source-api":"bfin","x-source-name":"Barchart.com","x-source-upstream":"barchart.com","x-docs-example-url":"https://api.bfin.bluedoor.sh/v1/quote/AAPL/options/chain","x-docs-example-status":200,"x-docs-captured-at":"2026-06-07T01:33:12.304Z"}},"/v1/quote/{symbol}/options/delta":{"get":{"summary":"Delta buckets","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string"}},{"name":"refresh","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"x-bfin-contact","in":"header","required":false,"schema":{"type":"string","format":"email"},"description":"Optional contact email for higher public rate limits and support diagnostics."},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","example":"Bearer <key>"},"description":"Optional API-key authorization for higher-volume access tiers."}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/bfin_get_quote_symbol_options_deltaResponse"},"examples":{"live":{"summary":"Live response","value":{"meta":{"provider":"barchart","endpoint":"www.proxies.core-api.v1.options.delta.get","family":"options","cache":"miss","ttl_seconds":60,"stale_seconds":600,"generated_at":"2026-06-07T01:33:12.913Z","route":"options_delta"},"data":{"count":1,"data":{"2026-05-04":[{"date":"2026-05-04","delta50_both":0.097858184568934,"expiration":"2026-05-04"}]}}}}}}}},"400":{"description":"Bad request. A required parameter is missing, malformed, or outside the supported range.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 400 error","value":{"ok":false,"error":{"code":"bad_request","message":"Required query parameter is missing or invalid."}}}}}}},"401":{"description":"Unauthorized. API-key authenticated tiers use an Authorization bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 401 error","value":{"ok":false,"error":{"code":"unauthorized","message":"A valid API key is required for this tier."}}}}}}},"404":{"description":"Not found. The requested route, resource, or symbol could not be resolved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 404 error","value":{"ok":false,"error":{"code":"not_found","message":"The requested resource was not found."}}}}}}},"405":{"description":"Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 405 error","value":{"ok":false,"error":{"code":"method_not_allowed","message":"This route does not support the requested HTTP method."}}}}}}},"429":{"description":"Rate limited. Retry after the limit reset or include the documented contact/API-key headers.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 429 error","value":{"ok":false,"error":{"code":"rate_limited","message":"Too many requests. Retry after the rate-limit reset."}}}}}}},"502":{"description":"Upstream source error. The source service rejected or failed the upstream request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 502 error","value":{"ok":false,"error":{"code":"upstream_error","message":"The upstream source returned an error."}}}}}}},"503":{"description":"Service unavailable. The source API or an upstream dependency is temporarily unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 503 error","value":{"ok":false,"error":{"code":"service_unavailable","message":"The service is temporarily unavailable."}}}}}}},"504":{"description":"Upstream timeout. The upstream source did not return within the source API timeout window.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 504 error","value":{"ok":false,"error":{"code":"upstream_timeout","message":"The upstream source timed out."}}}}}}}},"x-bfin-endpoint-id":"www.proxies.core-api.v1.options.delta.get","operationId":"bfin_get_quote_symbol_options_delta","description":"Returns delta buckets with contract, chain, volume, open-interest, or strategy fields where available.","tags":["Options"],"x-source-api":"bfin","x-source-name":"Barchart.com","x-source-upstream":"barchart.com","x-docs-example-url":"https://api.bfin.bluedoor.sh/v1/quote/AAPL/options/delta","x-docs-example-status":200,"x-docs-captured-at":"2026-06-07T01:33:13.184Z"}},"/v1/quote/{symbol}/options/expirations":{"get":{"summary":"Expirations","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string"}},{"name":"refresh","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"x-bfin-contact","in":"header","required":false,"schema":{"type":"string","format":"email"},"description":"Optional contact email for higher public rate limits and support diagnostics."},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","example":"Bearer <key>"},"description":"Optional API-key authorization for higher-volume access tiers."}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/bfin_get_quote_symbol_options_expirationsResponse"},"examples":{"live":{"summary":"Live response","value":{"meta":{"provider":"barchart","endpoint":"www.proxies.core-api.v1.options-expirations.get","family":"options","cache":"miss","ttl_seconds":60,"stale_seconds":600,"generated_at":"2026-06-07T01:33:13.819Z","route":"options_expirations"},"data":{"count":25,"total":25,"data":[{"expirationDate":"06/08/26","expirationType":"weekly","daysToExpiration":"2","underlyingLastPrice":"307.34","impliedMove":"5.75","impliedMovePercent":"1.87%","raw":{"expirationDate":"2026-06-08","expirationType":"weekly","daysToExpiration":2,"underlyingLastPrice":307.34,"impliedMove":5.746,"impliedMovePercent":0.0187}},{"expirationDate":"06/10/26","expirationType":"weekly","daysToExpiration":"4","underlyingLastPrice":"307.34","impliedMove":"7.88","impliedMovePercent":"2.56%","raw":{"expirationDate":"2026-06-10","expirationType":"weekly","daysToExpiration":4,"underlyingLastPrice":307.34,"impliedMove":7.8795,"impliedMovePercent":0.0256}},{"expirationDate":"06/12/26","expirationType":"weekly","daysToExpiration":"6","underlyingLastPrice":"307.34","impliedMove":"8.97","impliedMovePercent":"2.92%","raw":{"expirationDate":"2026-06-12","expirationType":"weekly","daysToExpiration":6,"underlyingLastPrice":307.34,"impliedMove":8.9675,"impliedMovePercent":0.0292}}]}}}}}}},"400":{"description":"Bad request. A required parameter is missing, malformed, or outside the supported range.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 400 error","value":{"ok":false,"error":{"code":"bad_request","message":"Required query parameter is missing or invalid."}}}}}}},"401":{"description":"Unauthorized. API-key authenticated tiers use an Authorization bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 401 error","value":{"ok":false,"error":{"code":"unauthorized","message":"A valid API key is required for this tier."}}}}}}},"404":{"description":"Not found. The requested route, resource, or symbol could not be resolved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 404 error","value":{"ok":false,"error":{"code":"not_found","message":"The requested resource was not found."}}}}}}},"405":{"description":"Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 405 error","value":{"ok":false,"error":{"code":"method_not_allowed","message":"This route does not support the requested HTTP method."}}}}}}},"429":{"description":"Rate limited. Retry after the limit reset or include the documented contact/API-key headers.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 429 error","value":{"ok":false,"error":{"code":"rate_limited","message":"Too many requests. Retry after the rate-limit reset."}}}}}}},"502":{"description":"Upstream source error. The source service rejected or failed the upstream request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 502 error","value":{"ok":false,"error":{"code":"upstream_error","message":"The upstream source returned an error."}}}}}}},"503":{"description":"Service unavailable. The source API or an upstream dependency is temporarily unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 503 error","value":{"ok":false,"error":{"code":"service_unavailable","message":"The service is temporarily unavailable."}}}}}}},"504":{"description":"Upstream timeout. The upstream source did not return within the source API timeout window.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 504 error","value":{"ok":false,"error":{"code":"upstream_timeout","message":"The upstream source timed out."}}}}}}}},"x-bfin-endpoint-id":"www.proxies.core-api.v1.options-expirations.get","operationId":"bfin_get_quote_symbol_options_expirations","description":"Returns expirations with contract, chain, volume, open-interest, or strategy fields where available.","tags":["Options"],"x-source-api":"bfin","x-source-name":"Barchart.com","x-source-upstream":"barchart.com","x-docs-example-url":"https://api.bfin.bluedoor.sh/v1/quote/AAPL/options/expirations","x-docs-example-status":200,"x-docs-captured-at":"2026-06-07T01:33:14.091Z"}},"/v1/quote/{symbol}/options/historical":{"get":{"summary":"Historical chain","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string"}},{"name":"refresh","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"x-bfin-contact","in":"header","required":false,"schema":{"type":"string","format":"email"},"description":"Optional contact email for higher public rate limits and support diagnostics."},{"name":"authorization","in":"header","required":false,"schema":{"type":"string","example":"Bearer <key>"},"description":"Optional API-key authorization for higher-volume access tiers."}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/bfin_get_quote_symbol_options_historicalResponse"},"examples":{"live":{"summary":"Live response","value":{"meta":{"provider":"barchart","endpoint":"www.proxies.core-api.v1.options-historical.get","family":"options","cache":"miss","ttl_seconds":60,"stale_seconds":600,"generated_at":"2026-06-07T01:33:14.694Z","route":"options_historical"},"data":{"count":30,"total":1927,"data":[{"impliedVolatilityRank1y":"52.87%","impliedVolatilityPercentile1y":"47%","totalVolume":"1,872,274","totalOpenInterest":"5,271,199","historicalLastPrice":"307.34","date":"2026-06-05","raw":{"impliedVolatilityRank1y":52.868558646152,"impliedVolatilityPercentile1y":0.46613545816733,"totalVolume":1872274,"totalOpenInterest":5271199,"historicalLastPrice":307.34,"date":"2026-06-05"}},{"impliedVolatilityRank1y":"41.68%","impliedVolatilityPercentile1y":"29%","totalVolume":"634,253","totalOpenInterest":"5,168,723","historicalLastPrice":"311.23","date":"2026-06-04","raw":{"impliedVolatilityRank1y":41.684743111255,"impliedVolatilityPercentile1y":0.28685258964143,"totalVolume":634253,"totalOpenInterest":5168723,"historicalLastPrice":311.23,"date":"2026-06-04"}},{"impliedVolatilityRank1y":"47.36%","impliedVolatilityPercentile1y":"41%","totalVolume":"1,389,978","totalOpenInterest":"5,175,109","historicalLastPrice":"310.26","date":"2026-06-03","raw":{"impliedVolatilityRank1y":47.359941727978,"impliedVolatilityPercentile1y":0.41434262948207,"totalVolume":1389978,"totalOpenInterest":5175109,"historicalLastPrice":310.26,"date":"2026-06-03"}}]}}}}}}},"400":{"description":"Bad request. A required parameter is missing, malformed, or outside the supported range.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 400 error","value":{"ok":false,"error":{"code":"bad_request","message":"Required query parameter is missing or invalid."}}}}}}},"401":{"description":"Unauthorized. API-key authenticated tiers use an Authorization bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 401 error","value":{"ok":false,"error":{"code":"unauthorized","message":"A valid API key is required for this tier."}}}}}}},"404":{"description":"Not found. The requested route, resource, or symbol could not be resolved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 404 error","value":{"ok":false,"error":{"code":"not_found","message":"The requested resource was not found."}}}}}}},"405":{"description":"Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 405 error","value":{"ok":false,"error":{"code":"method_not_allowed","message":"This route does not support the requested HTTP method."}}}}}}},"429":{"description":"Rate limited. Retry after the limit reset or include the documented contact/API-key headers.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 429 error","value":{"ok":false,"error":{"code":"rate_limited","message":"Too many requests. Retry after the rate-limit reset."}}}}}}},"502":{"description":"Upstream source error. The source service rejected or failed the upstream request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 502 error","value":{"ok":false,"error":{"code":"upstream_error","message":"The upstream source returned an error."}}}}}}},"503":{"description":"Service unavailable. The source API or an upstream dependency is temporarily unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 503 error","value":{"ok":false,"error":{"code":"service_unavailable","message":"The service is temporarily unavailable."}}}}}}},"504":{"description":"Upstream timeout. The upstream source did not return within the source API timeout window.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"examples":{"default":{"summary":"HTTP 504 error","value":{"ok":false,"error":{"code":"upstream_timeout","message":"The upstream source timed out."}}}}}}}},"x-bfin-endpoint-id":"www.proxies.core-api.v1.options-historical.get","operationId":"bfin_get_quote_symbol_options_historical","description":"Returns historical chain with contract, chain, volume, open-interest, or strategy fields where available.","tags":["Options"],"x-source-api":"bfin","x-source-name":"Barchart.com","x-source-upstream":"barchart.com","x-docs-example-url":"https://api.bfin.bluedoor.sh/v1/quote/AAPL/options/historical","x-docs-example-status":200,"x-docs-captured-at":"2026-06-07T01:33:14.987Z"}}},"components":{"schemas":{"ErrorEnvelope":{"type":"object","additionalProperties":true,"properties":{"ok":{"type":"boolean","example":false},"error":{"type":"object","additionalProperties":true,"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"meta":{"type":"object","additionalProperties":true}}},"bfin_get_cotResponse":{"type":"object","additionalProperties":true,"properties":{"meta":{"type":"object","additionalProperties":true,"properties":{"provider":{"type":"string"},"endpoint":{"type":"string"},"family":{"type":"string"},"cache":{"type":"string"},"ttl_seconds":{"type":"integer"},"stale_seconds":{"type":"integer"},"generated_at":{"type":"string"},"route":{"type":"string"}},"required":["cache","endpoint","family","generated_at","provider","route","stale_seconds","ttl_seconds"]},"data":{"type":"object","additionalProperties":true,"properties":{"count":{"type":"integer"},"total":{"type":"integer"},"data":{"type":"object","additionalProperties":true,"properties":{"Grains":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"symbol":{"type":"string"},"symbolName":{"type":"string"},"category":{"type":"string"},"net52wHigh":{"type":"string"},"net52wLow":{"type":"string"},"history":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"date":{"type":"string"},"net":{"type":"string"},"isNewPositive":{"type":"boolean"},"isNewNegative":{"type":"boolean"},"is52wHigh":{"type":"boolean"},"is52wLow":{"type":"boolean"}},"required":["date","is52wHigh","is52wLow","isNewNegative","isNewPositive","net"]}}},"required":["category","history","net52wHigh","net52wLow","symbol","symbolName"]}},"Energies":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"symbol":{"type":"string"},"symbolName":{"type":"string"},"category":{"type":"string"},"net52wHigh":{"type":"string"},"net52wLow":{"type":"string"},"history":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"date":{"type":"string"},"net":{"type":"string"},"isNewPositive":{"type":"boolean"},"isNewNegative":{"type":"boolean"},"is52wHigh":{"type":"boolean"},"is52wLow":{"type":"boolean"}},"required":["date","is52wHigh","is52wLow","isNewNegative","isNewPositive","net"]}}},"required":["category","history","net52wHigh","net52wLow","symbol","symbolName"]}},"Meats":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"symbol":{"type":"string"},"symbolName":{"type":"string"},"category":{"type":"string"},"net52wHigh":{"type":"string"},"net52wLow":{"type":"string"},"history":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"date":{"type":"string"},"net":{"type":"string"},"isNewPositive":{"type":"boolean"},"isNewNegative":{"type":"boolean"},"is52wHigh":{"type":"boolean"},"is52wLow":{"type":"boolean"}},"required":["date","is52wHigh","is52wLow","isNewNegative","isNewPositive","net"]}}},"required":["category","history","net52wHigh","net52wLow","symbol","symbolName"]}},"Metals":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"symbol":{"type":"string"},"symbolName":{"type":"string"},"category":{"type":"string"},"net52wHigh":{"type":"string"},"net52wLow":{"type":"string"},"history":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"date":{"type":"string"},"net":{"type":"string"},"isNewPositive":{"type":"boolean"},"isNewNegative":{"type":"boolean"},"is52wHigh":{"type":"boolean"},"is52wLow":{"type":"boolean"}},"required":["date","is52wHigh","is52wLow","isNewNegative","isNewPositive","net"]}}},"required":["category","history","net52wHigh","net52wLow","symbol","symbolName"]}},"Softs":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"symbol":{"type":"string"},"symbolName":{"type":"string"},"category":{"type":"string"},"net52wHigh":{"type":"string"},"net52wLow":{"type":"string"},"history":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"date":{"type":"string"},"net":{"type":"string"},"isNewPositive":{"type":"boolean"},"isNewNegative":{"type":"boolean"},"is52wHigh":{"type":"boolean"},"is52wLow":{"type":"boolean"}},"required":["date","is52wHigh","is52wLow","isNewNegative","isNewPositive","net"]}}},"required":["category","history","net52wHigh","net52wLow","symbol","symbolName"]}},"Currencies":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"symbol":{"type":"string"},"symbolName":{"type":"string"},"category":{"type":"string"},"net52wHigh":{"type":"string"},"net52wLow":{"type":"string"},"history":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"date":{"type":"string"},"net":{"type":"string"},"isNewPositive":{"type":"boolean"},"isNewNegative":{"type":"boolean"},"is52wHigh":{"type":"boolean"},"is52wLow":{"type":"boolean"}},"required":["date","is52wHigh","is52wLow","isNewNegative","isNewPositive","net"]}}},"required":["category","history","net52wHigh","net52wLow","symbol","symbolName"]}},"Financials":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"symbol":{"type":"string"},"symbolName":{"type":"string"},"category":{"type":"string"},"net52wHigh":{"type":"string"},"net52wLow":{"type":"string"},"history":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"date":{"type":"string"},"net":{"type":"string"},"isNewPositive":{"type":"boolean"},"isNewNegative":{"type":"boolean"},"is52wHigh":{"type":"boolean"},"is52wLow":{"type":"boolean"}},"required":["date","is52wHigh","is52wLow","isNewNegative","isNewPositive","net"]}}},"required":["category","history","net52wHigh","net52wLow","symbol","symbolName"]}},"Indices":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"symbol":{"type":"string"},"symbolName":{"type":"string"},"category":{"type":"string"},"net52wHigh":{"type":"string"},"net52wLow":{"type":"string"},"history":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"date":{"type":"string"},"net":{"type":"string"},"isNewPositive":{"type":"boolean"},"isNewNegative":{"type":"boolean"},"is52wHigh":{"type":"boolean"},"is52wLow":{"type":"boolean"}},"required":["date","is52wHigh","is52wLow","isNewNegative","isNewPositive","net"]}}},"required":["category","history","net52wHigh","net52wLow","symbol","symbolName"]}}},"required":["Currencies","Energies","Financials","Grains","Indices","Meats","Metals","Softs"]},"meta":{"type":"object","additionalProperties":true,"properties":{"field":{"type":"object","additionalProperties":true,"properties":{"name":{"type":"object","additionalProperties":true,"properties":{"symbol":{"type":"string"},"symbolName":{"type":"string"},"category":{"type":"string"},"net52wHigh":{"type":"string"},"net52wLow":{"type":"string"},"history":{"type":"array","items":{"type":"string"}}},"required":["category","history","net52wHigh","net52wLow","symbol","symbolName"]}},"required":["name"]},"lastUpdate":{"type":"string"}},"required":["field","lastUpdate"]}},"required":["count","data","meta","total"]}},"required":["data","meta"]},"bfin_get_exchangesResponse":{"type":"object","additionalProperties":true,"properties":{"meta":{"type":"object","additionalProperties":true,"properties":{"provider":{"type":"string"},"endpoint":{"type":"string"},"family":{"type":"string"},"cache":{"type":"string"},"ttl_seconds":{"type":"integer"},"stale_seconds":{"type":"integer"},"generated_at":{"type":"string"},"route":{"type":"string"}},"required":["cache","endpoint","family","generated_at","provider","route","stale_seconds","ttl_seconds"]},"data":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"id":{"type":"string"},"display":{"type":"string"},"description":{"type":"string"},"frequency":{"type":"integer"},"delay":{"type":"integer"},"timezoneLocal":{"oneOf":[{"type":"string"},{"nullable":true}]},"timezoneDdf":{"type":"string"},"category":{"type":"string"}},"required":["category","delay","description","display","frequency","id","timezoneDdf","timezoneLocal"]}}},"required":["data","meta"]},"bfin_get_insider_tradesResponse":{"type":"object","additionalProperties":true,"properties":{"meta":{"type":"object","additionalProperties":true,"properties":{"provider":{"type":"string"},"endpoint":{"type":"string"},"family":{"type":"string"},"cache":{"type":"string"},"ttl_seconds":{"type":"integer"},"stale_seconds":{"type":"integer"},"generated_at":{"type":"string"},"route":{"type":"string"}},"required":["cache","endpoint","family","generated_at","provider","route","stale_seconds","ttl_seconds"]},"data":{"type":"object","additionalProperties":true,"properties":{"count":{"type":"integer"},"total":{"type":"integer"},"data":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"symbol":{"type":"string"},"transactionDate":{"type":"string"},"transactionType":{"type":"string"},"raw":{"type":"object","additionalProperties":true,"properties":{"symbol":{"type":"string"},"transactionDate":{"type":"string"},"transactionType":{"type":"string"}},"required":["symbol","transactionDate","transactionType"]}},"required":["raw","symbol","transactionDate","transactionType"]}}},"required":["count","data","total"]}},"required":["data","meta"]},"bfin_get_newsResponse":{"type":"object","additionalProperties":true,"properties":{"meta":{"type":"object","additionalProperties":true,"properties":{"provider":{"type":"string"},"endpoint":{"type":"string"},"family":{"type":"string"},"cache":{"type":"string"},"ttl_seconds":{"type":"integer"},"stale_seconds":{"type":"integer"},"generated_at":{"type":"string"},"route":{"type":"string"}},"required":["cache","endpoint","family","generated_at","provider","route","stale_seconds","ttl_seconds"]},"data":{"type":"object","additionalProperties":true,"properties":{"count":{"type":"integer"},"total":{"type":"integer"},"data":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"symbol":{"type":"string"},"title":{"type":"string"},"canonicalUrl":{"type":"string"},"raw":{"type":"object","additionalProperties":true,"properties":{"symbol":{"nullable":true},"title":{"type":"string"},"canonicalUrl":{"type":"string"}},"required":["canonicalUrl","symbol","title"]}},"required":["canonicalUrl","raw","symbol","title"]}}},"required":["count","data","total"]}},"required":["data","meta"]},"bfin_get_quotesResponse":{"type":"object","additionalProperties":true,"properties":{"meta":{"type":"object","additionalProperties":true,"properties":{"provider":{"type":"string"},"endpoint":{"type":"string"},"family":{"type":"string"},"cache":{"type":"string"},"ttl_seconds":{"type":"integer"},"stale_seconds":{"type":"integer"},"generated_at":{"type":"string"},"route":{"type":"string"}},"required":["cache","endpoint","family","generated_at","provider","route","stale_seconds","ttl_seconds"]},"data":{"type":"object","additionalProperties":true,"properties":{"count":{"type":"integer"},"total":{"type":"integer"},"data":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"symbol":{"type":"string"},"symbolName":{"type":"string"},"lastPrice":{"type":"string"},"priceChange":{"type":"string"},"percentChange":{"type":"string"},"tradeTime":{"type":"string"},"raw":{"type":"object","additionalProperties":true,"properties":{"symbol":{"type":"string"},"symbolName":{"type":"string"},"lastPrice":{"type":"number"},"priceChange":{"type":"number"},"percentChange":{"type":"number"},"tradeTime":{"type":"integer"}},"required":["lastPrice","percentChange","priceChange","symbol","symbolName","tradeTime"]}},"required":["lastPrice","percentChange","priceChange","raw","symbol","symbolName","tradeTime"]}},"errors":{"nullable":true}},"required":["count","data","errors","total"]}},"required":["data","meta"]},"bfin_get_calendar_earnings_dividendsResponse":{"type":"object","additionalProperties":true,"properties":{"meta":{"type":"object","additionalProperties":true,"properties":{"provider":{"type":"string"},"endpoint":{"type":"string"},"family":{"type":"string"},"cache":{"type":"string"},"ttl_seconds":{"type":"integer"},"stale_seconds":{"type":"integer"},"generated_at":{"type":"string"},"route":{"type":"string"}},"required":["cache","endpoint","family","generated_at","provider","route","stale_seconds","ttl_seconds"]},"data":{"type":"object","additionalProperties":true,"properties":{"count":{"type":"integer"},"total":{"type":"integer"},"data":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"symbol":{"type":"string"},"symbolName":{"type":"string"},"lastPrice":{"type":"string"},"priceChange":{"type":"string"},"amount":{"type":"string"},"yield":{"type":"string"},"exDivDate":{"type":"string"},"payableDate":{"type":"string"},"raw":{"type":"object","additionalProperties":true,"properties":{"symbol":{"type":"string"},"symbolName":{"type":"string"},"lastPrice":{"oneOf":[{"type":"number"},{"type":"integer"}]},"priceChange":{"oneOf":[{"type":"number"},{"type":"integer"}]},"amount":{"type":"number"},"yield":{"oneOf":[{"type":"number"},{"nullable":true}]},"exDivDate":{"type":"string"},"payableDate":{"oneOf":[{"type":"string"},{"nullable":true}]}},"required":["amount","exDivDate","lastPrice","payableDate","priceChange","symbol","symbolName","yield"]}},"required":["amount","exDivDate","lastPrice","payableDate","priceChange","raw","symbol","symbolName","yield"]}},"meta":{"type":"object","additionalProperties":true,"properties":{"field":{"type":"object","additionalProperties":true,"properties":{"shortName":{"type":"object","additionalProperties":true,"properties":{"symbol":{"type":"string"},"symbolName":{"type":"string"},"lastPrice":{"type":"string"},"priceChange":{"type":"string"},"amount":{"type":"string"},"yield":{"type":"string"},"exDivDate":{"type":"string"},"payableDate":{"type":"string"}},"required":["amount","exDivDate","lastPrice","payableDate","priceChange","symbol","symbolName","yield"]},"type":{"type":"object","additionalProperties":true,"properties":{"symbol":{"type":"string"},"symbolName":{"type":"string"},"lastPrice":{"type":"string"},"priceChange":{"type":"string"},"amount":{"type":"string"},"yield":{"type":"string"},"exDivDate":{"type":"string"},"payableDate":{"type":"string"}},"required":["amount","exDivDate","lastPrice","payableDate","priceChange","symbol","symbolName","yield"]}},"required":["shortName","type"]}},"required":["field"]}},"required":["count","data","meta","total"]}},"required":["data","meta"]},"bfin_get_futures_hiloResponse":{"type":"object","additionalProperties":true,"properties":{"meta":{"type":"object","additionalProperties":true,"properties":{"provider":{"type":"string"},"endpoint":{"type":"string"},"family":{"type":"string"},"cache":{"type":"string"},"ttl_seconds":{"type":"integer"},"stale_seconds":{"type":"integer"},"generated_at":{"type":"string"},"route":{"type":"string"}},"required":["cache","endpoint","family","generated_at","provider","route","stale_seconds","ttl_seconds"]},"data":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"symbol":{"type":"string"},"hilo":{"nullable":true}},"required":["hilo","symbol"]}}},"required":["data","meta"]},"bfin_get_news_storiesResponse":{"type":"object","additionalProperties":true,"properties":{"meta":{"type":"object","additionalProperties":true,"properties":{"provider":{"type":"string"},"endpoint":{"type":"string"},"family":{"type":"string"},"cache":{"type":"string"},"ttl_seconds":{"type":"integer"},"stale_seconds":{"type":"integer"},"generated_at":{"type":"string"},"route":{"type":"string"}},"required":["cache","endpoint","family","generated_at","provider","route","stale_seconds","ttl_seconds"]},"data":{"type":"object","additionalProperties":true,"properties":{"count":{"type":"integer"},"total":{"type":"integer"},"data":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"symbol":{"type":"string"},"articles":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"id":{"type":"string"},"sequence":{"type":"integer"},"title":{"type":"string"},"slug":{"type":"string"},"feed":{"type":"string"},"originalFeed":{"oneOf":[{"type":"string"},{"nullable":true}]},"feedName":{"type":"string"},"author":{"type":"string"},"authorUrl":{"nullable":true},"authorBadge":{"nullable":true},"authorImageUrl":{"nullable":true},"source":{"type":"string"},"sourceFeed":{"oneOf":[{"type":"string"},{"nullable":true}]},"media":{"type":"string"},"language":{"type":"string"},"external":{"type":"boolean"},"url":{"nullable":true},"published":{"type":"string"},"publishedTime":{"type":"string"},"updated":{"type":"string"},"summary":{"type":"string"},"content":{"nullable":true},"thumbnail":{"type":"object","additionalProperties":true,"properties":{"url":{"type":"string"},"width":{"type":"integer"},"height":{"type":"integer"},"caption":{"type":"string"}},"required":["caption","height","url","width"]},"image":{"oneOf":[{"type":"object","additionalProperties":true,"properties":{"url":{"type":"string"},"width":{"type":"integer"},"height":{"type":"integer"},"caption":{"type":"string"}},"required":["caption","height","url","width"]},{"nullable":true}]},"symbols":{"type":"array","items":{"type":"string"}},"primarySymbol":{"nullable":true},"categories":{"type":"array","items":{"type":"string"}},"copyright":{"oneOf":[{"nullable":true},{"type":"string"}]},"canonicalUrl":{"nullable":true},"organizationUrl":{"nullable":true},"organizationLogoUrl":{"nullable":true},"originalId":{"oneOf":[{"type":"string"},{"nullable":true}]},"meta":{"nullable":true}},"required":["author","authorBadge","authorImageUrl","authorUrl","canonicalUrl","categories","content","copyright","external","feed","feedName","id","image","language","media","meta","organizationLogoUrl","organizationUrl","originalFeed","originalId","primarySymbol","published","publishedTime","sequence","slug","source","sourceFeed","summary","symbols","thumbnail","title","updated","url"]}},"raw":{"type":"object","additionalProperties":true,"properties":{"symbol":{"type":"string"},"articles":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"id":{"type":"string"},"sequence":{"type":"integer"},"title":{"type":"string"},"slug":{"type":"string"},"feed":{"type":"string"},"originalFeed":{"oneOf":[{"type":"string"},{"nullable":true}]},"feedName":{"type":"string"},"author":{"type":"string"},"authorUrl":{"nullable":true},"authorBadge":{"nullable":true},"authorImageUrl":{"nullable":true},"source":{"type":"string"},"sourceFeed":{"oneOf":[{"type":"string"},{"nullable":true}]},"media":{"type":"string"},"language":{"type":"string"},"external":{"type":"boolean"},"url":{"nullable":true},"published":{"type":"string"},"publishedTime":{"type":"string"},"updated":{"type":"string"},"summary":{"type":"string"},"content":{"nullable":true},"thumbnail":{"type":"object","additionalProperties":true,"properties":{"url":{"type":"string"},"width":{"type":"integer"},"height":{"type":"integer"},"caption":{"type":"string"}},"required":["caption","height","url","width"]},"image":{"oneOf":[{"type":"object","additionalProperties":true,"properties":{"url":{"type":"string"},"width":{"type":"integer"},"height":{"type":"integer"},"caption":{"type":"string"}},"required":["caption","height","url","width"]},{"nullable":true}]},"symbols":{"type":"array","items":{"type":"string"}},"primarySymbol":{"nullable":true},"categories":{"type":"array","items":{"type":"string"}},"copyright":{"oneOf":[{"nullable":true},{"type":"string"}]},"canonicalUrl":{"nullable":true},"organizationUrl":{"nullable":true},"organizationLogoUrl":{"nullable":true},"originalId":{"oneOf":[{"type":"string"},{"nullable":true}]},"meta":{"nullable":true}},"required":["author","authorBadge","authorImageUrl","authorUrl","canonicalUrl","categories","content","copyright","external","feed","feedName","id","image","language","media","meta","organizationLogoUrl","organizationUrl","originalFeed","originalId","primarySymbol","published","publishedTime","sequence","slug","source","sourceFeed","summary","symbols","thumbnail","title","updated","url"]}}},"required":["articles","symbol"]},"symbolInfo":{"type":"object","additionalProperties":true,"properties":{"symbol":{"type":"string"},"symbolName":{"type":"string"},"symbolType":{"type":"integer"},"symbolCode":{"type":"string"}},"required":["symbol","symbolCode","symbolName","symbolType"]}},"required":["articles","raw","symbol","symbolInfo"]}}},"required":["count","data","total"]}},"required":["data","meta"]},"bfin_get_news_storyResponse":{"type":"object","additionalProperties":true,"properties":{"meta":{"type":"object","additionalProperties":true,"properties":{"provider":{"type":"string"},"endpoint":{"type":"string"},"family":{"type":"string"},"cache":{"type":"string"},"ttl_seconds":{"type":"integer"},"stale_seconds":{"type":"integer"},"generated_at":{"type":"string"},"route":{"type":"string"}},"required":["cache","endpoint","family","generated_at","provider","route","stale_seconds","ttl_seconds"]},"data":{"type":"object","additionalProperties":true,"properties":{"count":{"type":"integer"},"total":{"type":"integer"},"data":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"id":{"type":"string"},"title":{"type":"string"},"content":{"type":"string"},"canonicalUrl":{"type":"string"},"raw":{"type":"object","additionalProperties":true,"properties":{"id":{"type":"string"},"title":{"type":"string"},"content":{"type":"string"},"canonicalUrl":{"type":"string"}},"required":["canonicalUrl","content","id","title"]}},"required":["canonicalUrl","content","id","raw","title"]}}},"required":["count","data","total"]}},"required":["data","meta"]},"bfin_get_options_flowResponse":{"type":"object","additionalProperties":true,"properties":{"meta":{"type":"object","additionalProperties":true,"properties":{"provider":{"type":"string"},"endpoint":{"type":"string"},"family":{"type":"string"},"cache":{"type":"string"},"ttl_seconds":{"type":"integer"},"stale_seconds":{"type":"integer"},"generated_at":{"type":"string"},"route":{"type":"string"}},"required":["cache","endpoint","family","generated_at","provider","route","stale_seconds","ttl_seconds"]},"data":{"type":"object","additionalProperties":true,"properties":{"count":{"type":"integer"},"total":{"type":"integer"},"data":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"symbol":{"type":"string"},"baseSymbol":{"type":"string"},"expirationDate":{"type":"string"},"strikePrice":{"type":"string"},"volume":{"type":"string"},"openInterest":{"type":"string"},"lastPrice":{"type":"string"},"tradeTime":{"type":"string"},"raw":{"type":"object","additionalProperties":true,"properties":{"symbol":{"type":"string"},"baseSymbol":{"type":"string"},"expirationDate":{"type":"string"},"strikePrice":{"oneOf":[{"type":"integer"},{"type":"number"}]},"volume":{"type":"integer"},"openInterest":{"type":"integer"},"lastPrice":{"type":"number"},"tradeTime":{"type":"integer"}},"required":["baseSymbol","expirationDate","lastPrice","openInterest","strikePrice","symbol","tradeTime","volume"]}},"required":["baseSymbol","expirationDate","lastPrice","openInterest","raw","strikePrice","symbol","tradeTime","volume"]}}},"required":["count","data","total"]}},"required":["data","meta"]},"bfin_get_raw_endpointidResponse":{"type":"object","additionalProperties":true,"properties":{"meta":{"type":"object","additionalProperties":true,"properties":{"provider":{"type":"string"},"endpoint":{"type":"string"},"family":{"type":"string"},"cache":{"type":"string"},"ttl_seconds":{"type":"integer"},"stale_seconds":{"type":"integer"},"generated_at":{"type":"string"},"route":{"type":"string"}},"required":["cache","endpoint","family","generated_at","provider","route","stale_seconds","ttl_seconds"]},"data":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"id":{"type":"string"},"display":{"type":"string"},"description":{"type":"string"},"frequency":{"type":"integer"},"delay":{"type":"integer"},"timezoneLocal":{"oneOf":[{"type":"string"},{"nullable":true}]},"timezoneDdf":{"type":"string"},"category":{"type":"string"}},"required":["category","delay","description","display","frequency","id","timezoneDdf","timezoneLocal"]}}},"required":["data","meta"]},"bfin_get_strategies_topResponse":{"type":"object","additionalProperties":true,"properties":{"meta":{"type":"object","additionalProperties":true,"properties":{"provider":{"type":"string"},"endpoint":{"type":"string"},"family":{"type":"string"},"cache":{"type":"string"},"ttl_seconds":{"type":"integer"},"stale_seconds":{"type":"integer"},"generated_at":{"type":"string"},"route":{"type":"string"}},"required":["cache","endpoint","family","generated_at","provider","route","stale_seconds","ttl_seconds"]},"data":{"type":"object","additionalProperties":true,"properties":{"count":{"type":"integer"},"total":{"type":"integer"},"data":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"symbol":{"type":"string"},"signalName":{"type":"string"},"entryDate":{"type":"string"},"entryPrice":{"type":"string"},"lastPrice":{"type":"string"},"priceChange":{"type":"string"},"percentChange":{"type":"string"},"raw":{"type":"object","additionalProperties":true,"properties":{"symbol":{"type":"string"},"signalName":{"type":"string"},"entryDate":{"type":"string"},"entryPrice":{"type":"number"},"lastPrice":{"type":"number"},"priceChange":{"type":"number"},"percentChange":{"type":"number"}},"required":["entryDate","entryPrice","lastPrice","percentChange","priceChange","signalName","symbol"]}},"required":["entryDate","entryPrice","lastPrice","percentChange","priceChange","raw","signalName","symbol"]}}},"required":["count","data","total"]}},"required":["data","meta"]},"bfin_get_options_strategies_strategy_slugResponse":{"type":"object","additionalProperties":true,"properties":{"meta":{"type":"object","additionalProperties":true,"properties":{"provider":{"type":"string"},"endpoint":{"type":"string"},"family":{"type":"string"},"cache":{"type":"string"},"ttl_seconds":{"type":"integer"},"stale_seconds":{"type":"integer"},"generated_at":{"type":"string"},"route":{"type":"string"}},"required":["cache","endpoint","family","generated_at","provider","route","stale_seconds","ttl_seconds"]},"data":{"type":"object","additionalProperties":true,"properties":{"count":{"type":"integer"},"total":{"type":"integer"},"data":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"symbol":{"type":"string"},"baseSymbol":{"type":"string"},"baseLastPrice":{"type":"string"},"expirationDate":{"type":"string"},"daysToExpiration":{"type":"string"},"strike":{"type":"string"},"breakEvenBid":{"type":"string"},"percentToBreakEvenBid":{"type":"string"},"potentialReturn":{"type":"string"},"flatAnnual":{"type":"string"},"raw":{"type":"object","additionalProperties":true,"properties":{"symbol":{"type":"string"},"baseSymbol":{"type":"string"},"baseLastPrice":{"type":"number"},"expirationDate":{"type":"string"},"daysToExpiration":{"type":"integer"},"strike":{"oneOf":[{"type":"integer"},{"type":"number"}]},"breakEvenBid":{"type":"number"},"percentToBreakEvenBid":{"type":"number"},"potentialReturn":{"type":"number"},"flatAnnual":{"type":"number"}},"required":["baseLastPrice","baseSymbol","breakEvenBid","daysToExpiration","expirationDate","flatAnnual","percentToBreakEvenBid","potentialReturn","strike","symbol"]}},"required":["baseLastPrice","baseSymbol","breakEvenBid","daysToExpiration","expirationDate","flatAnnual","percentToBreakEvenBid","potentialReturn","raw","strike","symbol"]}}},"required":["count","data","total"]}},"required":["data","meta"]},"bfin_get_quote_symbol_corporate_actionsResponse":{"type":"object","additionalProperties":true,"properties":{"meta":{"type":"object","additionalProperties":true,"properties":{"provider":{"type":"string"},"endpoint":{"type":"string"},"family":{"type":"string"},"cache":{"type":"string"},"ttl_seconds":{"type":"integer"},"stale_seconds":{"type":"integer"},"generated_at":{"type":"string"},"route":{"type":"string"}},"required":["cache","endpoint","family","generated_at","provider","route","stale_seconds","ttl_seconds"]},"data":{"type":"object","additionalProperties":true,"properties":{"count":{"type":"integer"},"total":{"type":"integer"},"data":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"eventType":{"type":"string"},"raw":{"type":"object","additionalProperties":true,"properties":{"eventType":{"type":"string"}},"required":["eventType"]}},"required":["eventType","raw"]}}},"required":["count","data","total"]}},"required":["data","meta"]},"bfin_get_quote_symbol_historicalResponse":{"type":"object","additionalProperties":true,"properties":{"meta":{"type":"object","additionalProperties":true,"properties":{"provider":{"type":"string"},"endpoint":{"type":"string"},"family":{"type":"string"},"cache":{"type":"string"},"ttl_seconds":{"type":"integer"},"stale_seconds":{"type":"integer"},"generated_at":{"type":"string"},"route":{"type":"string"}},"required":["cache","endpoint","family","generated_at","provider","route","stale_seconds","ttl_seconds"]},"data":{"type":"object","additionalProperties":true,"properties":{"count":{"type":"integer"},"total":{"type":"integer"},"data":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"tradeTime":{"type":"string"},"openPrice":{"type":"string"},"highPrice":{"type":"string"},"lowPrice":{"type":"string"},"lastPrice":{"type":"string"},"volume":{"type":"string"},"raw":{"type":"object","additionalProperties":true,"properties":{"tradeTime":{"type":"string"},"openPrice":{"type":"number"},"highPrice":{"oneOf":[{"type":"number"},{"type":"integer"}]},"lowPrice":{"oneOf":[{"type":"number"},{"type":"integer"}]},"lastPrice":{"type":"number"},"volume":{"type":"integer"}},"required":["highPrice","lastPrice","lowPrice","openPrice","tradeTime","volume"]}},"required":["highPrice","lastPrice","lowPrice","openPrice","raw","tradeTime","volume"]}}},"required":["count","data","total"]}},"required":["data","meta"]},"bfin_get_quote_symbol_historical_volatilityResponse":{"type":"object","additionalProperties":true,"properties":{"meta":{"type":"object","additionalProperties":true,"properties":{"provider":{"type":"string"},"endpoint":{"type":"string"},"family":{"type":"string"},"cache":{"type":"string"},"ttl_seconds":{"type":"integer"},"stale_seconds":{"type":"integer"},"generated_at":{"type":"string"},"route":{"type":"string"}},"required":["cache","endpoint","family","generated_at","provider","route","stale_seconds","ttl_seconds"]},"data":{"type":"object","additionalProperties":true,"properties":{"count":{"type":"integer"},"total":{"type":"integer"},"data":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"volatility":{"type":"string"},"tradeTime":{"type":"string"},"raw":{"type":"object","additionalProperties":true,"properties":{"volatility":{"oneOf":[{"nullable":true},{"type":"integer"}]},"tradeTime":{"type":"string"}},"required":["tradeTime","volatility"]}},"required":["raw","tradeTime","volatility"]}}},"required":["count","data","total"]}},"required":["data","meta"]},"bfin_get_quote_symbol_intradayResponse":{"type":"object","additionalProperties":true,"properties":{"meta":{"type":"object","additionalProperties":true,"properties":{"provider":{"type":"string"},"endpoint":{"type":"string"},"family":{"type":"string"},"cache":{"type":"string"},"ttl_seconds":{"type":"integer"},"stale_seconds":{"type":"integer"},"generated_at":{"type":"string"},"route":{"type":"string"}},"required":["cache","endpoint","family","generated_at","provider","route","stale_seconds","ttl_seconds"]},"data":{"type":"string"}},"required":["data","meta"]},"bfin_get_quote_symbol_optionsResponse":{"type":"object","additionalProperties":true,"properties":{"meta":{"type":"object","additionalProperties":true,"properties":{"provider":{"type":"string"},"endpoint":{"type":"string"},"family":{"type":"string"},"cache":{"type":"string"},"ttl_seconds":{"type":"integer"},"stale_seconds":{"type":"integer"},"generated_at":{"type":"string"},"route":{"type":"string"}},"required":["cache","endpoint","family","generated_at","provider","route","stale_seconds","ttl_seconds"]},"data":{"type":"object","additionalProperties":true,"properties":{"count":{"type":"integer"},"total":{"type":"integer"},"data":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"symbol":{"type":"string"},"baseSymbol":{"type":"string"},"expirationDate":{"type":"string"},"strikePrice":{"type":"string"},"optionType":{"type":"string"},"bidPrice":{"type":"string"},"askPrice":{"type":"string"},"lastPrice":{"type":"string"},"volume":{"type":"string"},"openInterest":{"type":"string"},"volatility":{"type":"string"},"delta":{"type":"string"},"raw":{"type":"object","additionalProperties":true,"properties":{"symbol":{"type":"string"},"baseSymbol":{"type":"string"},"expirationDate":{"type":"string"},"strikePrice":{"type":"integer"},"optionType":{"type":"string"},"bidPrice":{"oneOf":[{"type":"number"},{"type":"integer"}]},"askPrice":{"type":"number"},"lastPrice":{"oneOf":[{"type":"integer"},{"type":"number"}]},"volume":{"type":"integer"},"openInterest":{"type":"integer"},"volatility":{"type":"number"},"delta":{"type":"number"}},"required":["askPrice","baseSymbol","bidPrice","delta","expirationDate","lastPrice","openInterest","optionType","strikePrice","symbol","volatility","volume"]}},"required":["askPrice","baseSymbol","bidPrice","delta","expirationDate","lastPrice","openInterest","optionType","raw","strikePrice","symbol","volatility","volume"]}}},"required":["count","data","total"]}},"required":["data","meta"]},"bfin_get_quote_symbol_options_chainResponse":{"type":"object","additionalProperties":true,"properties":{"meta":{"type":"object","additionalProperties":true,"properties":{"provider":{"type":"string"},"endpoint":{"type":"string"},"family":{"type":"string"},"cache":{"type":"string"},"ttl_seconds":{"type":"integer"},"stale_seconds":{"type":"integer"},"generated_at":{"type":"string"},"route":{"type":"string"}},"required":["cache","endpoint","family","generated_at","provider","route","stale_seconds","ttl_seconds"]},"data":{"type":"object","additionalProperties":true,"properties":{"count":{"type":"integer"},"total":{"type":"integer"},"data":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"symbol":{"type":"string"},"baseSymbol":{"type":"string"},"expirationDate":{"type":"string"},"strikePrice":{"type":"string"},"optionType":{"type":"string"},"bidPrice":{"type":"string"},"askPrice":{"type":"string"},"lastPrice":{"type":"string"},"volume":{"type":"string"},"openInterest":{"type":"string"},"raw":{"type":"object","additionalProperties":true,"properties":{"symbol":{"type":"string"},"baseSymbol":{"type":"string"},"expirationDate":{"type":"string"},"strikePrice":{"oneOf":[{"type":"integer"},{"type":"number"}]},"optionType":{"type":"string"},"bidPrice":{"oneOf":[{"type":"number"},{"type":"integer"}]},"askPrice":{"oneOf":[{"type":"number"},{"type":"integer"}]},"lastPrice":{"oneOf":[{"type":"integer"},{"type":"number"}]},"volume":{"oneOf":[{"nullable":true},{"type":"integer"}]},"openInterest":{"oneOf":[{"type":"integer"},{"nullable":true}]}},"required":["askPrice","baseSymbol","bidPrice","expirationDate","lastPrice","openInterest","optionType","strikePrice","symbol","volume"]}},"required":["askPrice","baseSymbol","bidPrice","expirationDate","lastPrice","openInterest","optionType","raw","strikePrice","symbol","volume"]}},"meta":{"type":"object","additionalProperties":true,"properties":{"expirations":{"type":"array","items":{"type":"string"}},"isMonthly":{"type":"object","additionalProperties":true,"properties":{"2026-06-08":{"type":"boolean"},"2026-06-10":{"type":"boolean"},"2026-06-12":{"type":"boolean"},"2026-06-15":{"type":"boolean"},"2026-06-17":{"type":"boolean"},"2026-06-18":{"type":"boolean"},"2026-06-26":{"type":"boolean"},"2026-07-02":{"type":"boolean"},"2026-07-10":{"type":"boolean"},"2026-07-17":{"type":"boolean"},"2026-07-24":{"type":"boolean"},"2026-08-21":{"type":"boolean"},"2026-09-18":{"type":"boolean"},"2026-10-16":{"type":"boolean"},"2026-11-20":{"type":"boolean"},"2026-12-18":{"type":"boolean"},"2027-01-15":{"type":"boolean"},"2027-02-19":{"type":"boolean"},"2027-03-19":{"type":"boolean"},"2027-06-17":{"type":"boolean"},"2027-09-17":{"type":"boolean"},"2027-12-17":{"type":"boolean"},"2028-01-21":{"type":"boolean"},"2028-03-17":{"type":"boolean"},"2028-12-15":{"type":"boolean"}},"required":["2026-06-08","2026-06-10","2026-06-12","2026-06-15","2026-06-17","2026-06-18","2026-06-26","2026-07-02","2026-07-10","2026-07-17","2026-07-24","2026-08-21","2026-09-18","2026-10-16","2026-11-20","2026-12-18","2027-01-15","2027-02-19","2027-03-19","2027-06-17","2027-09-17","2027-12-17","2028-01-21","2028-03-17","2028-12-15"]}},"required":["expirations","isMonthly"]}},"required":["count","data","meta","total"]}},"required":["data","meta"]},"bfin_get_quote_symbol_options_deltaResponse":{"type":"object","additionalProperties":true,"properties":{"meta":{"type":"object","additionalProperties":true,"properties":{"provider":{"type":"string"},"endpoint":{"type":"string"},"family":{"type":"string"},"cache":{"type":"string"},"ttl_seconds":{"type":"integer"},"stale_seconds":{"type":"integer"},"generated_at":{"type":"string"},"route":{"type":"string"}},"required":["cache","endpoint","family","generated_at","provider","route","stale_seconds","ttl_seconds"]},"data":{"type":"object","additionalProperties":true,"properties":{"count":{"type":"integer"},"data":{"type":"object","additionalProperties":true,"properties":{"2026-05-04":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"date":{"type":"string"},"delta50_both":{"type":"number"},"expiration":{"type":"string"}},"required":["date","delta50_both","expiration"]}}},"required":["2026-05-04"]}},"required":["count","data"]}},"required":["data","meta"]},"bfin_get_quote_symbol_options_expirationsResponse":{"type":"object","additionalProperties":true,"properties":{"meta":{"type":"object","additionalProperties":true,"properties":{"provider":{"type":"string"},"endpoint":{"type":"string"},"family":{"type":"string"},"cache":{"type":"string"},"ttl_seconds":{"type":"integer"},"stale_seconds":{"type":"integer"},"generated_at":{"type":"string"},"route":{"type":"string"}},"required":["cache","endpoint","family","generated_at","provider","route","stale_seconds","ttl_seconds"]},"data":{"type":"object","additionalProperties":true,"properties":{"count":{"type":"integer"},"total":{"type":"integer"},"data":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"expirationDate":{"type":"string"},"expirationType":{"type":"string"},"daysToExpiration":{"type":"string"},"underlyingLastPrice":{"type":"string"},"impliedMove":{"type":"string"},"impliedMovePercent":{"type":"string"},"raw":{"type":"object","additionalProperties":true,"properties":{"expirationDate":{"type":"string"},"expirationType":{"type":"string"},"daysToExpiration":{"type":"integer"},"underlyingLastPrice":{"type":"number"},"impliedMove":{"type":"number"},"impliedMovePercent":{"type":"number"}},"required":["daysToExpiration","expirationDate","expirationType","impliedMove","impliedMovePercent","underlyingLastPrice"]}},"required":["daysToExpiration","expirationDate","expirationType","impliedMove","impliedMovePercent","raw","underlyingLastPrice"]}}},"required":["count","data","total"]}},"required":["data","meta"]},"bfin_get_quote_symbol_options_historicalResponse":{"type":"object","additionalProperties":true,"properties":{"meta":{"type":"object","additionalProperties":true,"properties":{"provider":{"type":"string"},"endpoint":{"type":"string"},"family":{"type":"string"},"cache":{"type":"string"},"ttl_seconds":{"type":"integer"},"stale_seconds":{"type":"integer"},"generated_at":{"type":"string"},"route":{"type":"string"}},"required":["cache","endpoint","family","generated_at","provider","route","stale_seconds","ttl_seconds"]},"data":{"type":"object","additionalProperties":true,"properties":{"count":{"type":"integer"},"total":{"type":"integer"},"data":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"impliedVolatilityRank1y":{"type":"string"},"impliedVolatilityPercentile1y":{"type":"string"},"totalVolume":{"type":"string"},"totalOpenInterest":{"type":"string"},"historicalLastPrice":{"type":"string"},"date":{"type":"string"},"raw":{"type":"object","additionalProperties":true,"properties":{"impliedVolatilityRank1y":{"type":"number"},"impliedVolatilityPercentile1y":{"type":"number"},"totalVolume":{"type":"integer"},"totalOpenInterest":{"type":"integer"},"historicalLastPrice":{"type":"number"},"date":{"type":"string"}},"required":["date","historicalLastPrice","impliedVolatilityPercentile1y","impliedVolatilityRank1y","totalOpenInterest","totalVolume"]}},"required":["date","historicalLastPrice","impliedVolatilityPercentile1y","impliedVolatilityRank1y","raw","totalOpenInterest","totalVolume"]}}},"required":["count","data","total"]}},"required":["data","meta"]}}},"x-generated-at":"2026-06-07T01:30:59.456Z","x-source-api":"bfin","x-source-base-url":"https://api.bfin.bluedoor.sh"}