Execution History
Every tool execution is recorded with its input, output, duration, actor, and outcome. Use the execution history to audit activity, debug failures, and monitor usage.
Endpoint
| Method | Path | Description | Auth |
|---|---|---|---|
| GET | /connectors/instances/:id/executions | List execution history | JWT |
Execution Object
json
{
"id": "exec_xyz789",
"instanceId": "inst_abc123",
"toolId": "tool_abc123",
"toolKey": "send_message",
"status": "success",
"actorId": "usr_abc",
"actorType": "chainer",
"runId": null,
"durationMs": 342,
"httpStatus": 200,
"errorMessage": null,
"createdAt": "2026-03-23T10:05:00Z"
}Execution Object Fields
| Field | Type | Description |
|---|---|---|
id | string | Unique execution ID |
instanceId | string | The connector instance that was used |
toolId | string | The tool that was executed |
toolKey | string | Tool key (e.g. send_message) |
status | string | success or error |
actorId | string | ID of the user or agent that triggered execution |
actorType | string | chainer (user) or agent |
runId | string | null | Workflow run ID if executed as part of a workflow; null for direct calls |
durationMs | number | Execution time in milliseconds |
httpStatus | number | null | HTTP status from the external service, if applicable |
errorMessage | string | null | Error detail if status is error; null on success |
createdAt | string | ISO 8601 timestamp of when execution occurred |
Input and output payloads are stored internally but are not returned in list responses to keep responses lightweight. Contact support if you need detailed payload export for compliance purposes.
GET /connectors/instances/:id/executions
List tool execution history for a connector instance, ordered by most recent first.
Request
Path Parameters
| Parameter | Type | Description |
|---|---|---|
id | string | Instance ID |
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | number | No | Max results per page (default: 20, max: 100) |
offset | number | No | Pagination offset (default: 0) |
Response
Response Example
json
{
"data": [
{
"id": "exec_xyz789",
"instanceId": "inst_abc123",
"toolId": "tool_abc123",
"toolKey": "send_message",
"status": "success",
"actorId": "usr_abc",
"actorType": "chainer",
"runId": null,
"durationMs": 342,
"httpStatus": 200,
"errorMessage": null,
"createdAt": "2026-03-23T10:05:00Z"
},
{
"id": "exec_abc001",
"instanceId": "inst_abc123",
"toolId": "tool_abc123",
"toolKey": "send_message",
"status": "error",
"actorId": "agent_def",
"actorType": "agent",
"runId": "run_wf123",
"durationMs": 187,
"httpStatus": 404,
"errorMessage": "channel_not_found: The channel #unknown was not found",
"createdAt": "2026-03-23T09:55:00Z"
}
],
"meta": {
"total": 42,
"limit": 20,
"offset": 0,
"hasNextPage": true
}
}Code Examples
bash
curl "https://api.chainabit.com/api/v1/connectors/instances/$INSTANCE_ID/executions?limit=20&offset=0" \
-H "Authorization: Bearer $TOKEN"javascript
const BASE_URL = process.env.BASE_URL;
const TOKEN = process.env.TOKEN;
const INSTANCE_ID = process.env.INSTANCE_ID;
const response = await fetch(
`${BASE_URL}/connectors/instances/${INSTANCE_ID}/executions`,
{
headers: { Authorization: `Bearer ${TOKEN}` },
},
);
const { data, meta } = await response.json();python
import requests, os
BASE_URL = os.environ["BASE_URL"]
TOKEN = os.environ["TOKEN"]
INSTANCE_ID = os.environ["INSTANCE_ID"]
response = requests.get(
f"{BASE_URL}/connectors/instances/{INSTANCE_ID}/executions",
params={"limit": 20, "offset": 0},
headers={"Authorization": f"Bearer {TOKEN}"},
)
result = response.json()
data, meta = result["data"], result["meta"]Pagination
See Pagination Reference for details on using limit, offset, and hasNextPage to page through results.
bash
# Page 2
curl "https://api.chainabit.com/api/v1/connectors/instances/$INSTANCE_ID/executions?limit=20&offset=20" \
-H "Authorization: Bearer $TOKEN"