Registry / serialization / airbyte-protocol-models

airbyte-protocol-models

JSON →
library0.18.0pypypi✓ verified 85d ago

Declares the Airbyte Protocol as Python models based on JSON Schema. Contains pydantic models for Airbyte messages, configured as a Python package. Latest stable version is 0.18.0 (PyPI), with 0.19.0 released on GitHub. Release cadence is irregular, roughly every 1-2 months.

pip install airbyte-protocol-models
INSTALL
IMPORT
SIG · AIRBYTE-PROTOCOL-M
A
airbyte-protocol-models
serializationpythonv0.18.0
Install
2.1s avg
Import
194ms
Disk
24MB
Pass rate
10/ 10
Env Coverage10 / 10
glibc
3.93.13
musl
3.93.13
Install & Compatibility
Where this runs
tested against v0.18.0 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
py 3.103.95 runs
installs and imports cleanly · install 0.0s · import 0.206s · 26.3MB
glibc
py 3.103.95 runs
installs and imports cleanly · install 2.1s · import 0.182s · 27MB
24MB installed
● package 24MB
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

AirbyteMessage
from airbyte_protocol.models import AirbyteMessage
from airbyte_protocol import AirbyteMessage
AirbyteMessage is in the models submodule, not top-level.
ConfiguredAirbyteCatalog
from airbyte_protocol.models import ConfiguredAirbyteCatalog
from airbyte_protocol.v0 import ConfiguredAirbyteCatalog
v0 subpackage was deprecated and removed in v0.17.0.
Type
from airbyte_protocol.models import Type
from airbyte_protocol.models.message import Type
Type is re-exported in models.

Create and serialize an Airbyte record message.

from airbyte_protocol.models import AirbyteMessage, Type, AirbyteRecordMessage # Create a record message record = AirbyteRecordMessage( stream="my_stream", data={"id": 1, "name": "example"}, emitted_at=1610000000000 ) msg = AirbyteMessage(type=Type.RECORD, record=record) print(msg.json(indent=2))
Debug
Known issues
breakingV1 models removed in v0.17.0. All protocol models are now under airbyte_protocol.models.
fix
Replace imports from airbyte_protocol.v0 or airbyte_protocol.v1 with airbyte_protocol.models.
affects: >=0.17.0
deprecatedThe 'schema' field in messages has been renamed to 'json_schema' in v0.16.0.
fix
Use 'json_schema' instead of 'schema' in message payloads.
affects: >=0.16.0
gotchaAirbyteRecordMessage.emitted_at is expected as an integer (milliseconds epoch).
fix
Always provide emitted_at as int, e.g., round(time.time() * 1000).
affects: *
Errors
Common errors & fixes
ModuleNotFoundError: No module named 'airbyte_protocol'
Package not installed or incorrect environment.
fix
Run 'pip install airbyte-protocol-models'.
ImportError: cannot import name 'AirbyteMessage' from 'airbyte_protocol'
Importing directly from top-level package instead of submodule.
fix
Use 'from airbyte_protocol.models import AirbyteMessage'.
AttributeError: module 'airbyte_protocol.models' has no attribute 'AirbyteCatalog'
AirbyteCatalog was removed in v0.17.0 models.
fix
Use ConfiguredAirbyteCatalog or check the latest model definitions.
Upgrade
Version history
0.18.0latest on PyPI · released Jun 27, 2025
Audit
Dependencies
pydanticrequiredUsed for data validation and serialization
PyYAMLoptionalYAML parsing for spec generation
Agent activity
50 hits · last 30 days
node
44
OpenAI (training)
1
Resources
airbyte-protocol-models — pip install airbyte-protocol-models · libregistry