FuelWatch API
API reference

Response schemas

Field definitions derived from the OpenAPI contract.

These are HTTP document shapes, not SDK classes. Codes and expanded objects are both valid representations, controlled by expand.

Prices are JSON numbers in Australian cents per litre; product keys are strings. Timestamps use AWST, postcodes stay strings, and null means unavailable rather than an empty string or zero.

PriceDocument

HTTP PriceDocument schema.

Fields

required
See the linked schema for this field.
Show child fields
"1.1"
required
See the linked schema for this field.
required
See the linked schema for this field.
Show child fields
"fuelwatch.wa.gov.au"
required
See the linked schema for this field.
string
required
Selected Perth calendar date.
string
required
Oldest contributing origin fetch; never reset by cache reads.
string
required
AWST timestamp with explicit +08:00 offset.
string
required
Exclusive end of the price period at 06:00 the next day.
string
required
Nonempty, valid empty, or empty tomorrow selection before 14:30 AWST. Not a separate availability endpoint.
Possible enum values
available
empty
not_yet_published
optional
FuelWatch product identifier. There is no product 3. See the product codes for names.
optional
See the linked schema for this field.
string
required
Publisher and API copyright notice.
string
required
Documentation URL.
string
required
Issue tracker URL.
string
required
Worker package version that rendered this document. Distinct from the /v1 route and JSON:API version; cached documents can retain the previous version.
required
See the linked schema for this field.
Show child fields
"serviceStation"
required
See the linked schema for this field.
string
required
Opaque identity for one station and source date. Stable across selected products, expansion, prices and enrichment, but changes with source date or station identity.
required
See the linked schema for this field.

JsonApi

HTTP JsonApi schema.

Fields

"1.1"
required
See the linked schema for this field.

Metadata

HTTP Metadata schema.

Fields

"fuelwatch.wa.gov.au"
required
See the linked schema for this field.
string
required
Selected Perth calendar date.
string
required
Oldest contributing origin fetch; never reset by cache reads.
string
required
AWST timestamp with explicit +08:00 offset.
string
required
Exclusive end of the price period at 06:00 the next day.
string
required
Nonempty, valid empty, or empty tomorrow selection before 14:30 AWST. Not a separate availability endpoint.
Possible enum values
available
empty
not_yet_published
optional
FuelWatch product identifier. There is no product 3. See the product codes for names.
optional
See the linked schema for this field.
string
required
Publisher and API copyright notice.
string
required
Documentation URL.
string
required
Issue tracker URL.
string
required
Worker package version that rendered this document. Distinct from the /v1 route and JSON:API version; cached documents can retain the previous version.

ServiceStation

HTTP ServiceStation schema.

Fields

"serviceStation"
required
See the linked schema for this field.
string
required
Opaque identity for one station and source date. Stable across selected products, expansion, prices and enrichment, but changes with source date or station identity.
required
See the linked schema for this field.
Show child fields
string
required
FuelWatch station name.
string
required
FuelWatch trading name.
required
See the linked schema for this field.
required
See the linked schema for this field.
boolean | null
required
true: known continuous opening; false: known limited schedule; null: unknown.
string | null
required
Valid E.164 phone number, or null.
number
required
See the linked schema for this field.
number
required
See the linked schema for this field.
required
Codes by default, objects when expanded. Empty is []; each nonempty array uses one representation.
required
Codes or expanded objects; null when there are no known restrictions.
optional
Optional local AWST weekday schedule. Missing weekdays are unknown. End before start means next day; 24:00 is allowed only as a closing time.
optional
Optional original text that could not be represented by the controlled schema.
optional
Present only when provider fields were used. Preserve attribution when displaying them.

StationAttributes

HTTP StationAttributes schema.

Fields

string
required
FuelWatch station name.
string
required
FuelWatch trading name.
required
Numeric by default; object when brand is expanded.
Show child fields
string
required
Human-readable label.
string
required
Root-relative SVG URL; resolve against the API origin.
required
See the linked schema for this field.
Show child fields
string
required
Start of the selected price period at 06:00 AWST; equals meta.validFrom.
object
required
Selected product IDs as JSON string keys. Missing products are unavailable, never zero. 195.1 cents/L means AUD 1.951/L.
required
See the linked schema for this field.
Show child fields
string
required
FuelWatch street address.
string
required
FuelWatch suburb/locality.
"WA"
required
See the linked schema for this field.
string | null
required
Australian postcode, preserving leading zeroes; null when unavailable.
boolean | null
required
true: known continuous opening; false: known limited schedule; null: unknown.
string | null
required
Valid E.164 phone number, or null.
number
required
See the linked schema for this field.
number
required
See the linked schema for this field.
required
Codes by default, objects when expanded. Empty is []; each nonempty array uses one representation.
Show child fields
required
Codes or expanded objects; null when there are no known restrictions.
Show child fields
string
required
Human-readable label.
optional
Optional local AWST weekday schedule. Missing weekdays are unknown. End before start means next day; 24:00 is allowed only as a closing time.
Show child fields
string
optional
Closed, or one or more comma-separated HH:mm-HH:mm intervals.
string
optional
Closed, or one or more comma-separated HH:mm-HH:mm intervals.
string
optional
Closed, or one or more comma-separated HH:mm-HH:mm intervals.
string
optional
Closed, or one or more comma-separated HH:mm-HH:mm intervals.
string
optional
Closed, or one or more comma-separated HH:mm-HH:mm intervals.
string
optional
Closed, or one or more comma-separated HH:mm-HH:mm intervals.
string
optional
Closed, or one or more comma-separated HH:mm-HH:mm intervals.
optional
Optional original text that could not be represented by the controlled schema.
Show child fields
string
optional
Unmapped source brand, paired with code 0.
string[]
optional
See the linked schema for this field.
string[]
optional
See the linked schema for this field.
string
optional
Unparsed source hours; blocks provider replacement.
string
optional
Invalid or ambiguous source phone; blocks provider replacement.
optional
Present only when provider fields were used. Preserve attribution when displaying them.
Show child fields
"Google Maps"
required
See the linked schema for this field.
string
required
Matched Google place identifier.
string
required
AWST timestamp with explicit +08:00 offset.
boolean
required
Provider refresh deadline has passed; data is still within its 30-day retention limit.
string[]
required
See the linked schema for this field.
string
required
Google Maps URL for the matched place.
required
See the linked schema for this field.

Price

HTTP Price schema.

Fields

string
required
Start of the selected price period at 06:00 AWST; equals meta.validFrom.
object
required
Selected product IDs as JSON string keys. Missing products are unavailable, never zero. 195.1 cents/L means AUD 1.951/L.
Show child fields
number
optional
Unleaded Petrol in Australian cents per litre.
number
optional
Premium Unleaded 95 in Australian cents per litre.
number
optional
Diesel in Australian cents per litre.
number
optional
LPG in Australian cents per litre.
number
optional
Premium Unleaded 98 in Australian cents per litre.
number
optional
E85 in Australian cents per litre.
number
optional
Brand Diesel in Australian cents per litre.

Address

HTTP Address schema.

Fields

string
required
FuelWatch street address.
string
required
FuelWatch suburb/locality.
"WA"
required
See the linked schema for this field.
string | null
required
Australian postcode, preserving leading zeroes; null when unavailable.

BrandCode

FuelWatch brand code. Reserved response-only code 0 means unmapped; sourceNotes.brand retains its name. See the brand codes for names.

Fields

integer
required
FuelWatch brand code. Reserved response-only code 0 means unmapped; sourceNotes.brand retains its name. See the brand codes for names.

Brand

HTTP Brand schema.

Fields

string
required
Human-readable label.
string
required
Root-relative SVG URL; resolve against the API origin.

ProductCode

FuelWatch product identifier. There is no product 3. See the product codes for names.

Fields

integer
required
FuelWatch product identifier. There is no product 3. See the product codes for names.

FeatureCode

Stable API feature identifier; not an array position. See the site feature codes for names.

Fields

integer
required

SiteFeature

HTTP SiteFeature schema.

Fields

RestrictionCode

Stable API restriction identifier. See the restriction codes for names.

Fields

integer
required

Restriction

HTTP Restriction schema.

Fields

string
required
Human-readable label.

OpeningHours

Optional local AWST weekday schedule. Missing weekdays are unknown. End before start means next day; 24:00 is allowed only as a closing time.

Fields

string
optional
Closed, or one or more comma-separated HH:mm-HH:mm intervals.
string
optional
Closed, or one or more comma-separated HH:mm-HH:mm intervals.
string
optional
Closed, or one or more comma-separated HH:mm-HH:mm intervals.
string
optional
Closed, or one or more comma-separated HH:mm-HH:mm intervals.
string
optional
Closed, or one or more comma-separated HH:mm-HH:mm intervals.
string
optional
Closed, or one or more comma-separated HH:mm-HH:mm intervals.
string
optional
Closed, or one or more comma-separated HH:mm-HH:mm intervals.

SourceNotes

Optional original text that could not be represented by the controlled schema.

Fields

string
optional
Unmapped source brand, paired with code 0.
string[]
optional
See the linked schema for this field.
string[]
optional
See the linked schema for this field.
string
optional
Unparsed source hours; blocks provider replacement.
string
optional
Invalid or ambiguous source phone; blocks provider replacement.

Enrichment

Present only when provider fields were used. Preserve attribution when displaying them.

Fields

"Google Maps"
required
See the linked schema for this field.
string
required
Matched Google place identifier.
string
required
AWST timestamp with explicit +08:00 offset.
boolean
required
Provider refresh deadline has passed; data is still within its 30-day retention limit.
string[]
required
See the linked schema for this field.
string
required
Google Maps URL for the matched place.
required
See the linked schema for this field.
Show child fields
string
required
Third-party provider display name.
string
required
Attribution URL.

Attribution

HTTP Attribution schema.

Fields

string
required
Third-party provider display name.
string
required
Attribution URL.

ErrorDocument

HTTP ErrorDocument schema.

Fields

required
See the linked schema for this field.
Show child fields
"1.1"
required
See the linked schema for this field.
required
See the linked schema for this field.
Show child fields
string
required
See the linked schema for this field.
Possible enum values
400
404
405
406
415
500
502
503
504
string
required
See the linked schema for this field.
Possible enum values
invalid_query
not_found
method_not_allowed
not_acceptable
unsupported_media_type
internal_error
invalid_feed
response_too_large
upstream_denied
upstream_unavailable
cache_refresh_busy
upstream_timeout
string
required
Safe diagnostic message; do not branch on its wording.

ApiError

HTTP ApiError schema.

Fields

string
required
See the linked schema for this field.
Possible enum values
400
404
405
406
415
500
502
503
504
string
required
See the linked schema for this field.
Possible enum values
invalid_query
not_found
method_not_allowed
not_acceptable
unsupported_media_type
internal_error
invalid_feed
response_too_large
upstream_denied
upstream_unavailable
cache_refresh_busy
upstream_timeout
string
required
Safe diagnostic message; do not branch on its wording.

LegacyDocument

HTTP LegacyDocument schema.

Fields

object
required
RSS channel/parser metadata and validated items. Not a JSON:API document.
Show child fields
required
See the linked schema for this field.

LegacyItem

Validated RSS-shaped station quote. Source/parser members are preserved; quotes are not grouped by station.

Fields

string
required
Source trading name.
string
optional
Source brand label.
string
required
Price in cents/L, as source text.
string
required
Source price date.
string
required
Street address.
string
required
Suburb.
string
required
Latitude as source text.
string
required
Longitude as source text.
string | null
required
Normalized E.164 phone or null.
string
optional
Source feature/hours text.
string
optional
Source restrictions text.
optional
Included only for multi-product selections.

LegacyError

HTTP LegacyError schema.

Fields

object
required
See the linked schema for this field.
Show child fields
string
required
See the linked schema for this field.
Possible enum values
invalid_query
not_found
method_not_allowed
not_acceptable
unsupported_media_type
internal_error
invalid_feed
response_too_large
upstream_denied
upstream_unavailable
cache_refresh_busy
upstream_timeout
string
required
Safe diagnostic message.

Absent versus null

  • phone, address.postcode and is24Hours are always present and can be null.
  • siteFeatures is always an array, including when empty.
  • restrictions is null when no known restriction is supplied.
  • openHours is optional and omitted for confirmed 24-hour opening. Unknown weekdays are omitted.
  • sourceNotes and enrichment are optional.
  • price.products omits unavailable products.
  • meta.product appears for one selected fuel; meta.products appears for multiple selected fuels. They never coexist.
  • Unknown informational metadata can be added without changing the station resource contract.

meta.version identifies the Worker package that rendered the document. It is separate from the /v1 route and jsonapi.version (the JSON:API document version). A cached response can retain a previous Worker version until it expires.

Enrichment does not introduce RSS title, image, description or schemaVersion fields. See station details and attribution for source precedence.

On this page