Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.pipedata.io/llms.txt

Use this file to discover all available pages before exploring further.

Two ways to get records into a pipe: stream NDJSON from a shell with pd push, or expose an HTTP endpoint with pd source http.

TL;DR

# From stdin
cat data.jsonl | pd push orders

# Over HTTP
pd source http orders
# → prints an ingest URL; POST NDJSON or JSON to it with the workspace API key

From stdin: pd push

pd push <name> reads NDJSON from stdin and writes it to the named pipe. The pipe is created on first use.
$ echo '{"event":"signup","user":1}' | pd push events
$ kubectl logs -f my-svc             | pd push logs
$ cat backfill.jsonl                 | pd push orders
Each line of stdin must be a single JSON value. Status output goes to stderr, so redirects stay clean.
pd push is streaming — the writer doesn’t wait for a reader. Push as fast as you like; readers catch up at their own pace.

Over HTTP: pd source http

pd source http <name> creates (or looks up) an HTTP ingestion pipe and prints its ingest URL.
$ pd source http webhooks
created source:http "webhooks"

  POST records to:
    https://ingress.eu-central-1.pipedata.io/123/data/456

  authenticate with your workspace API key:
    Authorization: Bearer <api-key>
Send one record per request, or batch many as NDJSON:
# Single record
curl -X POST "$INGEST_URL" \
  -H "Authorization: Bearer $PD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"event":"signup","user":1}'

# Batch (NDJSON, one record per line)
curl -X POST "$INGEST_URL" \
  -H "Authorization: Bearer $PD_API_KEY" \
  -H "Content-Type: application/x-ndjson" \
  --data-binary @batch.ndjson
A 2xx response means the records were accepted and persisted.

Common patterns

Backfill a pipe from a file
$ cat history.jsonl | pd push orders
Convert CSV on the fly
$ awk -F, 'NR>1 {printf "{\"email\":\"%s\"}\n",$2}' users.csv \
  | pd push emails
Mirror an HTTP webhook into a pipe
$ pd source http shopify-webhooks
# point Shopify at the printed URL with your API key in the Authorization header

See also