---
canonical_url: "https://docs.composio.dev/kb/topic/sdk-api-and-mcp"
markdown_url: "https://docs.composio.dev/kb/topic/sdk-api-and-mcp.md"
product: "platform"
version: null
last_updated: null
---

# SDK, API, and MCP

Integrate Composio through SDKs, platform APIs, MCP, and developer tooling.

- [Anthropic](/docs/providers/anthropic) — Build an agent with Claude and enable it to use 1000+ tools with Composio. (Docs)
- [AutoGen](/docs/providers/autogen) — Build an agent with AutoGen and enable it to use 1000+ tools with Composio. (Docs)
- [Claude Code Plugin](/docs/claude-code-plugin) — Act on 1,000+ apps from Claude Code — Slack, GitHub, Gmail, Notion, Linear, and more — with fully managed OAuth. Installs in two commands. (Docs)
- [Composio CLI](/docs/cli) — Use the Composio CLI from Codex, Claude Code, or your terminal for agent workflows and development. (Docs)
- [Composio Connect](/docs/composio-connect) — Connect Composio to an existing MCP client without using the SDK (Docs)
- [CrewAI](/docs/providers/crewai) — Build an agent with CrewAI and enable it to use 1000+ tools with Composio. (Docs)
- [Custom Providers](/docs/providers/custom-providers) — Build an agent with any framework and enable it to use 1000+ tools with Composio. (Docs)
- [Eve](/docs/providers/eve) — Use Composio tools inside eve agents. (Docs)
- [Google](/docs/providers/google) — Build an agent with Gemini or Google ADK and enable it to use 1000+ tools with Composio. (Docs)
- [LangChain](/docs/providers/langchain) — Build an agent with LangChain or LangGraph and enable it to use 1000+ tools with Composio. (Docs)
- [LlamaIndex](/docs/providers/llamaindex) — Build an agent with LlamaIndex and enable it to use 1000+ tools with Composio. (Docs)
- [Mastra](/docs/providers/mastra) — Build an agent with Mastra and enable it to use 1000+ tools with Composio. (Docs)
- [Migrating from Direct Tools to Sessions](/docs/migration-guide/direct-to-sessions) — Move from direct tool execution to the sessions paradigm (Docs)
- [Migrating from MCP servers to Sessions](/docs/migration-guide/mcp-servers-to-sessions) — Move from per-toolkit MCP server configs to the sessions paradigm (Docs)
- [Migration guides](/docs/migration-guide) — Guides for migrating to newer versions of Composio (Docs)
- [OpenAI](/docs/providers/openai) — Build an agent with OpenAI and enable it to use 1000+ tools with Composio. (Docs)
- [Pi](/docs/providers/pi) — Use Composio tools inside Pi coding-agent sessions. (Docs)
- [Python Custom Provider](/docs/providers/custom-providers/python) — Build an agent with any Python framework and enable it to use 1000+ tools with Composio. (Docs)
- [SDKs and frameworks](/docs/providers) — Composio works with any AI framework. Pick your preferred SDK to get started. (Docs)
- [Toolkit versioning migration](/docs/migration-guide/toolkit-versioning) — Migrate to the new toolkit versioning system (Docs)
- [TypeSafe](/docs/providers/typesafe) — Choose Composio tools with TypeSafe's Jev model, complete missing arguments, and execute the resulting decision. (Docs)
- [TypeScript Custom Provider](/docs/providers/custom-providers/typescript) — Build an agent with any TypeScript framework and enable it to use 1000+ tools with Composio. (Docs)
- [Using sessions via MCP](/docs/sessions-via-mcp) — Build an application that exposes a Composio session to an MCP-compatible client (Docs)
- [Vercel AI SDK](/docs/providers/vercel) — Build an agent with Vercel AI SDK and enable it to use 1000+ tools with Composio. (Docs)
- [API Keys](/reference/api-reference/api-keys) — API key management (Reference)
- [Attach to an existing tool router session (v3.1)](/reference/api-reference/tool-router/postToolRouterSessionBySessionIdAttach) — Fetch an existing tool router session by ID. (Reference)
- [Auth Configs](/reference/api-reference/auth-configs) — Authentication configuration management (Reference)
- [AuthConfigs](/reference/sdk-reference/python/auth-configs) — Manage authentication configurations. (Reference)
- [AuthConfigs](/reference/sdk-reference/typescript/auth-configs) — AuthConfigs class  This class is used to manage authentication configurations in the Composio SDK. Auth configs are used to configure authentication providers and settings. (Reference)
- [Complete a deferred OAuth connection after identity verification](/reference/api-reference/connected-accounts/postConnectedAccountsCompleteAuth) — Redeems a single-use `session_uri` handed to a project's OAuth callback verifier. Composio validates that the caller's project owns the pending connection and that `user_id` matches the connection owner, then completes the token exchange and returns the now-ACTIVE connected account. The session is single-use. (Reference)
- [Composio](/reference/sdk-reference/python/composio) — Composio SDK for Python.  Generic parameters: TTool: The individual tool type returned by the provider (e.g., ChatCompletionToolParam for OpenAI). ... (Reference)
- [Composio](/reference/sdk-reference/typescript/composio) — This is the core class for Composio. It is used to initialize the Composio SDK and provide a global configuration. (Reference)
- [Connected Accounts](/reference/api-reference/connected-accounts) — Connected account management (Reference)
- [ConnectedAccounts](/reference/sdk-reference/python/connected-accounts) — Manage connected accounts.  This class is used to manage connected accounts in the Composio SDK. These are used to authenticate with third-party se... (Reference)
- [ConnectedAccounts](/reference/sdk-reference/typescript/connected-accounts) — ConnectedAccounts class  This class is used to manage connected accounts in the Composio SDK. Connected accounts are used to authenticate with third-party services. (Reference)
- [Connection activated](/reference/api-reference/webhook-events/composio_connected_account_activated) — Fired when a connected account successfully becomes active. (Reference)
- [Connection expired](/reference/api-reference/webhook-events/composio_connected_account_expired) — Fired when a connected account expires and needs re-authentication. (Reference)
- [Create a link session for a toolkit in a tool router session](/reference/api-reference/tool-router/postToolRouterSessionBySessionIdLink) — Initiates an authentication link session for a specific toolkit within a tool router session. Returns a link token and redirect URL that users can use to complete the OAuth flow. (Reference)
- [Create a new auth link session](/reference/api-reference/connected-accounts/postConnectedAccountsLink) — Creates a new authentication link session that users can use to connect their accounts (Reference)
- [Create a new connected account](/reference/api-reference/connected-accounts/postConnectedAccounts) — Initiates a new connection to an external service for a user. For OAuth-based toolkits, this returns a redirect URL to complete authentication. For API key-based toolkits, provide the credentials directly in the request body. Use the `user_id` field to associate the connection with a specific user in your system.

**Deprecated for Composio-managed OAuth:** For Composio-managed auth configs on OAuth1, OAuth2, or DCR_OAUTH schemes, this endpoint is being retired and will start returning `400 BadRequest` on **2026-05-08** for new organizations and **2026-07-03** for all remaining organizations. Migrate those calls to `POST /api/v3/connected_accounts/link`. Custom auth configs and non-OAuth schemes (API key, bearer, basic) continue to be supported here. Responses on the retiring path carry a `Deprecation` header (RFC 9745) and a `Sunset` header (RFC 8594) for client-side detection.

**Credential check:** where the toolkit supports it, submitted API key, basic, and bearer credentials are checked against the provider before the connection is stored — no opt-in required. For toolkits with the check enabled, credentials the provider rejects fail the request with `ConnectedAccount_CredentialValidationRejected`. If the provider is unreachable, times out, or returns an error of its own, the connection is created as normal. (Reference)
- [Create a new custom MCP server with multiple apps](/reference/api-reference/mcp/postMcpServersCustom) — Creates a new Model Control Protocol (MCP) server instance that can integrate with multiple applications or toolkits simultaneously. This endpoint allows you to create a server that can access tools from different applications, making it suitable for complex workflows that span multiple services. (Reference)
- [Create a new MCP server](/reference/api-reference/mcp/postMcpServers) — Creates a new Model Control Protocol (MCP) server instance for the authenticated project. An MCP server provides a connection point for AI assistants to access your applications and services. The server is configured with specific authentication and tool permissions that determine what actions the connected assistants can perform. (Reference)
- [Create a new MCP server instance](/reference/api-reference/mcp/postMcpServersByServerIdInstances) — Creates a new instance for a Model Control Protocol (MCP) server. This endpoint validates that the user has connected accounts for all auth configurations associated with the MCP server before creating the instance. (Reference)
- [Create a new project](/reference/api-reference/projects/postOrgOwnerProjectNew) — Creates a new project within the authenticated user's organization using the specified name. Projects are isolated environments within your organization, each with their own API keys, webhook configurations, and resources. Use this endpoint to create additional projects for different environments (e.g., development, staging, production) or for separate applications. (Reference)
- [Create a new tool router session](/reference/api-reference/tool-router/postToolRouterSession) — Creates a new session for the tool router feature. This endpoint initializes a new session with specified toolkits and their authentication configurations. The session provides an isolated environment for testing and managing tool routing logic with scoped MCP server access. (Reference)
- [Create a presigned download URL for a mount file](/reference/api-reference/tool-router/postToolRouterSessionBySessionIdMountsByMountIdDownloadUrl) — Generates a presigned download URL for a file in a workbench session mount. Accepts a relative path within the mount. (Reference)
- [Create a presigned upload URL for a mount file](/reference/api-reference/tool-router/postToolRouterSessionBySessionIdMountsByMountIdUploadUrl) — Generates a presigned upload URL for uploading a file to a workbench session mount. The caller should PUT the file content directly to the returned URL. (Reference)
- [Create new authentication configuration](/reference/api-reference/auth-configs/postAuthConfigs) — Creates a new auth config for a toolkit, allowing you to use your own OAuth credentials or API keys instead of Composio-managed authentication. This is required when you want to use custom OAuth apps (bring your own client ID/secret) or configure specific authentication parameters for a toolkit. (Reference)
- [Create or update a trigger](/reference/api-reference/triggers/postTriggerInstancesBySlugUpsert) — Creates a new trigger instance or updates an existing one with the same configuration. Triggers listen for events from external services (webhooks or polling) and can invoke your workflows. If a matching trigger already exists and is disabled, it will be re-enabled. Provide either a connected_account_id to pin a specific user connection, or a user_id to auto-resolve the first active connection for that user and the trigger's toolkit. (Reference)
- [Create presigned URL for request file upload to S3](/reference/api-reference/files/postFilesUploadRequest) — Generates a presigned URL for uploading a file to S3. This endpoint handles deduplication by checking if a file with the same MD5 hash already exists. (Reference)
- [Create webhook endpoint](/reference/api-reference/webhook-endpoints/postWebhookEndpoints) — Creates a shared webhook endpoint for a toolkit + OAuth app + project. Returns the webhook URL that the customer registers in their app dashboard. Idempotent — returns existing endpoint if one already exists for this toolkit + client_id + project. (Reference)
- [Create webhook subscription](/reference/api-reference/webhook-subscriptions/postWebhookSubscriptions) — Creates a webhook subscription for the authenticated project. Only one subscription is allowed per project. The signing secret is returned in subscription responses. (Reference)
- [CustomToolkits](/reference/sdk-reference/typescript/custom-toolkits) — `composio.experimental.customToolkits` — toolkits your project registers from its own app or MCP server, with their own auth configs and connected accounts. **Experimental — custom toolkits are in pilot; shape may change.**  These live on the Composio platform. They are unrelated to the in-process toolkits built with `experimental_createToolkit()`, which run inside your application. (Reference)
- [Delete a connected account](/reference/api-reference/connected-accounts/deleteConnectedAccountsByNanoid) — Deletes a connected account. The account immediately stops working for API calls and cannot be restored through the API. Pass `?revoke_on_delete=true` to also revoke the account's upstream credentials. (Reference)
- [Delete a custom toolkit](/reference/api-reference/toolkits/deleteCustomToolkitsBySlug) — Experimental: custom toolkits are in pilot and this contract may change. Deletes a custom toolkit owned by the project, along with its tools, auth configs, and connected accounts, and revokes the upstream credentials of those connected accounts. Pass `?revoke_on_delete=false` to keep the credentials. Composio-managed toolkits cannot be deleted and return 403. (Reference)
- [Delete a file from a session mount](/reference/api-reference/tool-router/postToolRouterSessionBySessionIdMountsByMountIdDelete) — Deletes a file from a workbench session storage mount. Deleting a non-existent file succeeds silently (idempotent). (Reference)
- [Delete a project](/reference/api-reference/projects/deleteOrgOwnerProjectByNanoId) — Deletes a project within the organization by its unique identifier. This affects every resource belonging to the project, including its API keys, webhook configurations, and connected services. The action cannot be undone. Pass `?revoke_on_delete=true` to also revoke the upstream credentials of every connection in the project. (Reference)
- [Delete a tool router session](/reference/api-reference/tool-router/deleteToolRouterSessionBySessionId) — Deletes a tool router session. The session immediately stops being retrievable and executable — subsequent requests against it (including its MCP URL) return 404 — and any compute sandboxes attached to the session are shut down. Deleting an already-deleted session returns 404. (Reference)
- [Delete a trigger](/reference/api-reference/triggers/deleteTriggerInstancesManageByTriggerId) — Permanently deletes a trigger instance. This stops the trigger from listening for events and removes it from your project. When a webhook trigger is deleted, Composio also attempts to remove the webhook it received events through at the provider, once no other active trigger uses it. This runs in the background after the response, with retries if the provider fails. Use the PATCH endpoint with status "disable" if you want to temporarily pause a trigger instead. (Reference)
- [Delete an authentication configuration](/reference/api-reference/auth-configs/deleteAuthConfigsByNanoid) — Deletes an authentication configuration. This operation cannot be undone. Pass `?revoke_on_delete=true` to also revoke the upstream credentials of every connection using this auth config. (Reference)
- [Delete an MCP server](/reference/api-reference/mcp/deleteMcpById) — Deletes a Model Control Protocol (MCP) server, making it unavailable for future use. This cannot be undone. Any applications or services connected to this server will lose access after deletion. (Reference)
- [Delete an MCP server instance and associated connected accounts](/reference/api-reference/mcp/deleteMcpServersByServerIdInstancesByInstanceId) — Removes a user instance from the MCP server and deletes all connected accounts for that user that are associated with the auth configurations of this specific MCP server. Connected accounts for other auth configurations are not affected. (Reference)
- [Delete and generate new API key for project](/reference/api-reference/projects/postOrgOwnerProjectByNanoIdRegenerateApiKey) — Generates a new API key for the specified project, invalidating any existing API keys for that project. This operation creates a fresh API key with a new random name and key value. Every existing API key for the project stops working immediately. (Reference)
- [Delete webhook subscription](/reference/api-reference/webhook-subscriptions/deleteWebhookSubscriptionsById) — Permanently deletes a webhook subscription. This action cannot be undone. (Reference)
- [Enable or disable a connected account (DEPRECATED)](/reference/api-reference/connected-accounts/patchConnectedAccountsByNanoIdStatus) — DEPRECATED: We are controlling the API surface and the dependencies between endpoints, and enabling or disabling a connected account is covered by existing endpoints. To stop a connected account from being used, delete it with `DELETE /api/v3/connected_accounts/{nanoid}` (pass `?revoke_on_delete=true` to also revoke its upstream credentials); to use the account again, create a new connection. This endpoint still works for existing integrations but may be removed in a future release. It sets the connected account to ACTIVE (`enabled: true`) or INACTIVE (`enabled: false`); inactive accounts cannot be used for API calls. Disabling an account also disables its triggers, and Composio attempts to remove their webhooks at the provider in the background. (Reference)
- [Enable or disable an authentication configuration (DEPRECATED)](/reference/api-reference/auth-configs/patchAuthConfigsByNanoidByStatus) — DEPRECATED: We are controlling the API surface and the dependencies between endpoints, and enabling or disabling an auth config is covered by existing endpoints. To stop new connections through an auth config, stop creating connected accounts with it; to remove it, delete it with `DELETE /api/v3/auth_configs/{nanoid}` (pass `?revoke_on_delete=true` to also revoke the upstream credentials of its connections). This endpoint still works for existing integrations but may be removed in a future release. It sets the auth config to ENABLED or DISABLED; disabled auth configs cannot be used for new connections. (Reference)
- [Errors](/reference/errors) — Composio API error codes, HTTP status codes, and troubleshooting guide (Reference)
- [Execute a meta tool within a tool router session](/reference/api-reference/tool-router/postToolRouterSessionBySessionIdExecuteMeta) — Execute a Composio meta tool (COMPOSIO_*) within an existing tool router session. (Reference)
- [Execute a tool within a tool router session](/reference/api-reference/tool-router/postToolRouterSessionBySessionIdExecute) — Execute a tool (meta or app) within an existing tool router session. (Reference)
- [Execute proxy request](/reference/api-reference/tools/postToolsExecuteProxy) — Proxy an HTTP request to a third-party API using connected account credentials. This endpoint allows making authenticated API calls to external services while abstracting away authentication details. (Reference)
- [Execute proxy request within a tool router session](/reference/api-reference/tool-router/postToolRouterSessionBySessionIdProxyExecute) — Execute any native API call on a toolkit with authentication automatically injected from Composio. This endpoint proxies HTTP requests to third-party APIs using connected account credentials resolved from the session context. Provide the toolkit slug, API endpoint, and HTTP method — Composio handles authentication injection, abstracting away credential management. Supports all HTTP methods, custom headers/query parameters, and binary request/response bodies. (Reference)
- [Execute tool](/reference/api-reference/tools/postToolsExecuteByToolSlug) — Execute a specific tool operation with provided arguments and authentication. This is the primary endpoint for integrating with third-party services and executing tools. You can provide structured arguments or use natural language processing by providing a text description of what you want to accomplish. (Reference)
- [Experimental](/reference/sdk-reference/typescript/experimental) — Experimental class reference (Reference)
- [Fetch multiple toolkits](/reference/api-reference/toolkits/postToolkitsMulti) — Retrieves a comprehensive list of toolkits of their latest versions that are available to the authenticated project. Toolkits represent integration points with external services and applications, each containing a collection of tools and triggers. This endpoint supports filtering by category and management type, as well as different sorting options. You can optionally specify a list of toolkit slugs to fetch specific toolkits. (Reference)
- [Files](/reference/api-reference/files) — File management (Reference)
- [Generate MCP URL with custom parameters](/reference/api-reference/mcp/postMcpServersGenerate) — Generates a Model Control Protocol (MCP) URL for an existing server with custom query parameters. The URL includes user-specific parameters and configuration flags that control the behavior of the MCP connection. (Reference)
- [Generate tool inputs from natural language (DEPRECATED)](/reference/api-reference/tools/postToolsExecuteByToolSlugInput) — DEPRECATED: This endpoint is no longer maintained. It still works for existing integrations but may be removed in a future release. To build tool arguments, fetch the tool's input schema with `GET /api/v3/tools/{tool_slug}` and generate the arguments in your own application. Uses AI to translate a natural language description into structured arguments for a specific tool. (Reference)
- [Get a tool router session by ID (v3.1)](/reference/api-reference/tool-router/getToolRouterSessionBySessionId) — Retrieves an existing tool router session by its ID. Returns the session configuration, MCP server URL, and available tools. (Reference)
- [Get connected account details by ID](/reference/api-reference/connected-accounts/getConnectedAccountsByNanoid) — Retrieves comprehensive details of a connected account, including authentication configuration, connection status, and all parameters needed for API requests. (Reference)
- [Get log details by ID](/reference/api-reference/logs/getLogsToolExecutionById) — Retrieve detailed log information by log ID. (Reference)
- [Get MCP server details by ID](/reference/api-reference/mcp/getMcpById) — Retrieves detailed configuration information for a specific Model Control Protocol (MCP) server. The returned data includes connection details, associated applications, enabled tools, and authentication configuration. (Reference)
- [Get project details by ID With Org Api key](/reference/api-reference/projects/getOrgOwnerProjectByNanoId) — Retrieves detailed information about a specific project using its unique identifier. This endpoint provides complete project configuration including webhook URLs, creation and update timestamps, and webhook secrets. Use this endpoint to inspect project settings or verify project configuration. (Reference)
- [Get required scopes](/reference/api-reference/toolkits/recommendToolkitScopes) — Experimental: this endpoint is in beta and its contract may change.

Recommends the required scopes to use the given set of tools. (Reference)
- [Get required scopes for tools (DEPRECATED)](/reference/api-reference/tools/postToolsScopesRequired) — DEPRECATED: Use POST /api/v3.1/toolkits/{toolkit_slug}/scopes/recommended instead, discovering its `grant_context` options with GET /api/v3.1/toolkits/{toolkit_slug}/scopes/grant_context. Resolves required scopes for the specified tools at a given toolkit version. All requested tools must belong to the same toolkit. Returns the flat scope union plus per-tool structured scope requirements when available. (Reference)
- [Get single authentication configuration by ID](/reference/api-reference/auth-configs/getAuthConfigsByNanoid) — Retrieves detailed information about a specific authentication configuration using its unique identifier. (Reference)
- [Get tool by slug](/reference/api-reference/tools/getToolsByToolSlug) — Retrieve detailed information about a specific tool using its slug identifier. This endpoint returns full metadata about a tool including input/output parameters, versions, and toolkit information. (Reference)
- [Get tool enum list](/reference/api-reference/tools/getToolsEnum) — Retrieve a list of all available tool enumeration values (tool slugs) from latest version of each toolkit. This endpoint returns a comma-separated string of tool slugs that can be used in other API calls. (Reference)
- [Get toolkit by slug](/reference/api-reference/toolkits/getToolkitsBySlug) — Retrieves comprehensive information about a specific toolkit using its unique slug identifier. This endpoint provides detailed metadata, authentication configuration options, and feature counts for the requested toolkit. (Reference)
- [Get toolkits changelog](/reference/api-reference/toolkits/getToolkitsChangelog) — Retrieves the last 10 versions changelog for all toolkits. This endpoint provides version history and changelog information for each toolkit. (Reference)
- [Get toolkits for a tool router session](/reference/api-reference/tool-router/getToolRouterSessionBySessionIdToolkits) — Retrieves a cursor-paginated list of toolkits available in the tool router session. Includes toolkit metadata, composio-managed auth schemes, and connected accounts if available. Optionally filter by specific toolkit slugs. (Reference)
- [Get trigger type by slug](/reference/api-reference/triggers/getTriggersTypesBySlug) — Retrieve detailed information about a specific trigger type using its slug identifier (Reference)
- [Get webhook endpoint](/reference/api-reference/webhook-endpoints/getWebhookEndpointsByNanoId) — Retrieves a single webhook endpoint. Secret values are redacted. Use GET /webhook_endpoints/schema to discover field definitions. (Reference)
- [Get webhook subscription](/reference/api-reference/webhook-subscriptions/getWebhookSubscriptionsById) — Retrieves a webhook subscription by ID. (Reference)
- [Glossary](/reference/glossary) — Definitions of key Composio terms and concepts. (Reference)
- [Keyring](/reference/sdk-reference/typescript/keyring) — `composio.keyring` — the organization's customer-managed keyring. (Reference)
- [List a tool router session config history](/reference/api-reference/tool-router/getToolRouterSessionBySessionIdConfigHistory) — Returns the session config history ordered by version DESC (newest first). The live (current) config appears once, on the first page only, with `is_current: true`; archived versions have `is_current: false`. (Reference)
- [List active triggers](/reference/api-reference/triggers/getTriggerInstancesActive) — Retrieves all active trigger instances for your project. Triggers listen for events from connected accounts (e.g., new emails, Slack messages, GitHub commits) and can invoke webhooks or workflows. Use filters to find triggers for specific users, connected accounts, or trigger types. (Reference)
- [List all instances for an MCP server](/reference/api-reference/mcp/getMcpServersByServerIdInstances) — Retrieves a paginated list of user instances (user IDs) associated with a specific Model Control Protocol (MCP) server. This endpoint supports pagination to handle servers with many instances. (Reference)
- [List all projects](/reference/api-reference/projects/getOrgProjectList) — Retrieves projects belonging to the authenticated organization by default, or all organizations the authenticated user belongs to when list_all_org_projects is true. Projects are returned in descending order of creation date (newest first). This endpoint is useful for displaying project selection in dashboards or for integrations that need to list all available projects. (Reference)
- [List all projects](/reference/api-reference/projects/getOrgOwnerProjectList) — Retrieves all projects belonging to the authenticated organization. Projects are returned in descending order of creation date (newest first). This endpoint is useful for displaying project selection in dashboards or for integrations that need to list all available projects. (Reference)
- [List authentication configurations with optional filters](/reference/api-reference/auth-configs/getAuthConfigs) — Retrieves all auth configs for your project. Auth configs define how users authenticate with external services (OAuth, API keys, etc.). Use filters to find configs for specific toolkits or to distinguish between Composio-managed and custom configurations. (Reference)
- [List available event types](/reference/api-reference/webhook-subscriptions/getWebhookSubscriptionsEventTypes) — Returns all event types that can be subscribed to, along with their supported webhook versions. (Reference)
- [List available toolkits](/reference/api-reference/toolkits/getToolkits) — Retrieves a comprehensive list of toolkits of their latest versions that are available to the authenticated project. Toolkits represent integration points with external services and applications, each containing a collection of tools and triggers. This endpoint supports filtering by category and management type, as well as different sorting options. (Reference)
- [List available tools](/reference/api-reference/tools/getTools) — Retrieve a paginated list of available tools with comprehensive filtering, sorting and search capabilities. Use query parameters to narrow down results by toolkit, tags, or search terms. (Reference)
- [List connected accounts with optional filters](/reference/api-reference/connected-accounts/getConnectedAccounts) — Retrieves all connected accounts for your project. Connected accounts represent authenticated user connections to external services (e.g., a user's Gmail account, Slack workspace). Filter by toolkit, status, user ID, or auth config to find specific connections. (Reference)
- [List files in a session mount](/reference/api-reference/tool-router/getToolRouterSessionBySessionIdMountsByMountIdItems) — Lists files in a workbench session storage mount with cursor-based pagination. Use the download_url endpoint with the returned mount_relative_path to get a presigned download URL. (Reference)
- [List files with optional app and action filters (DEPRECATED)](/reference/api-reference/files/getFilesList) — DEPRECATED: This endpoint is deprecated and will be removed in a future release. Retrieves a list of files associated with the authenticated project. Results can be filtered by toolkit and tool slugs. Responses carry a `Deprecation` header (RFC 9745) for client-side detection. (Reference)
- [List grant contexts](/reference/api-reference/toolkits/recommendToolkitScopesGrantContext) — Experimental: this endpoint is in beta and its contract may change.

List of contexts in which you want to grant scopes to your user. Pass a dimension and its selected value in the `grant_context` field of the [Get required scopes](https://docs.composio.dev/reference/api-reference/toolkits/recommendToolkitScopes) request to tailor the scope recommendation.

In the Jira example, `default_grant_context` is `{"scope_family": "classic"}`, so a recommendation with no `grant_context` uses classic scopes. Pass `{"scope_family": "granular"}` to get granular scopes instead. (Reference)
- [List MCP servers for a specific app](/reference/api-reference/mcp/getMcpAppByAppKey) — Retrieves a paginated list of Model Control Protocol (MCP) servers that are configured for a specific application or toolkit. This endpoint allows you to find all MCP server instances that have access to a particular application, such as GitHub, Slack, or Jira. (Reference)
- [List MCP servers with optional filters and pagination](/reference/api-reference/mcp/getMcpServers) — Retrieves a paginated list of MCP servers associated with the authenticated project. Results can be filtered by name, toolkit, or authentication configuration ID. MCP servers are used to provide Model Control Protocol integration points for connecting AI assistants to your applications and services. (Reference)
- [List organizations](/reference/api-reference/organization-management/getOrgList) — Retrieves a list of organizations that the authenticated user has access to. This includes organizations where the user is a member with any role. (Reference)
- [List Session configs](/reference/api-reference/tool-router/getSessionConfigs) — List Session configs in your project, newest updated first. Returns active configs by default; set archived=true to list archived configs. Retrieve a config by ID for its description and toolkit, tool, and tag policy. Experimental: available only to projects enabled for Session configs. Create and manage configs in Dashboard. (Reference)
- [List toolkit categories](/reference/api-reference/toolkits/getToolkitsCategories) — Retrieves a comprehensive list of all available toolkit categories from their latest versions. These categories can be used to filter toolkits by type or purpose when using the toolkit listing endpoint. Categories help organize toolkits into logical groups based on their functionality or industry focus. (Reference)
- [List tools with schemas for a tool router session (v3.1)](/reference/api-reference/tool-router/getToolRouterSessionBySessionIdTools) — Returns tools available in a tool router session with complete schemas. Results are paginated; use `next_cursor` to fetch the next page. Tools are returned in alphabetical order. (Reference)
- [List trigger type enums](/reference/api-reference/triggers/getTriggersTypesListEnum) — Retrieves a list of all available trigger type enum values that can be used across the API from latest versions of the toolkit only (Reference)
- [List trigger types](/reference/api-reference/triggers/getTriggersTypes) — Retrieve a list of available trigger types with optional filtering by toolkit. Results are paginated and can be filtered by toolkit. (Reference)
- [List webhook endpoints](/reference/api-reference/webhook-endpoints/getWebhookEndpoints) — Lists webhook endpoints for the authenticated project, optionally filtered by toolkit. (Reference)
- [List webhook subscriptions](/reference/api-reference/webhook-subscriptions/getWebhookSubscriptions) — Lists all webhook subscriptions for the authenticated project with pagination. Currently limited to one subscription per project. (Reference)
- [Logs](/reference/api-reference/logs) — Logging and monitoring (Reference)
- [Logs](/reference/sdk-reference/typescript/logs) — `composio.logs` — tool-execution logs. (Reference)
- [MCP](/reference/api-reference/mcp) — MCP server management (Reference)
- [MCP](/reference/sdk-reference/python/mcp) — MCP (Model Control Protocol) class. Provides enhanced MCP server operations  This matches the TypeScript ExperimentalMCP class functionality. (Reference)
- [MCP](/reference/sdk-reference/typescript/mcp) — MCP (Model Control Protocol) class Handles MCP server operations. When `config.experimental.mcp` is enabled, this class augments the features of `composio.mcp`. (Reference)
- [Org usage breakdown](/reference/api-reference/organization/postOrgUsageByEntityType) — Grouped metering usage breakdown for the authenticated organization. Groups results by a single dimension or column key. By default includes all projects; use `filters.project_id` to restrict. (Reference)
- [Org usage summary](/reference/api-reference/organization/postOrgUsageSummary) — Aggregated metering usage for the authenticated organization. By default includes all projects; use `filters.project_id` to restrict to one or more projects (must belong to the org). Values are summed from raw metering events grouped by `entity_type`. (Reference)
- [Organization](/reference/api-reference/organization) — Organization management (Reference)
- [Organization Management](/reference/api-reference/organization-management) — Organization Management API endpoints (Reference)
- [Overview](/reference/authenticating-to-composio) — Authenticate requests to the Composio API with an API key (Reference)
- [Overview](/reference) — Composio REST API and SDK reference for AI agent tool execution, authentication, and integrations (Reference)
- [Patch a tool router session config (v3.1)](/reference/api-reference/tool-router/patchToolRouterSessionBySessionId) — Partially updates an existing tool router session. Inline fields update only the supplied settings. Alternatively, experimental.session_config_id applies the latest active saved config from this project, replacing toolkit, tool, and tag access while preserving other settings. Later saved-config edits do not sync automatically. Uses optimistic concurrency control and retains the previous policy in config history. (Reference)
- [Project usage breakdown](/reference/api-reference/projects/postProjectUsageByEntityType) — Grouped metering usage breakdown for the authenticated project. Groups results by a single dimension or column key. (Reference)
- [Project usage summary](/reference/api-reference/projects/postProjectUsageSummary) — Aggregated metering usage for the authenticated project only. Values are summed from raw metering events grouped by `entity_type`. (Reference)
- [Projects](/reference/api-reference/projects) — Projects API endpoints (Reference)
- [Put webhook endpoint configuration](/reference/api-reference/webhook-endpoints/postWebhookEndpointsByNanoId) — Full replacement of webhook endpoint configuration. All required setup fields must be provided. Use PATCH to update individual fields. (Reference)
- [Python SDK Reference](/reference/sdk-reference/python) — API reference for the Composio Python SDK (Reference)
- [Rate Limits](/reference/rate-limits) — Composio API rate limits by plan, rate limit headers, and best practices (Reference)
- [Re-initiate authentication for a connected account (DEPRECATED)](/reference/api-reference/connected-accounts/postConnectedAccountsByNanoidRefresh) — DEPRECATED: This endpoint re-initiates the authorization flow for a connected account — a developer-triggered reconnection (e.g. to recover a connection whose credentials expired or became invalid), returning a new OAuth redirect URL where applicable. It does NOT perform background credential auto-refresh; the "refresh" name was misleading, which is why the endpoint is deprecated and may be removed in a future release. (Reference)
- [RemoteFile](/reference/sdk-reference/typescript/remote-file) — Represents a file stored in a tool router session's file mount. Provides methods to fetch, save, and work with the file content. (Reference)
- [Retrieve a Session config](/reference/api-reference/tool-router/getSessionConfigsBySessionConfigId) — Retrieve a saved access policy in your project. config.toolkits.enable selects toolkit slugs; config.toolkits.disable excludes them; an omitted config.toolkits allows all toolkits. Tool and tag rules further restrict access. This returns the saved policy, not an expanded catalog or an existing Session snapshot. Archived configs remain readable but cannot create new Sessions. Experimental: available only to projects enabled for Session configs. Create and manage configs in Dashboard. (Reference)
- [Revoke a connected account at the provider](/reference/api-reference/connected-accounts/postConnectedAccountsByNanoidRevoke) — Best-effort upstream revocation. On success, the connection transitions to REVOKED. Returns 400 when the toolkit does not support programmatic revocation, 409 when the connection is not in a revokable state, 500 when every upstream dispatch fails. (Reference)
- [Revoke Composio API keys](/reference/api-reference/api-keys/postApiKeyRevocation) — Public endpoint for reporting and revoking Composio API keys that have been leaked (e.g. via the GitHub Secret Scanning Partner Program, third-party scanners, or self-reported leaks). Accepts project (ak_*), user (uak_*), and org (oak_*) keys in a single batch. Matched keys are revoked and stop working immediately. The response shape is constant regardless of whether any submitted key matched, so callers cannot use this endpoint to probe key existence. The endpoint is rate limited; requests over the limit receive a 429. (Reference)
- [Rotate webhook secret](/reference/api-reference/webhook-subscriptions/postWebhookSubscriptionsByIdRotateSecret) — Generates a new signing secret for the webhook subscription. (Reference)
- [Scoped Project API Key](/reference/authenticating-to-composio/project-api-key-permissions) — Choose which project resources a scoped API key can access. (Reference)
- [Search and retrieve tool execution logs](/reference/api-reference/logs/postLogsToolExecution) — Search and retrieve tool execution logs with filtering, pagination, and time range support. (Reference)
- [Search for tools using a query](/reference/api-reference/tool-router/postToolRouterSessionBySessionIdSearch) — Search for tools matching a use case query within an existing tool router session. (Reference)
- [Session](/reference/sdk-reference/python/session) — A Composio session \u2014 the object returned by `composio.create(...)` / `composio.use(...)`. Use it to fetch session-scoped tools, authorize toolkits,... (Reference)
- [Session](/reference/sdk-reference/typescript/session) — A Composio session — the object returned by `composio.sessions.create(...)` and `composio.sessions.use(...)` (also reachable via the top-level `composio.create(...)` / `composio.use(...)` aliases).  This is the canonical session surface. Use it to fetch session-scoped tools, authorize toolkits, search, and execute tools. The public return type is `Session` (with `mcp` surfaced, returned when `{ mcp: true }` is passed) or `SessionWithoutMcp` (the default, with `mcp` omitted from the type); this class is the concrete runtime form behind both. (Reference)
- [Session files](/reference/sdk-reference/typescript/session-files) — File mount for a Composio session, reached via `session.experimental.files` on a session created with `composio.sessions.create(...)`. Upload, list, download, and delete files scoped to a single session. (Reference)
- [SessionConfigs](/reference/sdk-reference/typescript/session-configs) — `composio.sessionConfigs` — saved, reusable Session configs.  A Session config is a named access policy (`sc_…`) built in the Composio Dashboard under Sessions → Configs. Pass its id as `experimental.sessionConfigId` to `composio.sessions.create()` or `session.update()` to apply it.  These endpoints require Session configs to be enabled for the project; otherwise the backend returns 403. (Reference)
- [Sessions](/reference/sdk-reference/typescript/sessions) — First-class API for creating and reusing Composio sessions.  `composio.sessions.create(...)` is the canonical session creation entrypoint. The top-level `composio.create(...)` method remains as a backwards-compatible alias for `composio.sessions.create(...)`. (Reference)
- [Sessions (prev Tool Router)](/reference/api-reference/tool-router) — (Labs) Tool router endpoints (Reference)
- [Sync a custom toolkit](/reference/api-reference/toolkits/postCustomToolkitsSync) — Experimental: custom toolkits are in pilot and this contract may change. Re-fetches tool definitions from the remote MCP server for the custom toolkit with the provided slug. Call it when automatic sync fails or the remote tool definitions change. (Reference)
- [Toolkits](/reference/api-reference/toolkits) — Toolkit and tool management (Reference)
- [Toolkits](/reference/sdk-reference/python/toolkits) — Toolkits are a collectiono of tools that can be used to perform various tasks. They're conceptualized as a set of tools. Ex: Github toolkit can per... (Reference)
- [Toolkits](/reference/sdk-reference/typescript/toolkits) — Toolkits class  Toolkits are a collection of tools that can be used to perform various tasks. This is similar/replacement of `apps` in the Composio API. (Reference)
- [Tools](/reference/api-reference/tools) — Tool execution endpoints (Reference)
- [Tools](/reference/sdk-reference/python/tools) — Tools class definition  This class is used to manage tools in the Composio SDK. It provides methods to list, get, and execute tools.  Generic Param... (Reference)
- [Tools](/reference/sdk-reference/typescript/tools) — This class is used to manage tools in the Composio SDK. It provides methods to list, get, and execute tools. (Reference)
- [Trigger disabled](/reference/api-reference/webhook-events/composio_trigger_disabled) — Fired when Composio automatically disables a trigger (for example, auth expired or the webhook subscription can no longer be refreshed). Not fired when you disable the trigger or its connected account yourself. (Reference)
- [Trigger message](/reference/api-reference/webhook-events/composio_trigger_message) — Fired when a trigger receives data from an external service. (Reference)
- [Trigger message (V1)](/reference/api-reference/webhook-events/composio_trigger_message_v1) — The V1 trigger payload format. New integrations should use V3. (Reference)
- [Trigger message (V2)](/reference/api-reference/webhook-events/composio_trigger_message_v2) — The V2 trigger payload format. New integrations should use V3. (Reference)
- [Triggers](/reference/api-reference/triggers) — Trigger management and execution (Reference)
- [Triggers](/reference/sdk-reference/python/triggers) — Triggers (instance) class (Reference)
- [Triggers](/reference/sdk-reference/typescript/triggers) — Trigger (Instance) class (Reference)
- [TypeScript SDK Reference](/reference/sdk-reference/typescript) — Complete API reference for the Composio TypeScript SDK (@composio/core). (Reference)
- [Update a connected account](/reference/api-reference/connected-accounts/patchConnectedAccountsByNanoid) — Update a connected account. Supports updating the alias and/or credentials. Only specified fields will be updated. Set a credential field to null to remove it. Alias must be unique within the same project, entity, and toolkit scope. (Reference)
- [Update a trigger](/reference/api-reference/triggers/patchTriggerInstancesManageByTriggerId) — Updates a trigger instance. Pass status to enable or disable it: disabling pauses event listening without deleting the trigger configuration, and re-enabling restores it. When a webhook trigger is disabled, Composio also attempts to remove the webhook it received events through at the provider, once no other active trigger uses it. This runs in the background after the response, with retries if the provider fails. Re-enabling a webhook trigger sets it up with the provider again. Pass egress_url to override where this instance delivers its events (null removes the override); the project webhook subscription is still required and still controls signing, the payload version and which events are enabled. Send either field or both. On a project with 2FA enabled, user_id is required to set egress_url and, whenever sent, must own the connected account behind the trigger. (Reference)
- [Update an authentication configuration](/reference/api-reference/auth-configs/patchAuthConfigsByNanoid) — Modifies an existing authentication configuration with new credentials or other settings. Only specified fields will be updated. (Reference)
- [Update MCP server configuration](/reference/api-reference/mcp/patchMcpById) — Updates the configuration of an existing Model Control Protocol (MCP) server. You can modify the server name, associated applications, and enabled tools. Only the fields included in the request will be updated. (Reference)
- [Update webhook endpoint configuration](/reference/api-reference/webhook-endpoints/patchWebhookEndpointsByNanoId) — Updates app-specific secrets and credentials. Uses merge semantics — only included fields are updated; omitted fields are preserved. Can be called on active endpoints (e.g., to rotate a signing secret). (Reference)
- [Update webhook subscription](/reference/api-reference/webhook-subscriptions/patchWebhookSubscriptionsById) — Updates a webhook subscription. At least one field must be provided. (Reference)
- [Upsert a custom toolkit](/reference/api-reference/toolkits/postCustomToolkitsUpsert) — Experimental: custom toolkits are in pilot and this contract may change. Creates a custom toolkit for the project with the provided slug, or updates its display metadata (name, API key field copy) when the project already owns a toolkit with that slug. A toolkit created here is shared with every user in the project; an existing toolkit keeps its access. app_url and auth_schemes cannot be changed on an existing toolkit: re-sending them unchanged is a no-op, changing them returns 409 (delete and re-register the toolkit instead, which revokes its connections). (Reference)
- [Usage](/reference/sdk-reference/typescript/usage) — `composio.experimental.usage` — metering for the project the API key belongs to. **Experimental — shape may change in future releases.** (Reference)
- [Webhook Endpoints](/reference/api-reference/webhook-endpoints) — Per-OAuth-app webhook ingress endpoints. Inbound URLs the provider posts to, plus signing secret storage and verification. (Reference)
- [Webhook Events](/reference/api-reference/webhook-events) — Events delivered by Composio to your registered webhook endpoints (Reference)
- [Webhook Subscriptions](/reference/api-reference/webhook-subscriptions) — Webhook delivery subscriptions. Outbound URLs Composio posts trigger events to, plus signing secret rotation and event-type filters. (Reference)
- [WebhookEndpoints](/reference/sdk-reference/typescript/webhook-endpoints) — `composio.webhooks.endpoints` — inbound webhook endpoints. Each endpoint is the ingress URL Composio exposes for one toolkit + OAuth app pair, which you register with the third-party provider so it can push events to Composio. (Reference)
- [Webhooks](/reference/sdk-reference/typescript/webhooks) — `composio.webhooks` namespace.  - `subscriptions`: the project's outbound webhook subscription (where  Composio delivers trigger and lifecycle events). - `endpoints`: inbound ingress URLs for third-party providers, one per  toolkit + OAuth app pair. (Reference)
- [WebhookSubscriptions](/reference/sdk-reference/typescript/webhook-subscriptions) — `composio.webhooks.subscriptions` — the project's outbound webhook subscription. The API allows one subscription per project; every response includes the signing `secret` used to verify deliveries with `composio.triggers.verifyWebhook()` / `composio.triggers.parse()`. (Reference)
- [Auth Configs](/reference/v3/api-reference/auth-configs) — Authentication configuration management (Legacy Reference)
- [Authentication](/reference/v3/authentication) — How to authenticate with Composio APIs using project and organization API keys (Legacy Reference)
- [Connected Accounts](/docs/auth-configuration/connected-accounts) — Manage and monitor user connections to toolkits (Legacy Reference)
- [Connected Accounts](/reference/v3/api-reference/connected-accounts) — Connected account management (Legacy Reference)
- [Custom Auth Configs](/docs/auth-configuration/custom-auth-configs) — Customize auth configs for any toolkit (Legacy Reference)
- [Custom Auth Parameters](/docs/auth-configuration/custom-auth-params) — Inject custom credentials in headers or parameters (Legacy Reference)
- [Errors](/reference/v3/errors) — Composio API error codes, HTTP status codes, and troubleshooting guide (Legacy Reference)
- [Files](/reference/v3/api-reference/files) — File management (Legacy Reference)
- [MCP](/reference/v3/api-reference/mcp) — MCP server management (Legacy Reference)
- [Migrating from Experimental Tool Router](/docs/migration-guide/tool-router-beta) — Migrate from the experimental tool router to Composio sessions (Legacy Reference)
- [Migrating from initiate() to link()](/docs/auth-configuration/migrating-initiate-to-link) — Move Composio-managed OAuth flows off the legacy POST /api/v3/connected_accounts endpoint and onto link() before the 2026-05-08 / 2026-07-03 cutover. (Legacy Reference)
- [Organization Management](/reference/v3/api-reference/organization-management) — Organization Management API endpoints (Legacy Reference)
- [Our next generation SDKs](/docs/migration-guide/new-sdk) — Learn more about Composio's next generation SDKs and how to migrate (Legacy Reference)
- [Overview](/reference/v3) — Composio REST API and SDK reference for AI agent tool execution, authentication, and integrations (Legacy Reference)
- [Projects](/reference/v3/api-reference/projects) — Projects API endpoints (Legacy Reference)
- [Rate Limits](/reference/v3/rate-limits) — Composio API rate limits by plan, rate limit headers, and best practices (Legacy Reference)
- [Sessions (prev Tool Router)](/reference/v3/api-reference/tool-router) — (Labs) Tool router endpoints (Legacy Reference)
- [Sessions vs Direct Execution](/docs/sessions-vs-direct-execution) — When to use session-based meta tools vs direct tool fetching and execution (Legacy Reference)
- [Single Toolkit MCP](/docs/single-toolkit-mcp) — Create MCP servers for specific toolkits (Legacy Reference)
- [Toolkits](/reference/v3/api-reference/toolkits) — Toolkit and tool management (Legacy Reference)
- [Tools](/reference/v3/api-reference/tools) — Tool execution endpoints (Legacy Reference)
- [Triggers](/reference/v3/api-reference/triggers) — Trigger management and execution (Legacy Reference)
- [Webhook Endpoints](/reference/v3/api-reference/webhook-endpoints) — Per-OAuth-app webhook ingress endpoints. Inbound URLs the provider posts to, plus signing secret storage and verification. (Legacy Reference)
- [Webhook Subscriptions](/reference/v3/api-reference/webhook-subscriptions) — Webhook delivery subscriptions. Outbound URLs Composio posts trigger events to, plus signing secret rotation and event-type filters. (Legacy Reference)
- [White-labeling (direct execution)](/docs/auth-configuration/white-labeling) — Remove Composio branding from your auth flows (Legacy Reference)

---

📚 **More documentation:** [View all docs](https://docs.composio.dev/llms.txt) | [Glossary](https://docs.composio.dev/llms.mdx/reference/glossary) | [Examples](https://docs.composio.dev/llms.mdx/examples) | [API Reference](https://docs.composio.dev/llms.mdx/reference)