Appearance
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"
{
}
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" }
[
]
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
Requiredstring
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"
{
}
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
Requiredstring
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"
{
}
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
Requiredstring
Example
"clx1y2z3a0000b4d2"Responses
Ingestion source deleted. No content returned.
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
Requiredstring
Example
"clx1y2z3a0000b4d2"Responses
Initial import job accepted and queued.
application/json
JSON "message": "Operation completed successfully."
{
}
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
Requiredstring
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"
{
}
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
Requiredstring
Example
"clx1y2z3a0000b4d2"Responses
Force sync job accepted and queued.
application/json
JSON "message": "Operation completed successfully."
{
}