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

# Get how a task runs

> How the task runs: the MCP servers its harness is given and why it lacks the others its repository declares, the slash commands its harness reported, its agent segments and runtime intervals, and its workspace's latest warning. Any member of the task's organization may read it, a viewer included; a billing member is refused with 403 org_role_insufficient. A task outside the caller's reach is 404 not_found.



## OpenAPI

````yaml api-reference/openapi.json GET /tasks/{taskID}/runtime
openapi: 3.1.0
info:
  title: Aether API
  version: 0.1.0
servers:
  - url: https://api.runaether.dev
security:
  - bearerAuth: []
paths:
  /tasks/{taskID}/runtime:
    get:
      tags:
        - tasks
      summary: Get how a task runs
      description: >-
        How the task runs: the MCP servers its harness is given and why it lacks
        the others its repository declares, the slash commands its harness
        reported, its agent segments and runtime intervals, and its workspace's
        latest warning. Any member of the task's organization may read it, a
        viewer included; a billing member is refused with 403
        org_role_insufficient. A task outside the caller's reach is 404
        not_found.
      operationId: getTaskRuntime
      parameters:
        - in: path
          name: taskID
          required: true
          schema:
            format: uuid
            pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskRuntime'
          description: OK
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TasksErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrgAuthorizationErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TasksErrorResponse'
          description: Not Found
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TasksErrorResponse'
          description: Unprocessable Entity
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TasksErrorResponse'
          description: Internal Server Error
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TasksErrorResponse'
          description: Service Unavailable
components:
  schemas:
    TaskRuntime:
      additionalProperties: false
      properties:
        agent_segments:
          items:
            $ref: '#/components/schemas/TaskAgentSegment'
          type: array
        idle_turn_hold_until:
          description: >-
            When the task's turn-end hold ends: the workspace stays running
            until then whatever the app's activity. Absent when no hold applies.
          format: date-time
          type: string
        latest_workspace_warning:
          minLength: 1
          type: string
        mcp_servers:
          items:
            $ref: '#/components/schemas/TaskMcpServer'
          type: array
        repo_mcp_server_notes:
          items:
            minLength: 1
            type: string
          type: array
        repo_mcp_server_skips:
          items:
            $ref: '#/components/schemas/RepoMcpServerSkip'
          type: array
        runtime_intervals:
          items:
            $ref: '#/components/schemas/TaskRuntimeInterval'
          type: array
        slash_commands:
          items:
            $ref: '#/components/schemas/TaskSlashCommand'
          type: array
      required:
        - mcp_servers
        - repo_mcp_server_notes
        - repo_mcp_server_skips
        - agent_segments
        - runtime_intervals
      type: object
    TasksErrorResponse:
      additionalProperties: false
      properties:
        code:
          enum:
            - account_deleting
            - aether_inference_unserved
            - agent_pr_blocked
            - agent_pr_pending
            - agent_profile_changed
            - app_identity_missing
            - attribution_unavailable
            - bad_gateway
            - bad_request
            - caller_inactive
            - conflict
            - connection_harness_mismatch
            - connection_not_held
            - contents_write_required
            - continuation_failed
            - continuation_unavailable
            - control_forbidden
            - creator_github_access_missing
            - embeddings_unavailable
            - fix_not_requested
            - fix_requests_unrecorded
            - forbidden
            - fork_branch_delete_unsupported
            - fork_forbidden
            - gateway_timeout
            - github_claim_unverified
            - github_failed
            - github_identity_mismatch
            - github_identity_required
            - github_push_access_required
            - github_reconnect_required
            - github_ref_not_found
            - gone
            - handed_branch_protected
            - idempotency_key_reused
            - inference_proxy_unavailable
            - insufficient_credits
            - insufficient_inference_balance
            - internal_error
            - invalid_request
            - mcp_server_not_connected
            - message_not_queued
            - method_not_allowed
            - mode_forbidden
            - no_dispatch_target
            - not_acceptable
            - not_found
            - not_implemented
            - onboarding_already_completed
            - onboarding_requirements_missing
            - org_role_insufficient
            - org_suspended
            - payment_required
            - pr_review_actor_required
            - pr_review_publish_forbidden
            - precondition_failed
            - project_archived
            - project_has_no_repository
            - project_repo_disconnected
            - project_repository_differs
            - pull_request_closed
            - pull_request_mirror_failed
            - pull_request_not_mirrored
            - push_file_too_large
            - push_rejected
            - push_secret_detected
            - queued_stop_requires_discard
            - rate_limited
            - repository_administration_not_granted
            - repository_already_connected
            - repository_create_forbidden
            - repository_create_rejected
            - repository_created_not_linked
            - repository_owner_not_caller
            - request_canceled
            - request_timeout
            - request_too_large
            - save_in_progress
            - save_requires_task_creator
            - service_unavailable
            - stack_cycle
            - stack_too_large
            - stack_two_parents
            - stale_execution
            - stale_or_indeterminate
            - stale_pending_input
            - stream_delivery_gap
            - stream_event_conflict
            - task_already_saved
            - task_awaiting_message
            - task_awaiting_tool_response
            - task_bound_at_creation
            - task_branch_diverged
            - task_branch_is_default
            - task_branch_mismatch
            - task_branch_missing
            - task_connection_disconnected
            - task_creator_deleted
            - task_executing
            - task_file_too_large
            - task_has_no_commits
            - task_has_no_files
            - task_has_no_repository
            - task_history_has_merges
            - task_ineligible
            - task_is_child
            - task_not_accepting_messages
            - task_not_pinnable
            - task_not_started
            - task_rebase_in_progress
            - task_settings_changed
            - teleport_unavailable
            - unauthenticated
            - unsigned_aether_head
            - unsigned_commit
            - unsupported_changes
            - unsupported_media_type
            - untyped_error
            - validation_failed
            - working_tree_dirty
            - workspace_git_unavailable
            - workspace_gone
            - workspace_outdated
            - workspace_rejected
          minLength: 1
          type: string
        error:
          minLength: 1
          type: string
        errors:
          items:
            $ref: '#/components/schemas/ErrorDetail'
          type: array
      required:
        - error
        - code
      type: object
    OrgAuthorizationErrorResponse:
      additionalProperties: false
      properties:
        code:
          enum:
            - org_membership_required
            - org_role_insufficient
            - org_suspended
            - account_deleting
            - agent_host_route_not_allowed
            - credential_kind_not_admitted
          type: string
        error:
          minLength: 1
          type: string
      required:
        - error
        - code
      type: object
    TaskAgentSegment:
      additionalProperties: false
      properties:
        end_reason:
          enum:
            - completed
            - awaiting_input
            - errored
            - interrupted
          type:
            - string
            - 'null'
        ended_at:
          format: date-time
          type:
            - string
            - 'null'
        id:
          format: uuid
          type: string
        ran_on:
          anyOf:
            - $ref: '#/components/schemas/TaskRanOn'
            - type: 'null'
        started_at:
          format: date-time
          type: string
        task_id:
          format: uuid
          type: string
        tokens_in:
          format: int64
          minimum: 0
          type: integer
        tokens_out:
          format: int64
          minimum: 0
          type: integer
      required:
        - id
        - task_id
        - started_at
        - ended_at
        - tokens_in
        - tokens_out
        - end_reason
        - ran_on
      type: object
    TaskMcpServer:
      discriminator:
        mapping:
          catalog: '#/components/schemas/TaskMcpCatalogServer'
          repo: '#/components/schemas/TaskMcpRepoServer'
        propertyName: source
      oneOf:
        - $ref: '#/components/schemas/TaskMcpCatalogServer'
        - $ref: '#/components/schemas/TaskMcpRepoServer'
    RepoMcpServerSkip:
      additionalProperties: false
      properties:
        file:
          enum:
            - .mcp.json
            - .codex/config.toml
          type: string
        reason:
          description: Why the task is not given it, end-user copy.
          minLength: 1
          type: string
        server:
          description: >-
            The server as the file names it; null when the whole file is
            skipped.
          minLength: 1
          type:
            - string
            - 'null'
      required:
        - file
        - server
        - reason
      type: object
    TaskRuntimeInterval:
      additionalProperties: false
      properties:
        cpu_kind:
          enum:
            - shared
            - performance
          type: string
        cpus:
          format: int64
          minimum: 0
          type: integer
        end_reason:
          enum:
            - halted
            - terminated
          type:
            - string
            - 'null'
        ended_at:
          format: date-time
          type:
            - string
            - 'null'
        gpu_kind:
          enum:
            - a10
            - l40s
            - a100-40gb
            - a100-80gb
          type:
            - string
            - 'null'
        id:
          format: uuid
          type: string
        machine_id:
          minLength: 1
          type: string
        memory_mb:
          format: int64
          minimum: 0
          type: integer
        started_at:
          format: date-time
          type: string
        task_id:
          format: uuid
          type: string
        volume_size_gb:
          format: int64
          minimum: 0
          type: integer
        workspace_id:
          format: uuid
          type:
            - string
            - 'null'
      required:
        - id
        - task_id
        - workspace_id
        - machine_id
        - started_at
        - ended_at
        - end_reason
        - cpu_kind
        - cpus
        - memory_mb
        - volume_size_gb
        - gpu_kind
      type: object
    TaskSlashCommand:
      additionalProperties: true
      properties:
        description:
          type: string
        input:
          additionalProperties: true
          properties:
            hint:
              type: string
          required:
            - hint
          type: object
        name:
          type: string
      required:
        - name
        - description
      type: object
    ErrorDetail:
      additionalProperties: false
      properties:
        location:
          description: >-
            Where the error occurred, e.g. 'body.items[3].tags' or
            'path.thing-id'
          type: string
        message:
          description: Error message text
          type: string
        value:
          description: The value at the given location
      type: object
    TaskRanOn:
      discriminator:
        mapping:
          aether: '#/components/schemas/TaskRanOnAether'
          disconnected: '#/components/schemas/TaskRanOnDisconnected'
          stored: '#/components/schemas/TaskRanOnStored'
        propertyName: runs_on
      oneOf:
        - $ref: '#/components/schemas/TaskRanOnAether'
        - $ref: '#/components/schemas/TaskRanOnStored'
        - $ref: '#/components/schemas/TaskRanOnDisconnected'
    TaskMcpCatalogServer:
      additionalProperties: false
      properties:
        display_name:
          minLength: 1
          type: string
        key:
          minLength: 1
          type: string
        source:
          enum:
            - catalog
          type: string
      required:
        - key
        - display_name
        - source
      type: object
    TaskMcpRepoServer:
      additionalProperties: false
      properties:
        display_name:
          minLength: 1
          type: string
        key:
          minLength: 1
          type: string
        repo_file:
          enum:
            - .mcp.json
            - .codex/config.toml
          type: string
        source:
          enum:
            - repo
          type: string
      required:
        - key
        - display_name
        - source
        - repo_file
      type: object
    TaskRanOnAether:
      additionalProperties: false
      properties:
        runs_on:
          enum:
            - aether
          type: string
      required:
        - runs_on
      type: object
    TaskRanOnDisconnected:
      additionalProperties: false
      properties:
        name:
          minLength: 1
          type: string
        option:
          enum:
            - claude_plan
            - anthropic_api_key
            - chatgpt_plan
            - openai_api_key
            - openrouter_api_key
            - opencode_auth_file
          type: string
        runs_on:
          enum:
            - disconnected
          type: string
      required:
        - runs_on
        - option
        - name
      type: object
    TaskRanOnStored:
      additionalProperties: false
      properties:
        id:
          format: uuid
          type: string
        name:
          minLength: 1
          type: string
        option:
          enum:
            - claude_plan
            - anthropic_api_key
            - chatgpt_plan
            - openai_api_key
            - openrouter_api_key
            - opencode_auth_file
          type: string
        runs_on:
          enum:
            - stored
          type: string
      required:
        - runs_on
        - id
        - option
        - name
      type: object
  securitySchemes:
    bearerAuth:
      bearerFormat: JWT
      scheme: bearer
      type: http

````

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