Automate Everything with the REST API

80+ endpoints for connections, streams, data exploration, federated queries, file operations, and SQL intelligence

API at a glance

  • - Free IDE access — explore data and manage connections without a subscription
  • - X-API-Key + X-Install-ID authentication, JSON throughout
  • - WebSocket LSP for SQL autocomplete, SSE for log streaming
  • - OpenAPI 3.0 spec included for SDK generation
Coverage

One API for Your Entire Data Stack

Every platform capability is accessible through a consistent REST interface.

Connections

  • CRUD, test, ping, and clone connections
  • Full database structure browsing and metadata
  • Table and view data with row-level CRUD
  • Create databases and schemas programmatically

Stream Config

  • Create, update, clone, and delete stream configs
  • View stream run history and manage runs
  • Define source, target, and transfer mode

Stream Operations

  • Start, pause, resume, and stop streams
  • Monitor real-time stats and throughput
  • Retrieve logs, validate constraints

Files & Data

  • Read, query, and edit CSV, Parquet, JSON, and JSONL files via SQL
  • CSV sniffing with automatic schema inference
  • Batch row operations (insert, update, delete, apply)

S3 & Object Storage

  • Configure, validate, and browse S3 storage
  • Manifest-based access — avoid costly LIST operations at scale
  • AWS, MinIO, DO Spaces, and Wasabi

Federated Queries

  • Cross-database SQL via POST /query/federated
  • JOIN across MySQL, PostgreSQL, and files
  • Powered by embedded DuckDB engine

SQL Intelligence

  • Two WebSocket LSP servers (SQL + DuckDB)
  • Real-time autocomplete for MySQL, PostgreSQL, and DuckDB
  • Federated query completion across connections

Snowflake

  • Stage and stage-file management
  • Parquet-optimized data loading
  • Internal and external stage support

Health & System

  • Health, readiness, and service status probes
  • Runtime defaults and logging configuration
  • SSE log streaming and server lifecycle
Auth

Simple, Secure Authentication

curl -X GET https://your-server/api/v1/connections \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "X-Install-ID: YOUR_INSTALL_ID" \
  -H "Content-Type: application/json"
  • X-API-Key — your account API key, available on the account page
  • X-Install-ID — identifies your installation for seat management
  • On a new installation, open the app once and connect your account before using API-only workflows
  • Each client stores the account API key locally; seats are tracked separately by install ID
  • Keys can be rotated at any time from your account dashboard

IDE Endpoints — Free Access

Connections, data exploration, files, SQL queries, and federated queries are available immediately — no active subscription required.

  • All endpoints except stream start/pause/resume/stop
  • Tolerant auth — works even if device is deactivated or sentry is unreachable
  • No active subscription required

Stream Endpoints — Subscription Required

Starting, pausing, resuming, and stopping streams requires a valid API key and active subscription.

  • Stream start, pause, resume, and stop only
  • Strict auth — blocks on any authentication failure
  • Evaluation limits and subscription status enforced at stream start
Workflow

From Connection to Streaming in Four API Calls

The core workflow — create a connection, configure a stream, start it, and query across databases.

1. Create a Connection

POST /api/v1/connections

curl -X POST https://your-server/api/v1/connections \
  -H "X-API-Key: YOUR_KEY" \
  -H "X-Install-ID: YOUR_INSTALL_ID" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "mysql-source",
    "type": "mysql",
    "spec": {
      "database": {
        "host": "db.example.com",
        "port": 3306,
        "username": "reader",
        "password": "secret",
        "database": "production"
      }
    }
  }'

2. Create a Stream Config

POST /api/v1/stream-configs

curl -X POST https://your-server/api/v1/stream-configs \
  -H "X-API-Key: YOUR_KEY" \
  -H "X-Install-ID: YOUR_INSTALL_ID" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "full_migration",
    "mode": "convert",
    "source": {
      "connections": [
        {
          "connectionId": "CONNECTION_ID_1",
          "database": "source_db"
        }
      ]
    },
    "target": {
      "id": "CONNECTION_ID_2",
      "spec": {
        "db": {
          "database": "target_db"
        }
      }
    }
  }'

3. Start & Monitor Stream

POST /api/v1/stream-configs/{id}/start · GET /api/v1/streams/{id}/stats

# Start the stream
curl -X POST https://your-server/api/v1/stream-configs/{id}/start \
  -H "X-API-Key: YOUR_KEY" \
  -H "X-Install-ID: YOUR_INSTALL_ID"

# Check real-time stats
curl https://your-server/api/v1/streams/{id}/stats \
  -H "X-API-Key: YOUR_KEY"

4. Federated Query

POST /api/v1/query/federated

curl -X POST https://your-server/api/v1/query/federated \
  -H "X-API-Key: YOUR_KEY" \
  -H "X-Install-ID: YOUR_INSTALL_ID" \
  -H "Content-Type: application/json" \
  -d '{
    "sql": "SELECT a.name, b.total
      FROM pg1.public.accounts a
      JOIN my1.sales.orders b
        ON a.id = b.account_id"
  }'
Explore

Deep Database Exploration via API

Navigate database structure and query data programmatically.

Browse Structure

  • Databases → schemas → tables → views (hierarchical navigation)
  • DDL retrieval for any table or view
  • Exact row counts and AI-ready table summaries
  • Fast database overview endpoint (30s cache)
  • Schema and database creation

Query & Edit

  • Paginated table/view data with column filtering and sorting
  • Row-level insert, update, and delete
  • Arbitrary SQL execution scoped to any database
  • Column discovery for query results before execution
  • Filesystem browsing to locate local data files
Files

First-Class File and S3 Support

Manage local files and S3-compatible object storage through the same API.

Local & Remote Files

  • Data, metadata, and row count endpoints per file
  • CSV dialect sniffing with automatic delimiter and type detection
  • SQL queries directly against file contents
  • Batch row apply (atomic insert + update + delete)
  • File summary for AI-ready schema descriptions

S3 & Object Storage

  • Session-based configuration with credential validation
  • Path validation with reading strategy detection
  • Bucket creation and listing
  • Manifest-driven reads — skip LIST calls, cut S3 costs on large datasets
  • Object listing with prefix filtering
Intelligence

Built-In SQL Intelligence

Two dedicated Language Server endpoints power editor-grade SQL assistance.

SQL LSP — GET /lsp/ws

  • WebSocket connection for persistent editor sessions
  • Schema-aware completions from live MySQL and PostgreSQL connections
  • Table, column, and keyword suggestions with type info

DuckDB LSP — GET /lsp/duckdb/ws

  • Separate WebSocket tuned for DuckDB SQL dialect
  • Completions across attached connections and file sources
  • Supports federated query syntax (e.g. pg1.public.table)
DX

Built for Developers

Typed Error Codes

Every error includes a stable code (e.g. AUTHENTICATION_FAILED), category, and detail object for programmatic handling.

SDK Generation

OpenAPI 3.0 spec ships with the API — generate typed clients in any language with standard tooling.

Pagination & Filtering

Data endpoints accept limit/offset, column filters, and multi-column sort parameters uniformly.

Confirmation Headers

Destructive bulk operations (e.g. delete all configs) require an explicit X-Confirm-Delete header to prevent accidents.

Start Building with the API

One API key. Free IDE access. Pay only when you start streaming.

See the product definition and capability overview on the What is DBConvert Streams page.