Request Logs
GET /api/v1/logs returns your organization’s most recent API requests — method, path, status code, and the request_id — so you can debug an integration without adding logging on your side. It’s the developer equivalent of the request log in a payments dashboard.
Each entry corresponds to one authenticated API call your keys made, newest first.
Endpoint
GET /api/v1/logs?limit=50| Parameter | Type | Default | Range | Description |
|---|---|---|---|---|
limit | integer | 50 | 1–200 | Max entries to return (most recent first) |
Response
{ "data": [ { "request_id": "a1b2c3d4e5f6...", "method": "POST", "path": "/api/v1/contacts", "status": 201, "timestamp": 1717000000 }, { "request_id": "f6e5d4c3b2a1...", "method": "GET", "path": "/api/v1/usage", "status": 200, "timestamp": 1716999990 } ]}| Field | Type | Description |
|---|---|---|
request_id | string | Correlation id — matches the X-Request-Id header on the original response |
method | string | HTTP method |
path | string | Request path |
status | integer | HTTP status code of the response |
timestamp | integer | Unix seconds when the request completed |
Examples
curl "https://be.graph8.com/api/v1/logs?limit=20" \ -H "Authorization: Bearer $API_KEY"import httpx
r = httpx.get( "https://be.graph8.com/api/v1/logs", headers={"Authorization": f"Bearer {API_KEY}"}, params={"limit": 20},)for entry in r.json()["data"]: print(entry["status"], entry["method"], entry["path"], entry["request_id"])const res = await fetch("https://be.graph8.com/api/v1/logs?limit=20", { headers: { Authorization: `Bearer ${API_KEY}` },});const { data } = await res.json();data.forEach((e) => console.log(e.status, e.method, e.path, e.request_id));Correlating with X-Request-Id
Every API response carries an X-Request-Id header. The same id appears as request_id here and in any error envelope’s request_id field — so when a call fails, you can grab the id from the response and find the exact entry in your logs (or quote it to support).
Notes & limits
- Scope — logs are per-organization and cover requests authenticated with your org’s API keys.
- Retention — a rolling window of the most recent requests (the latest ~100), retained for up to 7 days. This is a debugging aid, not a permanent audit trail — export anything you need to keep.
- Best-effort — logging never blocks or slows your API calls. In the rare event logging is briefly unavailable, an entry may be missing; the original request still succeeds normally.
- No bodies — only request metadata is stored (method, path, status, id). Request and response bodies are never logged.