---
title: "Update Connection"
method: PATCH
path: "/api/connections/{connection_id}"
tags: ["connections"]
---

# Update Connection

`PATCH /api/connections/{connection_id}`

## Request

- Base URL: `https://api.heymetra.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.heymetra.com/api/connections/{connection_id}`
- Auth: none declared

Everything about a connection the customer can change without redoing it.

Its name, its credentials, and who in the workspace may use it. One
endpoint because they are one screen:
the pencil on a connection row opens an editor, and an editor that could
only rename was the complaint that opened ZEISO-426 — *"emaili connector
olarak bağlayınca bir daha hiçbir şeyi düzenleyemiyoruz"*. Rotating a key
meant deleting the connection and building a new one, which loses the row
and everything pointing at it.

Who may: whoever holds ``read_write`` on THIS connection. See
``_changeable_connection`` for why that is not the workspace-wide question
it used to be.

## Path parameters

- `connection_id` string, uuid, required

## Headers

- `authorization` string, nullable
- `x-workspace-id` string, nullable

## Request body

- UpdateConnectionIn
  - `alias` string, nullable
  - `credentials` object, nullable
  - `shared_with_workspace` boolean, nullable
  - `write_enabled` boolean, nullable
  - `ask_before_sending` boolean, nullable

## Response `200`

Successful Response

- ConnectionOut
  - `id` string, uuid, required
  - `provider` 'google_ads' | 'meta_ads' | 'meta_instagram' | 'meta_page' | 'ga4' | 'gsc' | 'zoho_crm' | 'zoho_salesiq' | 'zoho_marketing' | 'telegram' | 'slack' | 'email' | 'adapty' | 'trendyol' | 'revenuecat' | 'appsflyer' | 'app_store_connect' | 'woocommerce' | 'shopify' | 'stripe' | 'posthog' | 'jira' | 'hepsiburada' | 'n11' | 'ciceksepeti' | 'amazon_seller' | 'ikas', required
  - `account_id` string, required
  - `account_name` string, nullable, required
  - `alias` string, nullable, required
  - `display_name` string, required
  - `is_active` boolean, required
  - `paused_for_plan` boolean, required
  - `write_enabled` boolean, required
  - `ask_before_sending` boolean
  - `currency` string, nullable, required
  - `consent_version` integer, nullable
  - `is_mine` boolean
  - `may_administer` boolean
  - `shared_with_workspace` boolean
  - `reconsent` ReconsentOut: What this connection has not agreed to yet, and how it is fixed. Present only when there is something to offer, so a row without it is a row with nothing to say — never a row whose state is unknown.
    - `connector` string, required
    - `granted_version` integer, nullable, required
    - `current_version` integer, required
    - `reconnect_required` boolean, required
    - `what_changed` string[], required
    - `how_to_fix` string, required
  - `reference` string, required
  - `identity` object, required
  - `credentials` object
  - `last_error` string, nullable, required
  - `created_at` string, date-time, required
  - `grant_shape` 'separable' | 'read_only' | 'inseparable' | 'channel', required: What a customer's read-or-write choice can actually buy at this provider. The choice is offered on every connector, because a customer deciding whether an assistant may change their account should not have to know which providers happen to model that as a scope. What differs is what the choice BUYS, and saying so is this enum's whole job: a screen that offers the same two options everywhere while one of them is unenforceable at three providers is worse than one that says which is which.

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-20** `877b0f87d6d0`: 2 info
  - removed the `google_calendar` enum value from the `provider` response property for the response status `200`
  - removed the `google_meet` enum value from the `provider` response property for the response status `200`
- **2026-10-20** `488ce9683884`: 1 warning
  - added the new `ikas` enum value to the `provider` response property for the response status `200`
- **2026-10-19** `8153ccd4dea1`: 4 warning
  - added the new `amazon_seller` enum value to the `provider` response property for the response status `200`
  - added the new `ciceksepeti` enum value to the `provider` response property for the response status `200`
  - added the new `hepsiburada` enum value to the `provider` response property for the response status `200`
  - added the new `n11` enum value to the `provider` response property for the response status `200`

[Operation history](https://skmtc.dev/heymetra/apis/heymetra-api/changes/api/connections/:connection_id/patch.md)

---

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