{"openapi":"3.0.3","info":{"title":"WallStreetZen Adapter API","version":"0.1.0","description":"WallStreetZen adapter contract for bluedoor.\n\nWallStreetZen-backed company search, scores, forecasts, analyst, and valuation routes.\n\nWallStreetZen source API for bluedoor Financial Data.\nFocused WallStreetZen company lookup, prices, news, and screener data.\nCoverage: Company search; Company price series; Company news; Screener companies.\nGenerated from the live source contract and representative live API responses on 2026-06-07T01:30:59.456Z.","x-bluedoor-adapter":{"slug":"wallstreetzen","source_id":"wszfin","upstream":"wallstreetzen.com","docs_url":"https://bluedoor.sh/adapters/wallstreetzen/docs"}},"servers":[{"url":"https://api.bluedoor.sh/adapters/wallstreetzen","description":"bluedoor adapter namespace"},{"url":"https://api.wszfin.bluedoor.sh","description":"Current source API host"}],"externalDocs":{"description":"WallStreetZen adapter docs","url":"https://bluedoor.sh/adapters/wallstreetzen/docs"},"tags":[{"name":"Companies"}],"paths":{"/v1/companies/search":{"get":{"operationId":"wszfin_get_companies_search","summary":"Search","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","example":"AAPL","maxLength":64}},{"name":"refresh","in":"query","schema":{"type":"boolean"},"description":"Bypass the edge cache when truthy."},{"name":"x-wszfin-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/wszfin_get_companies_searchResponse"},"examples":{"live":{"summary":"Live response","value":{"meta":{"provider":"wallstreetzen","route":"companies_search","contract":"wallstreetzen.companies.search","ttl_seconds":3600,"generated_at":"2026-06-07T01:36:06.955Z"},"data":{"query":"AAPL","companies":[{"id":36,"ticker":"AAPL","name":"Apple Inc","exchange":"NASDAQ","url":"https://www.wallstreetzen.com/stocks/us/nasdaq/aapl"}],"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 limit exceeded.","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":"Origin circuit open or origin failure detected.","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."}}}}}}}},"security":[{},{"ContactEmail":[]},{"BearerAuth":[]},{"WszfinApiKey":[]}],"description":"Returns search with source-native fields and identifiers.","tags":["Companies"],"x-source-api":"wszfin","x-source-name":"WallStreetZen","x-source-upstream":"wallstreetzen.com","x-docs-example-url":"https://api.wszfin.bluedoor.sh/v1/companies/search?q=AAPL","x-docs-example-status":200,"x-docs-captured-at":"2026-06-07T01:36:06.976Z"}},"/v1/screener/companies":{"get":{"operationId":"wszfin_get_screener_companies","summary":"Company screener","parameters":[{"name":"page","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":1},"description":"1-based page index. WallStreetZen returns ~100 rows per page; check data.pagination.total_pages for the live ceiling."},{"name":"refresh","in":"query","schema":{"type":"boolean"},"description":"Bypass the edge cache when truthy."},{"name":"x-wszfin-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/wszfin_get_screener_companiesResponse"},"examples":{"live":{"summary":"Live response","value":{"meta":{"provider":"wallstreetzen","route":"screener_companies","contract":"wallstreetzen.screener.companies","ttl_seconds":300,"generated_at":"2026-06-07T01:36:08.094Z"},"data":{"pagination":{"page":1,"total_pages":55,"total_filtered":5487,"sort_column":"market_cap","sort_direction":"desc"},"companies":[{"id":11037,"ticker":"NVDA","name":"NVIDIA CORP","exchange":"NASDAQ","industry":"Semiconductors","market_cap":4963420000000,"price":205.1,"change_percent_1d":-0.062014085795298636,"ebitda":192970000000,"pe":31.265243902439025,"debt_to_equity":0.327,"zen_score":null,"zen_rating":null,"country":"United States","url":"https://www.wallstreetzen.com/stocks/us/nasdaq/nvda"},{"id":36,"ticker":"AAPL","name":"APPLE INC","exchange":"NASDAQ","industry":"Consumer Electronics","market_cap":4514011993040,"price":307.34,"change_percent_1d":-0.01249879510329981,"ebitda":160280000000,"pe":37.073582629674306,"debt_to_equity":2.485,"zen_score":null,"zen_rating":null,"country":"United States","url":"https://www.wallstreetzen.com/stocks/us/nasdaq/aapl"},{"id":6715,"ticker":"GOOGL","name":"ALPHABET INC","exchange":"NASDAQ","industry":"Internet Content & Information","market_cap":4465109480000,"price":368.53,"change_percent_1d":-0.009833687095300787,"ebitda":218815000000,"pe":27.834592145015105,"debt_to_equity":0.47,"zen_score":null,"zen_rating":null,"country":"United States","url":"https://www.wallstreetzen.com/stocks/us/nasdaq/googl"}]}}}}}}},"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 limit exceeded.","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":"Origin circuit open or origin failure detected.","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."}}}}}}}},"security":[{},{"ContactEmail":[]},{"BearerAuth":[]},{"WszfinApiKey":[]}],"description":"Returns company screener with source-native fields and identifiers.","x-source-api":"wszfin","x-source-name":"WallStreetZen","x-source-upstream":"wallstreetzen.com","x-docs-example-url":"https://api.wszfin.bluedoor.sh/v1/screener/companies","x-docs-example-status":200,"x-docs-captured-at":"2026-06-07T01:36:08.118Z"}},"/v1/companies/{id}/news":{"get":{"operationId":"wszfin_get_companies_id_news","summary":"News","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","example":36},"description":"Numeric WallStreetZen company id (from companies_search)."},{"name":"refresh","in":"query","schema":{"type":"boolean"},"description":"Bypass the edge cache when truthy."},{"name":"x-wszfin-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/wszfin_get_companies_id_newsResponse"},"examples":{"live":{"summary":"Live response","value":{"meta":{"provider":"wallstreetzen","route":"company_news","contract":"wallstreetzen.companies.news","ttl_seconds":600,"generated_at":"2026-06-07T01:36:08.794Z"},"data":{"company_id":1,"articles":[]}}}}}}},"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 limit exceeded.","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":"Origin circuit open or origin failure detected.","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."}}}}}}}},"security":[{},{"ContactEmail":[]},{"BearerAuth":[]},{"WszfinApiKey":[]}],"description":"Returns news with source-native fields and identifiers.","tags":["Companies"],"x-source-api":"wszfin","x-source-name":"WallStreetZen","x-source-upstream":"wallstreetzen.com","x-docs-example-url":"https://api.wszfin.bluedoor.sh/v1/companies/1/news","x-docs-example-status":200,"x-docs-captured-at":"2026-06-07T01:36:08.809Z"}},"/v1/companies/{id}/prices":{"get":{"operationId":"wszfin_get_companies_id_prices","summary":"Prices","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","example":36},"description":"Numeric WallStreetZen company id (from companies_search)."},{"name":"refresh","in":"query","schema":{"type":"boolean"},"description":"Bypass the edge cache when truthy."},{"name":"x-wszfin-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/wszfin_get_companies_id_pricesResponse"},"examples":{"live":{"summary":"Live response","value":{"meta":{"provider":"wallstreetzen","route":"company_prices","contract":"wallstreetzen.companies.prices","ttl_seconds":900,"generated_at":"2026-06-07T01:36:10.553Z"},"data":{"company_id":1,"prices":[{"timestamp_ms":-630979200000,"timestamp_iso":"1950-01-03T00:00:00.000Z","price":16.66,"volume":1260000,"fair_value":null},{"timestamp_ms":-630892800000,"timestamp_iso":"1950-01-04T00:00:00.000Z","price":16.85,"volume":1890000,"fair_value":null},{"timestamp_ms":-630806400000,"timestamp_iso":"1950-01-05T00:00:00.000Z","price":16.93,"volume":2550000,"fair_value":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 limit exceeded.","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":"Origin circuit open or origin failure detected.","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."}}}}}}}},"security":[{},{"ContactEmail":[]},{"BearerAuth":[]},{"WszfinApiKey":[]}],"description":"Returns prices with source-native fields and identifiers.","tags":["Companies"],"x-source-api":"wszfin","x-source-name":"WallStreetZen","x-source-upstream":"wallstreetzen.com","x-docs-example-url":"https://api.wszfin.bluedoor.sh/v1/companies/1/prices","x-docs-example-status":200,"x-docs-captured-at":"2026-06-07T01:36:10.755Z"}}},"components":{"securitySchemes":{"ContactEmail":{"type":"apiKey","in":"header","name":"X-Wszfin-Contact"},"BearerAuth":{"type":"http","scheme":"bearer","description":"API keys are available by emailing sam@bluedoor.sh."},"WszfinApiKey":{"type":"apiKey","in":"header","name":"X-Wszfin-Key"}},"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}}},"wszfin_get_companies_searchResponse":{"type":"object","additionalProperties":true,"properties":{"meta":{"type":"object","additionalProperties":true,"properties":{"provider":{"type":"string"},"route":{"type":"string"},"contract":{"type":"string"},"ttl_seconds":{"type":"integer"},"generated_at":{"type":"string"}},"required":["contract","generated_at","provider","route","ttl_seconds"]},"data":{"type":"object","additionalProperties":true,"properties":{"query":{"type":"string"},"companies":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"id":{"type":"integer"},"ticker":{"type":"string"},"name":{"type":"string"},"exchange":{"type":"string"},"url":{"type":"string"}},"required":["exchange","id","name","ticker","url"]}},"errors":{"nullable":true}},"required":["companies","errors","query"]}},"required":["data","meta"]},"wszfin_get_screener_companiesResponse":{"type":"object","additionalProperties":true,"properties":{"meta":{"type":"object","additionalProperties":true,"properties":{"provider":{"type":"string"},"route":{"type":"string"},"contract":{"type":"string"},"ttl_seconds":{"type":"integer"},"generated_at":{"type":"string"}},"required":["contract","generated_at","provider","route","ttl_seconds"]},"data":{"type":"object","additionalProperties":true,"properties":{"pagination":{"type":"object","additionalProperties":true,"properties":{"page":{"type":"integer"},"total_pages":{"type":"integer"},"total_filtered":{"type":"integer"},"sort_column":{"type":"string"},"sort_direction":{"type":"string"}},"required":["page","sort_column","sort_direction","total_filtered","total_pages"]},"companies":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"id":{"type":"integer"},"ticker":{"type":"string"},"name":{"type":"string"},"exchange":{"type":"string"},"industry":{"type":"string"},"market_cap":{"type":"integer"},"price":{"oneOf":[{"type":"number"},{"type":"integer"}]},"change_percent_1d":{"type":"number"},"ebitda":{"type":"integer"},"pe":{"oneOf":[{"type":"number"},{"nullable":true}]},"debt_to_equity":{"type":"number"},"zen_score":{"nullable":true},"zen_rating":{"nullable":true},"country":{"type":"string"},"url":{"type":"string"}},"required":["change_percent_1d","country","debt_to_equity","ebitda","exchange","id","industry","market_cap","name","pe","price","ticker","url","zen_rating","zen_score"]}}},"required":["companies","pagination"]}},"required":["data","meta"]},"wszfin_get_companies_id_newsResponse":{"type":"object","additionalProperties":true,"properties":{"meta":{"type":"object","additionalProperties":true,"properties":{"provider":{"type":"string"},"route":{"type":"string"},"contract":{"type":"string"},"ttl_seconds":{"type":"integer"},"generated_at":{"type":"string"}},"required":["contract","generated_at","provider","route","ttl_seconds"]},"data":{"type":"object","additionalProperties":true,"properties":{"company_id":{"type":"integer"},"articles":{"type":"array","items":{}}},"required":["articles","company_id"]}},"required":["data","meta"]},"wszfin_get_companies_id_pricesResponse":{"type":"object","additionalProperties":true,"properties":{"meta":{"type":"object","additionalProperties":true,"properties":{"provider":{"type":"string"},"route":{"type":"string"},"contract":{"type":"string"},"ttl_seconds":{"type":"integer"},"generated_at":{"type":"string"}},"required":["contract","generated_at","provider","route","ttl_seconds"]},"data":{"type":"object","additionalProperties":true,"properties":{"company_id":{"type":"integer"},"prices":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"timestamp_ms":{"type":"integer"},"timestamp_iso":{"type":"string"},"price":{"type":"number"},"volume":{"type":"integer"},"fair_value":{"nullable":true}},"required":["fair_value","price","timestamp_iso","timestamp_ms","volume"]}}},"required":["company_id","prices"]}},"required":["data","meta"]}}},"x-generated-at":"2026-06-07T01:30:59.456Z","x-source-api":"wszfin","x-source-base-url":"https://api.wszfin.bluedoor.sh"}