DEV Community

Cover image for Introducing the Datanika REST API v1
Evgenii Timofeev
Evgenii Timofeev

Posted on Originally published at datanika.io

Introducing the Datanika REST API v1

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
Enter fullscreen mode Exit fullscreen mode

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"
Enter fullscreen mode Exit fullscreen mode

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"
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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"
Enter fullscreen mode Exit fullscreen mode

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

Top comments (0)