{"openapi":"3.1.0","info":{"title":"Composio (BYOK) API","version":"0.1.0","description":"Composio (BYOK) lets an AI assistant read your own Composio data through the Composio API with a key you supply (Composio project API key). Read-only: 9 tools (list_toolkits, get_toolkit, list_toolkit_categories, list_tools, get_tool, list_connected_accounts, list_auth_configs, list_trigger_types, list_active_triggers). The BYOK key travels with each request, is used for that one call only and is...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-composio.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-composio/docs"},"termsOfService":"https://connectorbay.com/byok-composio/terms"},"servers":[{"url":"https://byok-composio.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-composio/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_toolkits":{"post":{"operationId":"list_toolkits","summary":"List the toolkits (apps and services Composio integrates with) with name, description, auth methods and tool and trigger","description":"List the toolkits (apps and services Composio integrates with) with name, description, auth methods and tool and trigger counts. Use for \"Which toolkits does Composio offer for project management\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"search":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only toolkits whose name, slug or description match this text.","title":"Search"},"category":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only toolkits of this category id, from list_toolkit_categories.","title":"Category"},"sort_by":{"anyOf":[{"enum":["usage","alphabetically"],"type":"string"},{"type":"null"}],"default":null,"description":"usage (most used first) or alphabetically.","title":"Sort By"},"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items to return (1 to 1000).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from next_cursor of the previous answer, for the next page.","title":"Cursor"}},"title":"list_toolkitsArguments","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_toolkit":{"post":{"operationId":"get_toolkit","summary":"Get one toolkit: description, auth methods, categories, versions and counts of tools and triggers. Use for \"Tell me abou","description":"Get one toolkit: description, auth methods, categories, versions and counts of tools and triggers. Use for \"Tell me about the Composio github toolkit\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"slug":{"description":"Toolkit slug such as github or gmail.","maxLength":100,"title":"Slug","type":"string"},"version":{"anyOf":[{"maxLength":50,"type":"string"},{"type":"null"}],"default":null,"description":"Toolkit version; empty for the latest.","title":"Version"}},"required":["slug"],"title":"get_toolkitArguments","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_toolkit_categories":{"post":{"operationId":"list_toolkit_categories","summary":"List the toolkit categories with display name and id, which can be used to filter list_toolkits. Use for \"Which toolkit ","description":"List the toolkit categories with display name and id, which can be used to filter list_toolkits. Use for \"Which toolkit categories does Composio have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many items to return (1 to 100).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from next_cursor of the previous answer, for the next page.","title":"Cursor"}},"title":"list_toolkit_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_tools":{"post":{"operationId":"list_tools","summary":"List tools (single actions of a toolkit) with name, description, toolkit, tags and whether authentication is needed. Sch","description":"List tools (single actions of a toolkit) with name, description, toolkit, tags and whether authentication is needed. Schemas are not requested. Use for \"Which Composio tools exist for creating GitHub issues\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"toolkit_slug":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only tools of this toolkit slug.","title":"Toolkit Slug"},"query":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Full-text search over tool names, slugs and descriptions.","title":"Query"},"important":{"anyOf":[{"enum":["true","false"],"type":"string"},{"type":"null"}],"default":null,"description":"true to list only featured tools.","title":"Important"},"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items to return (1 to 1000).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from next_cursor of the previous answer, for the next page.","title":"Cursor"}},"title":"list_toolsArguments","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_tool":{"post":{"operationId":"get_tool","summary":"Get one tool: description, input and output parameter schemas, required scopes, tags and available versions. Use for \"Wh","description":"Get one tool: description, input and output parameter schemas, required scopes, tags and available versions. Use for \"What inputs does the Composio tool GITHUB_CREATE_AN_ISSUE take\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"tool_slug":{"description":"Tool slug such as GITHUB_CREATE_AN_ISSUE.","maxLength":200,"title":"Tool Slug","type":"string"}},"required":["tool_slug"],"title":"get_toolArguments","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_connected_accounts":{"post":{"operationId":"list_connected_accounts","summary":"List the connected accounts (end-user links to apps) of the project with toolkit, status, alias and times. Credentials a","description":"List the connected accounts (end-user links to apps) of the project with toolkit, status, alias and times. Credentials are not requested. Use for \"Which Composio connected accounts are active\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"order_by":{"anyOf":[{"enum":["created_at","updated_at"],"type":"string"},{"type":"null"}],"default":null,"description":"Order by created_at or updated_at.","title":"Order By"},"order_direction":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"asc or desc.","title":"Order Direction"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items to return (1 to 100).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from next_cursor of the previous answer, for the next page.","title":"Cursor"}},"title":"list_connected_accountsArguments","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_auth_configs":{"post":{"operationId":"list_auth_configs","summary":"List the auth configs (how users sign in to each toolkit) with toolkit, scheme, status and number of connections. Creden","description":"List the auth configs (how users sign in to each toolkit) with toolkit, scheme, status and number of connections. Credentials are not requested. Use for \"Which auth configs does my Composio project have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"toolkit_slug":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only auth configs of this toolkit slug.","title":"Toolkit Slug"},"search":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Search by name or id.","title":"Search"},"show_disabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include disabled auth configs.","title":"Show Disabled"},"limit":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items to return (1 to 200).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from next_cursor of the previous answer, for the next page.","title":"Cursor"}},"title":"list_auth_configsArguments","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_trigger_types":{"post":{"operationId":"list_trigger_types","summary":"List trigger types (events a connected app can send) with name, description, webhook or poll type and toolkit. Use for \"","description":"List trigger types (events a connected app can send) with name, description, webhook or poll type and toolkit. Use for \"Which Composio triggers exist for Slack\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":50,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items to return (1 to 50).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from next_cursor of the previous answer, for the next page.","title":"Cursor"}},"title":"list_trigger_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_active_triggers":{"post":{"operationId":"list_active_triggers","summary":"List the trigger instances active in the project with trigger name, connected account, update time and disabled time. Us","description":"List the trigger instances active in the project with trigger name, connected account, update time and disabled time. Use for \"Which Composio triggers are running in my project\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"show_disabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include disabled trigger instances.","title":"Show Disabled"},"limit":{"anyOf":[{"maximum":50,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items to return (1 to 50).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from next_cursor of the previous answer, for the next page.","title":"Cursor"}},"title":"list_active_triggersArguments","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}}}}