> ## Documentation Index
> Fetch the complete documentation index at: https://api-tools.memories.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Caption

> Get visual captions (4 modes)

<Info>
  **Product**: Video Datalake
  **Host**: `https://api.memories.ai/datalake/v1`
  **Auth**: `Authorization: sk-mai-...`
</Info>

Read visual captions (generated by **OmniCaptioner**). Four modes by precedence `as=url` > `since` > `start/end` > no params: whole text, a time window, an incremental cursor (live polling), or a WebVTT file link.

<Note>
  **Pricing:** \$0.001 / call · See [Pricing](/datalake/pricing) for the full model.
</Note>

## Response Fields

<ResponseField name="caption" type="string">Whole-text mode: the full caption string.</ResponseField>
<ResponseField name="segments" type="array">Windowed / incremental: `[{start,end,text}]`.</ResponseField>
<ResponseField name="next_cursor" type="string">Incremental mode cursor.</ResponseField>
<ResponseField name="live" type="boolean">`true` while still indexing (more segments coming).</ResponseField>
<ResponseField name="url" type="string">`as=url` mode: signed WebVTT link.</ResponseField>

## Notes

Empty content while still `processing` → `409 video_not_ready`.


## OpenAPI

````yaml GET /datalake/v1/videos/{id}/caption
openapi: 3.1.0
info:
  title: Memories.ai DataLake API 2.0
  version: 2026-08
  description: OpenAPI mapping used by Mintlify Try it for the DataLake API 2.0 docs.
servers:
  - url: https://api.memories.ai
security:
  - ApiKeyAuth: []
paths:
  /datalake/v1/videos/{id}/caption:
    get:
      tags:
        - Moments & Derived Content
      summary: Get visual captions (4 modes)
      description: >-
        Read visual captions (generated by **OmniCaptioner**). Four modes by
        precedence `as=url` > `since` > `start/end` > no params: whole text, a
        time window, an incremental cursor (live polling), or a WebVTT file
        link.
      operationId: get_caption
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
          description: Video ID.
        - name: start
          in: query
          required: false
          schema:
            type: number
          description: Window start seconds.
        - name: end
          in: query
          required: false
          schema:
            type: number
          description: Window end seconds.
        - name: since
          in: query
          required: false
          schema:
            type: string
          description: Incremental cursor (empty for first page).
        - name: as
          in: query
          required: false
          schema:
            type: string
          description: '`url` to get a `.vtt` signed link.'
      responses:
        '200':
          description: Success
          content:
            application/json:
              example:
                segments:
                  - start: 25
                    end: 32
                    text: …
                aggregated: joined text
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: 'Send `Authorization: sk-mai-...`'

````