As well as the ready-to-use listing widget, as a developer you can also work directly with the underlying JSON files to build a completely customised view – for example, if you want to integrate the listings into an existing CMS theme or build your own search/filter experience.
All the endpoints listed below are publicly accessible (no API key is required apart from what's already included in the URL) and include CORS headers, so you can call them directly from browser JavaScript without needing your own backend proxy.
GET https://breaqs.com/public_json/dealers/{dealerid}/{public_api_key}_list.json You can find your dealer ID and public key on your Breaqs dashboard > Api access,
Returns an array containing one object per advert:
field type description
| adid | number | unique advert ID |
| catid | number | main category – see (3. Lookup tables) |
| brand | string | Brand / Category name |
| model | string | Model / Category name |
| typeoffer | number | 1 = auction, 2 = fixed price |
| brandid, modelid | number | numeric make/model IDs (name lookup not yet available; see limitations) |
| title | string | advert title |
| tagline | string | brief summary |
| imgurl | string | URL of the main image (thumbnail size) |
| price | string | price without a currency symbol, e.g. ‘24950.00'. ‘0.00' means: no bid yet (in an auction) or price on request (for a fixed price) |
| currency | string | ISO currency code, e.g. ‘EUR' |
| timeleft | number | null | for auctions only: the Unix timestamp (in seconds) at which the auction ends |
| detaillink | string | link to the full advert on breaqs.com |
| buildyear | string | year of manufacture |
| color, transmission, fuel, bodywork | string | numeric IDs, resolved via the lookup table |
| doors | string | number of doors |
| milage | string | mileage |
Please note: fields that are empty in an advert are completely missing from the JSON (no null/empty string), so build defensively and check for presence, not just for an empty value.
GET https://breaqs.com/public_json/dealers/{dealerid}/listing_{adid}.json Returns a single object (not an array) containing all the fields from the list, plus:
field type description
| power | string | power, unit is in kwhp see below |
| kwhp | string | unit of power, e.g. ‘kW' |
| weight | string | weight; unit given in kglbs – see below |
| kglbs | string | unit of weight, e.g. ‘kg' |
| milage | string | mileage, unit shown in kmmls |
| kmmls | string | unit for mileage, e.g. ‘km' |
| displacement | string | engine capacity in cc |
| cylinder | string | number of cylinders |
| motvalid | string | the year until which the MOT/vehicle inspection is valid |
| euroemis | string | emission class as ready-made text, e.g. ‘Euro 3' |
| co2emis | string | CO₂ emissions as ready-made text, e.g. ‘123 g/km' |
| description | string | formatted HTML (already filtered by Breaqs) – see explanation below |
| photos | array | see below |
"photos": [ { "large": "https://cdn.breaqs.com/.../foto1_n.webp", "small": "https://cdn.breaqs.com/.../foto1_s.webp" } ] Each photo has a small (thumbnail) and a large (full-size) version. For adverts with a large number of photos (up to ~100), we recommend pre-loading only the small versions and only fetching the large versions once the visitor actually views that photo.
This field contains the text as entered by the dealer, already filtered by Breaqs' own HTML Purifier and strip_tags filter - only 'p', 'u', 'em', 'strong', 'ul', 'li' and 'br' are allowed through; all other unwanted formatting is removed. Nevertheless, we recommend that you sanitise this HTML locally once more in your own view before displaying it via innerHTML (e.g. using DOMPurify) - not because you should distrust Breaqs' filtering, but as a standard defence-in-depth measure: as a general rule, you should always sanitise content that you haven't created yourself and are rendering directly as HTML once more on your own side.
GET https://breaqs.com/public_json/widget/widget_lookups_{lang}.json Supported languages: cs, de, en, es, fr, it, nl, pl.
Converts the numeric catid, colour, transmission, fuel and bodywork values into readable labels, by category:
{ "1": { "id": "cars", "color": { "16": "black", "2": "blue" }, "transmission": { "1": "Manual", "2": "Automatic" }, "fuel": { "1": "Gasoline" }, "bodywork": { "2": "stationwagen" } } } Not every category has the same fields – boats, for example, do not have ‘bodywork' or ‘transmission'. So always check whether a field exists before you try to resolve it.