> ## Documentation Index
> Fetch the complete documentation index at: https://oxy.tech/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Airway

> Oxygen's ELT engine, which extracts data from external systems and loads it into your warehouse

**Airway** is Oxygen's ELT engine. It extracts data from the systems a business
already runs, such as point-of-sale platforms, accounting tools, databases, and
public datasets, and loads it into the warehouse, usually
[Airhouse](/docs/guide/build/data-infrastructure/airhouse). Every pipeline comes
down to three things:

* A **pipeline file** in the workspace that declares what to extract, from
  where, and where to load it.
* A **run**, which extracts only what changed and loads it into the warehouse.
* A **cursor**, saved per workspace, which records how far the last run got.

<Frame caption="Every run picks up from a saved cursor, so a pipeline only moves new data and a failed run can be retried safely.">
  <img src="https://mintcdn.com/oxy-internal/gk3zZg6Wuzn1v3tS/guide/images/airway-figure-1.svg?fit=max&auto=format&n=gk3zZg6Wuzn1v3tS&q=85&s=7f2acfbc9e4a3af4bdcb6fe4b115a9a2" alt="Airway architecture. Your systems, such as point-of-sale, accounting, databases, files, and public data, connect to a pipeline declared in an .airway.yml file in your workspace, with secrets referenced by name and runs triggered by Run now, a schedule, or an automation. A run is queued one at a time per pipeline, extracts only what changed since the cursor, and loads into the destination, adding new tables and columns but never dropping them. The load commits into Airhouse, the usual choice, with credentials minted for each run, or into Postgres. A highlighted cursor, saved per workspace, advances after each load, and the next run or a retry resumes from it." width="1560" height="720" data-path="guide/images/airway-figure-1.svg" />
</Frame>

## Why it matters

* **Incremental and retry-safe.** Runs move only new data, and because the
  cursor advances only after a load commits, a failed run can be retried
  without gaps or a full re-pull.
* **One run at a time.** Each pipeline has a single active run per workspace,
  so loads never race each other.
* **Secrets stay out of code.** Pipelines reference credentials by name, and
  loads into Airhouse use credentials minted for each run.
* **Part of the workflow.** Pipelines run on demand, on a schedule, or as a
  step in an [automation](/docs/guide/build/automations/task-types#type-airway), so
  the steps that follow always read fully loaded tables.

## Where it fits

Airway connects to point-of-sale, commerce, accounting, ERP, databases,
spreadsheets, and public data out of the box, and to almost any other system
through a general-purpose REST connector. It loads into Airhouse or Postgres,
where [Airform](/docs/guide/build/data-infrastructure/airform) and the
[semantic model](/docs/guide/build/semantic-model/simple-model) take over.

<CardGroup cols={2}>
  <Card title="Pipeline reference" icon="file-code" href="/docs/guide/build/data-infrastructure/airway/pipelines">
    Pipeline files, supported sources, credentials, and how runs work
  </Card>

  <Card title="Airhouse" icon="warehouse" href="/docs/guide/build/data-infrastructure/airhouse">
    Where most pipelines land their data
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.