Legacy feed
Compatibility behavior for existing RSS-shaped JSON consumers.
GET /legacy
This is the full production response, including channel metadata and parser fields. Source descriptions/features may contain combined free text. Source/parser field presence is retained rather than expanded into the normalized DTO. Phone values are normalized to E.164 or null. The legacy parser's isoDate remains in UTC, unlike the normalized /v1 timestamps.
The six filters and their aliases work here too, but every query uses source-filtered selection and the 24-combination limit. Multi-product results contain separate station/product items with a numeric product marker; a single-product response omits that marker.
The content type is application/json;charset=UTF-8. This route does not apply /v1 JSON:API media negotiation. Success metadata is not the /v1 meta object; source-date/fetch headers remain available. Caching, ETags and HEAD work with a separate representation cache.
Errors contain an error object with code and message and use no-store. Do not deserialize them as JSON:API errors.
Migration to /v1
Read data[].attributes instead of feed.items[]; select a product explicitly if you previously relied on unleaded being the default. Read numeric price.products["1"], numeric coordinates and camelCase fields. Adopt compact codes or request expansion. Preserve source-date/validity checks and optional provider attribution.
No removal date for /legacy is declared by this source.