Parcellev1
Docs / Getting started / Introduction

Collect events, batch them, send them anywhere.

Parcelle is a thin ingestion layer for product and telemetry events. Point your app at one endpoint; we buffer, deduplicate and forward to the destinations you configure — warehouses, queues or your own webhook.

All systems operational Base · https://docs.danoneizkala.space REST · JSON

Every request runs against a single collector that stays close to your users. The browser SDK is under 2 KB, keeps a local buffer, and flushes over HTTP/2 or HTTP/3 depending on what the network allows — so a flaky connection costs you retries, not data.

Quickstart

Send your first event with nothing but curl. Swap in the key from your dashboard and you'll see it land in the live view within a second or two.

POST /api/v1/events Copy
# send a single event
curl https://docs.danoneizkala.space/api/v1/events \
  -H "Authorization: Bearer pk_live_xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "signup.completed",
    "source": "web",
    "props": { "plan": "growth", "referrer": "docs" }
  }'
Events are accepted the moment they're received and processed asynchronously. A 202 Accepted means the event is safely buffered — not that it has reached every destination yet.

Authentication

Authenticate every request with a project key in the Authorization header. Publishable keys (pk_live_) are safe in browser code and may only write events. Secret keys (sk_live_) can read back data and manage sources — keep them server-side.

Rotating a key

Keys can be rotated without downtime. A rotated key stays valid for a 24-hour grace window so in-flight clients finish cleanly before the old key stops working.

Batching & retries

Under load, send an array instead of a single object. The collector accepts up to 500 events per request and answers with a per-item status so one malformed row never rejects the whole batch.

POST /api/v1/events:batch Copy
{
  "events": [
    { "type": "page.view",  "ts": "2026-10-07T11:42:08Z" },
    { "type": "cart.add",   "ts": "2026-10-07T11:42:11Z" }
  ]
}

If the collector is briefly unreachable, the SDKs retry with exponential backoff and full jitter. Events carry a client-generated id, so a retried request is deduplicated server-side rather than counted twice.

API reference

Four endpoints cover the whole surface. All paths are relative to the base URL and return JSON.

POST
/api/v1/events
Ingest one event, or a batch with :batch
GET
/api/v1/events?source=&since=
Query recent events with cursor pagination
POST
/api/v1/sources
Register a source and its forwarding rules
GET
/api/v1/usage
Current period counts and quota

Official SDKs

Typed clients that handle auth, batching and retries for you. Each mirrors the REST surface one-to-one.

Node.js
npm i parcelle
Python
pip install parcelle
Go
go get parcelle.dev/go
Browser
<script src="https://cdn.parcelle.dev/p.js">