API reference

Locations

Last updated:

Places a driver goes: fuel stations, chargers and dealers, one ref each

GET/v2/locationssince 2026-10-26

Places near a point: fuel stations, chargers and dealers

Radius search over every place a driver goes, one `poi:{geohash}` ref per place: a gas station with chargers is one place with two kinds. A place is listed when any requested kind is live (a fuel station seen in the last 7 days, an operational charger, a dealer seen in the last 7 days). Nearest first. Each hit links to its own group's record (`links.fuel`, `links.charging`).

Query parameters

latnumberrequired

Search-center latitude

lngnumberrequired

Search-center longitude

radius_kmnumberoptional

Search radius in km

kindstringoptional

Only places of these kinds: a comma list of "fuel", "charging", "seller" (e.g. "fuel,charging")

limitintegeroptional

Place cap

curl "https://api.cardog.app/v2/locations?lat=43.6532&lng=-79.3832&radius_km=5&kind=fuel" \
  -H "x-api-key: $CARDOG_API_KEY"

Response

200LocationSearch
totalinteger

Number of places returned, at most limit

locationsobject[]

Nearest first

refstring

Entity ref ({domain}:{key}) in the "poi" domain. Example: "poi:dpz9cxmmw0"

idstring

The place's id: a 10-character geohash of its location, the ref without "poi:" (e.g. "dpz9cxmmw0")

kinds"fuel" | "charging" | "seller"[]

Every kind the place is, e.g. a gas station with chargers is ["fuel", "charging"]

namestring | null
brandstring | null
addressobject
streetstring | null
citystring | null
statestring | null

Province or territory code, e.g. "ON"

postalCodestring | null
countrystring | null

Country code (ISO 3166-1 alpha-2)

locationobject
latitudenumber
longitudenumber
distanceKmnumber

Distance from the search point, in km

linksobjectoptional

self, plus fuel (the /v2/fuel station) when kinds has fuel and charging (the /v2/charging station) when kinds has charging

asOfstringoptional

The newest day any place was seen (YYYY-MM-DD)

linksobjectoptional

Related resources, keyed by relation name, each a server-relative path. Example: {"recalls": "/v2/recalls/entity/model-year:toyota/rav4/2021"}

Example response

4 keys
"response": {
"total": 5,
"locations": [
0: {9 items},
1: {9 items},
2: {9 items},
3: {9 items},
4: {9 items}
],
"asOf": "2026-10-25",
"links": {
"self": "/v2/locations"
}
}

Errors400401402429500every non-2xx body is the error envelope

GET/v2/locations/{id}since 2026-10-26

One place by id, with each kind's detail

The id is the place's 10-character geohash: its ref without "poi:" (e.g. `dpz9cxmmw0`). Anything else is a 404. Each kind's block (`fuel`, `charging`, `sellers`) is in its own group's shape, or null when the place is not that kind. One place can hold several dealers (an auto mall): `sellers.dealers` lists those seen in the last 7 days. The charging block carries the Open Charge Map attribution (ODbL 1.0); show it wherever station data renders.

Path parameters

idstringrequired

Place id: a 10-character geohash, the ref without "poi:" (e.g. "dpz9cxmmw0")

curl "https://api.cardog.app/v2/locations/dpz9cxmmw0" \
  -H "x-api-key: $CARDOG_API_KEY"

Response

200LocationDetailResponse
locationobject
refstring

Entity ref ({domain}:{key}) in the "poi" domain. Example: "poi:dpz9cxmmw0"

idstring

The place's id: a 10-character geohash of its location, the ref without "poi:" (e.g. "dpz9cxmmw0")

kinds"fuel" | "charging" | "seller"[]

Every kind the place is, e.g. a gas station with chargers is ["fuel", "charging"]

namestring | null
brandstring | null
addressobject
streetstring | null
citystring | null
statestring | null

Province or territory code, e.g. "ON"

postalCodestring | null
countrystring | null

Country code (ISO 3166-1 alpha-2)

locationobject
latitudenumber
longitudenumber
fuelobject | null

Fuel detail, or null when the place is not a fuel station

fuels"regular" | "midgrade" | "premium" | "diesel" | "e85" | "propane"[]

Fuels the station sells

pricesobject[]

Current prices: the newest post per fuel and payment, at most 7 days old

fuel"regular" | "midgrade" | "premium" | "diesel" | "e85" | "propane"

Fuel: a gasoline grade (regular, midgrade, premium) or diesel, e85, propane

fuelTypestring

Fuel-type entity ref, e.g. "fuel-type:gasoline"

payment"credit" | "cash"

Price paying by card or by cash; most stations post credit only

centsPerLitrenumber

Posted price, Canadian cents per litre

currency"CAD"
postedAtstring

When the price was posted (ISO 8601)

reportedBystring | null

Who posted it: "owner" (the station) or "member" / "visitor" (a driver). Other values may be added.

amenitiesstring[]

e.g. "c_store", "pay_at_pump", "restrooms". Other values may be added.

openingHoursstring | null
chargingobject | null

Charging stations here, or null when there are none

stationsobject[]
refstring

Entity ref ({domain}:{key}) in the "station" domain. Example: "station:ocm/248113"

idstring

Station id in the source dataset (Open Charge Map ChargePoint ID)

namestring | null
addressobject
locationobject
connectorsobject[]
maxPowerKwnumber | null

Highest rated power of any connector at the station, in kW

numberOfPointsinteger | null

Number of charge points at the station

operatorstring | null
statusstring

Station status: "Operational" or "NonOperational". Decommissioned stations are kept in the dataset, so filter on this field.

usagestring | null

Usage class, e.g. "Public", "Private - Restricted Access"

isMembershipRequiredboolean | null
isPayAtLocationboolean | null
dateCreatedstring | null

When the source first recorded the station (ISO 8601)

dateLastVerifiedstring | null

Last source verification (ISO 8601)

poistring | null

The place this station is at: a poi:{geohash} ref, readable at /v2/locations/{geohash}. A fuel station or dealer at the same spot shares it. Null when the station has no place.

linksobjectoptional

Related resources, keyed by relation name, each a server-relative path. Example: {"recalls": "/v2/recalls/entity/model-year:toyota/rav4/2021"}

attributionstring

Open Charge Map attribution string (ODbL 1.0 licence). Must be shown wherever station data is displayed.

sellersobject | null

The dealers here seen in the last 7 days, or null when there are none

dealersobject[]
orgstring

The dealer organization's ref, e.g. "org:cardog/0b6f…"

namestring | null
linksobjectoptional

self, plus fuel and charging as on a search hit

asOfstringoptional

The newest day any place was seen (YYYY-MM-DD)

Example response

2 keys
"response": {
"location": {
"ref": "poi:dpz9cxmmw0",
"id": "dpz9cxmmw0",
"kinds": [1 item],
"name": "BVD Travel Centre",
"brand": "BVD Travel Centre",
"address": {5 items},
"location": {2 items},
"fuel": {4 items},
"charging": null,
"sellers": null,
"links": {2 items}
},
"asOf": "2026-10-25"
}

Errors400401402404429500every non-2xx body is the error envelope

Generated from the contract. Machine-readable spec: GET https://api.cardog.app/v2/openapi.json · markdown twin: /docs/reference/locations.md