Search by text
Describe a mood, scene or visual concept in natural language.
Cost: 2 credits. $1 = 1,000 credits. Returns 402 when the balance is short.
Request
- Base URL: https://framethrower.ai/api/v1
- URL: https://framethrower.ai/api/v1/search
- Auth: HTTP bearer
Request body
Natural-language query
hybrid fuses the image and scene-description embeddings via reciprocal rank fusion — use it unless you have a reason not to. description ranks on the written descriptions only, better when the query is about story, action or named objects.
Bias the search toward frames dominated by this colour, without abandoning the query. Fused with the text ranking rather than replacing it — "ocean" with #1f7a8c returns teal seas, not teal anything. For colour alone, use /search/color.
Rewrite the query into the descriptive register the frames were embedded from before searching — "man on fire" becomes a full sentence. Benchmarked recall@10: 0.72 raw, 0.88 enhanced. This is what the website does by default. Adds ~1s on a cache miss and falls back to the raw query on error. When it fires, the rewritten text comes back as meta.enhancedQuery — send that as the query for later pages so every page ranks in the same neighbourhood.
Skip this many results before returning. Use with limit to page: offset 0 then 50 then 100. Capped at 500 — ranking past that is noise, and the candidate pool is built to offset+limit.
Shot size. Aliased, so close-up and closeup both land.
Camera angle.
Time of day / light.
Interior or exterior.
Medium and treatment.
Lens character.
What is lighting the frame — a different question from the time of day.
Focus depth.
The era depicted on screen, not the release year.
Example request
{
"query": "neon-lit rainy street at night",
"color": "#1f7a8c"
}Response
Matching frames