Quickstart ~5 min
Install the Conduit CLI, authenticate with an API key, create a pipeline, and confirm a first event reaches its sink. Every command below runs against the live v1 API.
Prerequisites
Before you start, make sure your environment meets these requirements:
- Node.js 18 or newer (the CLI ships as an npm package).
- A Conduit workspace and a live API key. Keys begin with
ck_live_and are issued from the dashboard under Settings → API keys. - Outbound HTTPS access to
api.conduit.devon port 443.
Walkthrough
Run the four steps in order. The final step tails the pipeline and prints the event you just sent.
Install the CLI
Install @conduit/cli globally so the conduit command is available on your PATH.
npm install -g @conduit/cli
conduit --version
# conduit/1.4.0 darwin-arm64 node-20.11.1
Authenticate
Exchange your API key for a local session. The token is stored in ~/.conduit/credentials with file mode 0600.
conduit auth login --token ck_live_8Hx2Qm4Rt9Vn0Lb
# Logged in as orders-team (workspace: orders-prod)
Create a pipeline
Describe a pipeline in pipeline.yaml. This one accepts HTTP webhooks, batches events in groups of 100, and writes them to Postgres.
source:
type: http
uri: https://ingest.conduit.dev/webhook
pipeline:
name: orders-stream
batch_size: 100
sink:
type: postgres
endpoint: postgres://db.internal:5432/events
Apply the file. The CLI prints the generated pipeline id, which you will reference when sending events.
conduit pipelines create --file pipeline.yaml
# Created pipeline pl_8f3a (orders-stream)
Send your first event
Use the SDK exported by the CLI package to emit an event into the pipeline. The call resolves once the API has accepted the event for processing.
import { Conduit } from "@conduit/cli";
const conduit = new Conduit({ token: process.env.CONDUIT_TOKEN });
const result = await conduit.emit({
pipelineId: "pl_8f3a",
eventType: "order.created",
payload: { orderId: "ord_1042", amount: 4999, currency: "usd" }
});
console.log(result.eventId); // evt_5b1c9d
Verify it works
Tail the pipeline to confirm the event was received. The stream prints each event as a JSON object; press Ctrl+C to stop.
conduit events tail --pipeline pl_8f3a --limit 1
A successful run prints the stored event, including the server-assigned event_id and received_at timestamp:
{
"event_id": "evt_5b1c9d",
"pipeline_id": "pl_8f3a",
"event_type": "order.created",
"payload": { "orderId": "ord_1042", "amount": 4999, "currency": "usd" },
"received_at": "2026-06-21T14:09:33Z"
}
If you see the event above, the pipeline is processing traffic end to end.
Next steps
- Read the API Reference for the full ingest and query surface.
- Tune batching, retries, and sinks in the Configuration Reference.
- Understand delivery guarantees in Concepts.