long form
packaging

Make it mine, or Write my intro: written from this find

Write my intro: body {"mode": "intro", "video_brief": "<your video in a few sentences, 10 to 600 characters>"} (a long find only; niche and n are not used) writes your own intro in this real opening's structure: one entry in written holding a beat for each beat of the real opening, in order, each with its seconds (from_s, to_s) and words_budget taken from the real opening's own timing, the words to say with {placeholders} for what only you know, and suggested_on_screen and suggested_broll (suggestions, never part of what is said). A number you did not write becomes {number} (numbers_to_placeholders counts them). Same price and rules as below: 1 credit, labelled as written, 422 remix_not_possible when the model copied the real opening or broke a budget.

Otherwise write up to n (1 to 5, default 3) new openings or packages for your niche that keep this one real find's structure. From a long find: written holds openings (hook, then, kept_structure) built on its template and its order of beats. From a packaging find: packages (title, thumbnail, thumbnail_text, kept_structure) built on its title template and its thumbnail's composition. Body: {"niche": "teeth whitening", "n": 2}. Every answer carries label: these are written, never found; one that is the real find's own words is dropped; they are never added to a run, a keep or an export. Costs 1 credit per call, taken before the model is asked and refunded if it does not answer (503). 404 for a find that is not yours. Limited per account per hour (429). Needs research. The answer carries remix_id; GET /v1/finds/{find_id}/remixes and GET /v1/remixes/{remix_id} read it back, free. MCP: remix_find.

post/v1/finds/{find_id}/remix

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/{find_id}/remix
  • Auth: none declared

Path parameters

find_idstring uuid required

Headers

Idempotency-Keystring nullable

retry safely: the same key and body within 24 hours answer the saved remix (Idempotent-Replayed: true) and charge nothing; the same key with another body is 422 idempotency_key_reused

authorizationstring nullable

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

Request body

nichestring

your niche, product or audience, as you would say it (1 to 120 characters)

ninteger

how many lines to write, 1 to 5 (default 3)

mode'openings' | 'intro' | 'null' nullable

optional: "openings" (the default) writes openings or packages for a niche; "intro" is Write my intro: your own timed intro for the video you describe in video_brief, in this long-form opening's structure. Only a long find has an intro (a packaging find is 422); niche and n are not used in intro mode

video_briefstring nullable

required for mode "intro", 10 to 600 characters: what your video is about, in a few sentences, in your own words and language. The intro uses only the facts and numbers you write here; anything else becomes a {placeholder}

Example request

{
  "niche": "teeth whitening",
  "n": 3,
  "mode": "intro",
  "video_brief": "A beginner video on why home espresso tastes sour, built around my 18 grams in, 36 grams out recipe."
}

Response

Successful Response

find_idstring required
kindstring required

long or packaging: what was written from

nichestring nullable required

the niche you gave; null in intro mode

ninteger required

how many were written; 1 in intro mode

modestring nullable

"intro" on a Write my intro answer; absent on openings and packages

video_briefstring nullable

intro mode: your video's description, as asked (whitespace collapsed)

labelstring required

always "Written by Hook Detector from a real opening's structure" for a long find and "Written by Hook Detector from a real package's structure" for a package: written, never found; show the label with them

credits_chargedinteger required

always 1

creditsinteger required

your balance after this call

remix_idstring nullable

this remix's id: GET /v1/remixes/{remix_id} reads it back, free

created_atstring nullable

Example response

{
  "credits": 436,
  "credits_charged": 1,
  "find_id": "7c8d9e0f-1a2b-4c3d-8e4f-5a6b7c8d9e0f",
  "kind": "packaging",
  "label": "Written by Hook Detector from a real package's structure",
  "n": 1,
  "niche": "teeth whitening",
  "written": [
    {
      "kept_structure": "the challenge title and the end state shown",
      "thumbnail": "Your smile filling the left half, two yellow words top right",
      "thumbnail_text": "DAY 30",
      "title": "I Whitened My Teeth Every Day For 30 Days"
    }
  ]
}

Changes

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