Log stream
Every ingest and engine decision that is not a plain accepted event: rejected events with their code and field, duplicates, rate limited requests, bot verdicts from suspect up, one line per accepted batch, job runs and the SDK's own reports. Without after the last 100 lines; with it the newer lines as soon as they arrive or an empty page after 25 seconds; Accept: text/event-stream streams them. Filter with level, kind, source, visitor and q. Lines are kept for 7 days and never hold IP addresses, emails or prop values.
An API token from POST /v2/tokens (at_live_...), or a project's secret key (sk_...) for server-side ingest.
In: header
Path Parameters
The project id, as listed by GET /v2/projects.
1 <= lengthQuery Parameters
Severity.
Value in
- "info"
- "ok"
- "warn"
- "error"
What the line is about.
Value in
- "ingest"
- "transport"
- "pipeline"
- "signals"
- "jobs"
- "auth"
What wrote the line: sdk lines are reported by the widget build of the SDK.
Value in
- "api"
- "sdk"
- "engine"
- "cron"
Only lines about this visitor.
1 <= length <= 128Only lines whose message contains this text.
1 <= length <= 200Return lines after this cursor, waiting for new ones. Without it, the last 100 lines.
^[0-9]{1,19}$Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v2/projects/string/logs"{ "data": [ { "id": "9102", "ts": "2026-10-03T14:02:04.117Z", "level": "error", "kind": "ingest", "source": "api", "message": "RA_INGEST_REJECTED events[3].props: Expected object with at most 25 properties", "data": { "code": "RA_INGEST_REJECTED", "reason": "VALIDATION_FAILED", "index": 3, "event": "quote_requested", "field": "props" }, "visitor": "8c4e1f0a-2b3c-4d5e-8f60-718293a4b5c6", "session": "f1a2b3c4" } ], "nextCursor": "9102"}