NOTE: The Apache Airflow Client is still under active development and some methods or APIs might be broken. Please raise an issue in github if you encounter any such issues.
Python >= 3.6
You can install directly using pip:
pip install apache-airflow-client
Or install via Setuptools.
git clone firstname.lastname@example.org:apache/airflow-client-python.git cd airflow-client-python python setup.py install --user
sudo python setup.py install to install the package for all users)
Then import the package:
Please follow the installation procedure and then run the following:
import airflow_client.client from pprint import pprint from airflow_client.client.api import config_api # # In case of the basic authentication below. Make sure: # - Airflow is configured with the basic_auth as backend: # auth_backend = airflow.api.auth.backend.basic_auth # - Make sure that the client has been generated with securitySchema Basic. # Configure HTTP basic authorization: Basic configuration = airflow_client.client.Configuration( host="http://localhost/api/v1", username='admin', password='admin' ) # Enter a context with an instance of the API client with airflow_client.client.ApiClient(configuration) as api_client: # Create an instance of the API class api_instance = config_api.ConfigApi(api_client) try: # Get current configuration api_response = api_instance.get_config() pprint(api_response) except airflow_client.client.ApiException as e: print("Exception when calling ConfigApi->get_config: %s\n" % e)
See README for full client API documentation.
The Python client is generated using Airflow's openapi spec. To update the client for new APIs do the following steps:
# clone this repo git clone email@example.com:apache/airflow-client-python.git # clone Airflow repo (if not already) git clone firstname.lastname@example.org:apache/airflow.git
Edit the file
airflow/airflow/api_connexion/openapi/v1.yaml Make sure it has the following
securitySchemas listed under security
security: - Basic:  - GoogleOpenId:  - Kerberos: 
If your deployment of Airflow uses any different authentication mechanism than the three listed above, you might need to make further changes to the
v1.yaml and generate your own client, see OpenAPI Schema specification for details. (These changes should not be commited to the upstream
v1.yaml as it will generate misleading openapi documentaion)
cd airflow # bump up the version in python.sh & run the following command ./clients/gen/python.sh airflow/api_connexion/openapi/v1.yaml ../airflow-client-python/airflow_client # raise a PR in github for both the repos (airflow & airflow-client-python)