PyAirbyte

Run Airbyte's ELT source connectors from Python code

Library
PyPI
v0.55.2
343stars
Elastic License 2.0

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum.How we score it →
87/100Excellent
Development Activity96
Maintenance100
Community64
Maturity48
Momentum40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation.How we score it →
84/100Excellent
Architecture85
Code Quality84
Innovation85
Learning Curve80

PyAirbyte brings the power of Airbyte’s connector ecosystem to Python developers. It lets you extract data from hundreds of Airbyte source connectors — SaaS APIs, databases, and files — directly from Python, then cache or load that data into DuckDB, Snowflake, BigQuery, Postgres, or pandas DataFrames without deploying the full Airbyte platform.

Designed for data engineers, analysts, and notebook users, PyAirbyte handles connector execution, incremental sync state, record processing, and caching so you can build lightweight ELT pipelines and ad-hoc data workflows entirely in code.

What You Get

  • Access to hundreds of Airbyte source connectors from a single get_source() call
  • Built-in caches backed by DuckDB, Snowflake, BigQuery, and Postgres
  • Incremental sync with automatic state tracking between runs
  • Direct conversion of synced streams into pandas DataFrames for analysis
  • A CLI and MCP integration for running connectors outside pure-Python contexts

Common Use Cases

  • Pulling data from a SaaS API into a notebook for exploratory analysis
  • Building lightweight ELT pipelines that load into DuckDB or a cloud warehouse
  • Prototyping a data integration before deploying it on the full Airbyte platform
  • Feeding third-party source data into pandas-based data science workflows

Under The Hood

Architecture — The airbyte package is organized around sources, caches, and writers. get_source() resolves a connector from the Airbyte registry (registry.py) and runs it via executors in _executors, streaming Airbyte-protocol messages through _message_iterators.py and record processors in _processors. Synced records land in a cache (caches/) — DuckDB by default — and can be read out as datasets or pandas DataFrames. Separate modules handle cloud integration, secrets, progress reporting, and an MCP server.

Tech Stack — Python built on the Airbyte CDK and airbyte-protocol models, with pydantic v2 for typing, DuckDB and SQLAlchemy engines for local caching, and first-class connectors for Snowflake, BigQuery, and Postgres. It uses orjson and pyarrow for fast record handling and cyclopts for its CLI. Dependencies are managed with uv.

Code Quality — The repository ships an extensive tests/ suite, typed code with a py.typed marker, dedicated exceptions.py error handling, and pyrefly type checking. Connectors, caches, and processors are cleanly separated, and the project maintains examples/ and docs/ directories.

API Design — The public API is intentionally small: get_source(), select_streams(), read(), and to_pandas() cover the common path, mirroring how analysts think about data movement. Rich progress output and sensible DuckDB defaults keep the getting-started boilerplate minimal.

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers

Search