---
title: "Get Narrative Hook Route"
method: GET
path: "/api/v1/narrative-hook/{hook_id}"
tags: ["narrativeHook"]
---

# Get Narrative Hook Route

`GET /api/v1/narrative-hook/{hook_id}`

## Path parameters

- `hook_id` string, required

## Response `200`

Successful Response

- NarrativeHookDetailResponseDTO
  - `success` boolean, required
  - `narrative_hook` NarrativeHookResponseDTO, required — Public shape of a narrative hook, returned by the GET and CSV export endpoints. Internal-only fields (``id``, ``display_order``, ``is_active``, timestamps) exist for CRUD/ordering/soft-delete purposes but add no value to a consumer browsing or exporting the hook library, so they're intentionally left out of this contract rather than filtered ad hoc per endpoint.
    - `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

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/brandbooster/apis/fastapi.md) · [All operations](https://skmtc.dev/brandbooster/apis/fastapi/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/brandbooster/fastapi/revisions/624917d53409/schema)
