Getting Started
Base URL
https://liveparking.eu/api/v1
Authentication
No authentication required. The API is free and open to use.
CORS
Cross-origin requests are enabled. Use from any domain.
Rate Limiting
60 requests per minute. Please use responsibly.
Wichtiger Hinweis für Projekte
Bevor Sie diese API in einem produktiven Projekt verwenden, bitten wir Sie, uns zu kontaktieren. Dies ermöglicht uns:
- Ihre Nutzung zu erfassen und angemessene Rate-Limits einzurichten
- Ihnen Support und Updates zu Änderungen bereitzustellen
- Die Stabilität und Verfügbarkeit der API sicherzustellen
Für Tests und Entwicklungszwecke können Sie die API ohne vorherige Kontaktaufnahme nutzen.
API Endpoints
/api/v1 Returns API status and available endpoints.
Query Parameters
No parameters required
Example Request
GET /api/v1 Example Response
{
"status": "ok",
"message": "LiveParking API v1",
"version": "1.0.0",
"endpoints": {
"cities": "/api/v1/cities",
"locations": "/api/v1/locations",
"history": "/api/v1/history"
},
"documentation": "/docs"
} Error Responses
/api/v1/cities Get a list of all available cities with their current availability statistics.
Timestamp source: last_updated is the newest timestamp provided by the underlying city datasource for that city, not the cron execution time.
Query Parameters
No parameters required
Example Request
GET /api/v1/cities Example Response
{
"cities": [
{
"id": "berlin",
"name": "Berlin",
"availability": 67,
"totalAvailable": 3421,
"totalCapacity": 5104,
"last_updated": "2026-04-12T18:59:54.026Z"
},
{
"id": "koeln",
"name": "Köln",
"availability": 45,
"totalAvailable": 1234,
"totalCapacity": 2740,
"last_updated": "2026-04-12 20:43:42"
}
]
} Error Responses
/api/v1/locations
Get parking locations filtered by city OR by geolocation. Must provide EITHER city OR both lat and lon.
Timestamp source: each location’s last_updated comes from the upstream parking datasource and is the field to use for freshness in external clients.
Query Parameters
city string (optional) City ID (e.g., "koeln", "berlin"). Use this for direct city lookup.
lat number (optional) Latitude coordinate (-90 to 90). Required if using geolocation mode.
lon number (optional) Longitude coordinate (-180 to 180). Required if using geolocation mode.
limit number (optional) Maximum number of locations to return.
Example Requests
GET /api/v1/locations?city=koeln
GET /api/v1/locations?lat=50.9375&lon=6.9603
GET /api/v1/locations?lat=50.9375&lon=6.9603&limit=10 Example Response (with city)
{
"city": "koeln",
"count": 45,
"locations": [
{
"id": "am-hof",
"name": "Am Hof",
"coordinates": {
"lat": 50.9375,
"lng": 6.9603
},
"available": 145,
"capacity": 300,
"status": "active",
"last_updated": "2026-04-12 20:43:10"
},
{
"id": "gross-st-martin",
"name": "Groß St. Martin",
"coordinates": {
"lat": 50.9368,
"lng": 6.9618
},
"available": 89,
"capacity": 200,
"status": "active",
"last_updated": "2026-04-12 20:42:55"
}
]
} Example Response (with geolocation)
{
"city": "koeln",
"count": 10,
"locations": [
{
"id": "am-hof",
"name": "Am Hof",
"coordinates": {
"lat": 50.9375,
"lng": 6.9603
},
"available": 145,
"capacity": 300,
"status": "active",
"last_updated": "2026-04-12 20:43:10",
"distance": 0.5
}
]
} Note: When using geolocation, locations are sorted by distance and include a distance field in kilometers.
Error Responses
/api/v1/history Get the availability history for a single facility. The month range is downsampled to hourly points.
Query Parameters
city string (required) City ID, for example koeln.
facility string (required) Facility slug from the location response.
range 1d | 1w | 1m (required) History window: 24 hours, 7 days, or 30 days.
Example Request
GET /api/v1/history?city=koeln&facility=am-hof&range=1w Example Response
{
"city": "koeln",
"facility": "Am Hof",
"range": "1w",
"interval": "15m",
"metric": "available",
"points": [
{
"ts": "2026-04-12T09:00:00.000Z",
"value": 145,
"capacity": 300
}
]
}