---
title: "Get Rio Motion-agent job status"
method: GET
path: "/sessions/{job_id}"
---

# Get Rio Motion-agent job status

`GET /sessions/{job_id}`

## Path parameters

- `job_id` string, required

## Response `200`

Job status

- MotionJobStatus
  - `job_id` string, required
  - `status` 'queued' | 'created' | 'running' | 'awaiting_user_input' | 'completed' | 'failed', required
  - `chat_url` string, uri, nullable — Motion app chat URL for a human to open, inspect, or continue the run. Null for legacy jobs without a Motion agent chat.
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required
  - `completed_at` string, date-time, nullable, required
  - `error` string, nullable, required
  - `pending_user_input` boolean, required
  - `output` MotionJobOutput, required
    - `status` 'pending' | 'queued' | 'processing' | 'completed' | 'failed' | 'outdated', required
    - `download_url` string, uri, nullable, required — Signed MP4 download URL. Present only when status is completed.
    - `expires_at` string, date-time, nullable, required — Expiration timestamp for download_url.
    - `completed_at` string, date-time, nullable, required
    - `error` string, nullable, required
  - `sources` MotionCompositionSource[] — Additive source-asset audit list for media currently used in the composition. Empty when no source assets are recorded yet. Internal storage paths, filenames, and GCS URIs are not exposed.
    - `id` string, required
    - `source_kind` 'licensed_library' | 'article' | 'web_search' | 'web' | 'connector' | 'upload' | 'generated' | 'unknown', required — How the asset was acquired.
    - `provider` string, required — Provider or origin, such as getty, pexels, perplexity, github, or an article domain.
    - `provider_asset_id` string, nullable, required — Provider-specific asset ID when available.
    - `source_url` string, uri, nullable, required — Canonical public source URL when available.
    - `display_url` string, uri, nullable, required — Preview/display URL when available.
    - `source_domain` string, nullable, required
    - `media_type` 'image' | 'video' | 'audio' | 'file' | 'unknown', required
    - `title` string, nullable, required
    - `credit` string, nullable, required
    - `rights_status` 'licensed' | 'public' | 'restricted' | 'user_provided' | 'generated' | 'unknown', required — Best-known rights category for the source asset.
    - `usages` MotionCompositionSourceUsage[], required
      - `start_seconds` number, nullable — Timeline start time in seconds when known.
      - `end_seconds` number, nullable — Timeline end time in seconds when known.
      - `duration_seconds` number, nullable — Timeline duration in seconds when known.
      - `scene_id` string, nullable
      - `scene_index` number, nullable
      - `slot_key` string, nullable
      - `element_tag` string, nullable — Composition element tag such as img, video, audio, or source.
      - `composition_file` string, nullable
      - `composition_id` string, nullable
      - `track_index` number, nullable
    - `source_metadata` object, required — Provider/source-specific public metadata. Shape varies by source kind and provider.
    - `rights_metadata` object, required — Provider/license-specific rights metadata. Shape varies by source kind and provider.

## Other responses

- `401` — Missing or invalid Mosaic Motion API key
- `404` — Job not found or not owned by API key user

---

[API](https://skmtc.dev/motion/apis/mosaic-motion.md) · [All operations](https://skmtc.dev/motion/apis/mosaic-motion/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/motion/mosaic-motion/revisions/15f372c6ad03/schema)
