All docs
Start here
API basics
Agent setups
Resources
- Contacts
- Companies
- Lists
- Deals
- Tasks
- Notes
- Fields
- Quotes
- Stage Checklist Pipelines
- Sequences
- Sequence Lifecycle
- Inbox
- Meetings
- Appointments Management
- Voice & Dialer
- Skills (LLM + API)
- Workflows
- GTM Campaigns
- GTM Context
- GTM Knowledge Base
- Launch Helpers
- Landing Pages
- Intent & Signals
- Search
- Enrichment
- Assert / Upsert
- Agency Keys & Cross-Org Targeting
- CRM Syncs
- Audience Syncs
- Destinations
- Snippet
- Functions
Data pipeline
Webhooks
What's new
Request Logs
Inspect your organization's most recent API requests for debugging
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
curl "https://be.graph8.com/api/v1/logs?limit=20" \
-H "Authorization: Bearer $API_KEY" Python
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"]) TypeScript
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.