Skip to main content
POST

Authorizations

Authorization
string
header
required

A scoped Integration key, prefixed cint_. Send as Authorization: Bearer cint_... on every request. Server-side only. Legacy personal cmem_... keys remain accepted during migration; team/org-scoped cmem_... keys are not valid on this API.

Path Parameters

type
string
required

Data-source type id. Any source-capable type in the connector catalog (~200 sources — Gmail, Slack, HubSpot, Notion, Linear, Salesforce, warehouses, …); enumerate them via GET /api/v1/connectors/catalog.

Pattern: ^[a-z0-9][a-z0-9_-]{0,63}$
Example:

"hubspot"

Body

application/json
endUserId
string
required

Your stable internal user ID. No colon allowed.

Required string length: 1 - 128
Pattern: ^[A-Za-z0-9@._-]{1,128}$
Example:

"u_123"

apiKey
string
required

The end user's API key for the source (Twenty: an instance API key; Granola: a grn_ REST key). Validated live against the source before being stored; never echoed back.

baseUrl
string<uri>

Twenty CRM only (required there): the end user's instance URL. Granola is cloud-hosted — omit.

objects
string[]

Twenty CRM only: restrict the sync to these object ids (the id values from GET /api/v1/connectors/{type}/collections). Omit to sync every object the API key can read. The scope persists: later scheduled and manual syncs honor it until changed via POST /api/v1/connectors/sync. An id the instance does not expose fails with 400 unknown_twenty_objects, listing what exists. Granola has no collections — passing this fails with 400 collections_not_supported.

Required array length: 1 - 100 elements

Response

Source connected; initial import started in the background.

success
boolean
required
type
string
required

Data-source type id. Any source-capable type in the connector catalog (~200 sources — Gmail, Slack, HubSpot, Notion, Linear, Salesforce, warehouses, …); enumerate them via GET /api/v1/connectors/catalog.

Pattern: ^[a-z0-9][a-z0-9_-]{0,63}$
Example:

"hubspot"

objects
integer

Twenty CRM only: number of syncable objects discovered on the instance.

objectNames
string[]

Twenty CRM only: every syncable object id discovered on the instance — the vocabulary for the objects scope, so a partner can render a pick-list without a second call.