Siphondocs

Introduction

Siphon is an embedded integration platform — a declarative connector spec, a durable engine that runs it, and an embeddable UI to onboard a data source in an afternoon.

Siphon lets a vertical B2B SaaS add customer-facing integrations without adding a connector to its codebase. You describe a source API once — as a declarative connector spec — and Siphon handles the rest: authenticating, paginating, enriching, transforming, validating, and delivering the data on a durable, observable schedule.

The connector spec is the product. Everything else — the engine, the API, the admin UI, the embeddable widget — authors, executes, or observes a spec.

What you get

  • A declarative spec. One YAML/JSON document describes auth, fetch + pagination, a dependent-call enrichment DAG, a JSONata transform, validation, and typed output columns. No per-connector code. See Connector Spec.
  • A durable engine. Each sync is a crash-resumable workflow (Restate). A run pages through the source, enriches, transforms, validates, and delivers — every HTTP call logged (and redacted) for the Run Inspector. See Durable engine.
  • Change-aware syncing. Push a watermark to APIs that support it, or fingerprint records client-side for APIs that don't — so an unchanged source costs almost nothing to poll. See Sync & change filtering.
  • Bring-your-own destinations. Deliver to a customer's Postgres or SQL Server warehouse (two-stage, deduped, typed), or a webhook. See Destinations.
  • Per-connection overrides. One base spec, adapted per customer — a different page size, extra output columns, a different mapping — without forking. See Connection overrides.

How the pieces fit

Siphon is a pnpm monorepo split into two planes:

  • Control plane — the Next.js admin app + @siphon/api: spec authoring, connection lifecycle, runs, the inspector, quarantine, schedules, tokens, and outbound webhooks.
  • Data plane@siphon/engine, wrapped by @siphon/worker: resolve auth → fetch pages → enrich DAG → change-filter → transform → validate → deliver → advance the watermark, with Restate journaling each page.

Read Architecture for the full picture, or jump into the Quickstart.

Where to go next

On this page