---
title: "Update connector"
method: PATCH
path: "/v1/projects/{project_id}/connectors/{connector_id}"
tags: ["connectors"]
---

# Update connector

`PATCH /v1/projects/{project_id}/connectors/{connector_id}`

## Request

- Base URL: `https://api.connic.co`
- URL: `https://api.connic.co/v1/projects/{project_id}/connectors/{connector_id}`
- Auth: HTTP bearer

Updates a connector.

Fields left out of the body keep their values. Send the complete `config`
for the connector type; credential fields sent as `********` or left empty
keep their stored values. Connectors defined in code only accept `enabled`,
and retired connectors can't be resumed.

Required permission: `connectors.update`.

## Path parameters

- `project_id` string, uuid, required
- `connector_id` string, uuid, required

## Request body

- ConnectorUpdate: Partial update of a connector. Connectors declared in code accept only `enabled`.
  - `name` string, nullable: New display name. It cannot match a connector declared in code in the same environment.
  - `config` object, nullable: Type-specific settings that replace the current configuration. Secret fields that are omitted, empty or still masked keep their stored values.
  - `enabled` boolean, nullable: Enable or disable the connector. Enabling counts toward the plan's connector limit.
  - `domain_id` string, uuid, nullable: Active custom domain of the project that serves the connector's endpoints, or null for the default host. Not every connector type supports custom domains.

## Response `200`

Successful Response

- ConnectorResponse: Connector in an environment, with its configuration.
  - `id` string, uuid, required
  - `project_id` string, uuid, required: Project the connector belongs to.
  - `environment_id` string, uuid, required: Environment the connector runs in.
  - `domain_id` string, uuid, nullable: Custom domain the connector's URL uses, or null for the default connector host.
  - `name` string, required
  - `type` 'http' | 'cron' | 'kafka' | 'sqs' | 'postgres' | 'websocket' | 'mcp' | 'email' | 's3' | 'stripe' | 'telegram' | 'slack' | 'twilio' | 'twilio_messaging' | 'telnyx' | 'telnyx_messaging', required: Connector type, which sets the event source or destination and the fields accepted in `config`.
  - `config` object, required: Configuration for the connector type, with the fields documented on that connector's docs page. Credential fields are masked as `********`; secrets connic generates for the connector, such as webhook secrets, are returned in full.
  - `enabled` boolean, required: False while the connector is paused. A paused connector starts no new runs.
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required
  - `managed_key` string, nullable: Key of the `connectors/<key>.yaml` file that defines this connector in code, or null. Change these connectors in your codebase; the API can only pause or resume them.
  - `retired_at` string, date-time, nullable: When the active deployment stopped declaring this connector in code, or null. Retired connectors stay paused until a deployment declares them again, and can be deleted.

## Other responses

- `401`: Missing or invalid API key.
- `403`: The API key lacks the required permission or access to the environment.
- `404`: The resource does not exist in this project.
- `422`: Validation Error
- `429`: Rate limit exceeded.

---

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