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

ParameterTypeDescription
query: limitintegeroptional; Page size: integer 1–100, default 20. minimum: 1; maximum: 100
query: cursorstringoptional; Opaque next_cursor from the previous page; keep the original filters when paging.
query: qstringoptional; Case-insensitive literal substring of name or description; % and _ are not wildcards.
query: namespacestring[]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: archivedbooleanoptional; 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: labelsobjectoptional; Filter using labels[k]=v; comma-separated values for one key match any, and different keys match together.
query: created_at[gte]stringoptional; Inclusive creation-time lower bound, as an ISO 8601 timestamp with timezone. format: "date-time"
query: created_at[lte]stringoptional; 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

FieldTypeDescription
dataobject[]required; Actions with their current revision summary and 7-day statistics on this page, ordered by created_at descending, then id descending.
data[].idstringrequired; Action id, prefixed act_; calls normally use namespace and name instead of the id.
data[].namespacestringrequired; Action namespace; platform actions use praxis, and a bare name resolves to praxis.
data[].namestringrequired; Action name; together with namespace it identifies the action. Lowercase letters, digits, dot, underscore and hyphen, up to 64 characters.
data[].descriptionstringrequired; Free-text action description, at most 1000 characters.
data[].labelsobjectrequired; User-defined string key and value tags for grouping and list filtering (labels[key]=value); keys must not start with praxis.
data[].ownerstringrequired; Tenant that owns the action, injected by the gateway; treat it as an opaque string.
data[].builtinbooleanrequired; true for platform-provided actions (namespace praxis); false for user-created actions.
data[].stats_7dobjectrequired; 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.callsnumberrequired; Number of calls to the action over the last seven days, aggregated hourly.
data[].stats_7d.failuresnumberrequired; Number of those calls that failed over the last seven days.
data[].stats_7d.p50_msnull / numberrequired; 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[].dependentsobjectrequired; Counts of scripts and workflows that reference the action, measured on the latest version plus drafts. no additional fields.
data[].dependents.scriptsnumberrequired; Number of scripts that reference this action.
data[].dependents.workflowsnumberrequired; Number of workflows that reference this action.
data[].archived_atnull / stringrequired; Archive time, or null while not archived. An archived name stays reserved and cannot be reused.
data[].created_atstringrequired; Creation time (RFC 3339 UTC).
data[].updated_atstringrequired; Time of the last update (RFC 3339 UTC).
data[].current_revisionobjectrequired; Revision summary used in lists: the contract and run location without implementation source. no additional fields.
data[].current_revision.idstringrequired; Revision id, prefixed actr_.
data[].current_revision.implementationobjectrequired; 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_schemaobjectrequired; Any JSON object whose keys are strings and whose values are any JSON value.
data[].current_revision.input_schema.* (variant 5)objectRecursive JSON value.
data[].current_revision.input_schema.* (variant 6)[]null / string / number / boolean / object / JSON[]Recursive JSON value.
data[].current_revision.output_schemaobjectrequired; Any JSON object whose keys are strings and whose values are any JSON value.
data[].current_revision.output_schema.* (variant 5)objectRecursive JSON value.
data[].current_revision.output_schema.* (variant 6)[]null / string / number / boolean / object / JSON[]Recursive JSON value.
data[].current_revision.created_atstringrequired; Time this revision was created (RFC 3339 UTC).
next_cursornull / stringrequired; 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

HTTPCodes and description
400INVALID_PARAMS: Invalid request parameters, path, cursor, or body format.
defaultRFC 9457 automation problem. 429 includes Retry-After.

Authentication and common errors · Retain the X-Request-Id response header for troubleshooting.

Export

On this page