Automation
List trigger firings
Read the last 30 days of firings newest first.
Read the last 30 days of firings newest first. Results include resolved versions, run IDs and failure details.
GET /automation/v1/triggers/{id}/firings
Authentication
Authorization: Bearer $PRAXIS_API_KEY
Request fields
| Parameter | Type | Description |
|---|---|---|
| path: id | string | required; Trigger ID (trg_). |
| query: limit | integer | optional; Page size: integer 1–100, default 25. minimum: 1; maximum: 100 |
| query: cursor | string | optional; Opaque next_cursor from the previous page; keep the original filters when paging. |
| query: outcome | "accepted" / "started" / "skipped_overlap" / "missed" / "failed" / "deduped"[] | optional; Filter outcomes using comma-separated values (OR); combined with run_id using AND. |
| query: run_id | string | optional; Return only firings associated with this exact run ID. |
Examples
Set these environment variables to your own resources:
| Variable | Source |
|---|---|
| TRIGGER_ID | Trigger id; resume before sending a webhook |
: "${TRIGGER_ID:?Set TRIGGER_ID}"
curl --fail-with-body -X GET "https://api.deepraxis.ai/automation/v1/triggers/${TRIGGER_ID}/firings" \
-H "Authorization: Bearer $PRAXIS_API_KEY"import { createAutomationClient } from '@deepraxis/sdk/automation';
function env(name: string): string {
const value = process.env[name];
if (!value) throw new Error(`Set ${name}`);
return value;
}
const automation = createAutomationClient({
apiKey: env('PRAXIS_API_KEY'),
baseUrl: 'https://api.deepraxis.ai',
maxRetries: 0,
timeoutMs: 90_000,
});
const result = await automation.triggers.firings.list({
"path": {
"id": env("TRIGGER_ID")
}
});
console.log(result);Response
HTTP 200
Success
application/json
| Field | Type | Description |
|---|---|---|
| data | object[] | required; Firing records from the last 30 days on this page, ordered by created_at descending, then id descending. |
| data[].id | string | required; Firing record id; records are kept for 30 days. |
| data[].trigger_id | string | required; Id (trg_) of the trigger this firing belongs to. |
| data[].scheduled_at | string | required; Planned firing time (RFC 3339 UTC); for webhooks, the time the request arrived. format: "date-time" |
| data[].fired_at | string | required; Time the firing actually happened (RFC 3339 UTC). format: "date-time" |
| data[].outcome | "accepted" / "started" / "skipped_overlap" / "missed" / "failed" / "deduped" | required; Firing outcome. accepted means persisted and awaiting processing; started means a run was created; skipped_overlap means skipped because the previous run was still active; missed means it was later than the catch-up window and was not run; failed means creating the run failed; deduped means it repeated a webhook-id seen within 24 hours. |
| data[].run_id | string / null | required; Id (run_) of the run this firing created, or null if no run was created. |
| data[].resolved_version | string / null | required; Exact version this firing resolved to; null when not yet resolved or when it failed before resolving. |
| data[].error | object / null | required; Reason {code, message} when the firing failed; null otherwise. |
| data[].error (variant 1).code | string | required; Error code of the failure. |
| data[].error (variant 1).message | string | required; Message describing the failure. |
| next_cursor | string / null | required; Cursor for the next page: pass it unchanged as cursor with the same filters; null when there are no more pages. No total is returned. |
Measured response
HTTP 200
{
"data": [
{
"id": "frg_00mv67n833fec8a47a90904782ac1a8f1fef264379",
"trigger_id": "trg_00mv67mzzqa0d63b98d72446dd9d1331051a3e100e",
"scheduled_at": "2026-10-13T04:58:20.215Z",
"fired_at": "2026-10-13T04:58:20.215Z",
"outcome": "started",
"run_id": "run_00mv67n8ao7de994212f453fdfe7def756b57ec5cdeb562a1222f554c6f3d9f428ec25480e",
"resolved_version": "1.0.0",
"error": null
},
{
"id": "frg_00mv67n6in516077a64cfc4102a4da939476a3fa78",
"trigger_id": "trg_00mv67mzzqa0d63b98d72446dd9d1331051a3e100e",
"scheduled_at": "2026-10-13T04:58:18.384Z",
"fired_at": "2026-10-13T04:58:18.384Z",
"outcome": "started",
"run_id": "run_00mv67n6vvebb47a96bf4b54630d8a07786ec923a68d3b722c2f7ffca4e0a553053c4a5421",
"resolved_version": "1.0.0",
"error": null
}
],
"next_cursor": null
}Errors
| HTTP | Codes and description |
|---|---|
| 400 | INVALID_PARAMS: Invalid request parameters, path, cursor, or body format. |
| 404 | TRIGGER_NOT_FOUND: The trigger does not exist or is inaccessible. Webhook authentication failures also use this code. |
| default | RFC 9457 automation problem. 429 includes Retry-After. |
Authentication and common errors · Retain the X-Request-Id response header for troubleshooting.