Skip to main content
PUT
/
contents
/
v1
/
connectors
/
{connector_id}
Update connector by ID
curl --request PUT \
  --url https://api.bigdata.com/contents/v1/connectors/{connector_id} \
  --header 'Content-Type: application/json' \
  --header 'X-API-KEY: <api-key>' \
  --data @- <<EOF
{
  "label": "Broker Research - Daily Reports",
  "description": "Collects daily reports from the broker's research team",
  "share_with_org": true,
  "config": {
    "allowed_emails": [
      "user1@bigdata.com",
      "user2@bigdata.com"
    ]
  }
}
EOF
import requests

url = "https://api.bigdata.com/contents/v1/connectors/{connector_id}"

payload = {
"label": "Broker Research - Daily Reports",
"description": "Collects daily reports from the broker's research team",
"share_with_org": True,
"config": { "allowed_emails": ["user1@bigdata.com", "user2@bigdata.com"] }
}
headers = {
"X-API-KEY": "<api-key>",
"Content-Type": "application/json"
}

response = requests.put(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'PUT',
headers: {'X-API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
label: 'Broker Research - Daily Reports',
description: 'Collects daily reports from the broker\'s research team',
share_with_org: true,
config: {allowed_emails: ['user1@bigdata.com', 'user2@bigdata.com']}
})
};

fetch('https://api.bigdata.com/contents/v1/connectors/{connector_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://api.bigdata.com/contents/v1/connectors/{connector_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'label' => 'Broker Research - Daily Reports',
'description' => 'Collects daily reports from the broker\'s research team',
'share_with_org' => true,
'config' => [
'allowed_emails' => [
'user1@bigdata.com',
'user2@bigdata.com'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-KEY: <api-key>"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"strings"
"net/http"
"io"
)

func main() {

url := "https://api.bigdata.com/contents/v1/connectors/{connector_id}"

payload := strings.NewReader("{\n \"label\": \"Broker Research - Daily Reports\",\n \"description\": \"Collects daily reports from the broker's research team\",\n \"share_with_org\": true,\n \"config\": {\n \"allowed_emails\": [\n \"user1@bigdata.com\",\n \"user2@bigdata.com\"\n ]\n }\n}")

req, _ := http.NewRequest("PUT", url, payload)

req.Header.Add("X-API-KEY", "<api-key>")
req.Header.Add("Content-Type", "application/json")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.put("https://api.bigdata.com/contents/v1/connectors/{connector_id}")
.header("X-API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"label\": \"Broker Research - Daily Reports\",\n \"description\": \"Collects daily reports from the broker's research team\",\n \"share_with_org\": true,\n \"config\": {\n \"allowed_emails\": [\n \"user1@bigdata.com\",\n \"user2@bigdata.com\"\n ]\n }\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.bigdata.com/contents/v1/connectors/{connector_id}")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Put.new(url)
request["X-API-KEY"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"label\": \"Broker Research - Daily Reports\",\n \"description\": \"Collects daily reports from the broker's research team\",\n \"share_with_org\": true,\n \"config\": {\n \"allowed_emails\": [\n \"user1@bigdata.com\",\n \"user2@bigdata.com\"\n ]\n }\n}"

response = http.request(request)
puts response.read_body
{
  "connector_id": "019c4c5c-b021-7a72-8651-53e01b8f9334",
  "user_id": "user_id_001",
  "org_id": "org_id_001",
  "share_with_org": true,
  "label": "Broker Research - Daily Reports",
  "type": "email",
  "description": "Collects daily reports from the broker's research team",
  "config": {
    "allowed_emails": [
      "user1@example.com",
      "user2@example.com"
    ]
  },
  "created_at": "2026-02-11T11:01:09.574095Z",
  "updated_at": "2026-02-11T11:15:30.123456Z",
  "archived": false
}

Authorizations

X-API-KEY
string
header
required

Your API key. Include it in every request as the X-API-KEY header. Create and manage keys in the Developer Platform.

Path Parameters

connector_id
string<uuid>
required

UUID of the connector to update.

Example:

"019a9612-bfad-758c-884e-37dd8c6ad2cb"

Body

application/json

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.

Example:

"Broker Research - Daily Reports"

description
string
default:""

New optional description.

Example:

"Collects daily reports from the broker's research team"

share_with_org
boolean
default:false

If true, all members of your organization can access the processed content. If false, only you can access the processed content.

Example:

true

config
Email · object · null · null

Connector-specific configuration. The structure depends on the connector type.

Response

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

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.

Example:

"019a9612-bfad-758c-884e-37dd8c6ad2cb"

user_id
string
required

ID of the user who owns the connector.

Example:

"user_id_001"

org_id
string
required

ID of the organization the connector belongs to.

Example:

"org_id_001"

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.

Example:

true

label
string
required

Display name for the connector (e.g. for UI or admin lists).

Example:

"Broker Research - Daily Reports"

type
enum<string>
required

Connector type. Determines the configuration and how content is ingested.

Available options:
email,
investment_research,
sharepoint
created_at
string<date-time>
required

Timestamp when the connector was created.

Example:

"2026-02-11T11:01:09.574095Z"

updated_at
string<date-time>
required

Timestamp when the connector was last updated.

Example:

"2026-02-11T11:01:09.574102Z"

archived
boolean
required

Whether the connector is archived.

Example:

false

description
string

Optional human-readable description of what the connector is used for.

Example:

"Collects daily reports from the broker's research team"

config
Email · object

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 {}.

files_count
integer

Number of files ingested through this connector, when tracked (e.g. investment research sync).

Example:

10

last_sync_at
string<date-time> | null

Timestamp of the last sync from the external source, when applicable.

Example:

"2026-04-07T09:36:34.195040Z"

last_sync_status
string | null

Outcome of the last sync (e.g. SUCCESS), when applicable.

Example:

"SUCCESS"

last_sync_error_msg
string | null

Error message from the last sync when it failed; null on success.

Example:

null

last_sync_count
integer | null

Number of items processed in the last sync, when applicable.

Example:

3200