---
title: "Per-video ARV document"
method: GET
path: "/public/creators/{slug}/videos/{video_id}/arv.json"
---

# Per-video ARV document

`GET /public/creators/{slug}/videos/{video_id}/arv.json`

## Request

- Base URL: `https://api.agentcdn.com`
- URL: `https://api.agentcdn.com/public/creators/{slug}/videos/{video_id}/arv.json`
- Auth: none declared

Everything ingestion stored for one video, as one document: chapters, shots, visual windows, entities, timed transcript cues when the creator publishes them, and the evidence lists (`speakers`, `audio_spans`, `people_spans`, `products`, `places`, `labels`). Text and times only: no stream URL and no vector. A video the rights policy does not let crawlers search answers 404.

## Path parameters

- `slug` string, required
- `video_id` string, required

## Response `200`

Per-video document wrapped in an ARV response envelope.

- ArvVideoDocumentEnvelope
  - `arv` '1.0', required
  - `success` boolean, required
  - `request_id` string, required
  - `schema_version` 'arv@1.0', required
  - `data` object, nullable, required
    - `asset` object, required
      - `id` string, required
      - `content_hash` string, nullable, required
      - `modified_at` string, date-time
      - `owner_id` string, required
      - `hosting_mode` 'mode_a' | 'mode_b' | 'mode_a_plus', required
      - `media_modality` 'audiovisual' | 'audio_only'
      - `source` object, required
        - `kind` 'upload' | 'byo_hls' | 'youtube_oauth' | 'url_import' | 'google_takeout' | 'mam_connector' | 'podcast_rss', required
        - `source_url` string, uri
        - `ingested_at` string
      - `mux` object
        - `asset_id` string, nullable
        - `playback_id` string, nullable
        - `manifest_url` string, uri, nullable
      - `origin_playback` object
        - `platform` 'youtube' | 'vimeo' | 'tiktok' | 'instagram', required
        - `external_id` string, required
        - `watch_url` string, uri, required
        - `media_fragments_template` string
      - `duration_ms` integer, required
      - `language_primary` string, nullable, required
      - `language` object
        - `code` string, required
        - `confidence` number, nullable, required
        - `source` 'transcription', required
        - `method_version` string, required
        - `segments` object[], required
          - `start_ms` integer, required
          - `end_ms` integer, required
          - `code` string, required
      - `c2pa` object, nullable
        - `credentials_url` string, uri
        - `has_ai_disclosure` boolean
        - `manifest_hash` string
      - `schema_version` string, required
      - `ingested_via_pipeline_version` string, nullable
    - `creator` object, required
      - `id` string, required
      - `handle` string
      - `namespace_url` string, uri, required
      - `verified` boolean, required
      - `verified_via` string[]
      - `trust_signals_url` string, uri
    - `display` object, required
      - `title` string, required
      - `description` string, nullable, required
      - `thumbnail_url` string, uri, nullable, required
      - `publish_date` string, nullable, required
      - `watch_url` string, uri, nullable, required
      - `series` string, nullable
    - `video_facets` object, nullable, required
      - `evidence` object
        - `skill_level` object[]
          - `start_ms` integer, required
          - `end_ms` integer, required
          - `via` 'chapter' | 'on_screen' | 'spoken', required
        - `production_value` object[]
          - `start_ms` integer, required
          - `end_ms` integer, required
          - `via` 'chapter' | 'on_screen' | 'spoken', required
        - `originality_signal` object[]
          - `start_ms` integer, required
          - `end_ms` integer, required
          - `via` 'chapter' | 'on_screen' | 'spoken', required
        - `sponsorship_status` object[]
          - `start_ms` integer, required
          - `end_ms` integer, required
          - `via` 'chapter' | 'on_screen' | 'spoken', required
        - `is_evergreen_or_dated` object[]
          - `start_ms` integer, required
          - `end_ms` integer, required
          - `via` 'chapter' | 'on_screen' | 'spoken', required
        - `tone` object
          - `informative` object[]
            - `start_ms` integer, required
            - `end_ms` integer, required
            - `via` 'chapter' | 'on_screen' | 'spoken', required
          - `inspiring` object[]
            - `start_ms` integer, required
            - `end_ms` integer, required
            - `via` 'chapter' | 'on_screen' | 'spoken', required
          - `humorous` object[]
            - `start_ms` integer, required
            - `end_ms` integer, required
            - `via` 'chapter' | 'on_screen' | 'spoken', required
          - `serious` object[]
            - `start_ms` integer, required
            - `end_ms` integer, required
            - `via` 'chapter' | 'on_screen' | 'spoken', required
          - `emotional` object[]
            - `start_ms` integer, required
            - `end_ms` integer, required
            - `via` 'chapter' | 'on_screen' | 'spoken', required
          - `conversational` object[]
            - `start_ms` integer, required
            - `end_ms` integer, required
            - `via` 'chapter' | 'on_screen' | 'spoken', required
          - `energetic` object[]
            - `start_ms` integer, required
            - `end_ms` integer, required
            - `via` 'chapter' | 'on_screen' | 'spoken', required
          - `calm` object[]
            - `start_ms` integer, required
            - `end_ms` integer, required
            - `via` 'chapter' | 'on_screen' | 'spoken', required
          - `critical` object[]
            - `start_ms` integer, required
            - `end_ms` integer, required
            - `via` 'chapter' | 'on_screen' | 'spoken', required
      - `tone` string[]
      - `skill_level` 'beginner' | 'intermediate' | 'advanced' | 'expert' | 'n_a'
      - `production_value` 'raw' | 'edited_basic' | 'edited_pro' | 'broadcast'
      - `originality_signal` 'firsthand_test' | 'firsthand_expertise' | 'secondhand_review' | 'aggregation' | 'react'
      - `sponsorship_status` 'none' | 'disclosed_sponsor' | 'undisclosed_promo' | 'affiliate' | 'retailer'
      - `affiliate_disclosed` boolean
      - `primary_language` string
      - `is_evergreen_or_dated` 'evergreen' | 'dated'
      - `speech_pace_wpm` integer
      - `audio_quality_class` 'studio' | 'field' | 'phone' | 'low'
      - `background_noise_level` 'quiet' | 'moderate' | 'noisy'
      - `music_presence` 'none' | 'intermittent' | 'constant'
    - `categories` object, nullable
      - `taxonomy_version` string, required
      - `primary` object, required
        - `id` string, required
        - `label` string, required
      - `secondary` object[], required
        - `id` string, required
        - `label` string, required
    - `format` object
      - `label` 'monologue' | 'interview' | 'demo' | 'walkthrough' | 'vlog' | 'reaction' | 'listicle' | 'tutorial' | 'news' | 'panel' | 'review' | 'unknown', required
      - `evidence` object, required
        - `main_speakers` integer, required
        - `minor_speakers` integer, required
        - `main_speaker_shares` number[], required
      - `segments` object[], required
        - `label` 'monologue' | 'interview' | 'demo' | 'walkthrough' | 'vlog' | 'reaction' | 'listicle' | 'tutorial' | 'news' | 'panel' | 'review' | 'unknown', required
        - `start_ms` integer, required
        - `end_ms` integer, required
      - `classifier_version` string, required
    - `custom_metadata` object, nullable, required
    - `chapters` object[], required
      - `id` string, required
      - `chapter_index` integer, required
      - `title` string, required
      - `summary` string, required
      - `transcript_text` string, nullable, required
      - `visual_description` string, nullable
      - `start_ms` integer, required
      - `end_ms` integer, required
      - `duration_ms` integer, required
      - `evidence_grade` 'A' | 'B' | 'C' | 'D', required
      - `confidence_band` 'low' | 'medium' | 'high', required
      - `boundary_snap` object, nullable
        - `rule_applied` 'shot' | 'sentence' | 'word' | 'silence' | 'rights_max' | 'span_anchor', required
        - `snapped_from_ms` integer, required
        - `snapped_to_ms` integer, required
      - `entity_ids` string[]
      - `products_mentioned` string[]
      - `category` object, nullable
        - `id` string, required
        - `label` string, required
    - `visual` union[], required
      - union
        - object
          - `kind` 'window', required
          - `id` string, required
          - `window_index` integer, required
          - `start_ms` integer, required
          - `end_ms` integer, required
          - `duration_ms` integer, required
          - `visual_description` string, nullable, required
          - `on_screen_text` string, nullable, required
          - `facets` object, nullable, required
            - `composition` union
              - …
            - `lighting_class` union
              - …
            - `motion_class` union
              - …
            - `camera_type_hint` union
              - …
            - `dominant_speaker_emotion` union
              - …
            - `facial_expression` union
              - …
          - `products_mentioned` string[], nullable, required
          - `entity_ids` string[], nullable, required
          - `fused_summary` string, nullable, required
        - object
          - `kind` 'shot', required
          - `id` string, required
          - `shot_index` integer, required
          - `start_ms` integer, required
          - `end_ms` integer, required
          - `duration_ms` integer, required
          - `visual_description` string, nullable, required
          - `on_screen_text` string, nullable, required
          - `facets` object, nullable, required
            - `composition` union
              - …
            - `lighting_class` union
              - …
            - `motion_class` union
              - …
            - `camera_type_hint` union
              - …
            - `dominant_speaker_emotion` union
              - …
            - `facial_expression` union
              - …
          - `products_mentioned` string[], nullable, required
          - `entity_ids` string[], nullable, required
          - `transition_kind` string, nullable, required
    - `moments` object[], required
      - `arv` '1.0', required
      - `id` string, required
      - `moment_uri` string, required
      - `moment_url` string, uri
      - `asset_id` string, required
      - `start_ms` integer, required
      - `end_ms` integer, required
      - `snap` 'shot' | 'sentence' | 'word' | 'silence' | 'rights_cap'
      - `title` string
    - `entities` object[], required
      - `id` string, required
      - `canonical_source` 'wikidata' | 'google_places' | 'osm' | 'imdb' | 'musicbrainz' | 'freebase' | 'manual' | 'model', required
      - `canonical_id` string, required
      - `wikidata_qid` string, nullable
      - `display_name` string, required
      - `entity_type` 'Person' | 'Location' | 'Organization' | 'Product' | 'Brand' | 'Event' | 'Work' | 'Other', required
      - `entity_subtype` string, nullable
      - `coordinates` object, nullable
        - `lat` number, required
        - `lng` number, required
      - `aliases` string[]
    - `entity_appearances` object[], required
      - `video_id` string, required
      - `entity_id` string, required
      - `appearance_count` integer, required
      - `total_visible_duration_ms` integer, required
      - `first_appearance_ms` integer, nullable
      - `last_appearance_ms` integer, nullable
      - `appearance_strength` number
      - `shots_appeared_in` string[]
      - `filmed_at_score` number, nullable
      - `present_in_score` number, nullable
      - `relation` 'appears' | 'speaks' | 'mentioned' | 'credited'
    - `model_provenance` object, required
      - `transcription` object
        - `provider` string, required
        - `model` string, required
        - `version` string, required
        - `ran_at` string
        - `channels` string[]
        - `task_hints` object
        - `methodology_version` string
      - `shot_detection` object
        - `provider` string, required
        - `model` string, required
        - `version` string, required
        - `ran_at` string
        - `channels` string[]
        - `task_hints` object
        - `methodology_version` string
      - `visual_captions` object
        - `provider` string, required
        - `model` string, required
        - `version` string, required
        - `ran_at` string
        - `channels` string[]
        - `task_hints` object
        - `methodology_version` string
      - `chapter_summary` object
        - `provider` string, required
        - `model` string, required
        - `version` string, required
        - `ran_at` string
        - `channels` string[]
        - `task_hints` object
        - `methodology_version` string
      - `chapter_visual_description` object
        - `provider` string, required
        - `model` string, required
        - `version` string, required
        - `ran_at` string
        - `channels` string[]
        - `task_hints` object
        - `methodology_version` string
      - `video_facets` object
        - `provider` string, required
        - `model` string, required
        - `version` string, required
        - `ran_at` string
        - `channels` string[]
        - `task_hints` object
        - `methodology_version` string
      - `shot_facets` object
        - `provider` string, required
        - `model` string, required
        - `version` string, required
        - `ran_at` string
        - `channels` string[]
        - `task_hints` object
        - `methodology_version` string
      - `entity_extraction` object
        - `provider` string, required
        - `model` string, required
        - `version` string, required
        - `ran_at` string
        - `channels` string[]
        - `task_hints` object
        - `methodology_version` string
      - `entity_canonicalization` object
        - `provider` string, required
        - `model` string, required
        - `version` string, required
        - `ran_at` string
        - `channels` string[]
        - `task_hints` object
        - `methodology_version` string
      - `custom_metadata` object
        - `provider` string, required
        - `model` string, required
        - `version` string, required
        - `ran_at` string
        - `channels` string[]
        - `task_hints` object
        - `methodology_version` string
      - `embedding` object
        - `provider` string, required
        - `model` string, required
        - `version` string, required
        - `ran_at` string
        - `channels` string[]
        - `task_hints` object
        - `methodology_version` string
      - `ranking` object
        - `provider` string, required
        - `model` string, required
        - `version` string, required
        - `ran_at` string
        - `channels` string[]
        - `task_hints` object
        - `methodology_version` string
      - `trust_scoring` object
        - `provider` string, required
        - `model` string, required
        - `version` string, required
        - `ran_at` string
        - `channels` string[]
        - `task_hints` object
        - `methodology_version` string
      - `boundary_snap` object
        - `provider` string, required
        - `model` string, required
        - `version` string, required
        - `ran_at` string
        - `channels` string[]
        - `task_hints` object
        - `methodology_version` string
      - `evidence_grading` object
        - `provider` string, required
        - `model` string, required
        - `version` string, required
        - `ran_at` string
        - `channels` string[]
        - `task_hints` object
        - `methodology_version` string
      - `content_hash` object
        - `provider` string, required
        - `model` string, required
        - `version` string, required
        - `ran_at` string
        - `channels` string[]
        - `task_hints` object
        - `methodology_version` string
      - `rights_evaluation` object
        - `provider` string, required
        - `model` string, required
        - `version` string, required
        - `ran_at` string
        - `channels` string[]
        - `task_hints` object
        - `methodology_version` string
    - `model_provenance_status` 'recorded' | 'unrecorded'
    - `rights` object, required
      - `policy_id` string, required
      - `policy_version` integer, required
      - `scope` 'video' | 'account' | 'default', required
      - `effective_at` string, nullable, required
      - `permissions` object, required
        - `search` boolean, required
        - `cite` boolean, required
        - `summarize` boolean, required
        - `quote` object, required
          - `allowed` boolean, required
          - `max_duration_ms` integer, nullable, required
        - `play` boolean, required
        - `segment_display` boolean, required
        - `source_embed_display` boolean, required
        - `full_video_display` boolean, required
        - `clip` boolean, required
        - `export` boolean, required
        - `train` boolean, required
      - `commercial_use` boolean, required
      - `attribution` object, required
        - `required` boolean, required
      - `license_url` string, uri, required
    - `transcript_cues` object[]
      - `start_ms` integer, required
      - `text` string, required
      - `speaker_id` string, nullable, required
      - `speaker_label` string, nullable, required
      - `speaker_name` string, nullable, required
    - `speakers` object[]
      - `speaker_id` string, required
      - `entity_id` string, nullable, required
      - `name` string, nullable, required
      - `speaker_labels` string[], required
      - `confidence` number, required
      - `method_version` string, required
    - `audio_spans` object[]
      - `id` string, required
      - `kind` 'sound_event' | 'music' | 'riff', required
      - `category` string, nullable, required
      - `label` string, nullable, required
      - `start_ms` integer, required
      - `end_ms` integer, required
      - `text` string, required
      - `confidence` number, required
      - `measured` boolean, required
      - `method_version` string, required
    - `people_spans` object[]
      - `id` string, required
      - `start_ms` integer, required
      - `end_ms` integer, required
      - `name` string, nullable, required
      - `description` string, required
      - `provenance` 'spoken' | 'on_screen_text' | 'metadata', nullable, required
      - `verified` boolean, required
      - `evidence_quote` string, nullable, required
      - `text` string, required
      - `confidence` number, required
      - `method_version` string, required
      - `entity_id` string
      - `relation` 'appears' | 'speaks' | 'mentioned' | 'credited'
    - `products` object[]
      - `id` string, nullable, required
      - `relation` 'shown' | 'mentioned', required
      - `brand` string, nullable, required
      - `name` string, required
      - `kind` 'physical_product' | 'software' | 'online_service' | 'game' | 'book' | 'film_or_show' | 'music_or_podcast' | 'service', nullable, required
      - `url` string, uri, nullable, required
      - `url_host` string, nullable, required
      - `sku` string, nullable, required
      - `link_verified` boolean, required
      - `position` integer, nullable, required
      - `method_version` string, nullable, required
      - `spans` object[], required
        - `id` string, required
        - `relation` 'shown' | 'mentioned', required
        - `evidence` string[], required
        - `evidence_quote` string, nullable, required
        - `first_seen_ms` integer, required
        - `end_ms` integer, required
        - `confidence` number, required
        - `text` string, required
        - `method_version` string, required
    - `places` object[]
      - `id` string, required
      - `name` string, required
      - `kind` 'landmark' | 'venue' | 'city' | 'region' | 'country' | 'natural_feature', required
      - `relation` 'filmed_at' | 'shown' | 'mentioned', required
      - `country` string, nullable, required
      - `basis` string[], required
      - `wikidata_qid` string, nullable, required
      - `entity_id` string
      - `external_ids` object
        - `osm` string
        - `google_kg` string
        - `google_maps` string
      - `label` string, nullable, required
      - `coordinates` object, nullable, required
        - `latitude` number, required
        - `longitude` number, required
      - `first_ms` integer, nullable, required
      - `spans` object[]
        - `start_ms` integer, required
        - `end_ms` integer, required
        - `via` 'on_screen' | 'spoken', required
        - `relation` 'filmed_at' | 'shown' | 'mentioned', required
      - `evidence` object[], required
        - `source` 'spoken' | 'on_screen_text' | 'title' | 'description', required
        - `quote` string, required
        - `start_ms` integer, nullable, required
      - `method_version` string, required
    - `topics` object[]
      - `topic_id` string, required
      - `label` string, required
      - `takes_url` string, uri, required
    - `labels` object[]
      - `kind` 'object' | 'action' | 'text' | 'person' | 'product' | 'sound' | 'place', required
      - `label` string, required
      - `count` integer, required
      - `first_ms` integer, required
      - `last_ms` integer, required
  - `errors` object, nullable
    - `code` 'RIGHTS_DENIED' | 'ENTITLEMENT_REQUIRED' | 'NOT_FOUND' | 'INVALID_QUERY' | 'NOT_IN_REPRESENTATIONS' | 'RATE_LIMITED' | 'MODEL_UNAVAILABLE' | 'ASK_GENERATION_PAUSED' | 'ASK_BUDGET_EXHAUSTED' | 'ASK_BUDGET_UNAVAILABLE' | 'ASK_BUDGET_UNALLOCATED' | 'ASK_CONCURRENCY_LIMITED' | 'SCHEMA_VERSION_MISMATCH' | 'REVOKED' | 'INTERNAL', required
    - `message` string, required
    - `docs_url` string, uri, nullable
    - `retry_after_ms` integer, nullable
    - `reason` 'generation_paused' | 'component_limit' | 'request_deadline' | 'scope_not_found' | 'search_result_limit' | 'serving_context_required' | 'invalid_provider_input' | 'provider_input_limit' | 'provider_aborted_before_dispatch' | 'display_ask_model_call' | 'other'
  - `trace` object, nullable
    - `agents` string[], required
    - `actions` object[], required
      - `agent` string, required
      - `started_at_ms` number
      - `duration_ms` number
      - `status` 'ok' | 'skipped' | 'error'
      - `detail` string
      - `pool_wait_ms` number
      - `query_ms` number
    - `query_class` string, nullable
    - `plan_version` string, nullable
    - `procedure` boolean, nullable
    - `procedure_pool` integer
    - `answerable_tier` 'answerable' | 'verify' | 'off_topic'
    - `marks` object
      - `selection_ms` integer
      - `first_verdict_ms` integer
      - `answer_ms` integer
      - `commit_ms` integer
  - `usage` object, nullable
    - `input_tokens` integer
    - `output_tokens` integer
    - `retrieval_calls` integer
    - `compute_ms` integer
    - `tier` 'lite' | 'pro' | 'max'

## Other responses

- `400`: The slug or video id segment was empty. Error codes: creator_slug_required.
- `404`: Unknown, private, retired or not searchable creator or video. A video the rights policy does not let crawlers search answers 404 with no evidence fields. Error codes: creator_not_found, not_found.
- `429`: Rate limited. Retry after the retry-after header (seconds). Error codes: agent_rate_limited.

## Changes

- **2026-10-20** `f70f6777f2e5`: 5 warning, 2 info
  - added the new `spoken` enum value to the `data/video_facets/evidence/is_evergreen_or_dated/items/via` response property for the response status `200`
  - added the new `spoken` enum value to the `data/video_facets/evidence/originality_signal/items/via` response property for the response status `200`
  - added the new `spoken` enum value to the `data/video_facets/evidence/production_value/items/via` response property for the response status `200`
  - added the new `spoken` enum value to the `data/video_facets/evidence/skill_level/items/via` response property for the response status `200`
  - …3 more
- **2026-10-19** `a86951be4158`: 1 info
  - added the optional property `trace/answerable_tier` to the response with the `200` status

[Operation history](https://skmtc.dev/agentcdn/apis/agentcdn-public-arv-api/changes/public/creators/:slug/videos/:video_id/arv.json/get.md)

---

[API](https://skmtc.dev/agentcdn/apis/agentcdn-public-arv-api.md) · [All operations](https://skmtc.dev/agentcdn/apis/agentcdn-public-arv-api/llms.txt) · [OpenAPI document](https://skmtc.dev/agentcdn/apis/agentcdn-public-arv-api/revisions/f70f6777f2e5?raw)
