---
title: "Update CRM Connection"
method: PATCH
path: "/v1/crm-connections/{id}"
tags: ["CRM", "v1"]
---

# Update CRM Connection

`PATCH /v1/crm-connections/{id}`

## Request

- Base URL: `https://api.leadfeeder.com`
- URL: `https://api.leadfeeder.com/v1/crm-connections/{id}`
- Auth: one of:
  - API key in header `X-Api-Key`
  - OAuth 2
    - Authorization code: `https://api.leadfeeder.com/v1/oauth/authorize`
    - Token URL: `https://api.leadfeeder.com/v1/oauth/token` scopes: `crm_records:write`

Update the `primary` (data-exchange) and/or `send_visits` flags on a confirmed CRM connection. Applies a partial (merge-patch) update: only the flags named in the request are changed; any flag you omit is left untouched. Setting `primary: true` demotes the company's current primary connection in the same operation. `send_visits` cannot be toggled on contact connections. Suggestions cannot be updated.

Credit Note: Updating a CRM connection does not consume credits.

:::info
Requires the `crm_records:write` OAuth2 scope.
:::

## Path parameters

- `id` string, required

## Query parameters

- `account_id` string, required

## Request body

- object
  - `data` object, required
    - `attributes` object, required: The flags to change. Merge-patch: only the flags named here are changed; omitted flags are left untouched.
      - `primary` boolean: Whether this is the company's primary (data-exchange) connection. Setting `true` demotes the current primary connection.
      - `send_visits` boolean: Whether website visits are sent to the CRM record. Not available on contact connections.
    - `type` 'crm_connection', required: Must be 'crm_connection'.

## Response `200`

Success

- object
  - `data` CRMConnectionV1, required
    - `attributes` object, required
      - `enrichment_available` boolean: Whether enrichment data is available for this connection.
      - `primary` boolean, required
      - `send_visits` boolean, required
    - `id` string, required: The unique identifier for the crm connection
    - `relationships` object, required
      - `crm_record` union, required
        - object, nullable
          - `id` string, required
          - `type` string, required
        - CRMOrganizationV1
          - `attributes` object, required
            - `city` string
            - `country` string
            - `crm_url` string, required
            - `name` string, required
            - `postal_code` string
            - `remote_id` string: The record's id in the third-party CRM (distinct from the Leadfeeder uuid `id`).
            - `website` string
            - `zip_code` string: Deprecated and never populated; use `postal_code`. Retained for backward compatibility.
          - `id` string, required: The unique identifier for the crm organization
          - `relationships` object, required
            - `crm_owner` union, required
              - …
          - `type` 'crm_organization', required: The type of the object
        - CRMContactV1
          - `attributes` object, required
            - `city` string
            - `country` string
            - `crm_url` string
            - `email` string
            - `first_name` string
            - `job_title` string
            - `last_name` string
            - `remote_id` string: The record's id in the third-party CRM (distinct from the Leadfeeder uuid `id`).
          - `id` string, required: The unique identifier for the crm contact
          - `relationships` object, required
            - `crm_owner` union, required
              - …
          - `type` 'crm_contact', required: The type of the object
        - CRMLeadV1
          - `attributes` object, required
            - `city` string
            - `country` string
            - `crm_url` string
            - `email` string
            - `first_name` string
            - `job_title` string
            - `last_name` string
            - `organization_name` string
            - `remote_id` string: The record's id in the third-party CRM (distinct from the Leadfeeder uuid `id`).
          - `id` string, required: The unique identifier for the crm lead
          - `relationships` object, required
            - `crm_owner` union, required
              - …
          - `type` 'crm_lead', required: The type of the object
    - `type` 'crm_connection', required: The type of the object
  - `meta` object, required
    - `request_id` string, required: A unique identifier assigned to each API request for end-to-end traceability.

## Other responses

- `400`: Bad Request
- `401`: Unauthorized. The request was rejected because the credentials are missing, invalid, expired, or have been revoked. The client must re-authenticate before retrying. Clients can differentiate via the `code` value of the first item in `errors`.
- `403`: Forbidden. The credentials are valid but the caller is not authorized to perform the request — typically because the user lacks the required permission, the OAuth scope is insufficient, the subscription plan does not include the required entitlement, the `account_id` does not belong to the authenticated user, or the target list is read-only and its members cannot be modified. Clients can differentiate via the `code` value of the first item in `errors`.
- `404`: Not found
- `422`: Unprocessable entity
- `429`: Too many requests. Either the per-second rate limit or the monthly quota configured for the API key / OAuth application has been exceeded. Clients can differentiate via the `code` value of the first item in `errors`.
- `500`: Internal server error
- `504`: Server timeout

## Changes

> 46 revisions in range; 1 not diffed.

- **2026-10-28** `0ce28f9eef77`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/leadfeeder/apis/leadfeeder-public-api/changes/v1/crm-connections/:id/patch.md)

---

[API](https://skmtc.dev/leadfeeder/apis/leadfeeder-public-api.md) - [All operations](https://skmtc.dev/leadfeeder/apis/leadfeeder-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/leadfeeder/apis/leadfeeder-public-api/revisions/686d4e39eb05?raw)
