Endpoints
Style search
Find the right animation styles for a brief using natural language. Useful when you don't know the named Animation Prompt category and would rather describe the look.
Under the hood we embed your query with Vertex multimodal embeddings and run
cosine similarity against the indexed Style records. You get back a ranked
list of Style IDs you can pass to creative.featured_styles
(advanced) or use as a discovery layer to find the right
animation_prompts.
Query parameters
| Param | Description |
|---|---|
| qrequired | Natural-language description of the look (e.g. "warm honey drip on amber, minimal, slow"). |
| top_noptional | How many results to return. Default 20, max 50. |
Request
curl
Python
TypeScript
MCP
curl "https://api.dessert.dev/v1/styles/search?q=warm+honey+drip+on+amber&top_n=10" \
-H "Authorization: Bearer $DESSERT_API_KEY"
requests.get(
"https://api.dessert.dev/v1/styles/search",
params={"q": "warm honey drip on amber", "top_n": 10},
headers={"Authorization": f"Bearer {os.environ['DESSERT_API_KEY']}"},
).json()
const url = new URL("https://api.dessert.dev/v1/styles/search");
url.searchParams.set("q", "warm honey drip on amber");
url.searchParams.set("top_n", "10");
await fetch(url, {
headers: { Authorization: `Bearer ${process.env.DESSERT_API_KEY}` },
}).then(r => r.json());
{
"tool": "dessert.search_styles",
"arguments": { "q": "warm honey drip on amber", "top_n": 10 }
}
Response
{
"query": "warm honey drip on amber",
"results": [
{
"style_id": "recSSSSSSSSSSSSS1",
"style_name": "Honey Drizzle on Amber Glass",
"animation_prompt": "Serum Drizzles",
"similarity": 0.872
},
{
"style_id": "recSSSSSSSSSSSSS2",
"style_name": "Slow Amber Pour",
"animation_prompt": "Liquid Dripping",
"similarity": 0.841
}
]
}
| Field | Description |
|---|---|
| style_idstring | Pass to creative.featured_styles (advanced) to pin this exact style. |
| style_namestring | Internal display name. |
| animation_promptstring | Which Animation Prompt category this style belongs to. Pass to creative.animation_prompts to widen the pool. |
| similaritynumber | Cosine similarity to the query, in [0, 1]. Higher = closer match. |
Two ways to use the results
Take the
animation_prompt values of the top hits and pass them
to creative.animation_prompts on your generate call — this is
the recommended path. For tighter control, pass the raw
style_ids as creative.featured_styles; this pins
the exact rendered look but bypasses the standard rotation system.
Animation Prompt categories
The 36 production Animation Prompts that creative.animation_prompts
accepts. They're grouped into seven slot families for clarity:
| Group | Prompts |
|---|---|
| Product — Texture | Lotion Texture, Serum Droplets, Gel Cream, Serum Drizzles, Soapy Suds, Whipped Cream/Butter, Sparkle Object, Lotion Comb Pulls, Serum Drips, Lotion Squeeze, Balm Texture |
| Product — Ingredient | Ingredients in Water, Flat Lay Pattern, Dew Drops on Flower or Leaf, Rotating Object, Liquid Dripping, Drippy Ingredients, Dripping Fruit |
| Product — Benefit | Face Loop, Neck Loop |
| Non-Product — Abstract | Abstract Waves, Flowing Fabric |
| Non-Product — Hydration | Water Ball, Water Ripples |
| Non-Product — Sun Life | Beach Waves, Water Ripples Poolside, Ambient Shadows, Beach Umbrella with Waves, Umbrella Only, Girl Subtle Movement/Body Loop, Yacht Life |
| Non-Product — Breezy | Curtains Blowing, Clouds Drifting, Leaves in Breeze, Flower in Breeze |
Errors
| Status | Code | Cause |
|---|---|---|
| 400 | missing_query | The q parameter was empty. |
| 503 | style_search_unavailable | The embedding service is warming up. Retry in 30 seconds. |