{"openapi":"3.1.0","info":{"title":"Vizion (BYOK) API","version":"0.1.0","description":"Vizion (BYOK) lets an AI assistant read your own Vizion data through the Vizion API with a key you supply (Vizion API key). Read-only: 8 tools (list_references, get_reference, list_reference_updates, list_reference_events, list_carriers, list_transit_offerings, list_tags, get_port_performance). The BYOK key travels with each request, is used for that one call only and is never stored, logged or...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-vizion.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-vizion/docs"},"termsOfService":"https://connectorbay.com/byok-vizion/terms"},"servers":[{"url":"https://byok-vizion.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-vizion/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/list_references":{"post":{"operationId":"list_references","summary":"List active container tracking references (newest first) with container, bill of lading, carrier, status and tags. Filte","description":"List active container tracking references (newest first) with container, bill of lading, carrier, status and tags. Filter by container, bill of lading, booking number, carrier or last update status. Use for \"Which containers am I tracking with Maersk\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"container_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Container number (ISO 6346), for example OOLU6467392.","title":"Container Id"},"bill_of_lading":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Master bill of lading number.","title":"Bill Of Lading"},"booking_number":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Booking number.","title":"Booking Number"},"carrier_code":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Vizion carrier code, for example MAEU for Maersk or MSCU for MSC.","title":"Carrier Code"},"last_update_status":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only references whose last update had this status, for example data_received or no_data.","title":"Last Update Status"},"created_start":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only references created at or after this ISO 8601 time.","title":"Created Start"},"created_end":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only references created at or before this ISO 8601 time.","title":"Created End"},"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True (default) for active references, false for deactivated ones.","title":"Active"},"limit":{"anyOf":[{"maximum":2000,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results per page (1 to 2000).","title":"Limit"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_referencesArguments","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_reference":{"post":{"operationId":"get_reference","summary":"Get one tracking reference with container, bill of lading, carrier, active state, last update status and tags. Use for \"","description":"Get one tracking reference with container, bill of lading, carrier, active state, last update status and tags. Use for \"Show the status of reference 5f3b8f2a\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"reference_id":{"description":"Vizion reference ID (from list_references).","maxLength":200,"title":"Reference Id","type":"string"}},"required":["reference_id"],"title":"get_referenceArguments","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_reference_updates":{"post":{"operationId":"list_reference_updates","summary":"List tracking updates of a reference, newest first: each has a status and a payload with origin and destination ports an","description":"List tracking updates of a reference, newest first: each has a status and a payload with origin and destination ports and the milestones (events with dates) of the container journey. Use for \"What milestones has container OOLU6467392 passed and when does it arrive\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"reference_id":{"description":"Vizion reference ID (from list_references).","maxLength":200,"title":"Reference Id","type":"string"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":5,"description":"How many results per page (1 to 100).","title":"Limit"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"required":["reference_id"],"title":"list_reference_updatesArguments","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_reference_events":{"post":{"operationId":"list_reference_events","summary":"List the lifecycle event log of a reference (created, update received, extraction failed, ETA or ETD changed, deactivate","description":"List the lifecycle event log of a reference (created, update received, extraction failed, ETA or ETD changed, deactivated), paged with a cursor. Use for \"Has the ETA of reference 5f3b8f2a changed\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"reference_id":{"description":"Vizion reference ID (from list_references).","maxLength":200,"title":"Reference Id","type":"string"},"type":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only events of this type, for example estimated_arrival_changed.","title":"Type"},"from_time":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only events at or after this time.","title":"From Time"},"to_time":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only events at or before this time.","title":"To Time"},"order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":"asc","description":"Sort order by time: asc or desc.","title":"Order"},"cursor":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from next_cursor of the previous answer.","title":"Cursor"},"limit":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many results per page (1 to 500).","title":"Limit"}},"required":["reference_id"],"title":"list_reference_eventsArguments","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_carriers":{"post":{"operationId":"list_carriers","summary":"List the ocean carriers supported by Vizion with name, carrier code and SCAC. Use for \"Which carriers does Vizion suppor","description":"List the ocean carriers supported by Vizion with name, carrier code and SCAC. Use for \"Which carriers does Vizion support\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_carriersArguments","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_transit_offerings":{"post":{"operationId":"list_transit_offerings","summary":"List scheduled sailings between two ports (UN/LOCODE) within a date window, with carrier, transit time in days and legs.","description":"List scheduled sailings between two ports (UN/LOCODE) within a date window, with carrier, transit time in days and legs. Use for \"Which sailings go from Shanghai to Los Angeles in the next two weeks\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"origin_unlocode":{"description":"Origin port UN/LOCODE, for example CNSHA.","maxLength":200,"title":"Origin Unlocode","type":"string"},"destination_unlocode":{"description":"Destination port UN/LOCODE, for example USLAX.","maxLength":200,"title":"Destination Unlocode","type":"string"},"start":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Earliest departure date to include (defaults to now).","title":"Start"},"end":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Latest departure date to include (defaults to 14 days after start).","title":"End"}},"required":["origin_unlocode","destination_unlocode"],"title":"list_transit_offeringsArguments","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_tags":{"post":{"operationId":"list_tags","summary":"List the tags you use to group tracking references. Use for \"Which reference tags do I have\".","description":"List the tags you use to group tracking references. Use for \"Which reference tags do I have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":2000,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results per page (1 to 2000).","title":"Limit"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_tagsArguments","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_port_performance":{"post":{"operationId":"get_port_performance","summary":"Get a port or region performance metric (import dwell, export dwell, berth time, arrival to berth, TEU volumes, average ","description":"Get a port or region performance metric (import dwell, export dwell, berth time, arrival to berth, TEU volumes, average delay) for a date range. May require a plan that includes performance data. Use for \"What was the import dwell time at the Port of Los Angeles last month\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"namespace":{"description":"Kind of location code: unlocode, country, continent, region or smdg.","enum":["unlocode","country","continent","region","smdg"],"title":"Namespace","type":"string"},"code":{"description":"Location code in that namespace, for example USLAX for unlocode.","maxLength":200,"title":"Code","type":"string"},"metric":{"description":"Metric: import_dwell, export_dwell, berth_time, arrival_to_berth, import_teu, export_teu or average_delay.","enum":["import_dwell","export_dwell","berth_time","arrival_to_berth","import_teu","export_teu","average_delay"],"title":"Metric","type":"string"},"start":{"description":"Start of the date range, inclusive (YYYY-MM-DD).","maxLength":200,"title":"Start","type":"string"},"end":{"description":"End of the date range, inclusive (YYYY-MM-DD).","maxLength":200,"title":"End","type":"string"},"grain":{"anyOf":[{"enum":["week","month"],"type":"string"},{"type":"null"}],"default":null,"description":"week or month to get a series instead of one figure.","title":"Grain"},"compare":{"anyOf":[{"enum":["prior_period","prior_year"],"type":"string"},{"type":"null"}],"default":null,"description":"Add a comparison value: prior_period or prior_year.","title":"Compare"}},"required":["namespace","code","metric","start","end"],"title":"get_port_performanceArguments","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}}}}