Sources

Data source CRUD and ingestion endpoints.

Sources

Endpoints for managing data sources — uploading files, triggering ingestion, and viewing ingestion history.

GET/api/sourcesAUTH

List all sources for the authenticated user.

Response

[
  {
    "id": "src_01",
    "name": "customers_q1.csv",
    "row_count": 12400,
    "status": "ready",
    "created_at": "2026-03-15T10:30:00Z"
  }
]
FieldTypeDescription
idstringSource identifier
namestringDisplay name
row_countintegerNumber of rows ingested
statusstringpending, ingesting, ready, or error
created_atstringISO 8601 timestamp
POST/api/sources/uploadAUTH

Upload a new data source file.

Request

Multipart form data:

FieldTypeRequiredDescription
filefileYesCSV or Excel file
namestringYesDisplay name for the source
descriptionstringNoOptional description

Response 201 Created

{
  "id": "src_02",
  "name": "vendors.csv",
  "row_count": 0,
  "status": "pending",
  "created_at": "2026-04-13T08:00:00Z"
}

Errors

StatusMeaning
401 UnauthorizedMissing or invalid token
413 Payload Too LargeFile exceeds the upload size limit
422 Unprocessable EntityInvalid file format or missing name
POST/api/sources/{id}/ingestAUTH

Trigger ingestion for a source. Ingestion runs asynchronously.

Response 202 Accepted

{
  "source_id": "src_02",
  "status": "ingesting"
}

Errors

StatusMeaning
404 Not FoundSource not found
409 ConflictIngestion already in progress
GET/api/sources/{id}/historyAUTH

Retrieve the ingestion history for a source.

Response

[
  {
    "run_id": "run_01",
    "started_at": "2026-04-13T08:01:00Z",
    "finished_at": "2026-04-13T08:01:45Z",
    "status": "completed",
    "rows_ingested": 3200
  }
]

Supported source_type values

The Identity Store supports 22 connector types, grouped into four categories. The source_type discriminator drives both the credentials shape on POST /api/sources and the reader used during ingest.

Categorysource_type values
SQL databasespostgres_identity, mysql_identity, snowflake_identity, bigquery_identity
File / cloud storagecsv_url, s3_csv, gcs_csv, azure_blob_csv, google_sheets, sftp_csv
OAuth-backed RESTsalesforce_contacts, microsoft_contacts, google_contacts
Bearer-token RESThubspot_contacts, airtable_records, stripe_customers, intercom_contacts, pipedrive_persons, zendesk_users, shopify_customers, klaviyo_profiles, mailchimp_members

Note: SQL connectors enforce a per-driver identifier regex on user-supplied table names. OAuth connectors use on-demand token refresh via the stored refresh token — no manual rotation needed.

See Source Connectors for credential shapes, cursor-column support, and connector-specific gotchas.