Experimental REST API Reference

Airflow exposes an REST API. It is available through the webserver. Endpoints are available at /api/experimental/.

Warning

This REST API is deprecated since version 2.0. Please consider using the stable REST API. For more information on migration, see UPDATING.md

Changed in version 2.0: The experimental REST API is disabled by default. To restore these APIs while migrating to the stable REST API, set enable_experimental_api option in [api] section to True.

Endpoints

POST /api/experimental/dags/<DAG_ID>/dag_runs

Creates a dag_run for a given dag id. Note: If execution_date is not specified in the body, airflow by default creates only one DAG per second for a given DAG_ID. In order to create multiple DagRun within one second, you should set parameter "replace_microseconds" to "false" (boolean as string).

The execution_date must be specified with the format YYYY-mm-DDTHH:MM:SS.ssssss.

Trigger DAG with config, example:

curl -X POST \
    'http://localhost:8080/api/experimental/dags/<DAG_ID>/dag_runs' \
    --header 'Cache-Control: no-cache' \
    --header 'Content-Type: application/json' \
    --data '{"conf":"{\"key\":\"value\"}"}'

Trigger DAG with milliseconds precision, example:

curl -X POST  \
    'http://localhost:8080/api/experimental/dags/<DAG_ID>/dag_runs' \
    --header 'Content-Type: application/json' \
    --header 'Cache-Control: no-cache' \
    --data '{"replace_microseconds":"false"}'
GET /api/experimental/dags/<DAG_ID>/dag_runs

Returns a list of Dag Runs for a specific DAG ID.

GET /api/experimental/dags/<string:dag_id>/dag_runs/<string:execution_date>

Returns a JSON with a dag_run’s public instance variables. The format for the <string:execution_date> is expected to be YYYY-mm-DDTHH:MM:SS, for example: "2016-11-16T11:34:15".

GET /api/experimental/test

To check REST API server correct work. Return status ‘OK’.

GET /api/experimental/dags/<DAG_ID>/tasks/<TASK_ID>

Returns info for a task.

GET /api/experimental/dags/<DAG_ID>/dag_runs/<string:execution_date>/tasks/<TASK_ID>

Returns a JSON with a task instance’s public instance variables. The format for the <string:execution_date> is expected to be YYYY-mm-DDTHH:MM:SS, for example: "2016-11-16T11:34:15".

GET /api/experimental/dags/<DAG_ID>/paused/<string:paused>

‘<string:paused>’ must be a ‘true’ to pause a DAG and ‘false’ to unpause.

GET /api/experimental/dags/<DAG_ID>/paused

Returns the paused state of a DAG

GET /api/experimental/latest_runs

Returns the latest DagRun for each DAG formatted for the UI.

GET /api/experimental/pools

Get all pools.

GET /api/experimental/pools/<string:name>

Get pool by a given name.

POST /api/experimental/pools

Create a pool.

DELETE /api/experimental/pools/<string:name>

Delete pool.

GET /api/experimental/lineage/<DAG_ID>/<string:execution_date>/

Returns the lineage information for the dag.

Was this entry helpful?