Skip to main content

Overview

The REST API lets you list, create, update, start, stop, and archive ELT & CDC pipelines from outside the dashboard. Pipelines are described by a declarative definition document (YAML or JSON) so the same configuration can be version-controlled, reviewed, and reapplied across environments. See the API Reference tab for the full request and response reference for every endpoint.

Base URL

All endpoints live under:
/api/public/v1

Authentication

Requests are authenticated with a bearer API key:
Authorization: Bearer fdk_<your-key>
Every Integrate.io API key is prefixed with fdk_. The full key value is shown only once at creation time. Store it in a secret manager. If a key is lost or leaked, revoke it and mint a new one.

Create an API key

API keys are minted from the dashboard. Only account admins can create or revoke keys.
1
Go to Settings > API Keys.
2
Click Create API key, give the key a human-readable name (for example, terraform-prod or ci-pipeline), and optionally set an expiry.
3
Copy the key value from the confirmation dialog. The full value is not shown again.

Revoke an API key

From Settings > API Keys, open the action menu next to a key and choose Revoke. Revoked keys stop authenticating immediately and cannot be reactivated.

Pipeline definition document

The definition is a stable, customer-facing projection of the internal pipeline. It omits credentials, state backend configuration, region orchestration, and other internal fields. Both YAML and JSON map to the same schema, and unknown keys are rejected.

Minimal example

definition_version: 1
name: orders-to-snowflake
source:
  connection:
    id: 42
destination:
  connection:
    id: 17
sync:
  frequency: 5
  auto_sync_new_tables: false
tables:
  - name: public.orders
  - name: public.customers
    columns:
      exclude:
        - ssn

Top-level fields

FieldRequiredDescription
definition_versionYesContract version. Currently 1.
nameYesPipeline name.
source.connection.idYesExisting source connection ID.
destination.connection.idYesExisting destination connection ID.
syncYesSync schedule. See below.
tablesYesList of tables to replicate.
transformationsNoField-level transforms applied to records.
hooksNoExisting notification hooks to attach to pipeline events.

Sync schedule

Provide either frequency (which sets both source and destination) or both source_frequency and destination_frequency. Values are in minutes.
sync:
  source_frequency: 5
  destination_frequency: 15
  auto_sync_new_tables: true

Table selection

Each table can optionally select columns with include or exclude (not both):
tables:
  - name: public.orders
    append_only: false
    columns:
      include:
        - id
        - created_at
        - total_cents

Transformations

Supported type values: exclude_fields, rename_fields, toggle_case, find_and_replace, replace_in_field_name, history_mode.
transformations:
  - type: rename_fields
    table: public.orders
    config:
      mapping:
        order_id: id

Hooks

Attach existing notification hooks (created in Settings > Hooks) to pipeline events:
hooks:
  - id: 9
    events:
      - pipeline_failed
      - pipeline_stopped

Errors

StatusMeaning
400The definition parsed but failed validation (for example, conflicting include and exclude, or an unknown transformation type). The response body contains the failing field.
401Missing or invalid API key.
403The caller lacks admin privileges for key management.
404The pipeline does not exist, or it belongs to another account. Unknown IDs and other-account IDs both return 404 to prevent enumeration.
422The request body contains unknown keys or has the wrong shape.

See also

Last modified on July 13, 2026