Embedded integration platform

Onboard any system with a config file, not a sprint.

Every enterprise deal stalls on one question: “can you pull data from our system?” Siphon turns each integration into a declarative spec on a durable engine, then drops a white-labeled widget in your app.

7-DAY TRIAL · NO CARD · PRICED PER CONNECTION

workorders.yaml
resources:
  - key: workorders
    fetch:
      path: /workorders/query
      pagination: { strategy: offset }
    transform: { externalId: id }
    sync: { detectDeletions: true }
compiles to a durable run
run · workorders succeeded
1,607rows synced · 2.4s
fetched1,607 rows
enriched1,607 assets
quarantined0
0
connectors in the catalog
0
categories covered
0
signed alert events
0%
runs finish — even after a crash

IMPORT ANY AIRBYTE MANIFEST IN A SINGLE COMMAND

SalesforceHubSpotStripeSnowflakeZendeskJiraShopifyPostgresGitHubGitLabSalesforceHubSpotStripeSnowflakeZendeskJiraShopifyPostgresGitHubGitLab
SlackNotionAirtableBigQueryLinearMongoDBIntercomZoomDatadogCloudflareSlackNotionAirtableBigQueryLinearMongoDBIntercomZoomDatadogCloudflare
How it works

A file in, a durable pipeline out.

1
Author a spec

Auth, pagination, enrichment, transform, and typed output — all YAML. Build it visually or draft it with AI.

2
Runs that finish

A sync never half-finishes. If a source API or the run itself fails mid-backfill, it resumes exactly where it left off — no lost data, no restarting the backfill.

3
Inspect every call

Every request, retry, and transform — retained and redacted. Answer “why is this record missing” without a terminal.

4
Land it in your warehouse

Your data lands in your warehouse. Point a sync at your own Postgres or SQL Server — Siphon runs the pipeline, never holds your records.

Reliability

Connectors break quietly. Siphon doesn’t let them.

Schema drift

Source shape, watched

Siphon fingerprints each source’s shape every run and shows the exact added / removed / retyped diff — before your data quality degrades.

+ external_ref− legacy_id~ status: int→str
Deletions

Gone at the source, gone downstream

A record that vanishes on a complete fetch is tombstoned — with a guard so a capped page never mass-deletes.

Freshness

Is it working, right now?

Healthy / degraded / failing / overdue at a glance across your fleet, with one-click backfill from any date.

Embed it

Your customer connects their own system.

Drop a connection-scoped widget into your product with a short-lived token — it can only ever see its own connection. Set your logo and accent once; your customers never see Siphon.

import { ConnectionWidget } from "@siphon/embed/react"

<ConnectionWidget
  baseUrl="https://app.yourhost.com"
  token={token}
/>
Security

Built for the security questionnaire.

Envelope encryption

Every per-connection credential is envelope-encrypted at rest; plaintext never touches config.

SSRF egress control

Outbound targets are resolved and re-validated on every redirect hop; private ranges are refused.

Credential redaction

Secrets are redacted before any request or response is persisted to the call log.

Per-tenant isolation

Org-scoped at the service layer, with row-level-security and a non-superuser runtime role.

Audit trail

Every publish, connection change, and credential rotation is logged with actor and timestamp.

Roles & workspaces

Org roles plus per-workspace grants scope who can publish and manage connections.

Pricing

Priced per connection, not per API call.

Deep enrichment shouldn’t cost more. Start on a 7-day trial.

Starter
Free
5 connections
  • ✓ 5 active connections
  • ✓ 1 workspace
  • ✓ Every connector feature
  • ✓ Community support
Start free
Growth
$99 /mo
25 connections
  • ✓ 25 active connections
  • ✓ 3 workspaces
  • ✓ Bring-your-own warehouse
  • ✓ Email support
Start free
Scale
$499 /mo
100 connections
  • ✓ 100 active connections
  • ✓ 10 workspaces
  • ✓ AI Run Doctor + Spec Assist
  • ✓ Priority support
Start free
Enterprise
Custom
Unlimited connections
  • ✓ Unlimited connections & workspaces
  • ✓ SSO + audit log
  • ✓ SLA + dedicated support
  • ✓ Custom contract
Contact sales
Good to know
How does a connector get authored?

Write a declarative spec — auth, pagination, enrich, transform, validate, output — in the visual builder, by importing an Airbyte manifest, or by drafting it with AI. Then lint it and publish.

What happens when a vendor’s API changes?

Schema-drift detection fingerprints the source shape every run and alerts you the moment a field is renamed, dropped, or retyped.

How do backfills resume?

Every run is journaled per page on the durable engine, so a crash resumes from the last committed page rather than restarting.

Where does the data land?

In your customer’s own Postgres or SQL Server warehouse (typed + deduped), or pushed to a webhook — define a destination once and reuse it.

Stop losing deals to “does it connect to X?”

Author a connector once, onboard every customer on it, and turn integration backlog into a config file.