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.dev on 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.

bash
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.

bash
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.

yaml
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.

bash
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.

javascript
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.

bash
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:

json
{
  "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

On this page