Skip to main content
Base URL: https://api.streamlogia.com
GET /v1/projects/{projectId}/logs Authorization: Bearer YOUR_API_KEY

Path parameters

projectId
string
required
UUID of the project.

Query parameters

level
string
Filter to a single level: DEBUG, INFO, WARN, or ERROR.
Full-text search across message, source, and tags.
from
string
Start of time range (ISO 8601, inclusive) — e.g. 2026-04-07T00:00:00Z
to
string
End of time range (ISO 8601, exclusive) — e.g. 2026-04-07T23:59:59Z
limit
integer
Entries per page. Default 100, max 1000.
cursor
string
Pagination cursor from nextCursor in the previous response. Omit for the first page.

Response

logs
LogEntry[]
Array of log entries, newest first.
nextCursor
string | null
null on the last page. Pass to cursor for the next page.
total
integer
Total matching entries across all pages.
{
  "logs": [
    {
      "id": "log_7f3a1b9c-e4d2-4f8a-b3c1-9d0e2f6a5b78",
      "projectId": "YOUR_PROJECT_ID",
      "level": "ERROR",
      "message": "Unhandled exception in /v1/orders",
      "source": "api.handler",
      "ts": "2026-04-07T09:41:03Z",
      "tags": ["prod"],
      "meta": { "orderId": 9921 }
    }
  ],
  "nextCursor": "eyJpZCI6ImxvZ18…",
  "total": 1423
}

Pagination

let cursor;
const logs = [];

do {
  const params = new URLSearchParams({ limit: "500" });
  if (cursor) params.set("cursor", cursor);

  const res = await fetch(
    `https://api.streamlogia.com/v1/projects/YOUR_PROJECT_ID/logs?${params}`,
    { headers: { Authorization: "Bearer YOUR_API_KEY" } }
  );
  const data = await res.json();
  logs.push(...data.logs);
  cursor = data.nextCursor;
} while (cursor);