Ingestion
Endpoints
Every ingestion route at a glance.
All routes require Authorization and X-Workspace-Id headers, except
the webhook delivery URLs (HMAC-signed) and the OAuth callback (browser
redirect).
Sources
| Method | Path | Purpose |
|---|---|---|
| POST | /v1/ingestion/sources | Create a source |
| GET | /v1/ingestion/sources | List sources with job health |
| GET | /v1/ingestion/sources/{source_id} | Inspect one source + statistics |
| PUT | /v1/ingestion/sources/{source_id} | Update a source |
| DELETE | /v1/ingestion/sources/{source_id} | Delete a source and its jobs |
| GET | /v1/ingestion/sources/{source_id}/schema | Read the live schema |
| POST | /v1/ingestion/sources/test-connection | Dry-run a configuration |
| POST | /v1/ingestion/sources/{source_id}/test | Re-test an existing source |
| POST | /v1/ingestion/sources/upload | Upload a file (explicit columnTypes required) |
| GET/POST | /v1/ingestion/sources/{source_id}/proxy | Proxy a REST source |
Connect
| Method | Path | Purpose |
|---|---|---|
| POST | /v1/ingestion/connect/inspect | Inspect a connection — test + auto-map, persist nothing |
| POST | /v1/ingestion/connect/create | Create a source with syncs |
| POST | /v1/ingestion/connect/create-event | Create an event source — webhook push or REST poll |
| GET/POST | /v1/ingestion/connect/inspect-source/{source_id} | Re-introspect an existing source |
| POST | /v1/ingestion/connect/add-jobs/{source_id} | Add sync jobs to an existing source |
| POST | /v1/ingestion/connect/upload | Upload a file — auto-typed |
| POST | /v1/ingestion/connect/inspect-file | Stage a file and detect its columns |
| POST | /v1/ingestion/connect/import-file | Import a staged file with a custom mapping |
| POST | /v1/ingestion/connect/datasets/stage | Stage one dataset file |
| POST | /v1/ingestion/connect/datasets/inspect | Plan a multi-file dataset |
| POST | /v1/ingestion/connect/datasets/import | Execute a reviewed dataset plan |
| GET | /v1/ingestion/connect/datasets/{dataset_id} | Poll dataset batch status |
Jobs
| Method | Path | Purpose |
|---|---|---|
| POST | /v1/ingestion/jobs | Create a job |
| GET | /v1/ingestion/jobs | List jobs (paginated) |
| PUT | /v1/ingestion/jobs/{job_id} | Update or pause a job |
| DELETE | /v1/ingestion/jobs/{job_id} | Delete a job |
| POST | /v1/ingestion/jobs/{job_id}/trigger | Trigger a run now |
| GET | /v1/ingestion/jobs/{job_id}/preview-schedule | Preview upcoming run times |
Executions
| Method | Path | Purpose |
|---|---|---|
| GET | /v1/ingestion/executions | List executions (filters + pagination) |
| GET | /v1/ingestion/executions/{execution_id} | Inspect one execution |
| POST | /v1/ingestion/executions/{execution_id}/cancel | Cancel a running execution |
| POST | /v1/ingestion/executions/{execution_id}/retry | Retry a failed execution |
| GET | /v1/ingestion/executions/stats | Workspace execution stats |
OAuth
| Method | Path | Purpose |
|---|---|---|
| GET | /v1/ingestion/oauth/providers | List OAuth providers |
| POST | /v1/ingestion/oauth/{provider}/start | Start the consent flow |
| GET | /v1/ingestion/oauth/{provider}/callback | Provider redirect target (browser only) |
Webhooks
| Method | Path | Purpose |
|---|---|---|
| POST | /v1/ingestion/webhooks/{source_id} | Receive a delivery (defaults to events) |
| POST | /v1/ingestion/webhooks/{source_id}/{kind} | Receive a delivery — kind is events or signal |

