Skip to content
LogZuno

Ingestion API reference

Every endpoint for sending data, with authentication, limits, status codes and error responses.

Base URL: https://api.logzuno.app/v1. Send JSON with Content-Type: application/json and your key in Authorization: Bearer <key>.

Endpoints

Method and pathKey scopeWhat it doesCounts toward the event allowance
POST /logIngestOne event (details)Yes, 1
POST /batchIngestUp to 100 events in eventsYes, one per event
POST /identityIngestSet a user's properties (details)No
POST /groupIngestSet a group's properties and members (details)No
POST /insightIngestSet, increment or decrement a number (details)No
POST /track, GET /trackIngestA pageview from the website script or a pixelYes, if a person; automated views are free
POST /hitsServer trafficUp to 100 server requests (details)Server-request allowance
POST /drains/vercel, POST /drains/netlifyServer trafficLog drain deliveries (Vercel, Netlify)Server-request allowance

GET /track accepts the key as a token or api_key query parameter, for image-pixel tracking where a header can't be set. Everything else needs the Authorization header.

Status codes

CodeMeaningWhat to do
202Accepted. Events are written within secondsNothing
200/insight (returns the new value) and log drainsNothing
401Missing or unknown keyCheck the key, and that it hasn't been revoked
402The organisation has no active planChoose a plan in Billing
403The key lacks the scope for this endpoint, belongs to another project than the payload's project, or the project is pausedRead the message: it names the cause
413Body over 1 MB (5 MB for log drains)Send smaller batches
422Invalid fieldsThe errors object names each field, such as events.3.channel
429Rate limit or monthly allowance reachedSee below

Errors are JSON with a message, "type": "error", and for some a reason:

{
  "message": "Rate limit of 5 requests per minute reached. Send events in batches with /v1/batch to send more at once.",
  "type": "error",
  "reason": "rate_limited",
  "retry_after": 47
}

Rate limits and allowances

  • Requests: 5 a minute per project for events, users, groups and insights together, on every plan. A batch is one request. Over the limit: 429 with reason: rate_limited and a Retry-After header in seconds.
  • Pageviews: limited per visitor address, separately from the project limit, so one busy visitor can't stop the rest of your traffic.
  • Server requests: their own per-minute limit per project, 100 to 1,000 depending on the plan, and their own monthly allowance.
  • Monthly allowance: over it, 429 with reason: quota_exceeded (events) or hit_quota_exceeded (server requests). Waiting a minute won't help: upgrade or wait for the next billing period.

See pricing for every plan's numbers.

CORS

Every ingestion endpoint accepts requests from any origin, without credentials, so the browser script and your own front-end code can call it directly with an ingest key.