---
title: "Get a workflow"
method: GET
path: "/workflows/{workflow_id}"
tags: ["workflows"]
---

# Get a workflow

`GET /workflows/{workflow_id}`

Returns a single workflow, scoped to the caller's org (workflows in other orgs return 404).

## Path parameters

- `workflow_id` string, uuid, required — workflow identifier

## Response `200`

OK

- WorkflowResponse — Full workflow record with embedded stats.
  - `$schema` string, uri — A URL to the JSON Schema for this object.
  - `stats` WorkflowStats, required — WorkflowStats summarizes run statistics for a workflow.
    - `success_rate` number, double, required — Fraction of runs that completed successfully, from 0.0 to 1.0 (multiply by 100 for a percentage).
    - `total_runs` integer, required — Total number of runs for this workflow.
  - `workflow` WorkflowSummary, required — A workflow: a saved automation that runs against a phone.
    - `capture` boolean, required — Whether this workflow's runs capture media into the org's file library (default true).
    - `created_at` string, date-time, required — When the workflow was created.
    - `id` string, uuid, required — Workflow identifier.
    - `last_run_at` string, date-time, nullable, required — When the workflow last ran; absent if never run.
    - `name` string, required — Workflow name.
    - `ocr_engine` 'free' | 'premium', required — OCR engine the workflow runs with.
    - `organization_id` string, uuid, nullable, required — Organization the workflow belongs to.
    - `platform` 'android' | 'ios' | 'both', required — Target platform.
    - `recording` boolean, required — Whether this workflow's runs record their screen (default true).
    - `status` 'ready' | 'training' | 'running', required — Workflow lifecycle status.
    - `telemetry` boolean, required — Whether this workflow's runs persist telemetry spans (default true).
    - `updated_at` string, date-time, required — When the workflow was last updated.
    - `user_id` string, uuid, required — User who created the workflow.

## Other responses

- `404` — Not Found
- `422` — Unprocessable Entity
- `500` — Internal Server Error

## Changes

> 18 revisions in range; 5 could not be searched.

- **2026-08-05** `108ab4b41051` — 3 info
  - added the required property `workflow/capture` to the response with the `200` status
  - added the required property `workflow/recording` to the response with the `200` status
  - added the required property `workflow/telemetry` to the response with the `200` status
- **2026-07-23** `5a989777701c` — 1 breaking
  - for the `path` request parameter `workflow_id`, the type/format was changed from `string`/`` to `string`/`uuid`

[Change history](https://skmtc.dev/axilioai/apis/axilio-api/changes/workflows/:workflow_id/get.md)

---

[API](https://skmtc.dev/axilioai/apis/axilio-api.md) · [All operations](https://skmtc.dev/axilioai/apis/axilio-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/axilioai/axilio-api/revisions/8a66f81813b3/schema)
