Automation
List actions
Discover callable Actions and their ns/name references without executing them.
Discover callable Actions and their ns/name references without executing them. Combine each returned namespace and name as ns/name; Action calls use the current revision and do not accept @version or @tag. Filter by name or description; results include seven-day statistics and revision summaries without implementation source. Archived actions are excluded by default.
GET /automation/v1/actions
Authentication
Authorization: Bearer $PRAXIS_API_KEY
Request fields
| Parameter | Type | Description |
|---|---|---|
| query: limit | integer | optional; Page size: integer 1–100, default 20. minimum: 1; maximum: 100 |
| query: cursor | string | optional; Opaque next_cursor from the previous page; keep the original filters when paging. |
| query: q | string | optional; Case-insensitive literal substring of name or description; % and _ are not wildcards. |
| query: namespace | string[] | optional; Return definitions in this namespace, matched in lowercase. Separate multiple values with commas to match any value. minItems: 1 |
| query: scope | "platform" / "own"[] | optional; platform selects platform definitions, own tenant-created definitions; omit for both. Separate multiple values with commas to match any value. minItems: 1 |
| query: archived | boolean | optional; true selects archived entries only, false unarchived only; default false. |
| query: implementation | "code" / "container" / "shell"[] | optional; Filter implementation kind: code, container or shell; omit for all. Separate multiple values with commas to match any value. minItems: 1 |
| query: labels | object | optional; Filter using labels[k]=v; comma-separated values for one key match any, and different keys match together. |
| query: created_at[gte] | string | optional; Inclusive creation-time lower bound, as an ISO 8601 timestamp with timezone. format: "date-time" |
| query: created_at[lte] | string | optional; Inclusive creation-time upper bound, as an ISO 8601 timestamp with timezone. format: "date-time" |
Examples
curl --fail-with-body -X GET "https://api.deepraxis.ai/automation/v1/actions" \
-H "Authorization: Bearer $PRAXIS_API_KEY" \
--get \
--data-urlencode "namespace=docs-samples" \
--data-urlencode "limit=1"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.actions.list({
"query": {
"namespace": [
"docs-samples"
],
"limit": 1
}
});
console.log(result);Response
HTTP 200
Success
application/json
| Field | Type | Description |
|---|---|---|
| data | object[] | required; Actions with their current revision summary and 7-day statistics on this page, ordered by created_at descending, then id descending. |
| data[].id | string | required; Action id, prefixed act_; calls normally use namespace and name instead of the id. |
| data[].namespace | string | required; Action namespace; platform actions use praxis, and a bare name resolves to praxis. |
| data[].name | string | required; Action name; together with namespace it identifies the action. Lowercase letters, digits, dot, underscore and hyphen, up to 64 characters. |
| data[].description | string | required; Free-text action description, at most 1000 characters. |
| data[].labels | object | required; User-defined string key and value tags for grouping and list filtering (labels[key]=value); keys must not start with praxis. |
| data[].owner | string | required; Tenant that owns the action, injected by the gateway; treat it as an opaque string. |
| data[].builtin | boolean | required; true for platform-provided actions (namespace praxis); false for user-created actions. |
| data[].stats_7d | object | required; Seven-day statistics; platform actions are isolated by caller tenant and reflect only the current caller, not global platform totals. no additional fields. |
| data[].stats_7d.calls | number | required; Number of calls to the action over the last seven days, aggregated hourly. |
| data[].stats_7d.failures | number | required; Number of those calls that failed over the last seven days. |
| data[].stats_7d.p50_ms | null / number | required; Approximate upper bound of median latency in milliseconds, using power-of-two buckets rounded up (9 ms → 16 ms), with a separate zero bucket; null when no valid latency samples exist. |
| data[].dependents | object | required; Counts of scripts and workflows that reference the action, measured on the latest version plus drafts. no additional fields. |
| data[].dependents.scripts | number | required; Number of scripts that reference this action. |
| data[].dependents.workflows | number | required; Number of workflows that reference this action. |
| data[].archived_at | null / string | required; Archive time, or null while not archived. An archived name stays reserved and cannot be reused. |
| data[].created_at | string | required; Creation time (RFC 3339 UTC). |
| data[].updated_at | string | required; Time of the last update (RFC 3339 UTC). |
| data[].current_revision | object | required; Revision summary used in lists: the contract and run location without implementation source. no additional fields. |
| data[].current_revision.id | string | required; Revision id, prefixed actr_. |
| data[].current_revision.implementation | object | required; Action lists return only {kind, host}, without source; action details return the complete implementation. no additional fields. |
| data[].current_revision.implementation.kind | "code" / "container" / "shell" | required; How an action is implemented. code is a source-code implementation (only language=ts is available now); container is an image plus command and is not yet available; shell is a shell script and is not yet available. |
| data[].current_revision.implementation.host | "builtin" / "isolate" / "sandbox" | required; Where an action runs, computed at publication. builtin is a platform-provided action; isolate runs user code in an isolated Worker isolate; sandbox runs in a sandbox (container and shell implementations). |
| data[].current_revision.host | "builtin" / "isolate" / "sandbox" | required; Where an action runs, computed at publication. builtin is a platform-provided action; isolate runs user code in an isolated Worker isolate; sandbox runs in a sandbox (container and shell implementations). |
| data[].current_revision.input_schema | object | required; Any JSON object whose keys are strings and whose values are any JSON value. |
| data[].current_revision.input_schema.* (variant 5) | object | Recursive JSON value. |
| data[].current_revision.input_schema.* (variant 6)[] | null / string / number / boolean / object / JSON[] | Recursive JSON value. |
| data[].current_revision.output_schema | object | required; Any JSON object whose keys are strings and whose values are any JSON value. |
| data[].current_revision.output_schema.* (variant 5) | object | Recursive JSON value. |
| data[].current_revision.output_schema.* (variant 6)[] | null / string / number / boolean / object / JSON[] | Recursive JSON value. |
| data[].current_revision.created_at | string | required; Time this revision was created (RFC 3339 UTC). |
| next_cursor | null / string | 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": "act_00mv67loz4fe4f27bdf89346c885b3a28b2038c091",
"owner": "tnt_3a9759864ccb4e00",
"namespace": "docs-samples",
"name": "sample-action-1791867412840-b05e8a",
"description": "",
"labels": {},
"builtin": false,
"archived_at": null,
"created_at": "2026-10-13T04:57:09.039Z",
"updated_at": "2026-10-13T04:57:09.039Z",
"current_revision": {
"id": "actr_00mv67loz3e46938b8ecf54e57b8f31297df016a1c",
"implementation": {
"kind": "code",
"host": "isolate"
},
"host": "isolate",
"input_schema": {
"type": "object",
"properties": {
"n": {
"type": "number"
}
},
"required": [
"n"
],
"additionalProperties": false
},
"output_schema": {
"type": "object",
"properties": {
"answer": {
"type": "number"
}
},
"required": [
"answer"
],
"additionalProperties": false
},
"created_at": "2026-10-13T04:57:09.039Z"
},
"stats_7d": {
"calls": 0,
"failures": 0,
"p50_ms": null
},
"dependents": {
"scripts": 0,
"workflows": 0
}
}
],
"next_cursor": null
}Errors
| HTTP | Codes and description |
|---|---|
| 400 | INVALID_PARAMS: Invalid request parameters, path, cursor, or body format. |
| default | RFC 9457 automation problem. 429 includes Retry-After. |
Authentication and common errors · Retain the X-Request-Id response header for troubleshooting.