API ReferenceToolkits

Upsert a custom toolkitv3.0

POST
/api/v3/custom/toolkits/upsert

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).

Authorization

x-api-key<token>

Project API key authentication

In: header

Request Body

application/json

Toolkit creation data

slugstringRequired

Unique slug identifier for the toolkit. Your slug will be prefixed with CUSTOM_ to avoid collision with composio managed toolkits. Spaces will be converted to underscores.

toolkit_configobjectRequired

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

import requestsurl = "https://example.com/api/v3/custom/toolkits/upsert"body = """{  "slug": "MY_TOOLKIT",  "toolkit_config": {    "name": "string",    "app_url": "http://example.com",    "auth_schemes": [      {        "mode": "NO_AUTH"      }    ]  }}"""response = requests.request("POST", url, data = body, headers = {  "Content-Type": "application/json"})print(response.text)
{  "slug": "CUSTOM_MY_TOOLKIT"}