Sorry, you need to enable JavaScript to visit this website.

Documentation

On-Street Parking API

The On-Street Parking API offers parking probabilities and expected search times. This enables services that guide drivers to an on-street parking space and offers a more accurate ETA which takes the usual time for the parking search into account.

Layer Description
Probabilities Contains time-dependent parking probability and average search time data, as well as a reference to the geometry layer.
Geometries Contains all the information necessary to geo-reference the probability data, in particular road geometries as poly-lines, supplementary information such as the functional road class and form of way, and an OpenLR code.
Connectivity Can be used to implement parking routing without the need of an own map. Customers who intend to reference the parking probabilities to a map, or who do not intend to implement a routing feature will not require the connectivity layer.

The On-Street Parking API facilitates queries for individual cities, and exploratory queries for country and city availability. For a more rigorous of how the XMLs are structured have a look at the XML Schemas.

Data Request

Format

https://<baseURL>/parkingprobabilities/<version>/<countryCode>/<city>/<feedType>?key=<apiKey>

Example

https://<baseURL>/parkingprobabilities/v1/nl/amsterdam/probabilities?key=<apiKey>

Parameters

Parameter Description Required Example Default
baseURL Base URL for calling TomTom services. Yes api.tomtom.com -
version The version of the service to call. Yes v1 -
countryCode The ISO 3166-1 alpha-2 code of the country of interest in lowercase letters. Yes* nl -
cityName The name of the city for which data should be requested. Yes* amsterdam -
feedType The type of information requested:
geometries
probabilities
connectivity
Yes* geometries
probabilities
connectivity
-
apiKey Authorization key for access to the API. Yes - -

*in order to retrieve data. If these values will be left out, the service responds with a list of possible options, see also Available countries and cities.

Request Headers

Header Description Required Example Default
[Accept-Encoding] Requests that the response is compressed in the specified way. The service supports http compression if desired. Currently, only gzip is supported. No gzip -
[If-None-Match] Provides the entity tag (E-tag) of the requested resource as last received by the client. Allows efficient updates of cached information with a minimum amount of transaction overhead: the service can respond with a 304 (not modified) message if the data that would otherwise be provided has the same entity tag. No "4f3d2af4" -
[If-Modified-Since] Specifies the time stamp of the last actual update of the requested resource received by the client. Allows the service to respond with a 304 (not modified) message if no newer data is available. No Sat, 29 Oct 1994 19:43:31 GMT -

Request Method

All interaction with this API is enabled through HTTP GET requests.

Response

Response Codes

Code Meaning and possible causes
200 OK
304 Not Modified: The requested content did not change since the last request, as indicated by the value(s) of the If-Modified-Since and/or If-None-Match http header fields.
401 Unauthorized: The supplied API key is not valid for this request (or missing)
404 Not Found: The specified path was not valid. At least one of the path parameters was omitted or not entered correctly. If an unsupported or invalid country code was specified, the included response message provides a list of valid available country codes.
500 Internal Server Error: Oops.

Response Headers

Header Description Values
Content-Encoding The service supports http compression if desired. Currently, only gzip is supported. gzip
Content-Type The format of the served resource. The service always provides data in xml. application/xml
Date A timestamp specifying when the response was sent. Can be used by the client in the If-Modified-Since header field of subsequent requests in order to optimize the update procedure. Example:
"Wed, 20 Jul 2016 14:23:59 GMT"
Etag Entity-tag of the served resource. Can be used by the client in the If-None-Match header field of subsequent requests in order to optimize the update procedure. Example:
"4f3d2af4"

Example Response Probabilities

The parking probabilities data consists of road-by-road time dependent probability and average search time data. Each road element is identified by a unique UUID. This UUID should also be used to link the probability/search time data with the geometry layer.

<?xml version="1.0" encoding="UTF-8"?>
<parkingProbabilities xmlns="http://www.tomtom.com/service/tis/parkingprobabilities/probabilities/1.1"
                      xmlns:meta="http://www.tomtom.com/service/tis/parkingprobabilities/metadata/1.1"
                      schemaVersion="1.1">
    <meta:metaData>
        <meta:creatorUUID>aaac93fc-ba74-102b-b5ef-00304891a58c</meta:creatorUUID>
        <meta:creationTimeUTC>2016-09-30T19:58:01</meta:creationTimeUTC>
        <meta:timeZone>Europe/Berlin</meta:timeZone>
        <meta:cityName>Berlin</meta:cityName>
        <meta:countryCode>DE</meta:countryCode>
        <meta:description>Example showing parking probability and search time profile</meta:description>
    </meta:metaData>
    <roadSegment>
        <uuid>00000000-069f-6d7a-017f-78b7f701185b</uuid>
        <parkingDataProfile>
            <dailyProfile>
                <weekdays>
                    <day>MON</day>
                    <day>TUE</day>
                    <day>WED</day>
                    <day>THU</day>
                    <day>FRI</day>
                </weekdays>
                <hourlyData>
                    <hourOfDay>0</hourOfDay>
                    <parkingProbability>0.10</parkingProbability>
                    <averageSearchTime>12</averageSearchTime>
                </hourlyData>
                <hourlyData>
                    <hourOfDay>1</hourOfDay>
                    <parkingProbability>0.10</parkingProbability>
                    <averageSearchTime>11</averageSearchTime>
                </hourlyData>
                <hourlyData>
                    <hourOfDay>2</hourOfDay>
                    <parkingProbability>0.10</parkingProbability>
                    <averageSearchTime>10</averageSearchTime>
                </hourlyData>
                <!-- usually contains more -->
                <!-- some time slots could be missing -->
                <hourlyData>
                    <hourOfDay>23</hourOfDay>
                    <parkingProbability>0.10</parkingProbability>
                    <averageSearchTime>9</averageSearchTime>
                </hourlyData>
            </dailyProfile>
            <!-- could contain more -->
        </parkingDataProfile>
     </roadSegment>
     <!-- many more -->
</parkingProbabilities>

Example Response Geometries

<?xml version="1.0" encoding="UTF-8"?>
<roadSegments xmlns="http://www.tomtom.com/service/tis/parkingprobabilities/geometries/1.1"
              xmlns:meta="http://www.tomtom.com/service/tis/parkingprobabilities/metadata/1.1"
              xmlns:p="http://www.tomtom.com/service/tis/primitives/1.0"
              xmlns:lh="http://www.tomtom.com/service/tis/location/hash/1.0"
              schemaVersion="1.1">
    <meta:metaData>
        <meta:creatorUUID>aaac93fc-ba74-102b-b5ef-00304891a58c</meta:creatorUUID>
        <meta:creationTimeUTC>2016-09-30T19:58:01</meta:creationTimeUTC>
        <meta:timeZone>Europe/Berlin</meta:timeZone>
        <meta:cityName>Berlin</meta:cityName>
        <meta:countryCode>DE</meta:countryCode>
        <meta:description>Example of road segment geometries</meta:description>
    </meta:metaData>
    <roadSegment>
        <uuid>00000000-069f-6d7a-017f-78b7f701185b</uuid>
        <peer>10522820-03f9-d763-017f-78b7f701185b</peer>
        <roadName>Berliner Straße</roadName>
        <frc>1</frc>
        <location>
            <lh:locationHash>111111546</lh:locationHash>
            <openLR>Zm9v</openLR>
            <lineString>
                <point>
                    <p:latitude>52.22211</p:latitude>
                    <p:longitude>13.22211</p:longitude>
                </point>
                <point>
                    <p:latitude>52.22222</p:latitude>
                    <p:longitude>13.22222</p:longitude>
                </point>
                <!-- could contain more -->
            </lineString>
        </location>
    </roadSegment>
    <!-- many more -->
</roadSegments>

Example Response Connectivity

<connectivity xmlns="http://www.tomtom.com/service/tis/parkingprobabilities/connectivity/1.1"
              xmlns:meta="http://www.tomtom.com/service/tis/parkingprobabilities/metadata/1.1"
              schemaVersion="1.1">
    <meta:metaData>
        <meta:creatorUUID>aaac93fc-ba74-102b-b5ef-00304891a58c</meta:creatorUUID>
        <meta:creationTimeUTC>2016-09-30T19:58:01</meta:creationTimeUTC>
        <meta:timeZone>Europe/Berlin</meta:timeZone>
        <meta:cityName>Berlin</meta:cityName>
        <meta:countryCode>DE</meta:countryCode>
        <meta:description>Example of road segment connectivity</meta:description>
    </meta:metaData>
    <roadSegment>
        <uuid>00000000-069f-6d7a-017f-78b7f701185b</uuid>
        <successor>00000000-069f-6d7b-017f-78b7f701185b</successor>
        <successor>00000000-1a7d-a3ca-017f-78b7f701185b</successor>
        <!-- could contain more -->
    </roadSegment>
    <roadSegment>
        <uuid>00000000-069f-6d7b-017f-78b7f701185b</uuid>
    </roadSegment>
    <!-- many more -->
</connectivity>

Usage and Freshness

The data available in this feed is static and is only refreshed on a quarterly basis. Hence, checking for updates once per day using the If-None-Match or If-Modified-Since is reasonable.

Available countries and cities

In order to explore which countries and cities are available, the API supports discoverability.

Executing a GET on

https://<baseURL>/parkingprobabilities/<version>?key=<apiKey>

will return a list of available countries as a JSON array (Content-Type application/json)

["nl", "de", "fr"]

Consequently, a call on

https://<baseURL>/parkingprobabilities/<version>/<country>?key=<apiKey>

will return a list of available cities as a JSON array (Content-Type application/json) for the selected country:

["berlin", "munich"]

New Releases

When a new version of the API is released, all clients are invited to adapt to the new version. The previous version will be deprecated and taken off-line 6 months after the announcement. Clients who cannot adapt within this time frame are invited to contact customer support within 3 months after the initial announcement to request extension of the deprecation phase.

You are here