Your Pipelines, Programmable
Today we're shipping the Datanika REST API v1 — 36 endpoints that give you full programmatic control over your data pipelines.
Everything you can do in the UI, you can now do via HTTP: create connections, trigger pipeline runs, query run history, manage schedules, and configure notification channels.
What's Included
Full CRUD for Every Resource
| Resource | Endpoints |
|---|---|
| Connections | List, Get, Create, Update, Delete, Test |
| Uploads | List, Get, Create, Update, Delete, Run |
| Pipelines | List, Get, Create, Update, Delete, Run |
| Transformations | List, Get, Create, Update, Delete, Run |
| Schedules | List, Get, Create, Update, Delete |
| Runs | List, Get, Logs |
| Notification Channels | List, Get, Create, Update, Delete |
Authentication
API keys use Bearer token authentication. Create a key in Settings > API Keys, then include it in your requests:
curl -H "Authorization: Bearer etf_your_key_here" \
https://app.datanika.io/api/v1/connections
Keys are scoped — you can limit a key to read-only access, run execution only, or specific resource types. See the full scope reference in our docs.
Rate Limiting
Requests are counted per API key in a fixed 60-second window:
| Plan | Requests/minute |
|---|---|
| Free | 30 |
| Pro | 120 |
| Enterprise | 300 |
Per key, not per organization — two keys get two independent budgets. A per-second burst ceiling runs alongside the per-minute limit; it is the same on every plan, so it isn't a tier dimension.
Rate limit headers (X-RateLimit-Remaining, Retry-After) are included in every response so your integrations can handle throttling gracefully.
Self-hosted users can configure limits via API_RATE_LIMIT_RPM and API_RATE_LIMIT_BURST environment variables.
Corrected 2026-08-31. This section originally published a per-plan burst column (5 / 15 / 30 requests per second) and described the window as sliding. Neither was true of the shipped code: the burst ceiling has always been a single setting applied identically to every plan, and the window is fixed rather than sliding. The per-minute numbers are unchanged. See the API reference for the current statement.
Interactive Docs
The API ships with an OpenAPI 3.0 spec and interactive Swagger UI at /api/v1/docs. Try endpoints directly from your browser — no Postman needed.
Use Cases
CI/CD integration — Trigger a pipeline run after your data model tests pass:
curl -X POST https://app.datanika.io/api/v1/pipelines/1/run \
-H "Authorization: Bearer etf_ci_key"
Custom monitoring — Poll run status from your own alerting system:
curl https://app.datanika.io/api/v1/runs?status=failed \
-H "Authorization: Bearer etf_monitor_key"
Bulk setup — Provision pipelines from a shell script or your infra automation. Every write endpoint is exposed and supports the Idempotency-Key header, so re-running the script is safe. POST each resource in turn — connections first, then the upload or pipeline that references them, then a schedule:
curl -X POST https://app.datanika.io/api/v1/connections \
-H "Authorization: Bearer etf_admin_key" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: bootstrap-2026-04-14-src" \
-d @source-postgres.json
Available write endpoints: /connections, /uploads, /pipelines, /transformations, /schedules, /notifications/channels. Keep the JSON bodies in version control next to your infra code.
Scheduled reporting — Fetch run history for weekly reports:
curl "https://app.datanika.io/api/v1/runs?target_type=pipeline&limit=100" \
-H "Authorization: Bearer etf_report_key"
What's Next
We're working on webhook triggers (run your pipeline when an external event fires) and a CLI tool built on top of the API. If you have feedback or feature requests, open an issue on GitHub.
Try It
The API is available now on all plans, including Free. Create an API key and start automating.
Full documentation: datanika.io/api/reference
- API Keys — create and manage API keys
- Self-Hosting Guide — the API works on self-hosted deployments too
- 36 Connectors — everything you can manage via the API
- Pipeline Templates — prefilled starting points your API-driven workflows can clone: Stripe → Postgres, Postgres → BigQuery, CSV → DuckDB
Top comments (0)