> ## 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.

# Search by Transcript

> Exact keyword search across stored audio transcripts in your Private Video Library.

<Info>
  **Product**: Visual Search
  **Use case**: Upload videos and images, auto-index them, then search by natural language, image, or transcript phrase
  **Host**: `https://api.memories.ai/serve/api/v1`
  **Auth**: `Authorization: sk-mavi-...` (no `Bearer` prefix)
</Info>

Find video segments where a specific phrase was spoken. This is **exact LIKE matching** against stored audio transcripts, not semantic — use it when you know the phrase verbatim. For semantic audio search, use [Search by Text](/visual-search/search-by-text) with `search_type=BY_AUDIO`.

## Prerequisites

* You have [created a memories.ai API key](/visual-search/create-your-key).
* The target videos have an audio track and have finished parsing.

## Request Example

```python theme={null}
import requests

headers = {"Authorization": "sk-mavi-..."}
params = {
    "query": "where is the love",
    "page": 1,
    "page_size": 100
}

response = requests.get(
    "https://api.memories.ai/serve/api/v1/search_audio_transcripts",
    headers=headers,
    params=params
)
print(response.json())
```

## Parameters

<ParamField query="query" type="string" required>
  Search phrase. LIKE-style exact matching against stored transcripts.
</ParamField>

<ParamField query="page" type="integer" default="1">
  One-based page number.
</ParamField>

<ParamField query="page_size" type="integer" default="100">
  Results per page. Range: **1 – 500**.
</ParamField>

## Response

```json theme={null}
{
    "code": "0000",
    "msg": "success",
    "data": {
        "current_page": 1,
        "page_size": 100,
        "total_count": "2",
        "videos": [
            {
                "videoNo": "VI576925607808602112",
                "videoName": "1920447021987282945",
                "startTime": "13",
                "audio_ts": "... where is the love ...",
                "video_bucket": "mavi-resource",
                "video_blob": "VI576925607808602112.mp4"
            }
        ]
    },
    "success": true,
    "failed": false
}
```

<ResponseField name="data.current_page" type="integer">Page number returned.</ResponseField>
<ResponseField name="data.page_size" type="integer">Page size returned.</ResponseField>
<ResponseField name="data.total_count" type="string">Total matching segments across all pages, returned as a string (`int(total_count)` to use it).</ResponseField>
<ResponseField name="data.videos[].videoNo" type="string">Identifier of the video containing the matched segment.</ResponseField>
<ResponseField name="data.videos[].videoName" type="string">Internal stored name of the video.</ResponseField>
<ResponseField name="data.videos[].startTime" type="string">Segment start time in seconds (returned as string).</ResponseField>
<ResponseField name="data.videos[].audio_ts" type="string">The matched transcript text.</ResponseField>
<ResponseField name="data.videos[].video_bucket" type="string">GCS bucket of the original video file. Omitted when the storage location cannot be resolved.</ResponseField>
<ResponseField name="data.videos[].video_blob" type="string">GCS blob (object) path of the original video. Use it with `video_bucket` at `GET /serve/api/v2/download?bucket=&blob=` to fetch the file directly.</ResponseField>

## Notes & Limits

* **Rate limiting**: Exceeding the per-account rate limit returns an error. See [Rate limits](/visual-search/rate-limits).
* **Billing**: Each successful call deducts credits from your account balance.


## OpenAPI

````yaml GET /serve/api/v1/search_audio_transcripts
openapi: 3.1.0
info:
  title: Memories Platform API (Docs Mapping)
  version: v1
  description: OpenAPI mapping used by Mintlify Try it for the platform docs.
servers:
  - url: https://api.memories.ai
security:
  - ApiKeyAuth: []
paths:
  /serve/api/v1/search_audio_transcripts:
    get:
      summary: Search from Audio
      operationId: search_audio_transcripts
      parameters:
        - name: query
          in: query
          required: true
          schema:
            type: string
          description: Audio transcript search text (LIKE match). Must be non-empty.
        - name: page
          in: query
          schema:
            type: integer
            default: 1
            minimum: 1
          description: One-based page number. Must be > 0.
        - name: page_size
          in: query
          schema:
            type: integer
            default: 100
            minimum: 1
            maximum: 500
          description: Results per page. Range 1-500.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchAudioTranscriptsResponse'
components:
  schemas:
    SearchAudioTranscriptsResponse:
      type: object
      properties:
        code:
          type: string
          example: '0000'
        msg:
          type: string
          example: success
        data:
          type: object
          properties:
            current_page:
              type: integer
              example: 1
            page_size:
              type: integer
              example: 100
            total_count:
              type: integer
              format: int64
              example: 2
            videos:
              type: array
              items:
                type: object
                properties:
                  videoNo:
                    type: string
                    example: VI576925607808602112
                  videoName:
                    type: string
                    example: '1920447021987282945'
                  startTime:
                    type: string
                    example: '13'
                    description: Matched segment start time in seconds.
                  audio_ts:
                    type: string
                    example: ... where is the love ...
                    description: Matched transcript text.
                  video_bucket:
                    type: string
                    description: >-
                      GCS bucket of the original video file. Omitted when the
                      storage location cannot be resolved.
                  video_blob:
                    type: string
                    description: >-
                      GCS blob (object) path of the original video. Use it with
                      video_bucket at GET /serve/api/v2/download to fetch the
                      file directly.
        success:
          type: boolean
          example: true
        failed:
          type: boolean
          example: false
      example:
        code: '0000'
        msg: success
        data:
          current_page: 1
          page_size: 100
          total_count: 2
          videos:
            - videoNo: VI576925607808602112
              videoName: '1920447021987282945'
              startTime: '13'
              audio_ts: ... where is the love ...
              video_bucket: mavi-resource
              video_blob: VI576925607808602112.mp4
        success: true
        failed: false
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: Authorization

````