{"openapi":"3.1.0","info":{"title":"ProofHub (BYOK) API","version":"0.1.0","description":"ProofHub (BYOK) lets an AI assistant read your own ProofHub data through the ProofHub API with a key you supply (ProofHub API key). Read-only: 12 tools (list_projects, get_project, list_people, list_todolists, list_tasks, get_task, list_task_comments, list_all_tasks, list_topics, list_events, list_timesheets, list_labels). The BYOK key travels with each request, is used for that one call only and...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-proofhub.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-proofhub/docs"},"termsOfService":"https://connectorbay.com/byok-proofhub/terms"},"servers":[{"url":"https://byok-proofhub.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-proofhub/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_projects":{"post":{"operationId":"list_projects","summary":"List all projects the key's user can see, with title, status ID, dates, manager, category and archived flag. Use for \"Wh","description":"List all projects the key's user can see, with title, status ID, dates, manager, category and archived flag. Use for \"What projects do we have in ProofHub\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"company":{"description":"Your ProofHub account subdomain: the part before .proofhub.com, for example 'mycompany' for mycompany.proofhub.com.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Company","type":"string"}},"required":["company"],"title":"list_projectsArguments","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_project":{"post":{"operationId":"get_project","summary":"Get one project by ID. Use for \"Show ProofHub project 23423233\".","description":"Get one project by ID. Use for \"Show ProofHub project 23423233\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"company":{"description":"Your ProofHub account subdomain: the part before .proofhub.com, for example 'mycompany' for mycompany.proofhub.com.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Company","type":"string"},"project_id":{"description":"Project ID, as returned in the id field of list_projects.","title":"Project Id","type":"integer"}},"required":["company","project_id"],"title":"get_projectArguments","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_people":{"post":{"operationId":"list_people","summary":"List the people in the account with name, title, email, role ID, groups, suspended flag and last activity. Use for \"Who ","description":"List the people in the account with name, title, email, role ID, groups, suspended flag and last activity. Use for \"Who is in our ProofHub account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"company":{"description":"Your ProofHub account subdomain: the part before .proofhub.com, for example 'mycompany' for mycompany.proofhub.com.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Company","type":"string"}},"required":["company"],"title":"list_peopleArguments","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_todolists":{"post":{"operationId":"list_todolists","summary":"List the task lists of one project with open and completed task counts. Use for \"What task lists does ProofHub project 2","description":"List the task lists of one project with open and completed task counts. Use for \"What task lists does ProofHub project 23423233 have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"company":{"description":"Your ProofHub account subdomain: the part before .proofhub.com, for example 'mycompany' for mycompany.proofhub.com.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Company","type":"string"},"project_id":{"description":"Project ID, as returned in the id field of list_projects.","title":"Project Id","type":"integer"}},"required":["company","project_id"],"title":"list_todolistsArguments","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 the tasks of one task list with due date, assignees, labels, progress and logged time. Use for \"Which tasks are in ","description":"List the tasks of one task list with due date, assignees, labels, progress and logged time. Use for \"Which tasks are in ProofHub list 13964085\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"company":{"description":"Your ProofHub account subdomain: the part before .proofhub.com, for example 'mycompany' for mycompany.proofhub.com.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Company","type":"string"},"project_id":{"description":"Project ID, as returned in the id field of list_projects.","title":"Project Id","type":"integer"},"todolist_id":{"description":"Task list ID, as returned by list_todolists.","title":"Todolist Id","type":"integer"}},"required":["company","project_id","todolist_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/get_task":{"post":{"operationId":"get_task","summary":"Get one task by ID with description, dates, assignees, labels, progress and logged time. Use for \"Show ProofHub task 139","description":"Get one task by ID with description, dates, assignees, labels, progress and logged time. Use for \"Show ProofHub task 13966758\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"company":{"description":"Your ProofHub account subdomain: the part before .proofhub.com, for example 'mycompany' for mycompany.proofhub.com.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Company","type":"string"},"project_id":{"description":"Project ID, as returned in the id field of list_projects.","title":"Project Id","type":"integer"},"todolist_id":{"description":"Task list ID, as returned by list_todolists.","title":"Todolist Id","type":"integer"},"task_id":{"description":"Task ID, as returned by list_tasks.","title":"Task Id","type":"integer"}},"required":["company","project_id","todolist_id","task_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/list_task_comments":{"post":{"operationId":"list_task_comments","summary":"List the comments on one task. Use for \"What comments are on ProofHub task 13966758\".","description":"List the comments on one task. Use for \"What comments are on ProofHub task 13966758\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"company":{"description":"Your ProofHub account subdomain: the part before .proofhub.com, for example 'mycompany' for mycompany.proofhub.com.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Company","type":"string"},"project_id":{"description":"Project ID, as returned in the id field of list_projects.","title":"Project Id","type":"integer"},"todolist_id":{"description":"Task list ID, as returned by list_todolists.","title":"Todolist Id","type":"integer"},"task_id":{"description":"Task ID, as returned by list_tasks.","title":"Task Id","type":"integer"}},"required":["company","project_id","todolist_id","task_id"],"title":"list_task_commentsArguments","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_all_tasks":{"post":{"operationId":"list_all_tasks","summary":"List task lists across the whole account, filtered by project, label, assignee or completion. Up to 100 per call; page w","description":"List task lists across the whole account, filtered by project, label, assignee or completion. Up to 100 per call; page with start. Use for \"Which ProofHub items are open across all projects\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"company":{"description":"Your ProofHub account subdomain: the part before .proofhub.com, for example 'mycompany' for mycompany.proofhub.com.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Company","type":"string"},"projects":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated project IDs to restrict to.","title":"Projects"},"labels":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated label IDs, or 'none' for unlabelled.","title":"Labels"},"assigned":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated user IDs, or 'all_assigned'.","title":"Assigned"},"completed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include completed items as well as open ones.","title":"Completed"},"start":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Position to start from, for paging.","title":"Start"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"How many records to return (1 to 100).","title":"Limit"}},"required":["company"],"title":"list_all_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_topics":{"post":{"operationId":"list_topics","summary":"List the discussion topics of one project with comment counts. Use for \"What discussions are open in ProofHub project 23","description":"List the discussion topics of one project with comment counts. Use for \"What discussions are open in ProofHub project 23423233\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"company":{"description":"Your ProofHub account subdomain: the part before .proofhub.com, for example 'mycompany' for mycompany.proofhub.com.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Company","type":"string"},"project_id":{"description":"Project ID, as returned in the id field of list_projects.","title":"Project Id","type":"integer"}},"required":["company","project_id"],"title":"list_topicsArguments","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_events":{"post":{"operationId":"list_events","summary":"List calendar events and milestones of one project. The view parameter is required; dates are optional. Use for \"What mi","description":"List calendar events and milestones of one project. The view parameter is required; dates are optional. Use for \"What milestones does ProofHub project 23423233 have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"company":{"description":"Your ProofHub account subdomain: the part before .proofhub.com, for example 'mycompany' for mycompany.proofhub.com.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Company","type":"string"},"project_id":{"description":"Project ID, as returned in the id field of list_projects.","title":"Project Id","type":"integer"},"view":{"description":"What to list: all, events or milestones.","enum":["all","events","milestones"],"title":"View","type":"string"},"start_date":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only items from this date (YYYY-MM-DD).","title":"Start Date"},"end_date":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only items up to this date (YYYY-MM-DD).","title":"End Date"}},"required":["company","project_id","view"],"title":"list_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_timesheets":{"post":{"operationId":"list_timesheets","summary":"List the timesheets of one project with estimated and logged hours. Use for \"How many hours are logged on ProofHub proje","description":"List the timesheets of one project with estimated and logged hours. Use for \"How many hours are logged on ProofHub project 23423233\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"company":{"description":"Your ProofHub account subdomain: the part before .proofhub.com, for example 'mycompany' for mycompany.proofhub.com.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Company","type":"string"},"project_id":{"description":"Project ID, as returned in the id field of list_projects.","title":"Project Id","type":"integer"}},"required":["company","project_id"],"title":"list_timesheetsArguments","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_labels":{"post":{"operationId":"list_labels","summary":"List the task labels with their name and color. Use for \"What task labels exist in ProofHub\".","description":"List the task labels with their name and color. Use for \"What task labels exist in ProofHub\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"company":{"description":"Your ProofHub account subdomain: the part before .proofhub.com, for example 'mycompany' for mycompany.proofhub.com.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Company","type":"string"}},"required":["company"],"title":"list_labelsArguments","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}}}}