---
title: "POST robots.v1.job.analyze_structure.pending"
method: POST
path: "robots.v1.job.analyze_structure.pending"
---

# POST robots.v1.job.analyze_structure.pending

`POST robots.v1.job.analyze_structure.pending` (webhook)

## Payload

- object
  - `type` 'robots.v1.job.analyze_structure.pending', required: Type for the webhook event
  - `id` string, required: Unique identifier for the event
  - `created_at` string, date-time, required: Time the event was created
  - `object` object, required
    - `type` string, required
    - `id` string, required
  - `environment` object, required
    - `name` string, required: Name for the environment
    - `id` string, required: Unique identifier for the environment
  - `attempts` object[], required: Attempts for sending out the webhook event
    - `webhook_id` integer: Unique identifier for the webhook
    - `response_status_code` integer: HTTP response status code for the webhook attempt
    - `response_headers` object: HTTP response headers for the webhook attempt
    - `response_body` string, nullable: HTTP response body for the webhook attempt
    - `max_attempts` integer: Max attempts number for the webhook attempt
    - `id` string: Unique identifier for the webhook attempt
    - `created_at` string, date-time: Time the webhook request was attempted
    - `address` string: URL address for the webhook attempt
  - `data` object, required: Version 1 job delivered in the Mux webhook event data field. The event type identifies its workflow and transition.
    - `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` object: 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` 'analyze-structure', required
    - `parameters` object, required
      - `asset_id` string, required: The Mux asset ID of the video to analyze.
      - `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.
      - `output_language_code` string: BCP 47 language code for generated text. Auto-detected from available evidence when omitted.
      - `output_steering` object: Curated controls that restrict Analyze Structure execution or guide its generated metadata without exposing raw prompt editing. The scope start is inclusive, the end is exclusive, and returned timestamps remain absolute.
        - `scope` object: Optional media execution window. Results remain timestamped against the original media timeline.
          - `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.
        - `audience` string: Intended audience used as best-effort guidance without changing the output schema.
        - `brand_terms` string[]: Preferred brand or domain terms to use when supported by the source content.
        - `topic_taxonomy` object: Controlled vocabulary used as best-effort guidance for generated labels and concepts.
          - `name` string: Optional customer-facing name for the taxonomy.
          - `values` object[], required: Controlled vocabulary values used as best-effort model guidance.
            - `label` string, required: Canonical taxonomy value to prefer when supported by the source content.
            - `description` string: Short explanation of when this value applies.
            - `aliases` string[]: Accepted alternate names that should normalize to the canonical label.
          - `allow_other` boolean, required: When false, the model should prefer values from the taxonomy. When true, non-taxonomy values may be used when no taxonomy value applies.
        - `granularity` 'coarse' | 'balanced' | 'fine': Best-effort guidance that moves scene and chapter density together.
      - `update_asset_meta` boolean: When true, writes the generated title to asset.meta.title after analysis. Defaults to false. Best-effort: a metadata-write failure does not fail the analysis. Check outputs.asset_updates.title for the outcome.
      - `update_asset_chapters` boolean: When true, replaces or creates the asset's chapters track after analysis. Defaults to false. Best-effort: a chapters-write failure does not fail the analysis. Check outputs.asset_updates.chapters for the outcome.
    - `status` 'pending' | 'processing' | 'completed' | 'errored' | 'cancelled', required: Current job status.
    - `errors` object[]: 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` object: Related Mux resources linked to this job.
      - `assets` object[], 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` object: Workflow results. Present when status is 'completed'.
      - `title` string, required: Generated title for the analyzed media.
      - `summary` string, required: Generated summary of the analyzed media.
      - `tags` string[], required: Generated tags. Always present and empty when no tag qualifies.
      - `chapters` object[], required: Generated chapters in timeline order. Always present and empty below the chapter threshold.
        - `start_time` number, required: Chapter start time in seconds on the original asset timeline. Fractional seconds are supported.
        - `end_time` number, required: Chapter end time in seconds on the original asset timeline. Fractional seconds are supported.
        - `title` string, required: Concise chapter title.
      - `scenes` object[], required: Generated scenes in timeline order. Always present and empty for audio-only media.
        - `start_time` number, required: Scene start time in seconds on the original asset timeline. Fractional seconds are supported.
        - `end_time` number, required: Scene end time in seconds on the original asset timeline. Fractional seconds are supported.
        - `title` string, required: Short human-readable title for the scene.
        - `cues` object[], required: Transcript cues overlapping this scene. Empty when no usable transcript evidence is available.
          - `start_time` number, required: Cue start time in seconds on the original asset timeline. Fractional seconds are supported.
          - `end_time` number, required: Cue end time in seconds on the original asset timeline. Fractional seconds are supported.
          - `text` string, required: Transcript text for this cue.
        - `audible_narrative` string: Summary of what is said during the scene, when transcript evidence supports one.
        - `visual_narrative` string: Summary of what visually happens during the scene.
        - `blended_narrative` string: Combined audible and visual takeaway when both evidence types are meaningfully present.
        - `notable_audible_concepts` string[]: Evidence-grounded concepts from the audible content.
        - `notable_visual_concepts` object[]: Scored concepts from the visual content.
          - `concept` string, required: Evidence-grounded visual concept containing 2-5 words.
          - `score` number, required: Relevance score from 0.0 to 1.0.
          - `rationale` string, required: Brief explanation of the relevance score.
        - `shots` object[]: Optional ordered shot or beat breakdown within the scene.
          - `start_time` number, required: Shot or beat start time in seconds on the original asset timeline. Fractional seconds are supported.
          - `end_time` number, required: Shot or beat end time in seconds on the original asset timeline. Fractional seconds are supported.
          - `visual_description` string, required: Short description of what happens during this shot or beat.
        - `shot_count` integer, required: Number of source shots or visual beats grouped into the scene.
      - `key_moments` object[], required: Generated key moments in timeline order. Always present and empty when no moment qualifies.
        - `start_time` number, required: Key moment start time in seconds on the original asset timeline. Fractional seconds are supported.
        - `end_time` number, required: Key moment end time in seconds on the original asset timeline. Fractional seconds are supported.
        - `overall_score` number, required: Overall evidence-grounded quality score from 0.0 to 1.0.
        - `title` string, required: Short title for the key moment.
        - `cues` object[], required: Transcript cues overlapping this key moment. Empty when no usable transcript evidence is available.
          - `start_time` number, required: Cue start time in seconds on the original asset timeline. Fractional seconds are supported.
          - `end_time` number, required: Cue end time in seconds on the original asset timeline. Fractional seconds are supported.
          - `text` string, required: Transcript text for this cue.
        - `quotable_segment` object: Best short verbatim quote from the moment when one is supported.
          - `time` number, required: Quote start time in seconds on the original asset timeline. Fractional seconds are supported.
          - `text` string, required: Verbatim transcript quote selected from the key moment.
        - `audible_narrative` string: Summary of what is said during the moment.
        - `notable_audible_concepts` string[]: Evidence-grounded concepts from the audible content.
        - `visual_narrative` string: Summary of what visually happens during the moment.
        - `notable_visual_concepts` object[]: Scored concepts from the visual content.
          - `concept` string, required: Evidence-grounded visual concept containing 2-5 words.
          - `score` number, required: Relevance score from 0.0 to 1.0.
          - `rationale` string, required: Brief explanation of the relevance score.
      - `asset_updates` object: Best-effort outcomes for attempted asset updates. Omitted when no update was attempted, including when only chapters were requested but none were generated.
        - `title` object: Present when a title update was requested.
          - `status` 'updated' | 'failed', required: Outcome of the requested asset title update.
        - `chapters` object: Present when a chapters update was attempted. Omitted when no chapters were generated; any existing chapters track is left unchanged. When status is `failed` and replaced_track_ids is nonempty, deletion succeeded but replacement creation failed, leaving the asset without a chapters track.
          - `status` 'created' | 'failed', required: Outcome of the requested chapters track update.
          - `track_id` string: ID of the newly created chapters track.
          - `replaced_track_ids` string[]: IDs of tracks deleted during replacement. Omitted when no deletions were recorded; historical jobs may lack this information.

## Acknowledgement `200`

Return a 200 to indicate that the data was received successfully

---

[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)
