{"openapi":"3.1.0","info":{"title":"Connecteam (BYOK) API","version":"0.1.0","description":"Connecteam (BYOK) lets an AI assistant read your own Connecteam data through the Connecteam API with a key you supply (Connecteam API key). Read-only: 9 tools (get_account, list_schedulers, list_shifts, list_user_unavailability, list_jobs, list_time_clocks, list_task_boards, list_tasks, list_conversations). 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-connecteam.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-connecteam/docs"},"termsOfService":"https://connectorbay.com/byok-connecteam/terms"},"servers":[{"url":"https://byok-connecteam.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-connecteam/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_account":{"post":{"operationId":"get_account","summary":"Show the Connecteam company name and company id the API key belongs to. Handy to check that the key works. Use for \"Whic","description":"Show the Connecteam company name and company id the API key belongs to. Handy to check that the key works. Use for \"Which Connecteam company is my API key for\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_accountArguments","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_schedulers":{"post":{"operationId":"list_schedulers","summary":"List the schedulers (shift schedules) in the account with id, name, archived flag and timezone. The scheduler id is need","description":"List the schedulers (shift schedules) in the account with id, name, archived flag and timezone. The scheduler id is needed to list shifts. Use for \"What schedules do I have in Connecteam\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_schedulersArguments","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_shifts":{"post":{"operationId":"list_shifts","summary":"List shifts of one scheduler between two Unix times (seconds): assigned user ids, start and end, title, job, open and pu","description":"List shifts of one scheduler between two Unix times (seconds): assigned user ids, start and end, title, job, open and published flags, breaks and notes. Up to 500 per page. Use for \"What shifts are on Connecteam scheduler 123 this week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"scheduler_id":{"description":"Scheduler id from list_schedulers.","minimum":1,"title":"Scheduler Id","type":"integer"},"start_time":{"description":"Start of the window as a Unix timestamp in seconds.","minimum":0,"title":"Start Time","type":"integer"},"end_time":{"description":"End of the window as a Unix timestamp in seconds.","minimum":0,"title":"End Time","type":"integer"},"is_open_shift":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for open (unassigned) shifts only.","title":"Is Open Shift"},"is_published":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for published shifts only, false for drafts.","title":"Is Published"},"sort":{"anyOf":[{"enum":["created_at","updated_at"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort key.","title":"Sort"},"order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort order, only used with sort.","title":"Order"},"limit":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many results per page (1 to 500, default 10).","title":"Limit"},"offset":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of results to skip; use paging.offset from the previous answer to get the next page.","title":"Offset"}},"required":["scheduler_id","start_time","end_time"],"title":"list_shiftsArguments","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_user_unavailability":{"post":{"operationId":"list_user_unavailability","summary":"List the periods when one employee marked themselves unavailable between two Unix times (seconds), plus the shifts they ","description":"List the periods when one employee marked themselves unavailable between two Unix times (seconds), plus the shifts they hold in that window. Use for \"When is Connecteam user 4567 unavailable next week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"user_id":{"description":"Employee user id.","minimum":1,"title":"User Id","type":"integer"},"start_time":{"description":"Start of the window as a Unix timestamp in seconds.","minimum":0,"title":"Start Time","type":"integer"},"end_time":{"description":"End of the window as a Unix timestamp in seconds.","minimum":0,"title":"End Time","type":"integer"}},"required":["user_id","start_time","end_time"],"title":"list_user_unavailabilityArguments","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_jobs":{"post":{"operationId":"list_jobs","summary":"List jobs (work sites or projects staff clock into) with title, code, color, description, location and assignment. Up to","description":"List jobs (work sites or projects staff clock into) with title, code, color, description, location and assignment. Up to 500 per page. Use for \"What jobs are set up in Connecteam\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"include_deleted":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":true,"description":"True to include deleted jobs (the provider default is true).","title":"Include Deleted"},"sort":{"anyOf":[{"const":"title","type":"string"},{"type":"null"}],"default":null,"description":"Sort key.","title":"Sort"},"order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort order, only used with sort.","title":"Order"},"limit":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many results per page (1 to 500, default 10).","title":"Limit"},"offset":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of results to skip; use paging.offset from the previous answer to get the next page.","title":"Offset"}},"title":"list_jobsArguments","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_time_clocks":{"post":{"operationId":"list_time_clocks","summary":"List the time clocks in the account with id, name and archived flag. The time clock id identifies where staff clock in. ","description":"List the time clocks in the account with id, name and archived flag. The time clock id identifies where staff clock in. Use for \"Which time clocks does my Connecteam account have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_time_clocksArguments","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_task_boards":{"post":{"operationId":"list_task_boards","summary":"List the task boards with id, name and archived flag. The board id is needed to list tasks. Use for \"What task boards ex","description":"List the task boards with id, name and archived flag. The board id is needed to list tasks. Use for \"What task boards exist in Connecteam\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_task_boardsArguments","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 tasks on one task board: title, status, assigned user ids, start and due time, labels, sub tasks and description. U","description":"List tasks on one task board: title, status, assigned user ids, start and due time, labels, sub tasks and description. Up to 100 per page. Use for \"What open tasks are on Connecteam task board 55\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"task_board_id":{"description":"Task board id from list_task_boards.","maxLength":40,"title":"Task Board Id","type":"string"},"status":{"anyOf":[{"enum":["draft","published","completed","all"],"type":"string"},{"type":"null"}],"default":"all","description":"Which tasks to return (the provider default is all).","title":"Status"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many results per page (1 to 100, default 10).","title":"Limit"},"offset":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of results to skip; use paging.offset from the previous answer to get the next page.","title":"Offset"}},"required":["task_board_id"],"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/list_conversations":{"post":{"operationId":"list_conversations","summary":"List chat conversations (groups and direct chats) with id, title, type and source. Message text is not included. Up to 1","description":"List chat conversations (groups and direct chats) with id, title, type and source. Message text is not included. Up to 100 per page. Use for \"Which chat conversations exist in Connecteam\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many results per page (1 to 100, default 10).","title":"Limit"},"offset":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of results to skip; use paging.offset from the previous answer to get the next page.","title":"Offset"}},"title":"list_conversationsArguments","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}}}}