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 or your own server dies mid-run, it resumes where it left off — no lost data, no starting the backfill over.

3
Inspect every call

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

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.