{"openapi":"3.1.0","info":{"title":"Capmo (BYOK) API","version":"0.1.0","description":"Capmo (BYOK) lets an AI assistant read your own Capmo data through the Capmo API with a key you supply (Capmo API key (created in your personal account settings)). Read-only: 12 tools (list_projects, get_project, list_project_templates, list_organisation_companies, list_project_tickets, list_ticket_types, list_ticket_categories, list_ticket_tags, list_change_orders, list_site_journals,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-capmo.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-capmo/docs"},"termsOfService":"https://connectorbay.com/byok-capmo/terms"},"servers":[{"url":"https://byok-capmo.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-capmo/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 the construction projects of your Capmo account with name, address, coordinates, project key, status, type, buildin","description":"List the construction projects of your Capmo account with name, address, coordinates, project key, status, type, building type, volume and start and end dates. Uses cursor paging. Use for \"Which construction projects do I have in Capmo\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"after":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor: the `after` value of the previous answer (omit for the first page).","title":"After"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items to return (1 to 100).","title":"Limit"},"order_direction":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort direction of the order field.","title":"Order Direction"}},"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 Capmo project: name, address, coordinates, key, status, project type, building type, volume, approved additions ","description":"Get one Capmo project: name, address, coordinates, key, status, project type, building type, volume, approved additions and planned dates. Use for \"Show the details of Capmo project 5e6da9a0\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Capmo project id, from list_projects.","maxLength":200,"title":"Project Id","type":"string"}},"required":["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_project_templates":{"post":{"operationId":"list_project_templates","summary":"List the project templates of your Capmo account (name, key, type, building type, volume). Templates are the starting po","description":"List the project templates of your Capmo account (name, key, type, building type, volume). Templates are the starting points for new projects. Use for \"Which project templates exist in Capmo\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"after":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor: the `after` value of the previous answer (omit for the first page).","title":"After"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items to return (1 to 100).","title":"Limit"},"order_direction":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort direction of the order field.","title":"Order Direction"}},"title":"list_project_templatesArguments","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_organisation_companies":{"post":{"operationId":"list_organisation_companies","summary":"List the companies in the organisation contact book of Capmo (name, address, tax id, phone number and linked people ids)","description":"List the companies in the organisation contact book of Capmo (name, address, tax id, phone number and linked people ids). Optionally filter by the id of the external system. Use for \"Which companies are in our Capmo contact book\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"after":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor: the `after` value of the previous answer (omit for the first page).","title":"After"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items to return (1 to 100).","title":"Limit"},"order_direction":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort direction of the order field.","title":"Order Direction"},"order_by":{"anyOf":[{"enum":["server_created_at","server_updated_at","name","created_at","updated_at"],"type":"string"},{"type":"null"}],"default":null,"description":"Field to order by.","title":"Order By"}},"title":"list_organisation_companiesArguments","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_project_tickets":{"post":{"operationId":"list_project_tickets","summary":"List the tickets (defects, tasks and other issues) of one Capmo project with key, name, description, type, category, com","description":"List the tickets (defects, tasks and other issues) of one Capmo project with key, name, description, type, category, company, tags, cost, status, deadline, room and plan location. Uses cursor paging. Use for \"Which open defect tickets does Capmo project 5e6da9a0 have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Capmo project id, from list_projects.","maxLength":200,"title":"Project Id","type":"string"},"after":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor: the `after` value of the previous answer (omit for the first page).","title":"After"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items to return (1 to 100).","title":"Limit"},"order_direction":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort direction of the order field.","title":"Order Direction"}},"required":["project_id"],"title":"list_project_ticketsArguments","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_ticket_types":{"post":{"operationId":"list_ticket_types","summary":"List the ticket types defined in one Capmo project (for example defect, task or note), to decode type ids in tickets. Us","description":"List the ticket types defined in one Capmo project (for example defect, task or note), to decode type ids in tickets. Use for \"Which ticket types does Capmo project 5e6da9a0 define\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Capmo project id, from list_projects.","maxLength":200,"title":"Project Id","type":"string"},"after":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor: the `after` value of the previous answer (omit for the first page).","title":"After"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items to return (1 to 100).","title":"Limit"},"order_direction":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort direction of the order field.","title":"Order Direction"}},"required":["project_id"],"title":"list_ticket_typesArguments","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_ticket_categories":{"post":{"operationId":"list_ticket_categories","summary":"List the ticket categories (trades) defined in one Capmo project, to decode category ids in tickets. Use for \"Which tick","description":"List the ticket categories (trades) defined in one Capmo project, to decode category ids in tickets. Use for \"Which ticket categories does Capmo project 5e6da9a0 use\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Capmo project id, from list_projects.","maxLength":200,"title":"Project Id","type":"string"},"after":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor: the `after` value of the previous answer (omit for the first page).","title":"After"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items to return (1 to 100).","title":"Limit"},"order_direction":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort direction of the order field.","title":"Order Direction"}},"required":["project_id"],"title":"list_ticket_categoriesArguments","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_ticket_tags":{"post":{"operationId":"list_ticket_tags","summary":"List the ticket tags defined in one Capmo project. Use for \"Which ticket tags does Capmo project 5e6da9a0 use\".","description":"List the ticket tags defined in one Capmo project. Use for \"Which ticket tags does Capmo project 5e6da9a0 use\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Capmo project id, from list_projects.","maxLength":200,"title":"Project Id","type":"string"},"after":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor: the `after` value of the previous answer (omit for the first page).","title":"After"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items to return (1 to 100).","title":"Limit"},"order_direction":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort direction of the order field.","title":"Order Direction"}},"required":["project_id"],"title":"list_ticket_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/list_change_orders":{"post":{"operationId":"list_change_orders","summary":"List the change orders (Nachtraege) of one Capmo project with order number, name, reason for change, type, probability, ","description":"List the change orders (Nachtraege) of one Capmo project with order number, name, reason for change, type, probability, cost, completion and workflow step. Use for \"Which change orders does Capmo project 5e6da9a0 have and what do they cost\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Capmo project id, from list_projects.","maxLength":200,"title":"Project Id","type":"string"},"after":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor: the `after` value of the previous answer (omit for the first page).","title":"After"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items to return (1 to 100).","title":"Limit"},"order_direction":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort direction of the order field.","title":"Order Direction"}},"required":["project_id"],"title":"list_change_ordersArguments","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_site_journals":{"post":{"operationId":"list_site_journals","summary":"List the site journals (daily construction diaries) of one Capmo project with date, weather observation, visits, company","description":"List the site journals (daily construction diaries) of one Capmo project with date, weather observation, visits, company attendances and free-text entries. Use for \"What do the latest site journals of Capmo project 5e6da9a0 say\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Capmo project id, from list_projects.","maxLength":200,"title":"Project Id","type":"string"},"after":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor: the `after` value of the previous answer (omit for the first page).","title":"After"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items to return (1 to 100).","title":"Limit"},"order_direction":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort direction of the order field.","title":"Order Direction"},"order_by":{"anyOf":[{"enum":["server_created_at","server_updated_at","date"],"type":"string"},{"type":"null"}],"default":null,"description":"Field to order by.","title":"Order By"}},"required":["project_id"],"title":"list_site_journalsArguments","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_plans":{"post":{"operationId":"list_plans","summary":"List the plans (drawings) of one Capmo project with name, folder, file name, extension, status, source and version count","description":"List the plans (drawings) of one Capmo project with name, folder, file name, extension, status, source and version counts. Does not return file downloads. Use for \"Which plans does Capmo project 5e6da9a0 hold\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Capmo project id, from list_projects.","maxLength":200,"title":"Project Id","type":"string"},"after":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor: the `after` value of the previous answer (omit for the first page).","title":"After"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items to return (1 to 100).","title":"Limit"},"order_direction":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort direction of the order field.","title":"Order Direction"},"type":{"anyOf":[{"enum":["PDF","CAD"],"type":"string"},{"type":"null"}],"default":null,"description":"Which file type to return for each plan: PDF, or CAD for DWG and DXF files.","title":"Type"}},"required":["project_id"],"title":"list_plansArguments","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_plan_folders":{"post":{"operationId":"list_plan_folders","summary":"List the plan folders of one Capmo project with their parent folder id. Use for \"How are the plans of Capmo project 5e6d","description":"List the plan folders of one Capmo project with their parent folder id. Use for \"How are the plans of Capmo project 5e6da9a0 organised in folders\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Capmo project id, from list_projects.","maxLength":200,"title":"Project Id","type":"string"},"after":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor: the `after` value of the previous answer (omit for the first page).","title":"After"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items to return (1 to 100).","title":"Limit"},"order_direction":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort direction of the order field.","title":"Order Direction"}},"required":["project_id"],"title":"list_plan_foldersArguments","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}}}}