catalogue:read.
Vehicles by the work
GET /v1/work?locale=en lists the kinds of work the register knows (tipper work on a quarry road, a container run on the highway, a city bus route, and the rest), each with its slug, its name and lede in the locale (en, hi, ta) and total, the count of variants that fit it.
GET /v1/work/{slug}?locale=&limit= is one kind of work: the operating envelope as cells (payload, body, axle, the roads it runs, each a value and a note), the checks a buyer should make, the guides that go with it, and vehicles, the register’s matching variants ranked, up to limit (six by default). listing_query is the filter string that reproduces the list on GET /v1/variants.
Compare
GET /v1/compare?v=a,b&state= puts two to four variants side by side: v is the slugs, comma-separated (a repeated v works too). The answer holds, per variant, sheet (the summary: the plate figures, the body options, the price with its kind and its date), the register rows (the plate figures, the body options, the price with its kind and its date), how the price moved this year, and the dealers’ quotes in state (a two-letter code, DL when omitted).
A slug that is not published comes back under missing, so a wrong slug never passes silently; the same list sits on the cost and fit answers.
GET /v1/compare/cost is what each will cost over the years on the road: purchase, finance, fuel, tyres and upkeep at your figures. Every parameter has a default the answer echoes back, so start with the slugs and the state and add what you know:
GET /v1/compare/fit?v=a,b&work=&locale=&lines= marks each variant against one kind of work (a slug from GET /v1/work) with the reasons in the locale; lines caps the reasons per variant.
A compared price is still a price: show its kind next to the figure, and keep the date with it. The API never carries the page a figure was read from.
The words
GET /v1/words?locale=en is the glossary the site uses: groups of terms, each word with its key, the word itself, a plain tip, the forms it appears in and the door on the site where it matters, and the faqs that hang off the group. GET /v1/words/{key}?locale= is one term. Use it to label your own screens the way the register does, in the reader’s language.
