OpenAPI specification
Download the machine-readable HTTP contract and understand its limits.
The downloadable OpenAPI 3.1 document describes the API origin, endpoints, parameters, response headers, station schemas, reference codes, examples and errors. It can be imported into compatible API clients and tooling.
What the schemas describe
- Numeric code or expanded-object reference variants.
- One grouped resource per station and selected date.
- Product-keyed numeric prices, nullability and optional enrichment.
- Exactly one of
meta.productormeta.products. - AWST timestamps, E.164 phone syntax and weekday hours.
- JSON:API success/error envelopes and the separate legacy contract.
- Bodyless
HEAD,304and preflight responses.
The schema tables in this site are derived from this file. Response examples are complete, unedited JSON documents captured from the production API on 30 September 2026. Prices and facility information are historical snapshots; the request shown beside each example can be repeated for current data.
Captured examples
| OpenAPI example | What it demonstrates |
|---|---|
Compact | Costco Perth Airport, all products, compact codes, hours and enrichment. |
Expanded | The same selection with all reference objects expanded. |
BrandExpanded | Selective brand expansion with numeric feature and restriction codes. |
FeaturesExpanded | Feature and restriction objects with a numeric brand code. |
SingleProduct | Product 1 only, with meta.product and enrichment. |
FuelWatchOnly | Both MEADOW stations, null contact/postcode fields and absent enrichment. |
Empty | A successful LPG selection with no quotes and data: []. |
InvalidProduct | The real HTTP 400 response to unsupported product 3. |
Legacy | Full legacy channel metadata and RSS/parser station fields. |
Each Example Object keeps its body in value, with the exact GET URL, request headers, capture timestamp in AWST, HTTP status and selected response headers in x-capture. Its bodySha256 checks the UTF-8 JSON.stringify(value) representation, independent of indentation. These are documentation annotations outside the API body.
Examples are attached to their corresponding success/error media types and validated against the appropriate success, error or legacy schema. The same examples power the visible docs, copied Markdown and search content. Docs builds and tests do not make live API requests.
Rules that also need prose
Standard OpenAPI cannot fully express case-insensitive parameter names, alias exclusivity, repeated query-name rejection, request-time Perth date ranges, the conditional 24-combination bound or the relationship between expand and response shape. Follow the filtering, expansion and price-period guides as well.
Comma-separated arrays use style: form and explode: false. Some clients default to repeated keys instead; configure them to send product=1,2 rather than product=1&product=2.
info.version identifies this documentation contract, not a discovery or server-version endpoint. The public route is /v1. Confirm deployed behavior when coordinating a rollout.
Compatibility
Ignore new informational meta members and preserve provider attribution. Do not infer station identity from array order, treat absent product prices as zero, or assume every reference code is already known to an older client.
No SDK is described or generated as part of this site. Native HTTP examples work independently of any future SDK.