Query logs
curl "https://api.spawnbase.gg/api/v1/logs?dataset=default&level=error,warn&from=2026-10-01T00:00:00Z&limit=50" \ -H "Authorization: YOUR_TOKEN"| Param | Meaning |
|---|---|
dataset |
Dataset name (default default) |
level |
Comma-separated levels |
resource |
Exact resource match |
body |
Free-text search over the message body only |
metadata.<path> |
Exact match on a metadata JSON path; multiple keys AND together |
from, to |
RFC 3339 time bounds |
limit |
Default 50, max 100 |
offset |
Default 0 |
order |
asc or desc (default desc) |
includeTotal |
true adds pagination.total |
One entry by id: GET /api/v1/logs/<traceId> (add ?dataset= to narrow;
without it, all your datasets are searched). Not yours / not there:
404 not_found — cross-team existence is never leaked.
Note on metadata.* + totals: indexed filters (dataset, level, resource,
time) run in the store query; metadata.* filters apply to the returned
page afterwards. So a page can contain fewer than limit rows even when
more matches exist, and pagination.total counts the indexed filters
only. Filter by indexed fields first, metadata second.