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.
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.
# 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" } }'
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.
{
"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.
Official SDKs
Typed clients that handle auth, batching and retries for you. Each mirrors the REST surface one-to-one.