SDK ReferenceTypeScript SDK

Composio

Markdown

Constructor

constructor()

Creates a new instance of the Composio SDK.

The constructor initializes the SDK with the provided configuration options, sets up the API client, and initializes all core models (tools, toolkits, etc.).

constructor(config?: ComposioConfig): Composio

Parameters

NameTypeDescription
config?ComposioConfigConfiguration options for the Composio SDK

Returns

Composio

Example

// Initialize with default configuration
const composio = new Composio();

// Initialize with custom API key and base URL
const composio = new Composio({
  apiKey: 'your-api-key',
  baseURL: 'https://api.composio.dev'
});

// Initialize with custom provider
const composio = new Composio({
  apiKey: 'your-api-key',
  provider: new CustomProvider()
});

Properties

NameTypeDescription
authConfigsAuthConfigsManage authentication configurations for toolkits
connectedAccountsConnectedAccountsManage authenticated connections
createobjectCreates a new tool router session for a user.
filesFilesUpload and download files
mcpMCPModel Context Protocol server management
providerTProviderThe tool provider instance used for wrapping tools in framework-specific formats
toolkitsToolkitsRetrieve toolkit metadata and authorize user connections
toolRouterToolRouterExperimental feature, use with caution
toolsToolsList, retrieve, and execute tools
triggersTriggersManage webhook triggers and event subscriptions
use(id: string) => Promise<ToolRouterSession>Use an existing tool router session

Methods

createSession()

Creates a new instance of the Composio SDK with custom request options while preserving the existing configuration. This method is particularly useful when you need to:

  • Add custom headers for specific requests
  • Track request contexts with unique identifiers
  • Override default request behavior for a subset of operations

The new instance inherits all configuration from the parent instance (apiKey, baseURL, provider, etc.) but allows you to specify custom request options that will be used for all API calls made through this session.

createSession(options?: { headers?: ComposioRequestHeaders }): Composio

Parameters

NameType
options?object

Returns

Composio — A new Composio instance with the custom request options applied.

Example

// Create a base Composio instance
const composio = new Composio({
  apiKey: 'your-api-key'
});

// Create a session with request tracking headers
const composioWithCustomHeaders = composio.createSession({
  headers: {
    'x-request-id': '1234567890',
    'x-correlation-id': 'session-abc-123',
    'x-custom-header': 'custom-value'
  }
});

// Use the session for making API calls with the custom headers
await composioWithCustomHeaders.tools.list();

flush()

Flush any pending telemetry and wait for it to complete.

In Node.js-compatible environments, telemetry is automatically flushed on process exit. However, in environments like Cloudflare Workers that don't support process exit events, you should call this method manually to ensure all telemetry is sent.

async flush(): Promise<void>

Returns

Promise<void> — A promise that resolves when all pending telemetry has been sent.

Example

// In a Cloudflare Worker, use ctx.waitUntil to ensure telemetry is flushed
export default {
  async fetch(request: Request, env: Env, ctx: ExecutionContext) {
    const composio = new Composio({ apiKey: env.COMPOSIO_API_KEY });

    // Do your work...
    const result = await composio.tools.execute(...);

    // Ensure telemetry flushes before worker terminates
    ctx.waitUntil(composio.flush());

    return new Response(JSON.stringify(result));
  }
};

getClient()

Get the Composio SDK client.

getClient(): Composio

Returns

Composio — The Composio API client.


getConfig()

Get the configuration SDK is initialized with

getConfig(): ComposioConfig

Returns

ComposioConfig — The configuration SDK is initialized with