Everything you need to connect your first adapter and expose a typed API.
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+.
carlquist auth login
Opens your browser for SSO. API keys available in the dashboard for CI/CD.
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.
carlquist map \
--adapter orders-db \
--schema canonical/order.json \
--output mappings/orders.yml
Or use the visual editor at app.carlquist.app/mappings.
carlquist expose \
--adapter orders-db \
--path /api/v1/orders \
--auth jwt \
--rate-limit 1000/min
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.
Full OpenAPI spec and interactive explorer are available to design partners. Contact us for access.
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
});
// 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);
}
Questions? Reach us at support@carlquist.app or open an issue on our GitHub repository.