> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mobilerun.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Get execution details

> Fetch a single flow execution by its ID, including its status, kind, result or error, and start/finish timestamps. Returns 404 if no execution matches.



## OpenAPI

````yaml /api-reference/workflows.yaml get /executions/{executionId}
openapi: 3.1.0
info:
  title: Workflows
  version: v1
servers:
  - description: Droidrun Cloud API
    url: https://api.mobilerun.ai/v1
security:
  - bearerAuth: []
paths:
  /executions/{executionId}:
    get:
      tags:
        - Executions
      summary: Get execution details
      description: >-
        Fetch a single flow execution by its ID, including its status, kind,
        result or error, and start/finish timestamps. Returns 404 if no
        execution matches.
      operationId: getExecution
      parameters:
        - in: path
          name: executionId
          required: true
          schema:
            format: uuid
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: '#/components/schemas/FlowExecutionDetail'
                required:
                  - data
                type: object
          description: Execution details
        '404':
          content:
            application/json:
              schema:
                properties:
                  error:
                    type: string
                required:
                  - error
                type: object
          description: Not Found
      x-codeSamples:
        - lang: JavaScript
          source: |-
            import Mobilerun from '@mobilerun/sdk';

            const client = new Mobilerun({
              apiKey: process.env['MOBILERUN_CLOUD_API_KEY'], // This is the default and can be omitted
            });

            const execution = await client.workflows.executions.retrieve(
              '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
            );

            console.log(execution.data);
        - lang: Python
          source: |-
            import os
            from mobilerun_sdk import Mobilerun

            client = Mobilerun(
                api_key=os.environ.get("MOBILERUN_CLOUD_API_KEY"),  # This is the default and can be omitted
            )
            execution = client.workflows.executions.retrieve(
                "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
            )
            print(execution.data)
components:
  schemas:
    FlowExecutionDetail:
      allOf:
        - $ref: '#/components/schemas/FlowExecution'
        - properties:
            createdBy:
              format: uuid
              type:
                - string
                - 'null'
            files:
              description: >-
                Files produced by files.upload steps, plus files an agent.run
                step reported on its terminal response (agent-created output or
                a workflow upload minted during the turn); derived server-side
                at read time.
              items:
                $ref: '#/components/schemas/ExecutionFile'
              type: array
            recordings:
              description: >-
                Durable recording segments ordered by step/loop coordinate and
                retry attempt. Whole-flow recordings use -1 for every
                coordinate.
              items:
                properties:
                  attempt:
                    minimum: 0
                    type: integer
                  childIndex:
                    type: integer
                  flowActionId:
                    format: uuid
                    type:
                      - string
                      - 'null'
                  id:
                    format: uuid
                    type: string
                  iterationIndex:
                    type: integer
                  lastError:
                    type:
                      - string
                      - 'null'
                  parentIndex:
                    type: integer
                  recordingDeviceId:
                    format: uuid
                    type:
                      - string
                      - 'null'
                  recordingId:
                    format: uuid
                    type:
                      - string
                      - 'null'
                  scope:
                    enum:
                      - flow
                      - step
                    type: string
                  startedAt:
                    type:
                      - string
                      - 'null'
                  status:
                    enum:
                      - starting
                      - recording
                      - stopping
                      - stopped
                      - failed
                    type: string
                  stepIndex:
                    type: integer
                  stoppedAt:
                    type:
                      - string
                      - 'null'
                required:
                  - id
                  - flowActionId
                  - stepIndex
                  - parentIndex
                  - iterationIndex
                  - childIndex
                  - attempt
                  - scope
                  - status
                  - recordingId
                  - recordingDeviceId
                  - startedAt
                  - stoppedAt
                  - lastError
                type: object
              type: array
          required:
            - createdBy
            - recordings
            - files
          type: object
    FlowExecution:
      properties:
        deviceId:
          description: >-
            Device this execution targets (the job's deviceId). Null for
            device-less (event-only) runs.
          format: uuid
          type:
            - string
            - 'null'
        error:
          type:
            - string
            - 'null'
        eventId:
          format: uuid
          type:
            - string
            - 'null'
        finishedAt:
          type:
            - string
            - 'null'
        flowId:
          format: uuid
          type: string
        flowName:
          type:
            - string
            - 'null'
        id:
          format: uuid
          type: string
        invocationId:
          description: >-
            Client/verify invocation key this row belongs to. Set on live custom
            fires (one row per device fan-out) and on verification runs; null
            for event/schedule live rows.
          format: uuid
          type:
            - string
            - 'null'
        kind:
          enum:
            - live
            - dry_run
            - verification
          type: string
        recordingDeviceId:
          format: uuid
          type:
            - string
            - 'null'
        recordingId:
          description: >-
            Device-recording id (devices-api) for this execution, set once the
            worker starts a recording. Null when the flow has recording
            disabled, no device is bound, or the recording failed to start.
          format: uuid
          type:
            - string
            - 'null'
        result:
          description: >-
            Opaque per-step result blob ({ steps: [...] }). Each step
            additionally carries a `verdict` field ({ outcome, summary, reason?
            } | null) when it is an agent.run step that opted into a verdict —
            null otherwise. Table-backed steps (current executions) also carry a
            `status` string (e.g. success/failed/stopped, see deriveStepStatus);
            it is optional and absent on legacy blob-only executions, so clients
            must not assume its presence.
        startedAt:
          type:
            - string
            - 'null'
        status:
          enum:
            - pending
            - running
            - success
            - failed
            - cancelled
            - skipped
            - invalid
          type:
            - string
            - 'null'
        triggerId:
          format: uuid
          type: string
        triggerName:
          type:
            - string
            - 'null'
      required:
        - id
        - flowId
        - triggerId
        - eventId
        - invocationId
        - deviceId
        - flowName
        - triggerName
        - status
        - kind
        - error
        - recordingId
        - recordingDeviceId
        - startedAt
        - finishedAt
      type: object
    ExecutionFile:
      properties:
        fileId:
          format: uuid
          type: string
        filename:
          type: string
        mimeType:
          type: string
        sizeBytes:
          minimum: 0
          type: integer
      required:
        - fileId
        - filename
        - mimeType
        - sizeBytes
      type: object
  securitySchemes:
    bearerAuth:
      bearerFormat: Opaque
      description: Bearer token via Authorization header
      scheme: bearer
      type: http

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.