{"openapi":"3.1.0","info":{"title":"Telraam (BYOK) API","version":"0.1.0","description":"Telraam (BYOK) lets an AI assistant read your own Telraam data through the Telraam API with a key you supply (Telraam API key). Read-only: 7 tools (check_api_status, list_cameras, get_camera, list_cameras_for_segment, get_segment, get_hourly_traffic, get_access_details). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached; it is only ever...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-telraam.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-telraam/docs"},"termsOfService":"https://connectorbay.com/byok-telraam/terms"},"servers":[{"url":"https://byok-telraam.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-telraam/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/check_api_status":{"post":{"operationId":"check_api_status","summary":"Check that the Telraam API key is valid and the API server is running. Use for \"Is my Telraam API key working\".","description":"Check that the Telraam API key is valid and the API server is running. Use for \"Is my Telraam API key working\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"check_api_statusArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_cameras":{"post":{"operationId":"list_cameras","summary":"List the Telraam traffic-counting cameras (instances) of the account with status, hardware version, calibration state an","description":"List the Telraam traffic-counting cameras (instances) of the account with status, hardware version, calibration state and last data time. Owner ids and device addresses are left out. Use for \"Which of my Telraam cameras are active\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_camerasArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_camera":{"post":{"operationId":"get_camera","summary":"Get one Telraam camera instance by id: status, hardware version, calibration and data times. Use for \"What is the status","description":"Get one Telraam camera instance by id: status, hardware version, calibration and data times. Use for \"What is the status of Telraam camera instance 9000001\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"instance_id":{"description":"Telraam camera instance id (positive integer) from list_cameras.","maximum":2000000000,"minimum":1,"title":"Instance Id","type":"integer"}},"required":["instance_id"],"title":"get_cameraArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_cameras_for_segment":{"post":{"operationId":"list_cameras_for_segment","summary":"List the camera instances installed on one street segment. Use for \"Which Telraam cameras count traffic on segment 90000","description":"List the camera instances installed on one street segment. Use for \"Which Telraam cameras count traffic on segment 9000001463\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"segment_id":{"description":"Telraam street segment id (positive integer), shown in the address of the segment on telraam.net.","maximum":99999999999,"minimum":1,"title":"Segment Id","type":"integer"}},"required":["segment_id"],"title":"list_cameras_for_segmentArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_segment":{"post":{"operationId":"get_segment","summary":"Get the properties of one street segment: first and last data time, timezone and its camera instance ids. Geometry is le","description":"Get the properties of one street segment: first and last data time, timezone and its camera instance ids. Geometry is left out. Use for \"When did Telraam segment 9000001463 last report data\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"segment_id":{"description":"Telraam street segment id (positive integer), shown in the address of the segment on telraam.net.","maximum":99999999999,"minimum":1,"title":"Segment Id","type":"integer"}},"required":["segment_id"],"title":"get_segmentArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_hourly_traffic":{"post":{"operationId":"get_hourly_traffic","summary":"Get hourly traffic counts (heavy vehicles, cars, bikes, pedestrians, uptime, 85th-percentile speed) for a street segment","description":"Get hourly traffic counts (heavy vehicles, cars, bikes, pedestrians, uptime, 85th-percentile speed) for a street segment or one camera over a time range of at most 3 months. Use for \"How many cars and bikes passed Telraam segment 9000001463 yesterday afternoon\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"level":{"description":"Statistics level: segments or instances.","enum":["segments","instances"],"title":"Level","type":"string"},"id":{"description":"The segment id or camera instance id, matching level.","maxLength":20,"title":"Id","type":"string"},"time_start":{"description":"Start of the range in UTC, for example 2026-06-12 11:00:00Z.","maxLength":30,"title":"Time Start","type":"string"},"time_end":{"description":"End of the range in UTC (exclusive), for example 2026-06-12 12:00:00Z.","maxLength":30,"title":"Time End","type":"string"}},"required":["level","id","time_start","time_end"],"title":"get_hourly_trafficArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_access_details":{"post":{"operationId":"get_access_details","summary":"Show which segments, cameras and devices the key can see with the Advanced API (needs access to the Advanced data). Use ","description":"Show which segments, cameras and devices the key can see with the Advanced API (needs access to the Advanced data). Use for \"Which Telraam segments and devices can my key access\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_access_detailsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}