Skip to main content
POST
/
api
/
airbyte
/
ingest
Create PyAirbyte ingestion job
curl --request POST \
  --url https://api.example.com/api/airbyte/ingest \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "<string>",
  "source_name": "<string>",
  "source_config": {},
  "schema_name": "<string>",
  "mode": "append",
  "streams": [
    "<string>"
  ],
  "merge": "<string>",
  "schedule": "<string>",
  "domain": "<string>",
  "tags": [
    "<string>"
  ],
  "owner_id": "<string>",
  "column_transformations": [
    {
      "column": "<string>",
      "transformation_type": "cast",
      "stream": "<string>",
      "target_type": "string",
      "new_name": "<string>",
      "encryption_key_name": "<string>"
    }
  ]
}
'
{
  "flow_url": "<string>",
  "job_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "error": "<string>"
}

Authorizations

Authorization
string
header
required

The access token received from the authorization server in the OAuth 2.0 flow.

Body

application/json

Request model for creating an Airbyte ingestion job.

name
string
required

Name of the ingestion job.

source_name
string
required

PyAirbyte source identifier (e.g., 'source-github').

source_config
Source Config · object
required

Source configuration key-value pairs (including secrets).

schema_name
string
required

Target Iceberg schema where tables will be created.

mode
enum<string>
required

Write mode: append, overwrite, or merge.

Available options:
append,
overwrite,
merge
streams
string[] | null

Optional list of streams to sync. If empty, all streams are synced.

merge
string | null

Comma-separated merge key columns. If omitted for merge mode, Airbyte primary keys are used.

schedule
string | null

Cron expression for scheduled runs.

domain
string | null

DataHub domain to assign to ingested tables.

tags
string[] | null

DataHub tags to assign to ingested tables.

owner_id
string | null

Owner user ID.

column_transformations
ColumnTransformation · object[] | null

Optional per-stream column transformations (cast, rename, encrypt). Use the 'stream' field on each transformation to target a specific stream.

Response

Ingestion job created successfully.

flow_url
string
required

Airflow URL to access the ingestion flow.

job_id
string<uuid> | null

A unique ID of the created ingestion job.

error
string | null

Error message if the ingestion fails due to any issue.