---
title: "Apache Airflow MCP server for AI agents - actionlake"
description: "Give Claude 125 Apache Airflow actions through one MCP server: backfill, connection, dag. Your agent never holds the credential. 100,000 calls a month free."
canonical: https://actionlake.com/connectors/apache-airflow
updated: 2026-10-23
---

Connectors · Data & integration

# Apache Airflow MCP server for AI agents.

actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Apache Airflow and the rest of your systems. It gives your agent 125 Apache Airflow actions (69 reads, 37 writes and 19 that wait for a confirmation) and holds the Apache Airflow credential itself, so the agent never does. It paces Apache Airflow's limits and records every call.

[Connect Apache Airflow free](https://actionlake.com/console?start=sandbox) [See pricing](https://actionlake.com/pricing)

100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.

`claude mcp add --transport http actionlake https://connect.actionlake.com/mcp`

the first call

```
do {
  action: "apache_airflow.dags.list",
  intent: "check which Apache Airflow account is connected"
}
# Get Dags · read · 1 upstream call
```

- 125 actions in one signed file
- 69 read look, never change
- 37 write create and update
- 19 wait for a yes destructive, confirmed first

Set up

## Connect Apache Airflow in three steps.

1. 01
   ### Add actionlake to Claude.
   Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.
   `https://connect.actionlake.com/mcp`
2. 02
   ### Connect Apache Airflow.
   Session login. actionlake opens the session and renews it when it expires. actionlake stores what you paste write-only, sealed under your tenant's key.
   - `username` Username of the Airflow account actionlake signs in as
   - `password` Password of that Airflow account. actionlake exchanges it at /auth/token for a JWT
   - `host` Where your Apache Airflow lives: your host
   ```
   account { op: "connections.requirements", service: "apache_airflow" }
   # free: exactly what to paste, and what is found for you
   ```
3. 03
   ### Make the first call. Check before a write.
   Ask in plain words; Claude picks the action. Before anything changes, `check` validates the call and prices it, for free.
   ```
   do    { action: "apache_airflow.dags.list" }
   # get dags · read · 1 upstream call
   check { action: "apache_airflow.connection.create", input: { … } }
   # free: inputs, permissions, cost and confirmations, nothing sent
   ```

Apache Airflow at a glance

**Sign-in**

Session login. actionlake opens the session and renews it when it expires.

**You provide**

`username` `password`

**Setup fields**

`host`

**Limits we pace to**

10 calls a second, per connection

**API covered**

Airflow 3.3.2 stable REST API v2 (OpenAPI 3.1), at your Apache Airflow instance's API base URL, which you enter when connecting

**Built from**

Apache Airflow's documentation, read 23 October 2026[OpenAPI spec (GitHub)](https://raw.githubusercontent.com/apache/airflow/3.3.2/airflow-core/src/airflow/api_fastapi/core_api/openapi/v2-rest-api-generated.yaml) [airflow.apache.org](https://airflow.apache.org/docs/apache-airflow/stable/stable-rest-api-ref.html)

**Service file**

Version 1.0.0, signed (Ed25519)

**Cached reads**

58 of 69 reads, for up to 5 minutes; a write clears what it affects

**Shared entities**

2, so ask can line Apache Airflow up with your other systems

**Data**

Processed and stored in Sydney, Australia. No US region yet

Capabilities

## What an AI agent can do in Apache Airflow.

125 actions in 70 areas. Every one carries its effect, so a key can allow the reads and hold the rest.

- **69** read look, never change
- **37** write create and update
- **19** destructive wait for a confirmation

1. ### Backfill
   6
   2 read · 3 write · 1 destructive
   Create Backfill · Create Backfill Dry Run · Get Backfill · Pause Backfill
2. ### Connection
   5
   2 read · 2 write · 1 destructive
   Post Connection · Get Connection · Patch Connection · Delete Connection
3. ### Dag
   5
   1 read · 3 write · 1 destructive
   Get Dag · Patch Dag · Delete Dag · Favorite Dag
4. ### Dag run
   5
   1 read · 3 write · 1 destructive
   Get Dag Run · Trigger Dag Run · Patch Dag Run · Clear Dag Run
5. ### Dag runs
   4
   2 read · 1 write · 1 destructive
   Get Dag Runs · Get List Dag Runs Batch · Clear Dag Runs · Bulk Dag Runs
6. ### Pool
   4
   1 read · 2 write · 1 destructive
   Post Pool · Get Pool · Patch Pool · Delete Pool
7. ### Task instance
   4
   1 read · 2 write · 1 destructive
   Get Task Instance · Patch Task Instance · Patch Task Instance Dry Run · Delete Task Instance
8. ### Task instances
   4
   2 read · 2 write · 0 destructive
   Get Task Instances Batch · Get Task Instances · Bulk Task Instances · Post Clear Task Instances

**62 more areas · 88 actions**

- Task state store entry **4**
- Variable **4**
- Xcom entry **4**
- Asset state store entry **3**
- Mapped task instance **3**
- Asset **2**
- Asset queued events **2**
- Asset state store **2**
- Connection test **2**
- Connections **2**
- Dag asset queued event **2**
- Dag asset queued events **2**
- Dags **2**
- Hitl detail **2**
- Pools **2**
- Task group instances **2**
- Task state store **2**
- Variables **2**
- Asset alias **1**
- Asset aliases **1**
- Asset event **1**
- Asset events **1**
- Assets **1**
- Backfills **1**
- Config **1**
- Config option **1**
- Dag details **1**
- Dag file **1**
- Dag run partitions **1**
- Dag run upstream asset events **1**
- Dag source **1**
- Dag stats **1**
- Dag tags **1**
- Dag version **1**
- Dag versions **1**
- Dag warnings **1**
- Default connections **1**
- Event log **1**
- Event logs **1**
- Health **1**
- Hitl detail try **1**
- Hitl details **1**
- Import error **1**
- Import errors **1**
- Jobs **1**
- Mapped task instance dependencies **1**
- Mapped task instance tries **1**
- Mapped task instance try **1**
- Mapped task instances **1**
- Plugin import errors **1**
- Plugins **1**
- Providers **1**
- Task **1**
- Task instance dependencies **1**
- Task instance external log URL **1**
- Task instance extra links **1**
- Task instance log **1**
- Task instance tries **1**
- Task instance try **1**
- Tasks **1**
- Version **1**
- Xcom entries **1**

Top actions

## The Apache Airflow API, shaped for agents.

The ids your agent types, what each does, and the one name it shares with other systems. 15 of Apache Airflow's 15 action names are shared with at least one other connector, so an agent learns them once.

| Action | What it does | Effect | Same name in |
| --- | --- | --- | --- |
| `apache_airflow.dags.list` Get Dags | Get all Dags. | read | `automation.workflow.list` 51 connectors |
| `apache_airflow.dag_runs.list` Get Dag Runs | Get all Dag Runs. | read | `automation.workflow_run.list` 27 connectors |
| `apache_airflow.connections.list` Get Connections | Get all connection entries. | read | `automation.connection.list` 32 connectors |
| `apache_airflow.connection.create` Post Connection | Create connection entry. | write | `automation.connection.create` 30 connectors |
| `apache_airflow.dag.get` Get Dag | Get basic information about a Dag. | read | `automation.workflow.get` 51 connectors |
| `apache_airflow.dag.update` Patch Dag | Patch the specific Dag. | write | `automation.workflow.update` 42 connectors |
| `apache_airflow.dag_run.get` Get Dag Run | Get Dag Run. | read | `automation.workflow_run.get` 27 connectors |
| `apache_airflow.dag.delete` Delete Dag | Delete the specific Dag. | destructive | `automation.workflow.delete` 40 connectors |
| `apache_airflow.connection.update` Patch Connection | Update a connection entry. | write | `automation.connection.update` 24 connectors |
| `apache_airflow.task_instance_log.get` Get Log | Get logs for a specific task instance. | read | `automation.workflow_run_log.get` 3 connectors |
| `apache_airflow.health.get` Get Health | Get Health. | read | `platform.health.get` 18 connectors |
| `apache_airflow.jobs.list` Get Jobs | Get all jobs. | read | this connector |

Try it

## Prompts to paste into Claude.

Each one names the Apache Airflow actions it will call, so you know what it reads and what it changes before you send it.

1. Read read
   Get Dags in Apache Airflow and tell me what stands out.
   calls `apache_airflow.dags.list`
2. Write write
   Post Connection in Apache Airflow. Show me exactly what you will send before you save it.
   calls `apache_airflow.connection.create`

Governance for Apache Airflow

## Destructive actions wait for a yes.

19 Apache Airflow actions are destructive. These are all of them:

- Delete Dag `apache_airflow.dag.delete`
- Delete Connection `apache_airflow.connection.delete`
- Bulk Pools `apache_airflow.pools.bulk`
- Delete Pool `apache_airflow.pool.delete`
- Bulk Dag Runs `apache_airflow.dag_runs.bulk`
- Delete Dag Run `apache_airflow.dag_run.delete`
- Bulk Variables `apache_airflow.variables.bulk`
- Delete Variable `apache_airflow.variable.delete`
- Bulk Connections `apache_airflow.connections.bulk`
- Delete Xcom Entry `apache_airflow.xcom_entry.delete`
- Delete Task Instance `apache_airflow.task_instance.delete`
- Clear Task State Store `apache_airflow.task_state_store.clear`
- Clear Asset State Store `apache_airflow.asset_state_store.clear`
- Delete Asset Queued Events `apache_airflow.asset_queued_events.delete`
- Delete Dag Asset Queued Event `apache_airflow.dag_asset_queued_event.delete`
- Delete Task State Store `apache_airflow.task_state_store_entry.delete`
- Delete Asset State Store `apache_airflow.asset_state_store_entry.delete`
- Delete Dag Asset Queued Events `apache_airflow.dag_asset_queued_events.delete`
- Cancel Backfill `apache_airflow.backfill.cancel`

A destructive action runs only with `confirm: true`. Under the `human` policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.

do apache_airflow.dag.delete confirm_policy: **human**

Delete Dag?

**intent:** the user asked me to delete Dag

run suspended · waiting for a named person · key _apache-airflow-agent_ cannot confirm itself

In the console, or from an emailed signed link.

a key for this connector

```
account {
  op: "keys.create", name: "apache-airflow-agent",
  allowed_actions: ["apache_airflow.*"], cap_calls: 2000,
  confirm_policy: "human_for_writes",
  approval_rules: [
    { match: "apache_airflow.dag.delete", approver: "lead@example.com" },
    { match: "apache_airflow.connection.delete", approver: "lead@example.com" },
    { match: "apache_airflow.pools.bulk", approver: "lead@example.com" }
  ]
}
```

Illustrative. Scoped to Apache Airflow only, capped at 2,000 upstream calls, every write confirmed, and the destructive ones approved by a named person.

Cost

## What Apache Airflow costs on actionlake.

Every Apache Airflow action is one upstream call, the only thing actionlake bills. Searching, `check`, `cost`, `account` and any call Apache Airflow refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

- 1 upstream call per action all 125 Apache Airflow actions
- 125 actions page each page of a long list is one call
- 58 reads can be cached a cache hit costs nothing
- 100,000 calls a month, free paid plans from US$49 a month for 250,000

[See pricing](https://actionlake.com/pricing)

Action index

## Every Apache Airflow action.

125 actions by area: the id your agent calls, what it does, and its effect.

**Backfill 6**

- `apache_airflow.backfill.cancel` Cancel Backfill destructive
- `apache_airflow.backfill.create` Create Backfill write
- `apache_airflow.backfill.dry_run` Create Backfill Dry Run read
- `apache_airflow.backfill.get` Get Backfill read
- `apache_airflow.backfill.pause` Pause Backfill write
- `apache_airflow.backfill.unpause` Unpause Backfill write

**Connection 5**

- `apache_airflow.connection.create` Post Connection write
- `apache_airflow.connection.delete` Delete Connection destructive
- `apache_airflow.connection.get` Get Connection read
- `apache_airflow.connection.test` Test Connection read
- `apache_airflow.connection.update` Patch Connection write

**Dag 5**

- `apache_airflow.dag.delete` Delete Dag destructive
- `apache_airflow.dag.favorite` Favorite Dag write
- `apache_airflow.dag.get` Get Dag read
- `apache_airflow.dag.unfavorite` Unfavorite Dag write
- `apache_airflow.dag.update` Patch Dag write

**Dag run 5**

- `apache_airflow.dag_run.clear` Clear Dag Run write
- `apache_airflow.dag_run.delete` Delete Dag Run destructive
- `apache_airflow.dag_run.get` Get Dag Run read
- `apache_airflow.dag_run.trigger` Trigger Dag Run write
- `apache_airflow.dag_run.update` Patch Dag Run write

**Dag runs 4**

- `apache_airflow.dag_runs.batch_list` Get List Dag Runs Batch read
- `apache_airflow.dag_runs.bulk` Bulk Dag Runs destructive
- `apache_airflow.dag_runs.clear` Clear Dag Runs write
- `apache_airflow.dag_runs.list` Get Dag Runs read

**Pool 4**

- `apache_airflow.pool.create` Post Pool write
- `apache_airflow.pool.delete` Delete Pool destructive
- `apache_airflow.pool.get` Get Pool read
- `apache_airflow.pool.update` Patch Pool write

**Task instance 4**

- `apache_airflow.task_instance.delete` Delete Task Instance destructive
- `apache_airflow.task_instance.get` Get Task Instance read
- `apache_airflow.task_instance.update` Patch Task Instance write
- `apache_airflow.task_instance.update_dry_run` Patch Task Instance Dry Run write

**Task instances 4**

- `apache_airflow.task_instances.batch_list` Get Task Instances Batch read
- `apache_airflow.task_instances.bulk` Bulk Task Instances write
- `apache_airflow.task_instances.clear` Post Clear Task Instances write
- `apache_airflow.task_instances.list` Get Task Instances read

**Task state store entry 4**

- `apache_airflow.task_state_store_entry.delete` Delete Task State Store destructive
- `apache_airflow.task_state_store_entry.get` Get Task State Store read
- `apache_airflow.task_state_store_entry.set` Set Task State Store write
- `apache_airflow.task_state_store_entry.update` Patch Task State Store write

**Variable 4**

- `apache_airflow.variable.create` Post Variable write
- `apache_airflow.variable.delete` Delete Variable destructive
- `apache_airflow.variable.get` Get Variable read
- `apache_airflow.variable.update` Patch Variable write

**Xcom entry 4**

- `apache_airflow.xcom_entry.create` Create Xcom Entry write
- `apache_airflow.xcom_entry.delete` Delete Xcom Entry destructive
- `apache_airflow.xcom_entry.get` Get Xcom Entry read
- `apache_airflow.xcom_entry.update` Update Xcom Entry write

**Asset state store entry 3**

- `apache_airflow.asset_state_store_entry.delete` Delete Asset State Store destructive
- `apache_airflow.asset_state_store_entry.get` Get Asset State Store read
- `apache_airflow.asset_state_store_entry.set` Set Asset State Store write

**Mapped task instance 3**

- `apache_airflow.mapped_task_instance.get` Get Mapped Task Instance read
- `apache_airflow.mapped_task_instance.update` Patch Task Instance write
- `apache_airflow.mapped_task_instance.update_dry_run` Patch Task Instance Dry Run write

**Asset 2**

- `apache_airflow.asset.get` Get Asset read
- `apache_airflow.asset.materialize` Materialize Asset write

**Asset queued events 2**

- `apache_airflow.asset_queued_events.delete` Delete Asset Queued Events destructive
- `apache_airflow.asset_queued_events.list` Get Asset Queued Events read

**Asset state store 2**

- `apache_airflow.asset_state_store.clear` Clear Asset State Store destructive
- `apache_airflow.asset_state_store.list` List Asset State Store read

**Connection test 2**

- `apache_airflow.connection_test.enqueue` Enqueue Connection Test write
- `apache_airflow.connection_test.get` Get Connection Test read

**Connections 2**

- `apache_airflow.connections.bulk` Bulk Connections destructive
- `apache_airflow.connections.list` Get Connections read

**Dag asset queued event 2**

- `apache_airflow.dag_asset_queued_event.delete` Delete Dag Asset Queued Event destructive
- `apache_airflow.dag_asset_queued_event.get` Get Dag Asset Queued Event read

**Dag asset queued events 2**

- `apache_airflow.dag_asset_queued_events.delete` Delete Dag Asset Queued Events destructive
- `apache_airflow.dag_asset_queued_events.list` Get Dag Asset Queued Events read

**Dags 2**

- `apache_airflow.dags.list` Get Dags read
- `apache_airflow.dags.update` Patch Dags write

**Hitl detail 2**

- `apache_airflow.hitl_detail.get` Get Hitl Detail read
- `apache_airflow.hitl_detail.update` Update Hitl Detail write

**Pools 2**

- `apache_airflow.pools.bulk` Bulk Pools destructive
- `apache_airflow.pools.list` Get Pools read

**Task group instances 2**

- `apache_airflow.task_group_instances.update` Patch Task Group Instances write
- `apache_airflow.task_group_instances.update_dry_run` Patch Task Group Instances Dry Run write

**Task state store 2**

- `apache_airflow.task_state_store.clear` Clear Task State Store destructive
- `apache_airflow.task_state_store.list` List Task State Store read

**Variables 2**

- `apache_airflow.variables.bulk` Bulk Variables destructive
- `apache_airflow.variables.list` Get Variables read

**Asset alias 1**

- `apache_airflow.asset_alias.get` Get Asset Alias read

**Asset aliases 1**

- `apache_airflow.asset_aliases.list` Get Asset Aliases read

**Asset event 1**

- `apache_airflow.asset_event.create` Create Asset Event write

**Asset events 1**

- `apache_airflow.asset_events.list` Get Asset Events read

**Assets 1**

- `apache_airflow.assets.list` Get Assets read

**Backfills 1**

- `apache_airflow.backfills.list` List Backfills read

**Config 1**

- `apache_airflow.config.get` Get Config read

**Config option 1**

- `apache_airflow.config_option.get` Get Config Value read

**Dag details 1**

- `apache_airflow.dag_details.get` Get Dag Details read

**Dag file 1**

- `apache_airflow.dag_file.reparse` Reparse Dag File write

**Dag run partitions 1**

- `apache_airflow.dag_run_partitions.clear` Clear Dag Run Partitions write

**Dag run upstream asset events 1**

- `apache_airflow.dag_run_upstream_asset_events.list` Get Upstream Asset Events read

**Dag source 1**

- `apache_airflow.dag_source.get` Get Dag Source read

**Dag stats 1**

- `apache_airflow.dag_stats.list` Get Dag Stats read

**Dag tags 1**

- `apache_airflow.dag_tags.list` Get Dag Tags read

**Dag version 1**

- `apache_airflow.dag_version.get` Get Dag Version read

**Dag versions 1**

- `apache_airflow.dag_versions.list` Get Dag Versions read

**Dag warnings 1**

- `apache_airflow.dag_warnings.list` List Dag Warnings read

**Default connections 1**

- `apache_airflow.default_connections.create` Create Default Connections write

**Event log 1**

- `apache_airflow.event_log.get` Get Event Log read

**Event logs 1**

- `apache_airflow.event_logs.list` Get Event Logs read

**Health 1**

- `apache_airflow.health.get` Get Health read

**Hitl detail try 1**

- `apache_airflow.hitl_detail_try.get` Get Hitl Detail Try Detail read

**Hitl details 1**

- `apache_airflow.hitl_details.list` Get Hitl Details read

**Import error 1**

- `apache_airflow.import_error.get` Get Import Error read

**Import errors 1**

- `apache_airflow.import_errors.list` Get Import Errors read

**Jobs 1**

- `apache_airflow.jobs.list` Get Jobs read

**Mapped task instance dependencies 1**

- `apache_airflow.mapped_task_instance_dependencies.list` Get Task Instance Dependencies read

**Mapped task instance tries 1**

- `apache_airflow.mapped_task_instance_tries.list` Get Mapped Task Instance Tries read

**Mapped task instance try 1**

- `apache_airflow.mapped_task_instance_try.get` Get Mapped Task Instance Try Details read

**Mapped task instances 1**

- `apache_airflow.mapped_task_instances.list` Get Mapped Task Instances read

**Plugin import errors 1**

- `apache_airflow.plugin_import_errors.list` Import Errors read

**Plugins 1**

- `apache_airflow.plugins.list` Get Plugins read

**Providers 1**

- `apache_airflow.providers.list` Get Providers read

**Task 1**

- `apache_airflow.task.get` Get Task read

**Task instance dependencies 1**

- `apache_airflow.task_instance_dependencies.list` Get Task Instance Dependencies read

**Task instance external log URL 1**

- `apache_airflow.task_instance_external_log_url.get` Get External Log Url read

**Task instance extra links 1**

- `apache_airflow.task_instance_extra_links.list` Get Extra Links read

**Task instance log 1**

- `apache_airflow.task_instance_log.get` Get Log read

**Task instance tries 1**

- `apache_airflow.task_instance_tries.list` Get Task Instance Tries read

**Task instance try 1**

- `apache_airflow.task_instance_try.get` Get Task Instance Try Details read

**Tasks 1**

- `apache_airflow.tasks.list` Get Tasks read

**Version 1**

- `apache_airflow.version.get` Get Version read

**Xcom entries 1**

- `apache_airflow.xcom_entries.list` Get Xcom Entries read

Questions

## The Apache Airflow MCP server, answered.

**Is there an Apache Airflow MCP server for Claude?**

Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 125 Apache Airflow actions across backfill, connection, dag and dag run, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Apache Airflow.

**What do I need to connect Apache Airflow?**

Username of the Airflow account actionlake signs in as and Password of that Airflow account. actionlake exchanges it at /auth/token for a JWT. Plus your host. The free call account { op: "connections.requirements", service: "apache_airflow" } lists exactly what to paste.

**Can an AI agent delete or change things in Apache Airflow?**

Only if its key allows it, and only with an explicit confirmation. 19 Apache Airflow actions are destructive, including delete Dag, delete Connection and bulk Pools. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.

**Will an AI agent use up my Apache Airflow API limit?**

actionlake paces every call to the limits in the Apache Airflow service file: 10 calls a second per connection. Repeated reads are answered from cache (58 Apache Airflow actions can be), which never reaches Apache Airflow.

**What does an Apache Airflow action cost?**

One upstream call, the only unit actionlake bills. A list that pages bills one call per page (125 Apache Airflow actions page). Cache hits, searches, dry runs and calls Apache Airflow refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

**Which Apache Airflow API does it cover?**

The Airflow 3.3.2 stable REST API v2 (OpenAPI 3.1) at your Apache Airflow instance's API base URL, which you enter when connecting. It is built from Apache Airflow's documentation as read on 23 October 2026. 125 actions in 70 areas, each one in the signed service file (version 1.0.0).

**Does actionlake keep my Apache Airflow data, and where?**

actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to 5 minutes, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your Apache Airflow credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.

**Which AI clients can use it?**

Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.

## More connectors like Apache Airflow

Shares the most action names with

- [Celigo integrator.io 11](https://actionlake.com/connectors/celigo-integrator-io)
- [Workato 10](https://actionlake.com/connectors/workato)
- [Unstructured 7](https://actionlake.com/connectors/unstructured)
- [Prefect Cloud 7](https://actionlake.com/connectors/prefect-cloud)
- [n8n 6](https://actionlake.com/connectors/n8n)
- [Airbyte 5](https://actionlake.com/connectors/airbyte)

Joins with, on shared entities

- [Kubernetes 2](https://actionlake.com/connectors/kubernetes)
- [Google Vertex AI 1](https://actionlake.com/connectors/google-vertex-ai)
- [Veeam Backup & Replication 1](https://actionlake.com/connectors/veeam-backup-and-replication)
- [Veeam Backup for Microsoft 365 1](https://actionlake.com/connectors/veeam-backup-for-microsoft-365)
- [Northflank 1](https://actionlake.com/connectors/northflank)
- [Laravel Forge 1](https://actionlake.com/connectors/laravel-forge)

Browse

- [All Data & integration connectors](https://actionlake.com/connectors/category/data-and-integration)
- [All connectors](https://actionlake.com/connectors)
- [How actionlake compares](https://actionlake.com/compare)

actionlake is independent. It is not made or endorsed by Apache Airflow; the name is the vendor's own. Counts are from the Apache Airflow service file, version 1.0.0.

## Give your agent Apache Airflow today.

[Connect Apache Airflow free](https://actionlake.com/console?start=sandbox) [See pricing](https://actionlake.com/pricing)

Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.

---

Source: https://actionlake.com/connectors/apache-airflow
More: https://actionlake.com/llms.txt
