Frequently Asked Questions
Account
How can I start using the PTV Developer APIs?
You need to sign up for a PTV account and then activate your free subscription of PTV Developer. If you already have a PTV account, you can directly activate your free product. No payment details are needed to activate your free product.
Can I activate more than one free subscription?
No. Every account can only activate one free subscription of PTV Developer but multiple paid subscriptions.
Where can I update my personal data?
You can use the avatar menu on the top right corner to reach the Manage Profile section and update your personal information.
Where can I delete my account?
In the Manage Profile section you have the possibility to delete your account. Please note that you can only delete your account if no subscription is active.
Developer Support
How can I generate API keys to start developing?
Within your product instance you can create, rename and delete API keys in the API Keys App.
How many API keys can I create using a free subscription?
For the free subscription one API key is included. If you need more API keys, please contact us and we will find a solution that fits best to your needs.
How do I use the API keys?
The API keys are needed to authenticate against PTV Developer APIs. Check the Quick Start of the API documentations for more details on the authentication options.
How can I run performance tests on PTV Developer APIs?
If you want to run performance or load tests, please contact us and we will find a solution that fits best to your needs.
How can I generate client classes for PTV Developer APIs?
What does the experimental tag for PTV Developer APIs mean?
The term "experimental" denotes a service or feature that is still in the early phases of development. It could still be going through extensive testing and not be completely stable.
- API stability: An experimental feature or service's API may be unstable. This implies that depending on the input or the direction of the work, it could alter regularly or, in certain cases, it might be entirely removed.
- Completeness: A feature or service that is still being tested may not be fully functioning. It offers a sneak preview of something that is still in the development stage.
- Documentation: It is labelled with the tagline [EXPERIMENTAL].
What does the preview tag for PTV Developer APIs mean?
The term "preview" refers to a service or feature that is more developed than an experimental one. Although the core functions are established and reliable, it could still be missing some features that are planned for the full release.
- API Stability: A preview feature or service's API is stable, indicating users may anticipate predictable behavior and replies.
- Completeness: A feature or service is more comprehensive than an experimental one. The majority of the functions are available, however certain intended features could be absent at this time; these features will be introduced in the future.
- Documentation: It is labelled with the tagline [PREVIEW].
How can I avoid 404 (Not Found) error codes even though my url seems to be ok?
If the endpoint requires a parameter in the path and this parameter is missing you will get a http response code 404 (Not Found) even if the rest of the url is correct. You have to add the required parameter to the url in order to get a successful response or an error message with more details if something else is wrong with the parameter.
Licensing & Terms
Can I use a free subscription for productive/commercial use of my application?
The free subscription is only for testing and integration purposes. If you want to roll out your application for commercial use, you need to contact us and we will find a solution that fits best to your needs.
What are the terms of use?
You can find the terms of use for different regions by using the according link below.
EU - English
EU - German
US - English
What are the limits for the free subscription?
The free subscription is only for testing and integration purposes and has some limits compared to a paid subscription. In general, 500 transactions per day and one API key are included to test all offered services. Some services have additional limits as described in the table below.
API | Method | Limit |
---|---|---|
Geocoding & Places API | - | No additional limit |
Geocoding & Places OSM API | - | No additional limit |
Raster Maps API | - | No additional limit |
Vector Maps API | - | No additional limit |
Vector Maps OSM API | - | No additional limit |
Map Matching API | - | No additional limit |
Routing API | - | No additional limit |
Routing OSM API | - | No additional limit |
Matrix Routing API | calculateMatrix (sync) | 250 matrix relations per request |
startMatrixCalculation (async) | 250 matrix relations per request | |
Matrix Routing OSM API | calculateMatrix (sync) | 250 matrix relations per request |
startMatrixCalculation (async) | 250 matrix relations per request | |
EWS Road Distance API | getRelation | 100 requests per month |
Route Optimization API | createPlan | 25 transports per request |
Sequence Optimization API | startAndCreateOptimizedRoute | 25 transports per request |
Loading Space Optimization API | startBinPacking (async) | 5 bins and 100 items per request |
Data API | - | No additional limit |
How are transactions calculated?
To measure the transactions 1k packages are used as measurement unit. Your usage of all offered services is simply added up.
API | Method | 1k transactions correspond to... |
---|---|---|
Geocoding & Places API | searchLocationsByText | 1,000 texts |
searchLocationsByAddress | 1,000 addresses | |
searchLocationsByPosition | 1,000 positions | |
getSuggestionsByAdress | 100,000 suggestions | |
searchPlacesByText | 1,000 texts | |
searchPlacesByPosition | 500 positions | |
searchPlacesByArea | 500 areas | |
Geocoding & Places OSM API | searchPlacesByText | 1,000 texts |
searchPlacesByPosition | 500 positions | |
searchPlacesByAddress | 1,000 addresses | |
Raster Maps API | getImageTile | 15,000 image tiles |
getDataTile | 15,000 data tiles | |
getSatelliteTile | 5,000 satellite tiles | |
Vector Maps API | getVectorTile | 15,000 vector tiles |
Vector Maps OSM API | getVectorTile | 15,000 vector tiles |
Map Matching API | matchPosition | 5,000 positions |
createMatchedTrack | 5,000 positions | |
Routing API | calculateRoute | 1,000 routes |
calculateRoutePost | 1,000 routes | |
getRouteByRouteId | 1,000 routes | |
calculateReachableAreas (sync) | 500 waypoints | |
startAndCreateReachableAreas (async) | 500 waypoints | |
startAndCreateReachableLocations | 500 waypoints | |
Routing OSM API | calculateRoute | 1,000 routes |
Matrix Routing API | calculateMatrix (sync) | 1,000 matrix relations |
startMatrixCalculation (async) | 1,000 matrix relations | |
Matrix Routing OSM API | calculateMatrix (sync) | 1,000 matrix relations |
startMatrixCalculation (async) | 1,000 matrix relations | |
EWS Road Distance API | getRelation | 1,000 relations |
Route Optimization API | startOptimization | 60 transports 30 transports when using Optimization Premium |
Sequence Optimization API | startAndCreateOptimizedRoute | 120 transports |
Loading Space Optimization API | packBins (sync) | 10 bins |
startBinPacking (async) | 10 bins | |
Data API | - | No transactions calculated |
Please note that the error code 'GENERAL_QUOTA_EXCEEDED' is returned, if the transaction limit of your subscription is exceeded. If you need more transactions, please contact us and we will find a solution that fits best to your needs.
What are request limits?
Request limits define a maximum amount of objects in a single call of the services (e.g. number of waypoints per routing request). If the limits are reached it is recommended to split up the amount of objects into multiple requests. Note that for some APIs there are no request limits because the endpoints handle only single objects (e.g. map tiles, addresses or coordinates).
Find the request limits per service in the table below.
API | Method | Request limit |
---|---|---|
Geocoding & Places API | - | No request limit |
Geocoding & Places OSM API | - | No request limit |
Raster Maps API | - | No request limit |
Vector Maps API | - | No request limit |
Vector Maps OSM API | - | No request limit |
Map Matching API | createMatchedTrack | 16,200 positions per request |
Routing API | calculateRoute | 25 waypoints per request |
calculateRoutePost | 25 waypoints per request | |
Routing OSM API | calculateRoute | 25 waypoints per request |
Matrix Routing API | calculateMatrix (sync) | 250,000 matrix relations per request |
startMatrixCalculation (async) | 4,000,000 matrix relations per request | |
Matrix Routing OSM API | calculateMatrix (sync) | 250,000 matrix relations per request |
startMatrixCalculation (async) | 4,000,000 matrix relations per request (250,000 matrix relations for time-dependent matrices) | |
EWS Road Distance API | - | No request limit |
Route Optimization API | createPlan | 3,000 transports per request |
Sequence Optimization API | startAndCreateOptimizedRoute | 500 transports per request |
Loading Space Optimization API | packBins (sync) | 2 bins and 100 items per request |
startBinPacking (async) | 100 bins and 10,000 items per request | |
Data API | - | No request limit |
Please note that depending on your current subscription lower limits may apply.
What are rate limits?
Rate limits are the number of requests per given time period a single API key can make. If those limits are exceeded, the error code 'GENERAL_RATE_LIMIT_EXCEEDED' is returned and further requests will temporarily be rejected (sliding window based). Please note that the rejection in one API does not affect other APIs.
Find the rate limits per service in the table below.
API | Method | Rate limit |
---|---|---|
Geocoding & Places API | searchLocationsByText | 2,000 requests per minute |
searchLocationsByAddress | 2,000 requests per minute | |
getSuggestionsByAddress | 2,000 requests per minute | |
searchLocationsByPosition | 10,000 requests per minute | |
All other methods | 600 requests per minute | |
Geocoding & Places OSM API | All methods | 600 requests per minute |
Raster Maps API | getSatelliteTile | 2,500 requests per minute |
All other methods | 10,000 requests per minute | |
Vector Maps API | All methods | 10,000 requests per minute |
Vector Maps OSM API | All methods | 10,000 requests per minute |
Map Matching API | matchPosition | 10,000 requests per minute |
All other methods | 300 requests per minute | |
Routing API | startAndCreateReachableAreas (async) | 50 requests per minute |
startAndCreateReachableLocations (async) | 50 requests per minute | |
All other methods | 500 requests per minute | |
Routing OSM API | All methods | 300 requests per minute |
Matrix Routing API | calculateMatrix (sync) | 500 requests per minute |
startMatrixCalculation (async) | 50 requests per minute | |
getStatus | 3,000 requests per minute | |
All other methods | 100 requests per minute | |
Matrix Routing OSM API | calculateMatrix (sync) | 500 requests per minute |
startMatrixCalculation (async) | 50 requests per minute | |
getStatus | 3,000 requests per minute | |
All other methods | 100 requests per minute | |
EWS Road Distance API | All methods | 600 requests per minute |
Route Optimization API | startOptimization | 50 requests per minute |
getOperationStatus | 3,000 requests per minute | |
All other methods | 100 requests per minute | |
Sequence Optimization API | startAndCreateOptimizedRoute | 50 requests per minute |
getOptimizedRoute | 3,000 requests per minute | |
All other methods | 100 requests per minute | |
Loading Space Optimization API | packBins (sync) | 20 requests per minute |
startBinPacking (async) | 50 requests per minute | |
getStatus | 3,000 requests per minute | |
All methods | 100 requests per minute | |
Data API | All methods | 300 requests per minute |