iPaaS
Airbyte
API integration
Ship iPaaS features without building the integration. Full Airbyte API access via Proxy and 60+ MCP-ready tools for AI agents — extend models and mappings to fit your product.
Talk to usUse Cases
Why integrate with Airbyte
Common scenarios for SaaS companies building Airbyte integrations for their customers.
Embed a 700+ connector catalog overnight
Offer your customers an instant integration marketplace spanning databases, SaaS tools, and niche long-tail connectors without building each one yourself. Truto handles the Airbyte API plumbing so your team ships integrations in days, not quarters.
Power AI copilots with customer context
Let your end users connect sources like Confluence, Jira, Notion, or Google Drive, then pipe the data through Airbyte into your vector database for RAG. Your AI product gets fresh, permissioned context without you managing extraction pipelines.
Launch a multi-tenant data ingestion layer
Provision isolated Airbyte workspaces per customer so each tenant's sources, destinations, and OAuth credentials remain cleanly separated. Ideal for RevOps, MarTech, and analytics SaaS consolidating customer data into their own warehouse.
Offer white-labeled OAuth to your users
Inject your own OAuth client IDs and secrets into Airbyte workspaces so end users see your brand on the consent screen, not Airbyte's. Delivers a native integration experience inside your product.
Trigger on-demand syncs from your UI
Let users hit a 'Refresh Data' button in your product and fire an Airbyte job immediately instead of waiting for the next scheduled run. Keeps dashboards and workflows accurate without exposing cron internals.
What You Can Build
Ship these features with Truto + Airbyte
Concrete product features your team can ship faster by leveraging Truto’s Airbyte integration instead of building from scratch.
Per-tenant workspace provisioning
Automatically create a dedicated Airbyte workspace for every new customer signup so sources, destinations, and credentials are fully isolated.
In-app source connection flow
Trigger OAuth for any supported source directly from your UI and persist the resulting Airbyte source against the correct tenant workspace.
On-demand sync button
Fire a sync job the moment a user clicks refresh and surface progress by polling the job endpoint for status and row counts.
Connection health dashboard
Show real-time sync status, last run time, and error logs inside your own app by reading from the Airbyte jobs and connections endpoints.
Custom connector deployment
Ship niche connectors built with the Airbyte Connector Builder into customer workspaces programmatically using the declarative source definitions endpoint.
White-labeled OAuth credentials manager
Let customers (or your platform) inject custom OAuth client IDs and secrets at the workspace or organization level so the consent screen carries your brand.
SuperAI
Airbyte AI agent tools
Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.
list_all_airbyte_applications
List all Airbyte applications you have permission to view. Returns: id, name, clientId, clientSecret, createdAt.
create_a_airbyte_application
Create a new Airbyte application. Returns: id, name, clientId, clientSecret, createdAt. Required: name.
get_single_airbyte_application_by_id
Get a single Airbyte application by id. Returns: id, name, clientId, clientSecret, createdAt. Required: id.
delete_a_airbyte_application_by_id
Delete an Airbyte application by id. Returns the deleted application: id, name, clientId, clientSecret, createdAt. Required: id.
create_a_airbyte_applications_token
Create an Airbyte access token by exchanging client credentials via the client-credentials grant. Returns: access_token, token_type, expires_in. Required: client_id, client_secret.
list_all_airbyte_sources
List Airbyte sources, optionally filtered by workspace. Returns: sourceId, name, sourceType, workspaceId, configuration.
create_a_airbyte_source
Create an Airbyte source with a name, workspace, and connector-specific configuration blob. Returns: sourceId, name, sourceType, workspaceId, configuration. Required: name, workspaceId, configuration.
get_single_airbyte_source_by_id
Get a single Airbyte source by id. Returns: sourceId, name, sourceType, workspaceId, configuration. Required: id.
delete_a_airbyte_source_by_id
Delete an Airbyte source by id. Returns an empty 204 response on success. Required: id.
update_a_airbyte_source_by_id
Update an Airbyte source by id with a partial update (only specified properties are modified; use PUT to remove properties). Returns SourceResponse fields including sourceId, name, sourceType, and workspaceId. Required: id.
airbyte_sources_partial_update
Partially update a Source in Airbyte: only the properties you send are modified (use the replace endpoint to remove properties). Returns: sourceId, name, sourceType, workspaceId. Required: source_id.
create_a_airbyte_sources_initiate_o_auth
Initiate OAuth for an Airbyte source. Returns the fully formed URL for authenticating the user against the source's identity provider; after authentication, your redirectUrl receives a secret ID that can create a source with credentials. Required: redirectUrl, workspaceId, sourceType.
list_all_airbyte_destinations
List Airbyte destinations across the allowed workspaces. Returns: destinationId, name, destinationType, workspaceId, configuration.
create_a_airbyte_destination
Create an Airbyte destination with a name, workspace, and its connector configuration. Returns: destinationId, name, destinationType, workspaceId, configuration. Requires name, workspaceId, and configuration. Required: name, workspaceId, configuration.
get_single_airbyte_destination_by_id
Get details of a single Airbyte destination by id. Returns: destinationId, name, destinationType, workspaceId, configuration. Required: id.
delete_a_airbyte_destination_by_id
Delete an Airbyte destination by id. Returns an empty 204 response on success. Required: id.
update_a_airbyte_destination_by_id
Update a destination in Airbyte by id, fully overwriting all property fields. Returns: destinationId, name, sourceType, workspaceId, configuration. Required: id, name, configuration. Pass '**********' as a secret value to carry the existing secret forward unchanged.
airbyte_destinations_partial_update
Partially update an Airbyte destination by id — only the fields you send in name and/or configuration are modified. Returns: destinationId, name, sourceType, workspaceId, configuration. Required: destination_id.
list_all_airbyte_connections
List Airbyte connections across workspaces. Returns: connectionId, name, sourceId, destinationId, workspaceId, status, schedule, dataResidency, nonBreakingSchemaUpdatesBehavior, namespaceDefinition, namespaceFormat, prefix, configurations, createdAt.
create_a_airbyte_connection
Create an Airbyte connection between a source and a destination. Returns: connectionId, name, sourceId, destinationId, workspaceId, status, schedule, dataResidency, nonBreakingSchemaUpdatesBehavior, namespaceDefinition, namespaceFormat, prefix, configurations, createdAt. Required: sourceId, destinationId.
get_single_airbyte_connection_by_id
Get details of a single Airbyte connection by id. Returns: connectionId, name, sourceId, destinationId, workspaceId, status, schedule, dataResidency, nonBreakingSchemaUpdatesBehavior, namespaceDefinition, namespaceFormat, prefix, configurations, createdAt. Required: id.
update_a_airbyte_connection_by_id
Update an Airbyte connection's details by id. Returns: connectionId, name, sourceId, destinationId, workspaceId, status, schedule, dataResidency, nonBreakingSchemaUpdatesBehavior, namespaceDefinition, namespaceFormat, prefix, configurations, createdAt. Required: id.
delete_a_airbyte_connection_by_id
Delete an Airbyte connection by id (connection UUID). Returns an empty 204 response on success. Required: id.
list_all_airbyte_tags
List all Airbyte tags. Returns: tagId, name, color, workspaceId.
create_a_airbyte_tag
Create a new tag in Airbyte. Returns the created tag including tagId, name, color, and workspaceId. Requires name, color, and workspaceId. Required: name, color, workspaceId.
get_single_airbyte_tag_by_id
Get a single Airbyte tag by id. Returns: tagId, name, color, workspaceId. Required: id.
update_a_airbyte_tag_by_id
Update an Airbyte tag by id. Returns the updated tag including tagId, name, color, and workspaceId. Requires id, name, and color. Required: id, name, color.
delete_a_airbyte_tag_by_id
Delete a tag in Airbyte by id. Returns an empty 204 response on success. Required: id.
list_all_airbyte_streams
Get the available stream properties for a source/destination pair in Airbyte. Returns stream records with id and source-catalog-specific attributes. Required: sourceId.
list_all_airbyte_workspaces
List Airbyte workspaces. Returns: workspaceId, name, dataResidency, notifications. Max 100 per page.
create_a_airbyte_workspace
Create a new Airbyte workspace. Returns: workspaceId, name, dataResidency, notifications. Required: name.
get_single_airbyte_workspace_by_id
Get the details of an Airbyte workspace by id. Returns: workspaceId, name, dataResidency, notifications. Required: id.
update_a_airbyte_workspace_by_id
Update an Airbyte workspace's name or notification settings by id. Returns: workspaceId, name, dataResidency, notifications. Required: id.
delete_a_airbyte_workspace_by_id
Delete an Airbyte workspace by id. Returns an empty 204 response on success. Required: id.
airbyte_workspace_oauth_credentials_bulk_update
Create or update a set of OAuth override credentials for a workspace and source type in Airbyte, replacing the Airbyte-provided OAuth credentials used for source/destination OAuth. Returns 200 with no response body on success. Required: workspace_id, actorType, name, configuration.
get_single_airbyte_permission_by_id
Get a permission in Airbyte by id. Returns: permissionId, permissionType, userId, workspaceId, organizationId. Required: id.
update_a_airbyte_permission_by_id
Update a permission in Airbyte by id. Returns: permissionId, permissionType, userId, workspaceId, organizationId. Required: id, permissionType.
delete_a_airbyte_permission_by_id
Delete a permission in Airbyte by id. Returns an empty 204 response on success. Required: id.
list_all_airbyte_permissions
List permissions in Airbyte, filterable by user or organization. Returns: permissionId, permissionType, userId, scopeId, scope.
create_a_airbyte_permission
Create a permission in Airbyte. Returns: permissionId, permissionType, userId, workspaceId, organizationId. Required: permissionType, userId.
list_all_airbyte_users
List all users within an Airbyte organization, with optional filtering by user ids or emails. Returns: name, id, email. Required: organizationId.
list_all_airbyte_organizations
List all organizations for a user in Airbyte. Returns: organizationId, organizationName, email.
airbyte_organization_oauth_credentials_bulk_update
Create or update Airbyte OAuth credentials for an organization and source type, overriding the Airbyte-provided OAuth credentials. Returns a 200 confirmation with no response body. Required: organization_id, actorType, name, configuration.
list_all_airbyte_healths
Check the health of the Airbyte API to confirm it is reachable. Returns an empty 200 response on success; a 404 response indicates the service was not found. Takes no parameters.
list_all_airbyte_definitions_sources
List source definitions in an Airbyte workspace. Returns: id, name, dockerRepository, dockerImageTag, documentationUrl. Required: workspace_id.
create_a_airbyte_definitions_source
Create a source definition in an Airbyte workspace. Returns: id, name, dockerRepository, dockerImageTag, documentationUrl. Required: workspace_id, name, dockerRepository, and dockerImageTag.
get_single_airbyte_definitions_source_by_id
Get source definition details by id in an Airbyte workspace. Returns: id, name, dockerRepository, dockerImageTag, documentationUrl. Required: workspace_id and id.
update_a_airbyte_definitions_source_by_id
Update source definition details in an Airbyte workspace. Returns: id, name, dockerRepository, dockerImageTag, documentationUrl. Required: workspace_id, id, name, and dockerImageTag.
delete_a_airbyte_definitions_source_by_id
Delete a source definition by id from an Airbyte workspace. Returns the deleted definition with id, name, dockerRepository, dockerImageTag, and documentationUrl. Required: workspace_id and id.
list_all_airbyte_definitions_destinations
List Airbyte destination definitions in a workspace. Returns: id, name, dockerRepository, dockerImageTag, documentationUrl. Required: workspace_id.
create_a_airbyte_definitions_destination
Create an Airbyte destination definition in a workspace. Returns the created definition with id, name, dockerRepository, dockerImageTag, and documentationUrl. Required: workspace_id, name, dockerRepository, dockerImageTag.
get_single_airbyte_definitions_destination_by_id
Get Airbyte destination definition details by id. Returns: id, name, dockerRepository, dockerImageTag, documentationUrl. Required: id, workspace_id.
update_a_airbyte_definitions_destination_by_id
Update Airbyte destination definition details by id. Returns the updated definition with id, name, dockerRepository, dockerImageTag, and documentationUrl. Required: id, workspace_id, name, dockerImageTag.
delete_a_airbyte_definitions_destination_by_id
Delete an Airbyte destination definition by id. Returns the deleted definition with id, name, dockerRepository, dockerImageTag, and documentationUrl. Required: id, workspace_id.
list_all_airbyte_definitions_declarative_sources
List declarative source definitions in an Airbyte workspace. Returns: id, name, manifest, version. Required: workspace_id.
create_a_airbyte_definitions_declarative_source
Create a declarative source definition in an Airbyte workspace. Returns: id, name, manifest, version. Required: workspace_id, name, and manifest.
get_single_airbyte_definitions_declarative_source_by_id
Get a single declarative source definition by id in an Airbyte workspace. Returns: id, name, manifest, version. Required: workspace_id and id.
update_a_airbyte_definitions_declarative_source_by_id
Update a declarative source definition by id in an Airbyte workspace. Returns: id, name, manifest, version. Required: workspace_id, id, and manifest.
delete_a_airbyte_definitions_declarative_source_by_id
Delete a declarative source definition by id in an Airbyte workspace. Returns the deleted definition with id, name, manifest, and version. Required: workspace_id and id.
list_all_airbyte_jobs
List Airbyte jobs. Returns each job's jobId, status, jobType, startTime, and connectionId. Max 100 per page.
get_single_airbyte_job_by_id
Get an Airbyte job's status and details by id. Returns: jobId, status, jobType, startTime, connectionId, lastUpdatedAt, duration, bytesSynced, rowsSynced. Required: id.
create_a_airbyte_job
Start an Airbyte job (a sync or a reset) for a connection. Returns the new job: jobId, status, jobType, startTime, connectionId. Use the returned jobId with the get or cancel job tools. Required: connectionId, jobType.
delete_a_airbyte_job_by_id
Cancel a running Airbyte job by its jobId. Returns the job with its updated status (cancelled). Required: id (the jobId).
Why Truto
Why use Truto’s MCP server for Airbyte
Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 1000+ integrations.
Auto-generated, always up to date
Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.
Fine-grained access control
Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.
Multi-tenant by design
Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.
Works with every MCP client
Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.
Built-in auth, rate limits, and error handling
Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.
Expiring and auditable servers
Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.
How It Works
From zero to integrated
Start with Airbyte in a free sandbox, usually ready within one business day. No boilerplate, no maintenance burden.
Link your customer’s Airbyte account
Use Truto’s frontend SDK to connect your customer’s Airbyte account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.
We handle authentication
Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.
Call our API, we call Airbyte
Truto’s Proxy API is a 1-to-1 mapping of the Airbyte API. You call us, we call Airbyte, and pass the response back in the same cycle.
Unified response format
Every response follows a single format across all integrations. We translate Airbyte’s pagination into unified cursor-based pagination. Data is always in the result attribute.
FAQs
Common questions about Airbyte on Truto
Authentication, rate limits, data freshness, and everything else you need to know before you integrate.
How does Truto authenticate with Airbyte?
Truto connects to the Airbyte API using Airbyte application credentials (client ID and secret) that mint access tokens via the applications token endpoint. Truto manages token lifecycle so your backend only deals with Truto's unified auth.
Can we isolate data per end customer?
Yes. The recommended pattern is to call create_a_airbyte_workspace for each of your tenants, then scope all sources, destinations, and connections to that workspace. OAuth credentials can also be set per workspace via airbyte_workspace_oauth_credentials_bulk_update.
How do we trigger a sync programmatically instead of waiting for a schedule?
Use create_a_airbyte_job to kick off a sync for a specific connection on demand, then poll get_single_airbyte_job_by_id to surface progress, row counts, and errors inside your UI.
Can we deploy our own custom connectors?
Yes. Connectors built with the Airbyte Connector Builder can be deployed programmatically through create_a_airbyte_definitions_declarative_source, or you can register standard source and destination definitions via the definitions endpoints.
Does Airbyte support destinations beyond warehouses, like vector databases?
Yes. You can create destinations against the full Airbyte catalog, including vector stores, warehouses, lakes, and operational systems, by calling create_a_airbyte_destination with the appropriate destination definition.
How do we surface sync errors to our end users?
List jobs for a connection with list_all_airbyte_jobs and fetch details with get_single_airbyte_job_by_id. The response includes status and error information you can render natively inside your product's connection management UI.
From the Blog
Airbyte integration guides
Deep dives, architecture guides, and practical tutorials for building Airbyte integrations.
Airbyte
Get Airbyte integrated into your app
Our team understands what it takes to make a Airbyte integration successful. A short, crisp 30 minute call with folks who understand the problem.