---
title: "A brand's hook library: the opening lines of its creatives (the spoken hook, else the on-screen text of the first 3 seconds), each with its angle, format, creatives, ads, share still active, median observed days live and example ads, ranked by observed survival. Filter by format, production (ugc or produced), awareness, angle or a last-seen day. Observed survival, not performance or spend. Answers 409 until the view's first nightly build."
method: GET
path: "/v1/brands/{brandId}/hooks"
tags: ["brands"]
---

# A brand's hook library: the opening lines of its creatives (the spoken hook, else the on-screen text of the first 3 seconds), each with its angle, format, creatives, ads, share still active, median observed days live and example ads, ranked by observed survival. Filter by format, production (ugc or produced), awareness, angle or a last-seen day. Observed survival, not performance or spend. Answers 409 until the view's first nightly build.

`GET /v1/brands/{brandId}/hooks`

## Request

- Base URL: `https://api.storequant.com`
- URL: `https://api.storequant.com/v1/brands/{brandId}/hooks`
- Auth: HTTP bearer

A brand's hook library: the opening lines of its creatives (the spoken hook, else the on-screen text of the first 3 seconds), each with its angle, format, creatives, ads, share still active, median observed days live and example ads, ranked by observed survival. Filter by format, production (ugc or produced), awareness, angle or a last-seen day. Observed survival, not performance or spend. Answers 409 until the view's first nightly build. Scope `brands:read`; cache `daily`.

## Path parameters

- `brandId` union, required
  - string, uuid
  - string

## Query parameters

- `format` string
- `production` string
- `awareness` string
- `angle` string
- `since` string, date
- `min_ads` integer
- `limit` integer

## Response `200`

Success.

- object
  - `data` object, required
    - `as_of` string, date, required
    - `scope` 'brand' | 'category', required
    - `basis` 'observed survival, not performance or spend', required: A note for readers. What each number is (observed, derived or estimate) is in the op's claims: `x-claims` in the OpenAPI document.
    - `coverage_note` string, required
    - `hooks` object[], required
      - `rank` integer, required
      - `hook_text` string, required
      - `hook_source` 'spoken' | 'on_screen', required
      - `hook_type` string, nullable, required
      - `hook_type_n` integer, required
      - `angle` string, nullable, required
      - `angle_n` integer, required
      - `offer_type` string, nullable, required
      - `offer_mechanic` string[], required
      - `format` string, nullable, required
      - `production` string, nullable, required
      - `awareness` string, nullable, required
      - `judged_n` integer, required
      - `creatives` integer, required
      - `concepts` integer, required
      - `brands` integer, required
      - `ads` integer, required
      - `ads_active` integer, required
      - `share_active` number, required
      - `median_days_live` number, required
      - `first_seen` string, date, required
      - `last_seen` string, date, required
      - `example_ads` object[], required
        - `id` string, required
        - `url` string, uri, required
  - `meta` object, required
    - `request_id` string, required
    - `as_of` string, date-time, required
    - `lag_hours` number
    - `cursor` string
    - `count` integer

## Other responses

- `4XX`: The one error shape.
- `5XX`: The one error shape.

---

[API](https://skmtc.dev/scrollstash/apis/storequant-api.md) · [All operations](https://skmtc.dev/scrollstash/apis/storequant-api/llms.txt) · [OpenAPI document](https://skmtc.dev/scrollstash/apis/storequant-api/revisions/4d67a114a13c?raw)
