---
title: "Get cached ad-account video transcript"
method: GET
path: "/open/v1/ad-accounts/{account_id}/videos/{video_id}/transcript"
tags: ["Ad Accounts"]
---

# Get cached ad-account video transcript

`GET /open/v1/ad-accounts/{account_id}/videos/{video_id}/transcript`

Cache-only lookup. Returns the existing transcript for this video if the workspace has one, or `code=40401` if nothing is cached yet. **Never** triggers a transcription and never costs credits — use this to scan candidates before deciding which to POST and pay to transcribe.

Returns: `code=0` cached transcript; `code=40001` invalid `account_id`; `code=40401` no cached transcript yet / cross-workspace account / unknown video.

## Path parameters

- `account_id` string, required — Workspace ad-account UUID (dashed or hex) that owns this video. Must match an entry returned by `GET /open/v1/ad-accounts` for the calling workspace.
- `video_id` string, required — Platform-native Video Object ID surfaced by `GET /open/v1/ad-accounts/{account_id}/ads/{platform_ad_id}` as `creative.videos[].video_id`. Opaque string — pass it back verbatim.

## Response `200`

Successful Response

- OpenVideoTranscriptResponse — Envelope for all open API responses. code=0 means success.
  - `code` integer
  - `message` string
  - `data` OpenVideoTranscript — Transcript record for a single video. Same payload shape returned by both the transcribe POST and the cache-lookup GET.
    - `video_id` string, required — Platform-native Video Object ID.
    - `video_url` string — Atria-rehosted CDN URL of the source video, when available.
    - `status` string, required — Transcription status: `success` (transcript ready), `pending` (still running — only returned by GET on a freshly enqueued task), `failure` (transcription errored).
    - `transcript` OpenVideoTranscriptBody
      - `text` string, required — Full transcript text (all segments joined).
      - `segments` OpenVideoTranscriptBodySegment[] — Time-aligned per-segment breakdown.
        - `start` number, required — Segment start, seconds from the video origin.
        - `end` number, required — Segment end, seconds from the video origin.
        - `text` string, required — Voice-over text spoken in this segment.
    - `error` string — Human-readable failure detail when status=`failure`.

## Other responses

- `400` — Invalid request — a query parameter, path parameter, or body field failed validation.

---

[API](https://skmtc.net/tryatria/apis/atria-open-api.md) · [All operations](https://skmtc.net/tryatria/apis/atria-open-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/tryatria/atria-open-api/revisions/548d57b611ea/schema)
