---
title: "Update custom connector"
method: PATCH
path: "/connector/{slug}"
tags: ["Custom connectors"]
---

# Update custom connector

`PATCH /connector/{slug}`

## Request

- Base URL: `https://api.elaichi.ai`
- URL: `https://api.elaichi.ai/connector/{slug}`
- Auth: HTTP bearer

Updates a custom connector. **`config` is REPLACED wholesale when present** — send the complete definition, since anything omitted is gone. `label` and `category` are ordinary merge-patch fields. Org-owned connectors only, and the caller needs edit access (ownership or an `edit` share). Existing connections keep working, but tools removed from the config stop resolving in every toolbox that names them. A remote MCP connector (`kind: "remote_mcp"`) takes a different body: `label`, `category`, `logo`, `description`, `auth_config` (`custom` sign-in only; replaces the declaration whole, and the response carries `reconnect_required: true` when its fields changed so existing connections must sign in again), `client_id` / `client_secret` (`oauth_client` only; an omitted secret keeps the stored one) and `omit_refresh_scope` (OAuth only, else 400 `omit_refresh_scope_not_oauth`; `true` sets it, `false` removes it, read at the next token refresh, so no `reconnect_required`) and `connect_notes` / `connect_notes_link` (OAuth only, else 400 `connect_notes_not_oauth`; `null` clears; stored in place in the OAuth config as `permissions_text` / `documentation_link`, so no `reconnect_required`). Its `url` cannot be changed (400: it would send members' tokens to a different host — create a new connector) and neither can its raw `config` (400).

## Path parameters

- `slug` string, required

## Headers

- `X-Organization-Id` string

## Request body

- object
  - `label` string
  - `category` string, nullable
  - `config` object: Replaces the stored config entirely. Refused on a remote MCP connector.
  - `logo` string: Remote MCP connectors only. An https URL.
  - `description` string: Remote MCP connectors only.
  - `auth_config` object: Remote MCP connectors with `custom` sign-in only.
  - `client_id` string: Remote MCP connectors with `oauth_client` sign-in only.
  - `client_secret` string: As `client_id`. Write-only.
  - `omit_refresh_scope` boolean: Remote MCP connectors with OAuth sign-in only. `true`: a token refresh sends no scope; `false`: back to the default. Members do not need to reconnect.
  - `connect_notes` string, nullable: Remote MCP connectors with OAuth sign-in only. Markdown shown before sign-in (trimmed). `null` clears it.
  - `connect_notes_link` string, uri, nullable: As `connect_notes`. An https link with no credentials. `null` clears it.

## Response `200`

OK

- object

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not found
- `429`: Rate limited

---

[API](https://skmtc.dev/elaichi/apis/elaichi-api.md) · [All operations](https://skmtc.dev/elaichi/apis/elaichi-api/llms.txt) · [OpenAPI document](https://skmtc.dev/elaichi/apis/elaichi-api/revisions/b22cfb7b6d15?raw)
