long form
packaging

The index: every video your long and packaging runs found

Everything your long and packaging runs found, as one index: one entry a video on each tab (its newest read, with the keep or reject you made on the video), each a full find object with its title and thumbnail as YouTube shows them, its outlier (views over its channel's usual) and its outlier_score (0 to 100 on one fixed scale, so entries from different runs rank together). q looks in the title, the channel, the hook as it was said, and what the thumbnail prints and shows, so a package can be found by its thumbnail ("red arrow", "before and after"). total is how many entries match, on any page; page with next_cursor. Free. MCP: list_finds.

get/v1/finds

Request

  • Base URL: https://api.hookdetector.com (the document declares no server; this is the origin it was published from)
  • URL: https://api.hookdetector.com/v1/finds
  • Auth: none declared

Query parameters

kindstring nullable

only long or only packaging; leave out for both

qstring nullable

words a title, channel, hook or thumbnail must hold

sortstring

score (the default: the highest outlier score first), outlier (views over the channel's usual), views or newest

tierstring nullable

only breakout (10 times the channel's usual or more), strong (5 to 10) or outlier (under 5)

min_scoreinteger nullable

only entries with an outlier_score of at least this, 0 to 100

devicestring nullable

only entries filed under this device: a hook_type, a title_device or one of the thumbnail_devices ("curiosity_gap", "how_to", "face_closeup")

limitinteger

page size, 1 to 100

cursorstring nullable

next_cursor from the previous page; leave out for the first

Headers

authorizationstring nullable

Bearer hd_... from POST /v1/accounts or POST /v1/keys

Response

Successful Response

countinteger required

how many are on this page

totalinteger required

how many entries match this kind, q and the filters, on any page

next_cursorstring nullable required

Example response

{
  "count": 1,
  "finds": [
    {
      "age_days": 584,
      "analysed": true,
      "audience": "people curious about cold plunges",
      "baseline_videos": 28,
      "channel": "Someone",
      "channel_handle": "someone",
      "channel_id": "UC0000000000000000000001",
      "channel_median_views": 85000,
      "cut_on_phone": false,
      "duration_s": 1104,
      "find_id": "7c8d9e0f-1a2b-4c3d-8e4f-5a6b7c8d9e0f",
      "gap": "The picture shows the last day, the title only the rule. What changed in between?",
      "kind": "packaging",
      "language": "English",
      "on_subject": "yes",
      "outlier": 28.2,
      "platform": "youtube",
      "player_url": "https://www.youtube.com/embed/dQw4w9WgXcQ",
      "posted_at": "2025-03-02T15:00:00Z",
      "posted_exact": false,
      "promise": "You see what a month of it does.",
      "rank": 1,
      "run_id": "8f1c2d3e-4b5a-4c6d-8e7f-9a0b1c2d3e4f",
      "score": 2.4,
      "steal_it": "Show the end state, title the rule.",
      "thumbnail_composition": "The face fills the left half, two yellow words sit top right",
      "thumbnail_devices": [
        "face_closeup",
        "big_text"
      ],
      "thumbnail_emotion": "shock",
      "thumbnail_subject": "A man in an ice bath, eyes wide",
      "thumbnail_text": "DAY 30",
      "thumbnail_text_role": "adds_to_title",
      "thumbnail_url": "https://i.ytimg.com/vi/dQw4w9WgXcQ/hq720.jpg",
      "title": "I Cold Plunged Every Day For 30 Days",
      "title_device": "challenge",
      "title_overlap": 0,
      "title_template": "I {did the thing} Every Day For {time}",
      "video_id": "dQw4w9WgXcQ",
      "views": 2400000,
      "views_per_day": 4109.6,
      "watch_url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
      "why": "28x this channel's usual 85K views"
    }
  ],
  "total": 1
}

Changes

No recorded changes to this operation across all 1 revision of this API.