---
title: "Sync a custom toolkit"
method: POST
path: "/api/v3.1/custom/toolkits/sync"
tags: ["Toolkits"]
---

# Sync a custom toolkit

`POST /api/v3.1/custom/toolkits/sync`

## Request

- Base URL: `https://backend.composio.dev`
- URL: `https://backend.composio.dev/api/v3.1/custom/toolkits/sync`
- Auth: one of:
  - API key in header `x-api-key`
  - API key in header `x-user-api-key`

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.

## Request body

- object
  - `slug` string, required: Toolkit slug to sync
  - `connected_account_id` string, connectedAccountId: The unique identifier for the connected account

## Response `200`

Successfully synced toolkit

- object
  - `slug` string, required: Synced toolkit slug
  - `version` string, required: Version of the toolkit created after sync
  - `synced_count` number, required: Number of tools synced for toolkit

## Other responses

- `400`: Bad request - Invalid parameters
- `401`: Unauthorized - Invalid or missing credentials
- `403`: Forbidden - The caller cannot write custom toolkits
- `404`: Not found - Toolkit not found
- `408`: Request timeout
- `409`: Conflict - Toolkit already exists
- `500`: Internal server error - Failed to sync toolkit

## Changes

- **2026-10-16** `98956f31abf3`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/composiohq/apis/composio-platform-api-v3-1/changes/api/v3.1/custom/toolkits/sync/post.md)

---

[API](https://skmtc.dev/composiohq/apis/composio-platform-api-v3-1.md) - [All operations](https://skmtc.dev/composiohq/apis/composio-platform-api-v3-1/llms.txt) - [OpenAPI document](https://skmtc.dev/composiohq/apis/composio-platform-api-v3-1/revisions/4bd56a0836f8?raw)
