Cursor-paginated workspace call history
GET /v1/activity/calls
GET /v1/activity/calls
Non-billable usage:read history for the same exact filters and range as activity. Returns at most 100 events per page ordered by timestamp and event ID descending. Signed cursors are bound to the workspace, range and filters. Only existing safe event metadata is returned; no request arguments, response bodies or tokens. Error debits are zero and unknown upstream error text is replaced with a generic error code. Granularity and group_by do not change log pagination.
Authorization
This operation requires a bearer credential. The description defines additional role, scope or first-party-session restrictions; an API key does not grant those permissions by itself.
Parameters
| Property | Type | Required | Details |
|---|---|---|---|
from (query) | string | yes | Inclusive UTC ISO timestamp. The range must be positive and at most 366 days. |
to (query) | string | yes | Exclusive UTC ISO timestamp. Future calendar boundaries are allowed. |
granularity (query) | "day" ∣ "hour" | no | UTC buckets. Hourly charts support at most 31 days. |
group_by (query) | "tool" ∣ "key" ∣ "member" ∣ "connection" ∣ "channel" ∣ "environment" ∣ "status" | no | |
tool (query) | string ∣ null | no | |
key_id (query) | string ∣ null | no | |
member_id (query) | string ∣ null | no | |
connection_id (query) | string ∣ null | no | |
channel (query) | "rest" ∣ "mcp" ∣ null | no | |
environment (query) | "live" ∣ "test" ∣ null | no | |
status (query) | "reserved" ∣ "success" ∣ "error" ∣ null | no | |
q (query) | string ∣ null | no | Literal substring search of request ID or tool metadata. |
limit (query) | integer | no | |
cursor (query) | string ∣ null | no | Opaque signed cursor bound to workspace, time range and filters; do not modify it. |
Request body
No request body.
Responses
| HTTP | Details | Type |
|---|---|---|
| 200 | Successful Response | application/json: ActivityCallsPage |
| 401 | Unauthorized | application/problem+json: ProblemDetails |
| 403 | Forbidden | application/problem+json: ProblemDetails |
| 404 | Not Found | application/problem+json: ProblemDetails |
| 422 | Unprocessable Entity | application/problem+json: ProblemDetails |
| 503 | Service Unavailable | application/problem+json: ProblemDetails |
Response: ActivityCallsPage
| Property | Type | Required | Details |
|---|---|---|---|
items | CallLog[] | yes | Event metadata only; no arguments, response bodies, credentials or raw upstream errors. |
next_cursor | string ∣ null | yes | |
has_more | boolean | yes |
Full schema
{
"properties": {
"items": {
"items": {
"$ref": "#/components/schemas/CallLog"
},
"type": "array",
"title": "Items",
"description": "Event metadata only; no arguments, response bodies, credentials or raw upstream errors."
},
"next_cursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Next Cursor"
},
"has_more": {
"type": "boolean",
"title": "Has More"
}
},
"type": "object",
"required": [
"items",
"next_cursor",
"has_more"
],
"title": "ActivityCallsPage"
}This page is generated from OpenAPI; examples are schemas, not a fabricated successful response.