Apache Airflow · Arazzo Workflow

Apache Airflow Onboard a DAG

Version 1.0.0

Orient on an unfamiliar DAG by reading its metadata, schedule details, task graph, source code, and recent run history.

1 workflow 2 source APIs 1 provider
View Spec View on GitHub ApacheDAGData PipelineETLOpen-SourceOrchestrationPythonSchedulingWorkflowsArazzoWorkflows

Provider

apache-airflow

Workflows

onboard-dag
Assemble a complete read-only briefing on a single DAG.
Reads the DAG record, its extended details, its task list, its Python source, and its recent runs, returning everything an integrator needs before depending on the pipeline.
5 steps inputs: dagId, runLimit outputs: dagId, isPaused, recentRuns, scheduleInterval, source, tasks, timetableDescription
1
readDag
Read the DAG record for its owners, tags, paused state, and the file_token that authorizes fetching its source in a later step.
2
readDagDetails
Read the extended DAG details for the timetable description, concurrency limits, catchup posture, start date, and default arguments — the fields that explain how the DAG actually behaves.
3
listTasks
List the DAG's tasks to see the graph: each task id, its operator class, its downstream ids, its pool, and its retry posture.
4
readDagSource
Fetch the DAG's Python source using the file_token from the DAG record. The token is a signed reference to the file path rather than the path itself, which is why the source cannot be requested by filename.
5
readRecentRuns
Pull the most recent DAG runs, newest first, so the caller can judge whether this pipeline has been finishing cleanly before depending on it.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Apache Airflow Onboard a DAG
  summary: Orient on an unfamiliar DAG by reading its metadata, schedule details, task graph, source code, and recent run history.
  description: >-
    Before triggering someone else's pipeline you need to know what it does, when
    it runs, what it touches, and whether it has been healthy. This read-only
    workflow assembles that briefing in five calls: find the DAG, read its details
    for the schedule and timetable description, list its tasks to see the graph
    and each operator, fetch the source file using the file_token the DAG record
    hands out, and pull the recent run history to judge reliability. Nothing is
    written. Every step spells out its request inline so the flow can be read and
    executed without opening the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: dagApi
  url: ../openapi/apache-airflow-dag-api-openapi.yml
  type: openapi
- name: dagrunApi
  url: ../openapi/apache-airflow-dagrun-api-openapi.yml
  type: openapi
workflows:
- workflowId: onboard-dag
  summary: Assemble a complete read-only briefing on a single DAG.
  description: >-
    Reads the DAG record, its extended details, its task list, its Python source,
    and its recent runs, returning everything an integrator needs before depending
    on the pipeline.
  inputs:
    type: object
    required:
    - dagId
    properties:
      dagId:
        type: string
        description: The DAG identifier to profile.
      runLimit:
        type: integer
        description: >-
          How many recent DAG runs to pull for the reliability check. Defaults to
          25 when omitted.
  steps:
  - stepId: readDag
    description: >-
      Read the DAG record for its owners, tags, paused state, and the file_token
      that authorizes fetching its source in a later step.
    operationId: get_dag
    parameters:
    - name: dag_id
      in: path
      value: $inputs.dagId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      dagId: $response.body#/dag_id
      description: $response.body#/description
      isPaused: $response.body#/is_paused
      isActive: $response.body#/is_active
      hasImportErrors: $response.body#/has_import_errors
      owners: $response.body#/owners
      tags: $response.body#/tags
      fileToken: $response.body#/file_token
      fileloc: $response.body#/fileloc
      scheduleInterval: $response.body#/schedule_interval
      nextDagrun: $response.body#/next_dagrun
  - stepId: readDagDetails
    description: >-
      Read the extended DAG details for the timetable description, concurrency
      limits, catchup posture, start date, and default arguments — the fields that
      explain how the DAG actually behaves.
    operationId: get_dag_details
    parameters:
    - name: dag_id
      in: path
      value: $inputs.dagId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      timetableDescription: $response.body#/timetable_description
      maxActiveRuns: $response.body#/max_active_runs
      maxActiveTasks: $response.body#/max_active_tasks
      startDate: $response.body#/start_date
      catchup: $response.body#/catchup
      defaultView: $response.body#/default_view
  - stepId: listTasks
    description: >-
      List the DAG's tasks to see the graph: each task id, its operator class, its
      downstream ids, its pool, and its retry posture.
    operationId: get_tasks
    parameters:
    - name: dag_id
      in: path
      value: $inputs.dagId
    - name: order_by
      in: query
      value: task_id
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      tasks: $response.body#/tasks
      firstTaskId: $response.body#/tasks/0/task_id
  - stepId: readDagSource
    description: >-
      Fetch the DAG's Python source using the file_token from the DAG record. The
      token is a signed reference to the file path rather than the path itself,
      which is why the source cannot be requested by filename.
    operationId: get_dag_source
    parameters:
    - name: file_token
      in: path
      value: $steps.readDag.outputs.fileToken
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      content: $response.body#/content
  - stepId: readRecentRuns
    description: >-
      Pull the most recent DAG runs, newest first, so the caller can judge whether
      this pipeline has been finishing cleanly before depending on it.
    operationId: get_dag_runs
    parameters:
    - name: dag_id
      in: path
      value: $inputs.dagId
    - name: limit
      in: query
      value: $inputs.runLimit
    - name: order_by
      in: query
      value: -execution_date
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      dagRuns: $response.body#/dag_runs
      totalEntries: $response.body#/total_entries
  outputs:
    dagId: $steps.readDag.outputs.dagId
    isPaused: $steps.readDag.outputs.isPaused
    scheduleInterval: $steps.readDag.outputs.scheduleInterval
    timetableDescription: $steps.readDagDetails.outputs.timetableDescription
    tasks: $steps.listTasks.outputs.tasks
    source: $steps.readDagSource.outputs.content
    recentRuns: $steps.readRecentRuns.outputs.dagRuns

Work with this as data

Every workflow here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This workflow
curl "https://apis.io/api/v1/arazzo/apache-airflow-onboard-dag-workflow"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.