---
title: "Get an 'ask-questions' job"
method: GET
path: "/robots/v1/jobs/ask-questions/{JOB_ID}"
tags: ["Ask Questions"]
---

# Get an 'ask-questions' job

`GET /robots/v1/jobs/ask-questions/{JOB_ID}`

## Request

- Base URL: `https://api.mux.com`
- URL: `https://api.mux.com/robots/v1/jobs/ask-questions/{JOB_ID}`
- Auth: one of:
  - HTTP basic
  - HTTP bearer

Retrieves the current status and results of an 'ask-questions' job. Jobs are automatically deleted after 30 days.

## Path parameters

- `JOB_ID` string, required: Robots job ID returned by job creation or listing (rjob_...).

## Response `200`

Current job status and outputs

- AskQuestionsJobResponse
  - `data` AskQuestionsJob, required
    - `id` string, required: Unique job identifier.
    - `passthrough` string: Arbitrary string supplied at creation, returned as-is.
    - `units_consumed` integer, required: Number of Mux AI units consumed by this job.
    - `directive` JobDirectiveContext: The directive run that dispatched this job. Absent for jobs created via direct API POST.
      - `id` string, required: ID of the directive that dispatched this job.
      - `run_id` string, required: ID of the specific directive run that dispatched this job.
    - `created_at` integer, required: Unix timestamp (seconds) when the job was created.
    - `updated_at` integer, required: Unix timestamp (seconds) of the job's last state transition (e.g. when it started processing or reached a terminal state).
    - `workflow` 'ask-questions', required
    - `parameters` AskQuestionsJobParameters, required
      - `asset_id` string, required: The Mux asset ID of the video to analyze.
      - `questions` object[], required: One or more questions to ask about the video, up to 50. Each question can either select from answer_options (defaults to yes/no) or, by setting free_form_reply: true, receive a free-form prose answer.
        - `question` string, required: The question to ask about the video content. Maximum 600 characters.
        - `answer_options` string[]: Allowed answer values for this question. Defaults to ["yes", "no"] when omitted and free_form_reply is not true. Mutually exclusive with free_form_reply. Each option is a short label of at most 150 characters.
        - `free_form_reply` boolean: When true, the model replies with free-form prose instead of selecting from answer_options. Mutually exclusive with answer_options. Treat the answer as untrusted model output.
      - `language_code` string: BCP 47 language code of the caption source. An explicit language must match a ready source exactly, including case; for example, en does not match en-US. Translation target exclusion and track replacement instead compare base languages case-insensitively. When omitted, automatic selection applies. Uses the first ready subtitle in asset track order without English preference. Audio-only assets with one ready text track lacking subtitle metadata can use that legacy transcript.
      - `max_free_form_answer_length` integer: Max character length for free-form answers, between 1 and 1000. Ignored unless at least one question sets free_form_reply: true.
      - `output_steering` AskQuestionsOutputSteering: Curated controls that optionally restrict question answering to an asset time range.
        - `scope` object: Optional execution window in seconds on the original asset timeline. Omit start_time to begin at the asset start and omit end_time to continue through the asset end. Answers are generated only from media within this window, while returned timestamps remain absolute asset timestamps.
          - `start_time` number: Start of the execution window in seconds from the beginning of the media. When omitted, the window starts at the beginning.
          - `end_time` number: End of the execution window in seconds from the beginning of the media. When omitted, the window extends to the end.
    - `status` 'pending' | 'processing' | 'completed' | 'errored' | 'cancelled', required: Current job status.
    - `errors` JobError[]: Error details. Present when status is 'errored'.
      - `type` string, required: Stable public error category identifier.
      - `message` string, required: Human-readable public error message.
      - `retryable` boolean: Whether retrying this job may resolve the error.
    - `resources` Resources: Related Mux resources linked to this job.
      - `assets` SlimlineAsset[], required: Mux assets associated with this job.
        - `id` string, required: Mux asset ID.
        - `meta` object: Mux asset metadata, if available.
          - `title` string: Asset title from Mux metadata.
          - `creator_id` string: Creator identifier from Mux metadata.
          - `external_id` string: External identifier from Mux metadata.
        - `passthrough` string: Passthrough string from the Mux asset.
        - `_links` object, required: Hypermedia links for the asset.
          - `self` object, required
            - `href` string, required: URL to the Mux asset resource.
    - `outputs` AskQuestionsJobOutputs: Workflow results. Present when status is 'completed'.
      - `answers` object[], required: One answer per question, in the same order as the input questions.
        - `question` string, required: The original question that was asked.
        - `answer` string, nullable, required: For enum questions, constrained to one of the provided answer_options. For free-form questions, responds with prose up to max_free_form_answer_length characters - treat as untrusted model output. Null when the question was skipped.
        - `confidence` number, required: Confidence score from 0.0 to 1.0. Values above 0.9 indicate clear, unambiguous evidence; 0.7-0.9 strong evidence with minor ambiguity; 0.5-0.7 moderate evidence; below 0.5 weak or uncertain evidence. Always 0 when skipped.
        - `reasoning` string, required: Explanation citing specific visual or audio evidence from the video, or why the question was skipped.
        - `skipped` boolean, required: Whether the question was skipped due to irrelevance to the video content.

## Other responses

- `401`: Missing or invalid Mux credentials
- `403`: The access token lacks robots:read (insufficient_scope), or Robots access is inactive or suspended. For insufficient_scope, use credentials with the required permission. If using an API access token, create a replacement token with that permission. Enabling Robots for an organization does not grant token permissions.
- `404`: No job exists for the supplied id
- `422`: Invalid job ID
- `500`: Server error

## Changes

- **2026-10-23** `ed6cb570d60c`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/muxinc/apis/mux-api/changes/robots/v1/jobs/ask-questions/:JOB_ID/get.md)

---

[API](https://skmtc.dev/muxinc/apis/mux-api.md) - [All operations](https://skmtc.dev/muxinc/apis/mux-api/llms.txt) - [OpenAPI document](https://skmtc.dev/muxinc/apis/mux-api/revisions/75b4251a1d96?raw)
