Source Templates
A source template controls which connectors appear in the Embedded widget and how their config screens look. When a customer opens the widget, only the sources backed by a template are selectable—so you can pre-set sensible defaults or restrict advanced settings.
The Airbyte platform comes with ready-to-use templates. You can also create templates specific to your organization if you need access to more integrations or if you want different default values.
Creating source templates
Here is an example request to create a new template using only default values:
curl https://api.airbyte.ai/api/v1/integrations/templates/sources \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
--data-raw '{
"organization_id": "7c60d51f-b44e-4682-87d6-449835ea4de6",
"actor_definition_id": "45b7d7e6-d7d5-4f31-8c1a-9fd96ce6ee35",
"partial_default_config": {}
}'
You can find the actor definition ID from the Connector Registry.
The partial_default_config
is a JSON object representing keys from the connector spec for which you want to set default values so your users don't need to set them up themselves.
Optional: add tags during creation
You can also add tags to organize and filter templates:
curl https://api.airbyte.ai/api/v1/integrations/templates/sources \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
--data-raw '{
"organization_id": "7c60d51f-b44e-4682-87d6-449835ea4de6",
"actor_definition_id": "45b7d7e6-d7d5-4f31-8c1a-9fd96ce6ee35",
"partial_default_config": {},
"tags": ["crm", "pro-tier"]
}'
See Template Tags for more information on organizing templates with tags.
Updating source templates
You can update an existing source template using the PATCH endpoint:
curl -X PATCH https://api.airbyte.ai/api/v1/integrations/templates/sources/{id} \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
--data-raw '{
"partial_default_config": {
"api_key": "new_default_value"
}
}'
When a source template is updated, all existing sources created from it will also be updated.
Listing templates
The List Source Templates endpoint lists both the templates you created, as well as standard templates that are available to everyone using the platform.
Filter by tags
You can filter source templates by tags:
curl 'https://api.airbyte.ai/api/v1/integrations/templates/sources?tags=crm&tags=sales&tags_mode=any' \
-H 'Authorization: Bearer <token>'
Tag Selection Modes:
any
- Template must have at least one of the specified tagsall
- Template must have all of the specified tags
Deleting templates
You can delete source templates by submitting a DELETE request to the API:
curl -X DELETE 'https://api.airbyte.ai/api/v1/integrations/templates/sources/{id}' \
-H 'Authorization: Bearer <token>'
Sources created from a deleted source template will stop showing up in the widget.
Managing template tags
Add tag to source template
curl -X POST https://api.airbyte.ai/api/v1/integrations/templates/sources/{id}/tags \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"tag": "pro-tier"
}'
Remove tag from source template
curl -X DELETE https://api.airbyte.ai/api/v1/integrations/templates/sources/{id}/tags/{tag_name} \
-H 'Authorization: Bearer <token>'
For complete tag management documentation, see Template Tags.
Advanced: stream management
After creating a source from a template, you can manage individual streams (tables/collections) within that source.
Discover source catalog
Discover all available streams for a source:
curl https://api.airbyte.ai/api/v1/integrations/sources/{id}/discover \
-H 'Authorization: Bearer <token>'
This returns the complete catalog of streams available from the source connector.
Query catalog with jmespath
For advanced filtering of the catalog, you can use JMESPath queries:
curl -X POST https://api.airbyte.ai/api/v1/integrations/sources/{id}/catalog/query \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"jmes_query": "streams[?name==`users`]"
}'
JMESPath allows you to filter and transform the catalog before processing. See JMESPath specification for query syntax.
Add stream to source
Add a specific stream to an existing source:
curl -X POST https://api.airbyte.ai/api/v1/integrations/sources/{id}/streams \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"stream_name": "users",
"sync_mode": "full_refresh"
}'
Update stream configuration
Update stream settings using JSON Patch (RFC 6902):
curl -X PATCH https://api.airbyte.ai/api/v1/integrations/sources/{id}/streams/{stream_name} \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '[
{
"op": "replace",
"path": "/sync_mode",
"value": "incremental"
}
]'
The request body is a JSON Patch array following RFC 6902.
Remove stream from source
curl -X DELETE https://api.airbyte.ai/api/v1/integrations/sources/{id}/streams/{stream_name} \
-H 'Authorization: Bearer <token>'
Advanced: source definition catalogs
For advanced use cases, you can define custom catalogs at the source definition level. This allows you to pre-configure catalogs that apply to all sources of a given type.
Create definition-level catalog
curl -X POST https://api.airbyte.ai/api/v1/integrations/definitions/sources/{source_definition_id}/catalog \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"catalog": {
"streams": [...]
}
}'
Get definition-level catalog
curl https://api.airbyte.ai/api/v1/integrations/definitions/sources/{source_definition_id}/catalog \
-H 'Authorization: Bearer <token>'
Delete definition-level catalog
curl -X DELETE https://api.airbyte.ai/api/v1/integrations/definitions/sources/{source_definition_id}/catalog \
-H 'Authorization: Bearer <token>'
Manage streams in definition catalog
Add stream to definition:
curl -X POST https://api.airbyte.ai/api/v1/integrations/definitions/sources/{source_definition_id}/streams \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"stream_name": "default_table",
"sync_mode": "full_refresh"
}'
Update stream in definition:
curl -X PATCH https://api.airbyte.ai/api/v1/integrations/definitions/sources/{source_definition_id}/streams/{stream_name} \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '[
{
"op": "replace",
"path": "/sync_mode",
"value": "incremental"
}
]'
Delete stream from definition:
curl -X DELETE https://api.airbyte.ai/api/v1/integrations/definitions/sources/{source_definition_id}/streams/{stream_name} \
-H 'Authorization: Bearer <token>'
Use cases for definition-level catalogs
- Standardized configurations: Apply the same catalog to all sources of a given type
- Compliance requirements: Enforce specific stream selections for regulatory compliance
- Performance optimization: Pre-configure optimal stream settings across your organization
- Onboarding simplification: New sources automatically inherit sensible defaults
Related documentation
- Template Tags - Organize and filter templates with tags
- Configuring Sources - Create sources from templates
- Connection Templates - Configure sync behavior
- Authentication - Generate tokens for API access