Documentation

Everything you need to connect your first adapter and expose a typed API.

Quickstart

1. Install the CLI

npm install -g @carlquist/cli

CLI access is provided during onboarding. Requires Node.js 24 LTS (recommended) or Node.js 22 LTS, and npm 10+.

2. Authenticate

carlquist auth login

Opens your browser for SSO. API keys available in the dashboard for CI/CD.

3. Connect an adapter

carlquist connect \
  --type sqlserver \
  --host db.internal.company.com \
  --database orders_prod \
  --name "Orders DB"

Carlquist detects the schema, enumerates tables, and proposes field mappings automatically.

4. Define your mapping

carlquist map \
  --adapter orders-db \
  --schema canonical/order.json \
  --output mappings/orders.yml

Or use the visual editor at app.carlquist.app/mappings.

5. Expose an endpoint

carlquist expose \
  --adapter orders-db \
  --path /api/v1/orders \
  --auth jwt \
  --rate-limit 1000/min

6. Ship events

carlquist stream \
  --adapter orders-db \
  --event order.created \
  --target webhook \
  --url https://your-app.com/hooks/orders

Your adapter is now live. Changes to the source database stream to your webhook in real-time with automatic retries and dead-letter handling.

Core Concepts

API Reference

Full OpenAPI spec and interactive explorer are available to design partners. Contact us for access.

TypeScript SDK

The SDK is distributed to design partners via private npm registry. Example usage:

import { Carlquist } from '@carlquist/sdk';

const cq = new Carlquist({ apiKey: process.env.CARLQUIST_KEY });

const orders = await cq.query('orders', {
  filter: { status: 'pending' },
  limit: 50
});

Node.js / Next.js Example

// pages/api/orders.ts (Next.js API route)
import { Carlquist } from '@carlquist/sdk';

const cq = new Carlquist({ apiKey: process.env.CARLQUIST_KEY });

export default async function handler(req, res) {
  const orders = await cq.query('orders', {
    filter: req.query,
    limit: 25
  });
  res.json(orders);
}

Support

Questions? Reach us at support@carlquist.app or open an issue on our GitHub repository.