Skip to content

Ingestion API

Manage ingestion sources — the configured connections to email providers (Google Workspace, Microsoft 365, IMAP, and file imports). Credentials are never returned in responses.

Create an Ingestion Source

Create an ingestion source

POST
/v1/ingestion-sources

Creates a new ingestion source and validates the connection. Returns the created source without credentials. Requires create:ingestion permission.

Authorizations

bearerAuth

JWT obtained from POST /v1/auth/login. Pass as Authorization: Bearer <token>.

Type
HTTP (bearer)
or
apiKeyAuth

API key generated via POST /v1/api-keys. Pass as X-API-KEY: <key>.

Type
API Key (header: X-API-KEY)

Request Body

application/json
JSON
{
  
"name": "Company Google Workspace",
  
"provider": "string",
  
"providerConfig": {
  
}
}

Responses

Ingestion source created successfully.

application/json
JSON
{
  
"id": "clx1y2z3a0000b4d2",
  
"name": "Company Google Workspace",
  
"provider": "google_workspace",
  
"status": "active",
  
"createdAt": "string",
  
"updatedAt": "string",
  
"lastSyncStartedAt": "string",
  
"lastSyncFinishedAt": "string",
  
"lastSyncStatusMessage": "string"
}

Playground

Authorization
Body

Samples

Powered by VitePress OpenAPI

List Ingestion Sources

List ingestion sources

GET
/v1/ingestion-sources

Returns all ingestion sources accessible to the authenticated user. Credentials are excluded from the response. Requires read:ingestion permission.

Authorizations

bearerAuth

JWT obtained from POST /v1/auth/login. Pass as Authorization: Bearer <token>.

Type
HTTP (bearer)
or
apiKeyAuth

API key generated via POST /v1/api-keys. Pass as X-API-KEY: <key>.

Type
API Key (header: X-API-KEY)

Responses

Array of ingestion sources.

application/json
JSON
[
  
{
  
  
"id": "clx1y2z3a0000b4d2",
  
  
"name": "Company Google Workspace",
  
  
"provider": "google_workspace",
  
  
"status": "active",
  
  
"createdAt": "string",
  
  
"updatedAt": "string",
  
  
"lastSyncStartedAt": "string",
  
  
"lastSyncFinishedAt": "string",
  
  
"lastSyncStatusMessage": "string"
  
}
]

Playground

Authorization

Samples

Powered by VitePress OpenAPI

Get an Ingestion Source

Get an ingestion source

GET
/v1/ingestion-sources/{id}

Returns a single ingestion source by ID. Credentials are excluded. Requires read:ingestion permission.

Authorizations

bearerAuth

JWT obtained from POST /v1/auth/login. Pass as Authorization: Bearer <token>.

Type
HTTP (bearer)
or
apiKeyAuth

API key generated via POST /v1/api-keys. Pass as X-API-KEY: <key>.

Type
API Key (header: X-API-KEY)

Parameters

Path Parameters

id*
Type
string
Required
Example"clx1y2z3a0000b4d2"

Responses

Ingestion source details.

application/json
JSON
{
  
"id": "clx1y2z3a0000b4d2",
  
"name": "Company Google Workspace",
  
"provider": "google_workspace",
  
"status": "active",
  
"createdAt": "string",
  
"updatedAt": "string",
  
"lastSyncStartedAt": "string",
  
"lastSyncFinishedAt": "string",
  
"lastSyncStatusMessage": "string"
}

Playground

Authorization
Variables
Key
Value

Samples

Powered by VitePress OpenAPI

Update an Ingestion Source

Update an ingestion source

PUT
/v1/ingestion-sources/{id}

Updates configuration for an existing ingestion source. Requires update:ingestion permission.

Authorizations

bearerAuth

JWT obtained from POST /v1/auth/login. Pass as Authorization: Bearer <token>.

Type
HTTP (bearer)
or
apiKeyAuth

API key generated via POST /v1/api-keys. Pass as X-API-KEY: <key>.

Type
API Key (header: X-API-KEY)

Parameters

Path Parameters

id*
Type
string
Required
Example"clx1y2z3a0000b4d2"

Request Body

application/json
JSON
{
  
"name": "string",
  
"provider": "string",
  
"status": "string",
  
"providerConfig": {
  
}
}

Responses

Updated ingestion source.

application/json
JSON
{
  
"id": "clx1y2z3a0000b4d2",
  
"name": "Company Google Workspace",
  
"provider": "google_workspace",
  
"status": "active",
  
"createdAt": "string",
  
"updatedAt": "string",
  
"lastSyncStartedAt": "string",
  
"lastSyncFinishedAt": "string",
  
"lastSyncStatusMessage": "string"
}

Playground

Authorization
Variables
Key
Value
Body

Samples

Powered by VitePress OpenAPI

Delete an Ingestion Source

Delete an ingestion source

DELETE
/v1/ingestion-sources/{id}

Permanently deletes an ingestion source. Deletion must be enabled in system settings. Requires delete:ingestion permission.

Authorizations

bearerAuth

JWT obtained from POST /v1/auth/login. Pass as Authorization: Bearer <token>.

Type
HTTP (bearer)
or
apiKeyAuth

API key generated via POST /v1/api-keys. Pass as X-API-KEY: <key>.

Type
API Key (header: X-API-KEY)

Parameters

Path Parameters

id*
Type
string
Required
Example"clx1y2z3a0000b4d2"

Responses

Ingestion source deleted. No content returned.

Playground

Authorization
Variables
Key
Value

Samples

Powered by VitePress OpenAPI

Trigger Initial Import

Trigger initial import

POST
/v1/ingestion-sources/{id}/import

Enqueues an initial import job for the ingestion source. This imports all historical emails. Requires create:ingestion permission.

Authorizations

bearerAuth

JWT obtained from POST /v1/auth/login. Pass as Authorization: Bearer <token>.

Type
HTTP (bearer)
or
apiKeyAuth

API key generated via POST /v1/api-keys. Pass as X-API-KEY: <key>.

Type
API Key (header: X-API-KEY)

Parameters

Path Parameters

id*
Type
string
Required
Example"clx1y2z3a0000b4d2"

Responses

Initial import job accepted and queued.

application/json
JSON
{
  
"message": "Operation completed successfully."
}

Playground

Authorization
Variables
Key
Value

Samples

Powered by VitePress OpenAPI

Pause an Ingestion Source

Pause an ingestion source

POST
/v1/ingestion-sources/{id}/pause

Sets the ingestion source status to paused, stopping continuous sync. Requires update:ingestion permission.

Authorizations

bearerAuth

JWT obtained from POST /v1/auth/login. Pass as Authorization: Bearer <token>.

Type
HTTP (bearer)
or
apiKeyAuth

API key generated via POST /v1/api-keys. Pass as X-API-KEY: <key>.

Type
API Key (header: X-API-KEY)

Parameters

Path Parameters

id*
Type
string
Required
Example"clx1y2z3a0000b4d2"

Responses

Ingestion source paused. Returns the updated source.

application/json
JSON
{
  
"id": "clx1y2z3a0000b4d2",
  
"name": "Company Google Workspace",
  
"provider": "google_workspace",
  
"status": "active",
  
"createdAt": "string",
  
"updatedAt": "string",
  
"lastSyncStartedAt": "string",
  
"lastSyncFinishedAt": "string",
  
"lastSyncStatusMessage": "string"
}

Playground

Authorization
Variables
Key
Value

Samples

Powered by VitePress OpenAPI

Force Sync

Force sync

POST
/v1/ingestion-sources/{id}/sync

Triggers an out-of-schedule continuous sync for the ingestion source. Requires sync:ingestion permission.

Authorizations

bearerAuth

JWT obtained from POST /v1/auth/login. Pass as Authorization: Bearer <token>.

Type
HTTP (bearer)
or
apiKeyAuth

API key generated via POST /v1/api-keys. Pass as X-API-KEY: <key>.

Type
API Key (header: X-API-KEY)

Parameters

Path Parameters

id*
Type
string
Required
Example"clx1y2z3a0000b4d2"

Responses

Force sync job accepted and queued.

application/json
JSON
{
  
"message": "Operation completed successfully."
}

Playground

Authorization
Variables
Key
Value

Samples

Powered by VitePress OpenAPI