Apache Airflow
Apache Airflow is an open-source platform to programmatically author, schedule, and monitor workflows. Airflow uses directed acyclic graphs (DAGs) to manage workflow orchestration. The Airflow REST API provides programmatic access to DAGs, DAG runs, tasks, connections, variables, pools, and monitoring for both Airflow OSS and cloud-managed deployments.
1 APIs
9 Features
Workflow OrchestrationData PipelineOpen SourceApacheDAGSchedulingETLData Engineering
DAG Authoring
Define workflows as Python code using Directed Acyclic Graphs (DAGs).
Dynamic DAG Generation
Programmatically generate DAGs and tasks based on configuration or data.
Rich Operator Library
Pre-built operators for databases, cloud services, APIs, and data tools.
REST API v2
Stable REST API for programmatic management of DAGs, runs, tasks, and infrastructure.
Web UI
Built-in web interface for monitoring, triggering, and debugging workflows.
Scheduler
Robust scheduler with support for CRON and timed triggers.
Extensible
Plugin system and provider packages for extending functionality.
Multi-Cloud Support
Provider packages for AWS, GCP, Azure, and other cloud platforms.
Managed Services
Available as managed service from AWS (MWAA), GCP (Cloud Composer), and Astronomer.
ETL Pipeline Orchestration
Schedule and monitor extract, transform, load data pipelines.
ML Pipeline Management
Orchestrate machine learning training, evaluation, and deployment workflows.
Data Quality Checks
Schedule data validation and quality check jobs.
Report Generation
Automate periodic report generation and distribution.
API Orchestration
Coordinate calls to multiple APIs in complex workflows.
Database Operations
Schedule database maintenance, migrations, and backup jobs.
Apache Spark
Run Spark jobs from Airflow DAGs.
dbt
Orchestrate dbt model runs via the dbt operator.
Kubernetes
Run tasks in Kubernetes pods with the KubernetesPodOperator.
AWS
Provider package for S3, Redshift, EMR, Lambda, and other AWS services.
Google Cloud
Provider package for BigQuery, Dataflow, GCS, and other GCP services.
Azure
Provider package for Azure Data Factory, Blob Storage, and other Azure services.
Snowflake
SnowflakeOperator for running SQL in Snowflake data warehouse.
Airbyte
Trigger Airbyte syncs from Airflow DAGs.
opencollection: 1.0.0
info:
name: Airflow API
version: '2'
items:
- info:
name: Asset
type: folder
items:
- info:
name: Airflow Get Assets
type: http
http:
method: GET
url: '{{baseUrl}}/api/v2/assets'
params:
- name: limit
value: ''
type: query
- name: offset
value: ''
type: query
- name: name_pattern
value: ''
type: query
description: SQL LIKE expression — use `%` / `_` wildcards (e.g. `%customer_%`). or the pipe `|` operator for OR logic
(e.g. `dag1 | dag2`). Regular expressions are **not** supported.
- name: uri_pattern
value: ''
type: query
description: SQL LIKE expression — use `%` / `_` wildcards (e.g. `%customer_%`). or the pipe `|` operator for OR logic
(e.g. `dag1 | dag2`). Regular expressions are **not** supported.
- name: dag_ids
value: ''
type: query
- name: only_active
value: ''
type: query
- name: order_by
value: ''
type: query
description: 'Attributes to order by, multi criteria sort is supported. Prefix with `-` for descending order. Supported
attributes: `id, name, uri, created_at, updated_at`'
auth:
type: oauth2
flow: resource_owner_password_credentials
accessTokenUrl: /auth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: Get assets.
- info:
name: Airflow Get Asset Aliases
type: http
http:
method: GET
url: '{{baseUrl}}/api/v2/assets/aliases'
params:
- name: limit
value: ''
type: query
- name: offset
value: ''
type: query
- name: name_pattern
value: ''
type: query
description: SQL LIKE expression — use `%` / `_` wildcards (e.g. `%customer_%`). or the pipe `|` operator for OR logic
(e.g. `dag1 | dag2`). Regular expressions are **not** supported.
- name: order_by
value: ''
type: query
description: 'Attributes to order by, multi criteria sort is supported. Prefix with `-` for descending order. Supported
attributes: `id, name`'
auth:
type: oauth2
flow: resource_owner_password_credentials
accessTokenUrl: /auth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: Get asset aliases.
- info:
name: Airflow Get Asset Alias
type: http
http:
method: GET
url: '{{baseUrl}}/api/v2/assets/aliases/:asset_alias_id'
params:
- name: asset_alias_id
value: ''
type: path
auth:
type: oauth2
flow: resource_owner_password_credentials
accessTokenUrl: /auth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: Get an asset alias.
- info:
name: Airflow Get Asset Events
type: http
http:
method: GET
url: '{{baseUrl}}/api/v2/assets/events'
params:
- name: limit
value: ''
type: query
- name: offset
value: ''
type: query
- name: order_by
value: ''
type: query
description: 'Attributes to order by, multi criteria sort is supported. Prefix with `-` for descending order. Supported
attributes: `source_task_id, source_dag_id, source_run_id, source_map_index, timestamp`'
- name: asset_id
value: ''
type: query
- name: source_dag_id
value: ''
type: query
- name: source_task_id
value: ''
type: query
- name: source_run_id
value: ''
type: query
- name: source_map_index
value: ''
type: query
- name: name_pattern
value: ''
type: query
description: SQL LIKE expression — use `%` / `_` wildcards (e.g. `%customer_%`). or the pipe `|` operator for OR logic
(e.g. `dag1 | dag2`). Regular expressions are **not** supported.
- name: timestamp_gte
value: ''
type: query
- name: timestamp_gt
value: ''
type: query
- name: timestamp_lte
value: ''
type: query
- name: timestamp_lt
value: ''
type: query
auth:
type: oauth2
flow: resource_owner_password_credentials
accessTokenUrl: /auth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: Get asset events.
- info:
name: Airflow Create Asset Event
type: http
http:
method: POST
url: '{{baseUrl}}/api/v2/assets/events'
body:
type: json
data: '{}'
auth:
type: oauth2
flow: resource_owner_password_credentials
accessTokenUrl: /auth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: Create asset events.
- info:
name: Airflow Materialize Asset
type: http
http:
method: POST
url: '{{baseUrl}}/api/v2/assets/:asset_id/materialize'
params:
- name: asset_id
value: ''
type: path
body:
type: json
data: '{}'
auth:
type: oauth2
flow: resource_owner_password_credentials
accessTokenUrl: /auth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: Materialize an asset by triggering a DAG run that produces it.
- info:
name: Airflow Get Asset Queued Events
type: http
http:
method: GET
url: '{{baseUrl}}/api/v2/assets/:asset_id/queuedEvents'
params:
- name: asset_id
value: ''
type: path
- name: before
value: ''
type: query
auth:
type: oauth2
flow: resource_owner_password_credentials
accessTokenUrl: /auth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: Get queued asset events for an asset.
- info:
name: Airflow Delete Asset Queued Events
type: http
http:
method: DELETE
url: '{{baseUrl}}/api/v2/assets/:asset_id/queuedEvents'
params:
- name: asset_id
value: ''
type: path
- name: before
value: ''
type: query
auth:
type: oauth2
flow: resource_owner_password_credentials
accessTokenUrl: /auth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: Delete queued asset events for an asset.
- info:
name: Airflow Get Asset
type: http
http:
method: GET
url: '{{baseUrl}}/api/v2/assets/:asset_id'
params:
- name: asset_id
value: ''
type: path
auth:
type: oauth2
flow: resource_owner_password_credentials
accessTokenUrl: /auth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: Get an asset.
- info:
name: Airflow Get Dag Asset Queued Events
type: http
http:
method: GET
url: '{{baseUrl}}/api/v2/dags/:dag_id/assets/queuedEvents'
params:
- name: dag_id
value: ''
type: path
- name: before
value: ''
type: query
auth:
type: oauth2
flow: resource_owner_password_credentials
accessTokenUrl: /auth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: Get queued asset events for a DAG.
- info:
name: Airflow Delete Dag Asset Queued Events
type: http
http:
method: DELETE
url: '{{baseUrl}}/api/v2/dags/:dag_id/assets/queuedEvents'
params:
- name: dag_id
value: ''
type: path
- name: before
value: ''
type: query
auth:
type: oauth2
flow: resource_owner_password_credentials
accessTokenUrl: /auth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: Airflow Delete Dag Asset Queued Events
- info:
name: Airflow Get Dag Asset Queued Event
type: http
http:
method: GET
url: '{{baseUrl}}/api/v2/dags/:dag_id/assets/:asset_id/queuedEvents'
params:
- name: dag_id
value: ''
type: path
- name: asset_id
value: ''
type: path
- name: before
value: ''
type: query
auth:
type: oauth2
flow: resource_owner_password_credentials
accessTokenUrl: /auth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: Get a queued asset event for a DAG.
- info:
name: Airflow Delete Dag Asset Queued Event
type: http
http:
method: DELETE
url: '{{baseUrl}}/api/v2/dags/:dag_id/assets/:asset_id/queuedEvents'
params:
- name: dag_id
value: ''
type: path
- name: asset_id
value: ''
type: path
- name: before
value: ''
type: query
auth:
type: oauth2
flow: resource_owner_password_credentials
accessTokenUrl: /auth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: Delete a queued asset event for a DAG.
- info:
name: Backfill
type: folder
items:
- info:
name: Airflow List Backfills
type: http
http:
method: GET
url: '{{baseUrl}}/api/v2/backfills'
params:
- name: dag_id
value: ''
type: query
- name: limit
value: ''
type: query
- name: offset
value: ''
type: query
- name: order_by
value: ''
type: query
description: 'Attributes to order by, multi criteria sort is supported. Prefix with `-` for descending order. Supported
attributes: `id`'
auth:
type: oauth2
flow: resource_owner_password_credentials
accessTokenUrl: /auth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: Airflow List Backfills
- info:
name: Airflow Create Backfill
type: http
http:
method: POST
url: '{{baseUrl}}/api/v2/backfills'
body:
type: json
data: '{}'
auth:
type: oauth2
flow: resource_owner_password_credentials
accessTokenUrl: /auth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: Airflow Create Backfill
- info:
name: Airflow Get Backfill
type: http
http:
method: GET
url: '{{baseUrl}}/api/v2/backfills/:backfill_id'
params:
- name: backfill_id
value: ''
type: path
auth:
type: oauth2
flow: resource_owner_password_credentials
accessTokenUrl: /auth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: Airflow Get Backfill
- info:
name: Airflow Pause Backfill
type: http
http:
method: PUT
url: '{{baseUrl}}/api/v2/backfills/:backfill_id/pause'
params:
- name: backfill_id
value: ''
type: path
auth:
type: oauth2
flow: resource_owner_password_credentials
accessTokenUrl: /auth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: Airflow Pause Backfill
- info:
name: Airflow Unpause Backfill
type: http
http:
method: PUT
url: '{{baseUrl}}/api/v2/backfills/:backfill_id/unpause'
params:
- name: backfill_id
value: ''
type: path
auth:
type: oauth2
flow: resource_owner_password_credentials
accessTokenUrl: /auth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: Airflow Unpause Backfill
- info:
name: Airflow Cancel Backfill
type: http
http:
method: PUT
url: '{{baseUrl}}/api/v2/backfills/:backfill_id/cancel'
params:
- name: backfill_id
value: ''
type: path
auth:
type: oauth2
flow: resource_owner_password_credentials
accessTokenUrl: /auth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: Airflow Cancel Backfill
- info:
name: Airflow Create Backfill Dry Run
type: http
http:
method: POST
url: '{{baseUrl}}/api/v2/backfills/dry_run'
body:
type: json
data: '{}'
auth:
type: oauth2
flow: resource_owner_password_credentials
accessTokenUrl: /auth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: Airflow Create Backfill Dry Run
- info:
name: Connection
type: folder
items:
- info:
name: Airflow Get Connection
type: http
http:
method: GET
url: '{{baseUrl}}/api/v2/connections/:connection_id'
params:
- name: connection_id
value: ''
type: path
auth:
type: oauth2
flow: resource_owner_password_credentials
accessTokenUrl: /auth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: Get a connection entry.
- info:
name: Airflow Patch Connection
type: http
http:
method: PATCH
url: '{{baseUrl}}/api/v2/connections/:connection_id'
params:
- name: connection_id
value: ''
type: path
- name: update_mask
value: ''
type: query
body:
type: json
data: '{}'
auth:
type: oauth2
flow: resource_owner_password_credentials
accessTokenUrl: /auth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: Update a connection entry.
- info:
name: Airflow Delete Connection
type: http
http:
method: DELETE
url: '{{baseUrl}}/api/v2/connections/:connection_id'
params:
- name: connection_id
value: ''
type: path
auth:
type: oauth2
flow: resource_owner_password_credentials
accessTokenUrl: /auth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: Delete a connection entry.
- info:
name: Airflow Get Connections
type: http
http:
method: GET
url: '{{baseUrl}}/api/v2/connections'
params:
- name: limit
value: ''
type: query
- name: offset
value: ''
type: query
- name: order_by
value: ''
type: query
description: 'Attributes to order by, multi criteria sort is supported. Prefix with `-` for descending order. Supported
attributes: `conn_id, conn_type, description, host, port, id, team_name, connection_id`'
- name: connection_id_pattern
value: ''
type: query
description: SQL LIKE expression — use `%` / `_` wildcards (e.g. `%customer_%`). or the pipe `|` operator for OR logic
(e.g. `dag1 | dag2`). Regular expressions are **not** supported.
auth:
type: oauth2
flow: resource_owner_password_credentials
accessTokenUrl: /auth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: Get all connection entries.
- info:
name: Airflow Post Connection
type: http
http:
method: POST
url: '{{baseUrl}}/api/v2/connections'
body:
type: json
data: '{}'
auth:
type: oauth2
flow: resource_owner_password_credentials
accessTokenUrl: /auth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: Create connection entry.
- info:
name: Airflow Bulk Connections
type: http
http:
method: PATCH
url: '{{baseUrl}}/api/v2/connections'
body:
type: json
data: '{}'
auth:
type: oauth2
flow: resource_owner_password_credentials
accessTokenUrl: /auth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: Bulk create, update, and delete connections.
- info:
name: Airflow Test Connection
type: http
http:
method: POST
url: '{{baseUrl}}/api/v2/connections/test'
body:
type: json
data: '{}'
auth:
type: oauth2
flow: resource_owner_password_credentials
accessTokenUrl: /auth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: 'Test an API connection.
This method first creates an in-memory transient conn_id & exports that to an env var,
as some hook classes tries to find out the `conn` from their __init__ method & errors out if not found.
It also deletes the conn id env connection after the test.'
- info:
name: Airflow Create Default Connections
type: http
http:
method: POST
url: '{{baseUrl}}/api/v2/connections/defaults'
auth:
type: oauth2
flow: resource_owner_password_credentials
accessTokenUrl: /auth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: Create default connections.
- info:
name: DagRun
type: folder
items:
- info:
name: Airflow Get Dag Run
type: http
http:
method: GET
url: '{{baseUrl}}/api/v2/dags/:dag_id/dagRuns/:dag_run_id'
params:
- name: dag_id
value: ''
type: path
- name: dag_run_id
value: ''
type: path
auth:
type: oauth2
flow: resource_owner_password_credentials
accessTokenUrl: /auth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: Airflow Get Dag Run
- info:
name: Airflow Patch Dag Run
type: http
http:
method: PATCH
url: '{{baseUrl}}/api/v2/dags/:dag_id/dagRuns/:dag_run_id'
params:
- name: dag_id
value: ''
type: path
- name: dag_run_id
value: ''
type: path
- name: update_mask
value: ''
type: query
body:
type: json
data: '{}'
auth:
type: oauth2
flow: resource_owner_password_credentials
accessTokenUrl: /auth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: Modify a DAG Run.
- info:
name: Airflow Delete Dag Run
type: http
http:
method: DELETE
url: '{{baseUrl}}/api/v2/dags/:dag_id/dagRuns/:dag_run_id'
params:
- name: dag_id
value: ''
type: path
- name: dag_run_id
value: ''
type: path
auth:
type: oauth2
flow: resource_owner_password_credentials
accessTokenUrl: /auth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: Delete a DAG Run entry.
- info:
name: Airflow Get Upstream Asset Events
type: http
http:
method: GET
url: '{{baseUrl}}/api/v2/dags/:dag_id/dagRuns/:dag_run_id/upstreamAssetEvents'
params:
- name: dag_id
value: ''
type: path
- name: dag_run_id
value: ''
type: path
auth:
type: oauth2
flow: resource_owner_password_credentials
accessTokenUrl: /auth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: If dag run is asset-triggered, return the asset events that triggered it.
- info:
name: Airflow Clear Dag Run
type: http
http:
method: POST
url: '{{baseUrl}}/api/v2/dags/:dag_id/dagRuns/:dag_run_id/clear'
params:
- name: dag_id
value: ''
type: path
- name: dag_run_id
value: ''
type: path
body:
type: json
data: '{}'
auth:
type: oauth2
flow: resource_owner_password_credentials
accessTokenUrl: /auth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: Airflow Clear Dag Run
- info:
name: Airflow Get Dag Runs
type: http
http:
method: GET
url: '{{baseUrl}}/api/v2/dags/:dag_id/dagRuns'
params:
- name: dag_id
value: ''
type: path
- name: limit
value: ''
type: query
- name: offset
value: ''
type: query
- name: run_after_gte
value: ''
type: query
- name: run_after_gt
value: ''
type: query
- name: run_after_lte
value: ''
type: query
- name: run_after_lt
value: ''
type: query
- name: logical_date_gte
value: ''
type: query
- name: logical_date_gt
value: ''
type: query
- name: logical_date_lte
value: ''
type: query
- name: logical_date_lt
value: ''
type: query
- name: start_date_gte
value: ''
type: query
- name: start_date_gt
value: ''
type: query
- name: start_date_lte
value: ''
type: query
- name: start_date_lt
value: ''
type: query
- name: end_date_gte
value: ''
type: query
- name: end_date_gt
value: ''
type: query
- name: end_date_lte
value: ''
type: query
- name: end_date_lt
value: ''
type: query
- name: duration_gte
value: ''
type: query
- name: duration_gt
value: ''
type: query
- name: duration_lte
value: ''
type: query
- name: duration_lt
value: ''
type: query
- name: updated_at_gte
value: ''
type: query
- name: updated_at_gt
value: ''
type: query
- name: updated_at_lte
value: ''
type: query
- name: updated_at_lt
value: ''
type: query
- name: conf_contains
value: ''
type: query
- name: run_type
value: ''
type: query
- name: state
value: ''
type: query
- name: dag_version
value: ''
type: query
- name: bundle_version
value: ''
type: query
- name: order_by
value: ''
type: query
description: 'Attributes to order by, multi criteria sort is supported. Prefix with `-` for descending order. Supported
attributes: `id, state, dag_id, run_id, logical_date, run_after, start_date, end_date, updated_at, conf, duration,
dag_run_id`'
- name: run_id_pattern
value: ''
type: query
description: SQL LIKE expression — use `%` / `_` wildcards (e.g. `%customer_%`). or the pipe `|` operator for OR logic
(e.g. `dag1 | dag2`). Regular expressions are **not** supported.
- name: triggering_user_name_pattern
value: ''
type: query
description: SQL LIKE expression — use `%` / `_` wildcards (e.g. `%customer_%`). or the pipe `|` operator for OR logic
(e.g. `dag1 | dag2`). Regular expressions are **not** supported.
- name: dag_id_pattern
value: ''
type: query
description: SQL LIKE expression — use `%` / `_` wildcards (e.g. `%customer_%`). or the pipe `|` operator for OR logic
(e.g. `dag1 | dag2`). Regular expressions are **not** supported.
- name: partition_key_pattern
value: ''
type: query
description: SQL LIKE expression — use `%` / `_` wildcards (e.g. `%customer_%`). or the pipe `|` operator for OR logic
(e.g. `dag1 | dag2`). Regular expressions are **not** supported.
- name: consuming_asset_pattern
value: ''
type: query
description: Filter by consuming asset name or URI using pattern matching
auth:
type: oauth2
flow: resource_owner_password_credentials
accessTokenUrl: /auth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: 'Get all DAG Runs.
This endpoint allows specifying `~` as the dag_id to retrieve Dag Runs for all DAGs.'
- info:
name: Airflow Trigger Dag Run
type: http
http:
method: POST
url: '{{baseUrl}}/api/v2/dags/:dag_id/dagRuns'
params:
- name: dag_id
value: ''
type: path
body:
type: json
data: '{}'
auth:
type: oauth2
flow: resource_owner_password_credentials
accessTokenUrl: /auth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: Trigger a DAG.
- info:
name: 'Airflow Experimental: Wait for a Dag Run to Complete, and Return Task Results if Requested.'
type: http
http:
method: GET
url: '{{baseUrl}}/api/v2/dags/:dag_id/dagRuns/:dag_run_id/wait'
params:
- name: dag_id
value: ''
type: path
- name: dag_run_id
value: ''
type: path
- name: interval
value: ''
type: query
description: Seconds to wait between dag run state checks
- name: result
value: ''
type: query
description: Collect result XCom from task. Can be set multiple times.
auth:
type: oauth2
flow: resource_owner_password_credentials
accessTokenUrl: /auth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: 🚧 This is an experimental endpoint and may change or be removed without notice.Successful response are streamed
as newline-delimited JSON (NDJSON). Each line is a JSON object representing the DAG run state.
- info:
name: Airflow Get List Dag Runs Batch
type: http
http:
method: POST
url: '{{baseUrl}}/api/v2/dags/:dag_id/dagRuns/list'
params:
- name: dag_id
value: ''
type: path
body:
type: json
data: '{}'
auth:
type: oauth2
flow: resource_owner_password_credentials
accessTokenUrl: /auth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: Get a list of DAG Runs.
- info:
name: DagSource
type: folder
items:
- info:
name: Airflow Get Dag Source
type: http
http:
method: GET
url: '{{baseUrl}}/api/v2/dagSources/:dag_id'
headers:
- name: accept
value: ''
params:
- name: dag_id
value: ''
type: path
- name: version_number
value: ''
type: query
auth:
type: oauth2
flow: resource_owner_password_credentials
accessTokenUrl: /auth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: Get source code using file token.
- info:
name: DagStats
type: folder
items:
- info:
name: Airflow Get Dag Stats
type: http
http:
method: GET
url: '{{baseUrl}}/api/v2/dagStats'
params:
- name: dag_ids
value: ''
type: query
auth:
type: oauth2
flow: resource_owner_password_credentials
accessTokenUrl: /auth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: Get Dag statistics.
- info:
name: Config
type: folder
items:
- info:
name: Airflow Get Config
type: http
http:
method: GET
url: '{{baseUrl}}/api/v2/config'
headers:
- name: accept
value: ''
params:
- name: section
value: ''
type: query
auth:
type: oauth2
flow: resource_owner_password_credentials
accessTokenUrl: /auth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: Airflow Get Config
- info:
name: Airflow Get Config Value
type: http
http:
method: GET
url: '{{baseUrl}}/api/v2/config/section/:section/option/:option'
headers:
- name: accept
value: ''
params:
- name: section
value: ''
type: path
- name: option
value: ''
type: path
auth:
type: oauth2
flow: resource_owner_password_credentials
accessTokenUrl: /auth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: Airflow Get Config Value
- info:
name: DagWarning
type: folder
items:
- info:
name: Airflow List Dag Warnings
type: http
http:
method: GET
url: '{{baseUrl}}/api/v2/dagWarnings'
params:
- name: dag_id
value: ''
type: query
- name: warning_type
value: ''
type: query
- name: limit
value: ''
type: query
- name: offset
value: ''
type: query
- name: order_by
value: ''
type: query
description: 'Attributes to order by, multi criteria sort is supported. Prefix with `-` for descending order. Supported
attributes: `dag_id, warning_type, message, timestamp`'
auth:
type: oauth2
flow: resource_owner_password_credentials
accessTokenUrl: /auth/token
credentials:
clientId: '{{clientId}}'
clientSecret: '{{clientSecret}}'
docs: Get a list of DAG warnings.
- info:
name: DAG
type: folder
items:
- info:
name: Airflow Get Dags
type: http
http:
method: GET
url: '{{baseUrl}}/api/v2/dags'
params:
- name: limit
value: ''
type: query
- name: offset
value: ''
type: query
- name: tags
value: ''
type: query
- name: tags_match_mode
value: ''
type: query
- name: owners
value: ''
type: query
- name: dag_id_pattern
value: ''
type: query
description: SQL LIKE expression — use `%` / `_` wildcards (e.g. `%customer_%`). or the pipe `|` operator for OR logic
(e.g. `dag1 | dag2`). Regular expressions are **not** supported.
- name: dag_display_name_pattern
value: ''
type: query
description: SQL LIKE expression — use `%` / `_` wildcards (e.g. `%customer_%`). or the pipe `|` operator for OR logic
(e.g. `dag1 | dag2`). Regular expressions are **not** supported.
- name: exclude_stale
value: ''
type: query
- name: paused
value: ''
type: query
- name: has_import_errors
value: ''
type: query
description: Filter Dags by having import errors. Only Dags that have been successfully loaded before will be returned.
- name: last_dag_run_state
value: ''
type: query
- name: bundle_name
value: ''
type: query
- name: bundle_version
value: ''
type: query
- name: has_asset_schedule
value: ''
type: query
description: Filter Dags with asset-based scheduling
- name: asset_dependency
value: ''
type: query
description: Filter Dags by asset dependency (name or URI)
- name: dag_run_start_date_gte
value: ''
type: query
- name: dag_run_start_date_gt
value: ''
type: query
- name: dag_run_start_date_lte
value: ''
type: query
- name: dag_run_start_date_lt
value: ''
type: query
- name: dag
# --- truncated at 32 KB (91 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/airflow/refs/heads/main/apis.yml