Searching the catalogue
How Rushie expands a query, ranks results, and tells you when it has nothing good.
The endpoint
GET /api/bank/search?q=stressed+at+work&kind=image&limit=24
Parameters
| Name | Values | What it does |
|---|---|---|
q | free text | Expanded through the concept map, then ranked. Omit it to browse. |
kind | image, video | Narrows to stills or clips. |
category | a catalogue category | See the category list. |
orientation | landscape, portrait, square | Shape of the frame. |
color | a colour family | Matched against the measured dominant colours. |
min_megapixels | number | Floor on resolution. |
sort | relevance, newest, oldest, largest, best | Relevance is the default for a query, newest without one. |
limit, offset | numbers | Paging. limit is capped at 100. |
What comes back
{
"assets": [{
"id": "a_...", "kind": "image", "title": "...", "description": "...",
"keywords": ["..."], "category": "Business/Finance",
"width": 4864, "height": 3200, "megapixels": 15.6,
"preview_url": "/api/bank/preview/a_...", "thumb_url": "/files/thumbs/a_....webp",
"prices": {"standard": 9.0, "extended": 36.0},
"generated_with_ai": true, "relevance": 0.61
}],
"total": 21, "limit": 24, "offset": 0,
"query_expanded_to": ["boardroom", "colleagues", "conference", "meeting"]
}
The payload never contains the prompt, the seed or a path to the original. Those are the studio's, not the shop's.
Reading relevance
relevance is a cosine in 0 to 1. A direct subject match sits around 0.6; a query
that only brushed a document through one common word lands near 0.2. The shop treats anything
below about 0.34 as "found something, but not this" and offers to render the real thing instead.
A query with no usable terms — a bare number, say — returns no relevance at all and
leaves the catalogue in its own order, because having no opinion is not the same as finding
nothing.