Database · Beta
Sequin Stream
API integration
Ship Database features without building the integration. Full Sequin Stream API access via Proxy and 20+ MCP-ready tools for AI agents — extend models and mappings to fit your product.
Built for specific customer use cases. Issues are resolved quickly.
Talk to usUse Cases
Why integrate with Sequin Stream
Common scenarios for SaaS companies building Sequin Stream integrations for their customers.
Offer Bring-Your-Own-Database sync to customers
Let your users connect their own Postgres database so your SaaS can ingest their operational data in real time, without asking them to build or maintain CDC pipelines on their end.
Power real-time search and index synchronization
Search and discovery platforms can keep customer-managed indexes perfectly in sync with the source-of-truth Postgres tables by consuming inserts, updates, and deletes as they happen.
Capture audit trails for compliance products
Security, governance, and SOC2 audit tools can subscribe to changes on sensitive tables in customer databases and stream immutable change events into their own ledger.
Replace brittle client-side tracking in CDPs
Customer Data Platforms and marketing automation tools can ingest user, order, and event data directly from the customer's database rather than depending on unreliable JavaScript or webhook glue code.
Stream OLTP data into analytics warehouses
Embedded analytics and reverse-ETL products can move customer transactional data into their pipeline with sub-second latency, eliminating batch ETL lag for their end users.
What You Can Build
Ship these features with Truto + Sequin Stream
Concrete product features your team can ship faster by leveraging Truto’s Sequin Stream integration instead of building from scratch.
One-click Postgres source onboarding
Programmatically register a customer's Postgres database, validate credentials with a connection test, and configure replication slots before any data flows.
Automated backfill-to-live cutover
Trigger a historical backfill on selected tables when a customer first connects, then seamlessly continue ingesting live WAL changes without manual orchestration.
Managed webhook destinations per tenant
Create and manage dedicated HTTP endpoints for each customer so change events land on isolated ingest URLs you control.
Long-polling consumer workers with exactly-once processing
Build worker pools that pull batches of changes, process them in your pipeline, and ack or nack messages to guarantee no events are lost or double-processed.
Tenant-aware sink routing and load shedding
Provision per-table sink consumers with configurable batch sizes and load shedding policies so a noisy customer database can't overwhelm your ingestion API.
Self-serve sync controls in your dashboard
Expose UI for customers to start, pause, or delete backfills on specific tables, giving them visibility and control over what gets synced into your product.
SuperAI
Sequin Stream AI agent tools
Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.
create_a_sequin_stream_backfill
Create a new backfill for a Sequin sink, starting it in the active state. Returns: id, state, sink_consumer, rows_initial_count, rows_processed_count, rows_ingested_count, inserted_at, updated_at, canceled_at, completed_at, table, sort_column. Required: sink_id_or_name. Specify table when the sink is configured to stream all tables in a schema.
delete_a_sequin_stream_backfill_by_id
Delete a Sequin backfill by id. Returns: id, deleted. Required: sink_id_or_name, id.
get_single_sequin_stream_backfill_by_id
Get details of a specific Sequin backfill by id. Returns: id, state, sink_consumer, rows_ingested_count, rows_processed_count, rows_initial_count, inserted_at, updated_at, canceled_at, completed_at, table, sort_column. Required: sink_id_or_name, id.
list_all_sequin_stream_backfills
List all backfills for a Sequin sink. Returns: id, state, sink_consumer, rows_ingested_count, rows_processed_count, rows_initial_count, inserted_at, updated_at, canceled_at, completed_at, table, sort_column. Required: sink_id_or_name.
update_a_sequin_stream_backfill_by_id
Update the state of a Sequin backfill, for example to cancel an active backfill. Returns: id, state, sink_consumer, rows_ingested_count, rows_processed_count, rows_initial_count, inserted_at, updated_at, canceled_at, completed_at, table, sort_column. Required: sink_id_or_name, id.
create_a_sequin_stream_http_endpoint
Create a new HTTP endpoint in Sequin (regular HTTP, webhook.site, or local type). Returns: id, name, url, headers, encrypted_headers (response fields vary by endpoint type). Required: name.
delete_a_sequin_stream_http_endpoint_by_id
Delete an HTTP endpoint in Sequin by id. Returns: id, deleted.
get_single_sequin_stream_http_endpoint_by_id
Get details for a specific HTTP endpoint in Sequin by id. Returns: id, name, url, headers, encrypted_headers (fields vary by endpoint type: regular, webhook.site, or local).
list_all_sequin_stream_http_endpoints
List all HTTP endpoints in Sequin. Returns: id, name, url, headers, encrypted_headers per endpoint (fields vary by type: regular, webhook.site, or local).
update_a_sequin_stream_http_endpoint_by_id
Update an existing HTTP endpoint in Sequin by id. Returns: id, name, url, headers, encrypted_headers (fields vary by endpoint type: regular, webhook.site, or local).
create_a_sequin_stream_postgres_database
Create a Sequin Postgres database connection with a replication slot. Returns: id, name, hostname, port, database, ssl, ipv6, use_local_tunnel, replication_slots. Required: name, replication_slots (exactly one slot). Supply either url or individual connection params (hostname, database, username, password).
delete_a_sequin_stream_postgres_database_by_id
Delete a Sequin Postgres database connection and its associated replication slot by id. Returns: success, id. Required: id. Fails with a validation error if the database has associated sink consumers or WAL pipelines.
get_single_sequin_stream_postgres_database_by_id
Get a single Sequin Postgres database connection by id. Returns: id, name, hostname, port, database, username, ssl, ipv6, use_local_tunnel, pool_size, queue_interval, queue_target, replication_slots. Required: id.
list_all_sequin_stream_postgres_databases
List all Sequin Postgres database connections in your account. Returns: id, name, hostname, port, database, username, ssl, ipv6, use_local_tunnel, pool_size, queue_interval, queue_target, replication_slots.
update_a_sequin_stream_postgres_database_by_id
Update an existing Sequin Postgres database connection by id. Returns: id, name, hostname, port, database, ssl, ipv6, use_local_tunnel, replication_slots. Required: id. When updating replication_slots, supply exactly one slot object including its id.
create_a_sequin_stream_sink_consumer
Create a new sink consumer in Sequin. Returns: id, name, status, database, source, destination, actions, batch_size, load_shedding_policy, health, and more. Required: name, database, destination.
delete_a_sequin_stream_sink_consumer_by_id
Delete a Sequin sink consumer by id. Returns an empty 204 response on success.
get_single_sequin_stream_sink_consumer_by_id
Get a single Sequin sink consumer by id. Returns: id, name, status, database, source, destination, actions, batch_size, load_shedding_policy, message_grouping, health, and more.
list_all_sequin_stream_sink_consumers
List all Sequin sink consumers. Returns per record: id, name, status, database, source, destination, actions, batch_size, load_shedding_policy, and health.
update_a_sequin_stream_sink_consumer_by_id
Update an existing Sequin sink consumer by id. Returns: id, name, status, database, source, destination, actions, batch_size, load_shedding_policy, message_grouping, health, and more.
update_a_sequin_stream_http_pull_consumer_by_id
Acknowledge messages in a Sequin http_pull_consumer, marking them as processed and removing them from the stream. Returns: success. Required: ack_ids.
list_all_sequin_stream_http_pull_consumers
Receive next messages from a Sequin http_pull_consumer stream. Returns: ack_id, record, action, changes, and metadata per message. Use batch_size to request multiple messages at once and wait_for to enable long polling.
create_a_sequin_stream_postgres_database_table_refresh
Trigger a table refresh for a Sequin PostgreSQL database, causing Sequin to re-sync its internal list of available tables from the upstream database. Returns an empty 204 response on success. Required: database_id_or_name.
create_a_sequin_stream_postgres_database_connection_test
Test the connection for an existing Sequin Postgres database, verifying network reachability, authentication, connect permissions, and replication slot validity. Returns an empty 204 response on success. Required: database_id_or_name.
list_all_sequin_stream_http_pull_consumer_messages
Receive pending messages from a Sequin HTTP pull consumer. Returns messages including ack_id and data (the record payload with metadata). Required: consumer_id_or_name.
create_a_sequin_stream_http_pull_consumer_ack
Acknowledge one or more messages for a Sequin HTTP pull consumer, marking them as successfully processed and removing them from redelivery. Required: consumer_id_or_name, ack_ids. Returns an empty 204 response on success.
create_a_sequin_stream_http_pull_consumer_nack
Negatively acknowledge (nack) messages for a Sequin HTTP pull consumer, signaling that they should be requeued for redelivery. Returns an empty 204 response on success. Required: consumer_id_or_name.
Why Truto
Why use Truto’s MCP server for Sequin Stream
Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 500+ 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
Go live with Sequin Stream in under an hour. No boilerplate, no maintenance burden.
Link your customer’s Sequin Stream account
Use Truto’s frontend SDK to connect your customer’s Sequin Stream 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 Sequin Stream
Truto’s Proxy API is a 1-to-1 mapping of the Sequin Stream API. You call us, we call Sequin Stream, and pass the response back in the same cycle.
Unified response format
Every response follows a single format across all integrations. We translate Sequin Stream’s pagination into unified cursor-based pagination. Data is always in the result attribute.
FAQs
Common questions about Sequin Stream on Truto
Authentication, rate limits, data freshness, and everything else you need to know before you integrate.
How does authentication work for Sequin Stream through Truto?
Truto handles credential storage and request signing on behalf of your end users, so your application doesn't manage Sequin API tokens directly. End users connect their Sequin account once and Truto brokers all subsequent API calls.
Can we both push (webhook) and pull (long-poll) change events?
Yes. You can create sink consumers that push changes to HTTP endpoints, or use HTTP pull consumers to fetch batches of messages on your own schedule and acknowledge them with ack or nack.
How are historical records handled when a customer first connects?
Use the backfill endpoints to seed historical rows from selected tables. Sequin automatically transitions from backfill to live WAL streaming without gaps or duplicate processing.
What delivery guarantees does Sequin Stream provide?
Sequin guarantees strict in-order, exactly-once processing through its ack/nack model. Messages that aren't acknowledged are redelivered, and ack'd messages are not sent again.
Can we validate a customer's database credentials before going live?
Yes. The Postgres database connection test endpoint lets you verify host, credentials, and replication slot configuration before activating any sinks or consumers.
How do we prevent a customer's traffic spike from overwhelming our ingestion API?
Sink consumers expose batch size and load shedding policy configuration, letting you tune throughput per tenant and shed load gracefully under heavy write volume.
Sequin Stream
Get Sequin Stream integrated into your app
Our team understands what it takes to make a Sequin Stream integration successful. A short, crisp 30 minute call with folks who understand the problem.