{"openapi":"3.1.0","info":{"title":"Onfleet (BYOK) API","version":"0.1.0","description":"Onfleet (BYOK) lets an AI assistant read your own Onfleet data through the Onfleet API with a key you supply (Onfleet API key (sent as the Basic-auth user name with an empty password)). Read-only: 8 tools (get_organization, list_tasks, get_task, get_task_by_short_id, list_teams, get_team, list_hubs, list_workers). The BYOK key travels with each request, is used for that one call only and is never...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-onfleet.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-onfleet/docs"},"termsOfService":"https://connectorbay.com/byok-onfleet/terms"},"servers":[{"url":"https://byok-onfleet.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-onfleet/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/get_organization":{"post":{"operationId":"get_organization","summary":"Show the Onfleet organization the key belongs to: id, name, time zone, country and the organizations it can delegate tas","description":"Show the Onfleet organization the key belongs to: id, name, time zone, country and the organizations it can delegate tasks to. Use for \"Which Onfleet organization is this key for\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_organizationArguments","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_tasks":{"post":{"operationId":"list_tasks","summary":"List delivery tasks created or completed in a time range (up to 64 per call, newest pages via lastId): state (0 unassign","description":"List delivery tasks created or completed in a time range (up to 64 per call, newest pages via lastId): state (0 unassigned, 1 assigned, 2 active, 3 completed), times, assigned worker id, tracking link and destination city. Recipient names, phones, street addresses and notes are not returned. Use for \"Which Onfleet deliveries are still active today\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"from_time":{"description":"Required. Start of the range as Unix time in milliseconds, for example 1760572800000.","maximum":100000000000000,"minimum":0,"title":"From Time","type":"integer"},"to_time":{"anyOf":[{"maximum":100000000000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"End of the range as Unix time in milliseconds. Defaults to now.","title":"To Time"},"state":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated task states to keep: 0 unassigned, 1 assigned, 2 active, 3 completed, for example '1,2'.","title":"State"},"worker":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only tasks of this worker id.","title":"Worker"},"last_id":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor: the lastId of the previous answer. Absent from the answer when there are no more pages.","title":"Last Id"}},"required":["from_time"],"title":"list_tasksArguments","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_task":{"post":{"operationId":"get_task","summary":"Get one delivery task by id: state, times, worker id, tracking link, destination city and completion time and failure re","description":"Get one delivery task by id: state, times, worker id, tracking link, destination city and completion time and failure reason. Recipients and notes are not returned. Use for \"What is the status of Onfleet task 11z1BbsQUZFHD1XAd~emDDeK\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Onfleet task id (24 characters), not the short id.","maxLength":40,"title":"Id","type":"string"}},"required":["id"],"title":"get_taskArguments","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_task_by_short_id":{"post":{"operationId":"get_task_by_short_id","summary":"Get one delivery task by its 8-character short id (the one customers see in tracking links). Use for \"Look up Onfleet ta","description":"Get one delivery task by its 8-character short id (the one customers see in tracking links). Use for \"Look up Onfleet task 31aac0a5\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"short_id":{"description":"The task's 8-character short id.","maxLength":16,"title":"Short Id","type":"string"}},"required":["short_id"],"title":"get_task_by_short_idArguments","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_teams":{"post":{"operationId":"list_teams","summary":"List teams with their worker ids, manager ids, hub and task ids. Use for \"What teams does my Onfleet account have\".","description":"List teams with their worker ids, manager ids, hub and task ids. Use for \"What teams does my Onfleet account have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_teamsArguments","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_team":{"post":{"operationId":"get_team","summary":"Get one team by id: name, worker ids, manager ids, hub and task ids. Use for \"Show Onfleet team 9dyuPqHt6kDK5JKHFhE0xihh","description":"Get one team by id: name, worker ids, manager ids, hub and task ids. Use for \"Show Onfleet team 9dyuPqHt6kDK5JKHFhE0xihh\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Onfleet team id.","maxLength":40,"title":"Id","type":"string"}},"required":["id"],"title":"get_teamArguments","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_hubs":{"post":{"operationId":"list_hubs","summary":"List hubs (depots) with name, address and the teams based there. Use for \"Where are my Onfleet hubs\".","description":"List hubs (depots) with name, address and the teams based there. Use for \"Where are my Onfleet hubs\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_hubsArguments","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_workers":{"post":{"operationId":"list_workers","summary":"List workers (drivers) with display name, duty state, capacity, current task, team ids, vehicle and last-seen time. Phon","description":"List workers (drivers) with display name, duty state, capacity, current task, team ids, vehicle and last-seen time. Phone numbers, positions and device details are not returned. Filter by team or by state (0 off duty, 1 idle, 2 active). Use for \"Which Onfleet drivers are on duty right now\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"teams":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated team ids the workers must belong to.","title":"Teams"},"states":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated worker states: 0 off duty, 1 idle, 2 active, for example '1,2'.","title":"States"}},"title":"list_workersArguments","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}}}}