---
title: "Update connector by ID"
method: PUT
path: "/contents/v1/connectors/{connector_id}"
tags: ["Connectors"]
---

# Update connector by ID

`PUT /contents/v1/connectors/{connector_id}`

Update an existing connector's **label**, **description**, and **share_with_org**. For **email** connectors, you may also update **config** (e.g. `allowed_emails`). For **investment_research** and **sharepoint** connectors, configuration cannot be updated. As a PUT request, required fields follow the schema; leaving out a field can clear or default it. The connector **type** cannot be changed.

## Path parameters

- `connector_id` string, uuid, required

## Request body

- ConnectorUpdatePayload — Payload for **PUT /contents/v1/connectors/{connector_id}**. Only **email** accepts a **`config`** body; for **investment_research** and **sharepoint**, omit **`config`**.
  - `label` string, required — New display name for the connector. Required.
  - `description` string — New optional description.
  - `share_with_org` boolean — If true, all members of your organization can access the processed content. If false, only you can access the processed content.
  - `config` EmailConnectorConfig — Configuration for email connectors.
    - `allowed_emails` string[] — List of approved email addresses. Only emails from these addresses will be processed.
    - `email_hash` string, required — Unique hash identifier for the email connector.
    - `email` string, email, nullable — The Bigdata inbox address for this connector. Returned after creation; forward emails from allowed_emails to this address to ingest them.

## Response `200`

The updated connector. Subsequent ingestion uses the new configuration when applicable.

- Connector — An ingestion source (e.g. email inbox, investment research / broker feed, or Microsoft SharePoint). Returned by Create/Get/Update connector and List connectors.
  - `connector_id` string, uuid, required — Unique identifier for the connector. Use when updating, deleting, or filtering documents by connector.
  - `user_id` string, required — ID of the user who owns the connector.
  - `org_id` string, required — ID of the organization the connector belongs to.
  - `share_with_org` boolean, required — If true, all members of your organization can access the processed content. If false, only you can access the processed content.
  - `label` string, required — Display name for the connector (e.g. for UI or admin lists).
  - `type` 'email' | 'investment_research' | 'sharepoint', required — Connector type. Determines the configuration and how content is ingested.
  - `description` string — Optional human-readable description of what the connector is used for.
  - `config` union — Type-specific settings. Email connectors return inbox and allowed senders; investment research connectors return `user_id` only (never `user_password`); SharePoint connectors return `config` as `{}`.
    - EmailConnectorResponseConfig — Email connector configuration as returned by the API. Contains allowed_emails and the inbox email address.
      - `allowed_emails` string[] — Sender addresses that are allowed to send content to this connector.
      - `email_hash` string — Unique hash identifier for the email connector.
      - `email` string, email, nullable — Inbox address to forward emails to; only messages from allowed_emails are processed.
    - InvestmentResearchConnectorResponseConfig — Investment research connector configuration as returned by the API. Only non-secret fields are present.
      - `user_id` string, required — Broker or research portal user id (often an email address).
    - SharepointConnectorResponseConfig — SharePoint connector **`config`** in **List**, **Get**, **Create**, and **Update** responses: always empty. **`session_id`** is accepted only on **POST create** and is **never** present in any response.
  - `files_count` integer — Number of files ingested through this connector, when tracked (e.g. investment research sync).
  - `last_sync_at` string, date-time, nullable — Timestamp of the last sync from the external source, when applicable.
  - `last_sync_status` string, nullable — Outcome of the last sync (e.g. SUCCESS), when applicable.
  - `last_sync_error_msg` string, nullable — Error message from the last sync when it failed; null on success.
  - `last_sync_count` integer, nullable — Number of items processed in the last sync, when applicable.
  - `created_at` string, date-time, required — Timestamp when the connector was created.
  - `updated_at` string, date-time, required — Timestamp when the connector was last updated.
  - `archived` boolean, required — Whether the connector is archived.

## Other responses

- `400` — Invalid request (e.g. malformed connector_id or invalid request body).
- `401` — Unauthorized - Invalid or missing API key.
- `404` — No connector found with this ID, or the user does not have access.

---

[API](https://skmtc.dev/bigdata/apis/bigdata-structured-data-api.md) · [All operations](https://skmtc.dev/bigdata/apis/bigdata-structured-data-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/bigdata/bigdata-structured-data-api/revisions/18082de268c4/schema)
