---
title: "List Narrative Hooks Route"
method: GET
path: "/api/v1/narrative-hook"
tags: ["narrativeHook"]
---

# List Narrative Hooks Route

`GET /api/v1/narrative-hook`

## Request

- Base URL: `https://api.brandbooster.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.brandbooster.ai/api/v1/narrative-hook`
- Auth: HTTP bearer

## Query parameters

- `category` string, nullable: Filter by exact category
- `industry` string, nullable: Filter by industry (matches within the comma-separated list)
- `search` string, nullable: Case-insensitive search across hook line, description, example, and the analysis blob (which carries the post's sound name)
- `is_active` boolean, nullable: Filter by active flag
- `hook_type` string, nullable: Filter by modality. Use "carousel" for posts harvested by the trending scrape.
- `limit` integer: Page size
- `offset` integer: Rows to skip

## Response `200`

Successful Response

- NarrativeHookListResponseDTO
  - `success` boolean, required
  - `total` integer, required
  - `limit` integer, required
  - `offset` integer, required
  - `narrative_hooks` NarrativeHookResponseDTO[], required
    - `category` string, required
    - `hook_line` string, required
    - `description` string, nullable
    - `example` string, nullable
    - `tiktok_link` string, nullable
    - `industries` string, nullable
    - `hook_type` string, nullable
    - `audio_hook` string, nullable
    - `visual_hook` string, nullable
    - `carousel_images` string[], nullable
    - `preview_image_url` string, nullable
    - `s3_video_url` string, nullable
    - `music` NarrativeHookMusicDTO: Sound metadata captured at harvest. Never the audio itself.
      - `title` string, required
      - `author` string, nullable
      - `play_url` string, nullable

## Other responses

- `422`: Validation Error

## Changes

> 36 revisions in range; 1 not diffed.

- **2026-10-13** `c7202552278d`: 2 info
  - added the new optional `query` request parameter `hook_type`
  - added the optional property `narrative_hooks/items/music` to the response with the `200` status

[Operation history](https://skmtc.dev/brandbooster/apis/brandbooster-api/changes/api/v1/narrative-hook/get.md)

---

[API](https://skmtc.dev/brandbooster/apis/brandbooster-api.md) - [All operations](https://skmtc.dev/brandbooster/apis/brandbooster-api/llms.txt) - [OpenAPI document](https://skmtc.dev/brandbooster/apis/brandbooster-api/revisions/f84fc05f417b?raw)
