The Parking Intelligence API provides access to parking area information with support for radius-based searches and route-based queries. Most endpoints return parking areas with detailed information including location (latitude/longitude), address, services, ratings, and current_occupancy. The premium endpoints additionally return forecasted_occupancy, ranking, and driving time to each area.
All API endpoints require authentication via an API key. Include the key in every request using the x-api-key header.
| Header | Required | Description |
|---|---|---|
x-api-key |
Yes | Your API key. Contact us to obtain one. |
Requests without a valid key receive 401 Unauthorized (API key is required or Invalid API key).
To safely retry requests (e.g. after a timeout or network error), send an Idempotency-Key header with a unique value per logical operation. The same key within the validity window is treated as a duplicate of the original request.
| Header | Required | Description |
|---|---|---|
Idempotency-Key |
No | Unique string per operation (e.g. UUID). Reuse the same value only for retries. |
Behavior:
200 OK with body { "idempotent": true }. The handler is not run again.409 Conflict with message Duplicate idempotency key. Request already in progress or key recently used.Keys are valid for 24 hours. After that, the same key is treated as a new request.
Find parking areas within a specified radius of a given location.
GET /radius/nearby-areas
| Parameter | Type | Required | Description | Constraints |
|---|---|---|---|---|
lat |
number | Yes | Latitude of the search center | -90 to 90 |
long |
number | Yes | Longitude of the search center | -180 to 180 |
radiusKm |
number | No | Search radius in kilometers | 0.1 to 500 (default: 10) |
services |
string[] | No | Filter by available services | Comma-separated or array of service enum values |
The services parameter accepts either:
"wc,freeParking,supermarket"["wc", "freeParking", "supermarket"]Available Service Values:
wc - Restroom facilitiesshower - Shower facilitiesrestaurant - Restaurant on-sitewifi - WiFi availablegasStation - Gas stationalwaysOpen - 24/7 accesshotel - Hotel nearbyatm - ATM availablekiosk - Kiosk/shopcamera - Security camerassecurityParking - Secured parkingfuelCard - Fuel card acceptedrepairShop - Vehicle repair serviceslaundromat - Laundry facilitiesdocStop - Document stoptruckWash - Truck wash facilitypicnicArea - Picnic areaelectricChargingStation - EV charginglighting - Well-lit areabookable - Reservable parkingpaidParking - Paid parkingtwentyFiveMeters - 25-meter parking spacesfences - Fenced areafoodDeliveryService - Food delivery availabledangerousGoods - Dangerous goods allowediceFreeScaffolding - Ice-free scaffoldingsupermarket - Supermarket nearbybarrier - Barrier-controlledroatel - Roatel servicetruckerLife - TruckerLife servicetankPool - Tank pooltruckStop - Truck stopfreeParking - Free parkingveda - Veda servicesvg - SVG serviceserways - Serways servicefiveGuys - Five Guys restaurantmcdonalds - McDonald's restaurantmissPepper - Miss Pepper restaurantpizzaHut - Pizza Hut restaurantburgerKing - Burger King restaurantadBlue - AdBlue availabletravis - Travis serviceshappyTrucker - Happy Trucker servicesGET /radius/nearby-areas?lat=52.472792&long=13.429169&radiusKm=15&services=wc,freeParking,supermarket
average_rating field is only included if users have reviewed the area via the LKW appFind parking areas along a route between two coordinate points.
GET /routing/areas-along-route
| Parameter | Type | Required | Description | Constraints |
|---|---|---|---|---|
originLat |
number | Yes | Origin latitude | -90 to 90 |
originLong |
number | Yes | Origin longitude | -180 to 180 |
destinationLat |
number | Yes | Destination latitude | -90 to 90 |
destinationLong |
number | Yes | Destination longitude | -180 to 180 |
radiusKm |
number | No | Search radius in km from the route | 0.1 to 500 (default: 3) |
services |
string[] | No | Filter by available services | Comma-separated or array of service enum values |
GET /routing/areas-along-route?originLat=52.472792&originLong=13.429169&destinationLat=50.935573&destinationLong=6.939446&radiusKm=3&services=wc,restaurant
radiusKm of the route (default 3km)Find parking areas along a route between two addresses. Addresses are automatically geocoded to coordinates.
GET /routing/areas-along-route-by-address
| Parameter | Type | Required | Description | Constraints |
|---|---|---|---|---|
originAddress |
string | Yes | Origin address (e.g., "Berlin, Germany") | Max 500 characters |
destinationAddress |
string | Yes | Destination address (e.g., "Munich, Germany") | Max 500 characters |
radiusKm |
number | No | Search radius in km from the route | 0.1 to 500 (default: 3) |
services |
string[] | No | Filter by available services | — |
GET /routing/areas-along-route-by-address?originAddress=Berlin,%20Germany&destinationAddress=Munich,%20Germany&radiusKm=3&services=wc,freeParking
Find and rank the best parking areas for a premium optimal-parking decision based on remaining driving time, forecasted occupancy (based on when we expect the driver to arrive to the particular area) and detailed scoring logic.
GET /premium/optimal-parking
| Parameter | Type | Required | Description | Constraints |
|---|---|---|---|---|
originLat |
number | Yes | Origin latitude | -90 to 90 |
originLong |
number | Yes | Origin longitude | -180 to 180 |
destinationLat |
number | Yes | Destination latitude | -90 to 90 |
destinationLong |
number | Yes | Destination longitude | -180 to 180 |
remainingDrivingTimeSeconds |
number | Yes | Remaining driving time until the parking decision | 0 to 21600 |
radiusKm |
number | No | Search radius in km from the route (default: 3) | 0.1 to 500 (default: 3) |
services |
string[] | No | Filter by available services | Comma-separated or array |
GET /premium/optimal-parking?originLat=52.472792&originLong=13.429169&destinationLat=50.935573&destinationLong=6.939446&remainingDrivingTimeSeconds=16200&radiusKm=3&services=wc,restaurant
forecasted_occupancy for the expected arrival time (1=available, 2=limited, 3=full).rank (1 = best).driving_time_to_area is returned when available (seconds from route start to the nearest route point for that area).Premium optimal parking using origin/destination addresses instead of coordinates (addresses are geocoded).
GET /premium/optimal-parking-with-addresses
| Parameter | Type | Required | Description | Constraints |
|---|---|---|---|---|
originAddress |
string | Yes | Origin address | Max 500 characters |
destinationAddress |
string | Yes | Destination address | Max 500 characters |
remainingDrivingTimeSeconds |
number | Yes | Remaining driving time until the parking decision | 0 to 21600 |
radiusKm |
number | No | Search radius in km from the route (default: 3) | 0.1 to 500 (default: 3) |
services |
string[] | No | Filter by available services | Comma-separated or array |
GET /premium/optimal-parking-with-addresses?originAddress=Berlin,%20Germany&destinationAddress=Munich,%20Germany&remainingDrivingTimeSeconds=16200&radiusKm=3&services=wc,freeParking
All endpoints return an array of parking area objects with the following structure:
{
name: string;
address: {
street: string;
city: string;
country_code: string;
zip_code: string;
};
services: string[];
average_rating?: number; // Optional, only present if ratings exist
current_occupancy: number; // Always present: 1, 2, or 3
location: {
latitude: number;
longitude: number;
};
capacity?: number; // Optional, truck parking slot count when available
}
Premium endpoints (/premium/optimal-parking*) return a richer object for each parking area.
They keep the base parking fields, but replace current_occupancy with forecasted_occupancy and include ranking metadata.
{
name: string;
address: {
street: string;
city: string;
country_code: string;
zip_code: string;
};
services: string[];
average_rating?: number; // Optional, only present if ratings exist
location: {
latitude: number;
longitude: number;
};
capacity?: number;
forecasted_occupancy: number; // 1-3 (computed for expected arrival time)
driving_time_to_area?: number; // seconds
rank: number; // 1 = best
}
| Field | Type | Description |
|---|---|---|
name |
string | Name of the parking area |
address |
object | Address information |
address.street |
string | Street name |
address.city |
string | City name |
address.country_code |
string | ISO 3166-1 alpha-2 country code |
address.zip_code |
string | Postal/ZIP code |
services |
string[] | Array of available services |
average_rating |
number or null | Average user rating via the LKW app (1-5 scale, rounded to 1 decimal) or null if no ratings |
current_occupancy |
number | Current occupancy level: 1 (available), 2 (limited), or 3 (full) |
location |
object | Latitude and longitude of the parking area |
location.latitude |
number | Latitude |
location.longitude |
number | Longitude |
capacity |
number | Number of truck parking slots (only present when available) |
type |
string | Type of parking area: public, industrial, or alternative |
Premium-only fields:
| Field | Type | Description |
|---|---|---|
forecasted_occupancy |
number | Occupancy level (1=available, 2=limited, 3=full) computed for expected arrival time |
driving_time_to_area |
number | Seconds from route start until reaching this area's nearest point on the route (if available) |
rank |
number | Rank of this area among the returned premium results (1 = best) |
Note: premium endpoints replace current_occupancy with forecasted_occupancy.
curl "<[BASEURL]/radius/nearby-areas?lat=52.472792&long=13.429169&radiusKm=20&services=wc,restaurant,wifi>"
curl "<[BASEURL]/routing/areas-along-route?originLat=52.472792&originLong=13.429169&destinationLat=50.935573&destinationLong=6.939446&services=freeParking>"
curl "<[BASEURL]/routing/areas-along-route-by-address?originAddress=Berlin,%20Germany&destinationAddress=Munich,%20Germany&services=wc,supermarket>"
curl "<[BASEURL]/radius/nearby-areas?lat=52.472792&long=13.429169&services[]=wc&services[]=freeParking&services[]=supermarket>"
curl "<[BASEURL]/premium/optimal-parking?originLat=52.472792&originLong=13.429169&destinationLat=50.935573&destinationLong=6.939446&remainingDrivingTimeSeconds=16200&radiusKm=3&services=wc,restaurant>"
curl "<[BASEURL]/premium/optimal-parking-with-addresses?originAddress=Berlin,%20Germany&destinationAddress=Munich,%20Germany&remainingDrivingTimeSeconds=16200&radiusKm=3&services=wc,freeParking>"