Incident Details

Service version: 1
Last edit: 2023.09.28
TomTom Orbis Maps

Important notes:

Purpose

The TomTom Orbis Maps Traffic API Incident Details endpoint provides information on traffic incidents which are inside a given bounding box or whose geometry intersects with it.

  • The freshness of data is based on the provided Traffic Model ID (t).
  • The data obtained from this service can be used as standalone or as an extension to other Traffic Incident services.
  • In the second case, the same Traffic Model ID should be used when calling all services in order to grant synchronization of data between APIs.
  • Apart from present incident data, it is possible to get information about planned future incidents.

Request data

HTTPS method: GET

  • Constants and parameters enclosed in curly brackets { } must be replaced with their values.
  • Please see the following Request parameters section with the required and optional parameters tables for their values. The generic request format is as follows.
get
Request URL format with bounding box
https://{baseURL}/maps/orbis/traffic/incidentDetails?apiVersion=1&key={Your_Api_Key}&bbox={bbox}&fields={fields}&language={language}&t={t}&categoryFilter={categoryFilter}&timeValidityFilter={timeValidityFilter}
get
Request URL format with IDs
https://{baseURL}/maps/orbis/traffic/incidentDetails?apiVersion=1&key={Your_Api_Key}&ids={ids}&fields={fields}&language={language}&t={t}&categoryFilter={categoryFilter}&timeValidityFilter={timeValidityFilter}
get
Request URL example with bounding box
https://api.tomtom.com/maps/orbis/traffic/incidentDetails?apiVersion=1&key={Your_Api_Key}&bbox=4.8854592519716675,52.36934334773164,4.897883244144765,52.37496348620152&fields={incidents{type,geometry{type,coordinates},properties{iconCategory}}}&language=en-GB&t=1111&timeValidityFilter=present
get
Request URL example with IDs
https://api.tomtom.com/maps/orbis/traffic/incidentDetails?apiVersion=1&key={Your_Api_Key}&ids=4819f7d0a15db3d9b0c3cd9203be7ba5&fields={incidents{type,geometry{type,coordinates},properties{iconCategory}}}&language=en-GB&t=1111&timeValidityFilter=present
get
Request curl command example with boundingbox
curl 'https://api.tomtom.com/maps/orbis/traffic/incidentDetails?apiVersion=1&key={Your_Api_Key}&bbox=4.8854592519716675,52.36934334773164,4.897883244144765,52.37496348620152&fields={incidents{type,geometry{type,coordinates},properties{iconCategory}}}&language=en-GB&t=1111&timeValidityFilter=present'
get
Request curl command example with IDs
curl 'https://api.tomtom.com/maps/orbis/traffic/incidentDetails?apiVersion=1&key={Your_Api_Key}&ids=4819f7d0a15db3d9b0c3cd9203be7ba5&fields={incidents{type,geometry{type,coordinates},properties{iconCategory}}}&language=en-GB&t=1111&timeValidityFilter=present'
get
Request URL example with category filter
https://api.tomtom.com/maps/orbis/traffic/incidentDetails?apiVersion=1&key={Your_Api_Key}&bbox=4.8854592519716675,52.36934334773164,4.897883244144765,52.37496348620152&fields={incidents{type,geometry{type,coordinates},properties{iconCategory}}}&language=en-GB&t=1111&categoryFilter=Accident&timeValidityFilter=present
get
Request curl command with category filter
curl 'https://api.tomtom.com/maps/orbis/traffic/incidentDetails?apiVersion=1&key={Your_Api_Key}&bbox=4.8854592519716675,52.36934334773164,4.897883244144765,52.37496348620152&fields={incidents{type,geometry{type,coordinates},properties{iconCategory}}}&language=en-GB&t=1111&categoryFilter=Accident&timeValidityFilter=present'

HTTPS method POST

  • Constants and parameters enclosed in curly brackets { } must be replaced with their values.
  • Please see the following Request parameters section with the tables of required and optional parameters and their values. The generic request format is as follows.
  • The maximum number of incidents IDs in a single POST request is 100.
post
Request URL format
https://{baseURL}/maps/orbis/traffic/incidentDetails?apiVersion=1&key={Your_Api_Key}&fields={fields}&language={language}&t={t}&categoryFilter={categoryFilter}&timeValidityFilter={timeValidityFilter}
post
Request URL example with fields
https://api.tomtom.com/maps/orbis/traffic/incidentDetails?apiVersion=1&key={Your_Api_Key}&fields={incidents{type,geometry{type,coordinates},properties{iconCategory}}}&language=en-GB&t=1111&timeValidityFilter=present
post
Request curl command example with fields
1curl -X POST 'https://api.tomtom.com/maps/orbis/traffic/incidentDetails?apiVersion=1&key={Your_Api_Key}&fields={incidents{type,geometry{type,coordinates},properties{iconCategory}}}&language=en-GB&t=1111&timeValidityFilter=present -d '{
2 "ids": [
3 "4819f7d0a15db3d9b0c3cd9203be7ba5"
4 ]
5}'

Request parameters

The following table describes all of the parameters that can be used in a request.

  • Parameters and values are case-sensitive.
  • Required parameters must be used or the call will fail.
  • Optional parameters may be used.
Required parametersDescription

baseURL
string

The base URL for calling the API.
Value: api.tomtom.com

bbox
float,float,float,float

The corners of the area to report on, expressed in the EPSG:4326 projection.

  • These are two longitude-latitude pairs describing the corners of the bounding box.

  • The first pair is for the lower-left corner and the second pair for the upper-right corner.

  • All values should be separated by a comma.
  • The maximum area of a bounding box is 10,000 km2.

  • This parameter is mutually exclusive with the ids parameter.

  • This parameter is available only for GET requests.

Values: minLon,minLat,maxLon,maxLat

ids
string

Comma separated list of incidents IDs.

  • The maximum number of incidents IDs is 5 for GET requests.

  • This parameter is mutually exclusive with the bbox parameter.

  • This parameter is available only for GET requests.

Values: comma separated string

key
string

The authorization key for access to the API.
Value: Your valid API Key.

Optional parametersDescription

fields
string

The fields to be included in the response, nested as in the response schema. In order to obtain all data, it is necessary to place the whole object in the query.

get
Default value
1{
2 incidents
3 {
4 type,
5 geometry{
6 type,coordinates
7 },
8 properties{
9 iconCategory
10 }
11 }
12}

get
Value with all available fields
1{
2 incidents{
3 type,
4 geometry{
5 type,
6 coordinates
7 },
8 properties{
9 id,
10 iconCategory,
11 magnitudeOfDelay,
12 events{
13 description,
14 code,
15 iconCategory
16 },
17 startTime,
18 endTime,
19 from,
20 to,
21 length,
22 delay,
23 roadNumbers,
24 timeValidity,
25 probabilityOfOccurrence,
26 numberOfReports,
27 lastReportTime
28 tmc{
29 countryCode,
30 tableNumber,
31 tableVersion,
32 direction,
33 points{
34 location,
35 offset
36 }
37 }
38 }
39 }
40}

language
string

The language code for the output language. Affects the description fields in the response. When an incident description does not have a translation, an English description is returned.
Default value: en-GB
Allowed values: List of supported languages.

t
string

The Traffic Model ID is the reference value for the state of traffic at a particular time. It is updated every minute, and is valid for two minutes before it times out. See the HTTP response headers section and Traffic Model ID page for more information.
Default value: current Traffic Model ID
Allowed value: Traffic_Model_ID

categoryFilter
string

This filter allows the choice of types of incidents and future incidents to be included in the response. Filtering takes into account the main icon category of the incident. Both value types can be used: numeric and descriptive strings. Multiple values are supported and should be separated by a comma.
Default values: 0,1,2,3,4,5,6,7,8,9,10,11,14
Allowed values:

  • 0: Unknown

  • 1: Accident

  • 2: Fog

  • 3: DangerousConditions

  • 4: Rain

  • 5: Ice

  • 6: Jam

  • 7: LaneClosed

  • 8: RoadClosed

  • 9: RoadWorks

  • 10: Wind

  • 11: Flooding

  • 14: BrokenDownVehicle

timeValidityFilter
string

This filter allows the choice of incidents based on their occurrence in time. Multiple values are supported and they should be separated by a comma.
Default value: present
Allowed values:

  • present

  • future

apiVersion string

Contains a version of the API to call. Value: The current version is 1.

POST request body

Follow the request body schema in order to prepare a valid POST request.

Request schema

Exclamation mark ! means that the field is not nullable. For example:

  • String! - is non-nullable
  • [String!] - list of non-null objects
  • [String]! - list cannot be null, but it can contain null values
Request body
1{
2 ids: [String!]!
3}

Request headers

The following table lists HTTP request headers of particular interest to clients of the Traffic API Incident Details endpoint.

Required headers

Description

TomTom-Api-Version

Contains a version of the API to call. Value: The current version is 1.

Optional headersDescription
Accept-Encoding

Contains the content encoding (usually a compression algorithm), that the client is able to understand.
It is strongly recommended using this header in order to limit bandwidth usage.
Value: gzip

Tracking-ID

Specifies an identifier for the request.

  • It can be used to trace a call.

  • The value must match the regular expression '^[a-zA-Z0-9-]{1,100}$'.

  • An example of the format that matches this regular expression is a UUID (e.g., 9ac68072-c7a4-11e8-a8d5-f2801f1b9fd1).

  • For details check RFC 4122.

  • If specified, it is replicated in the Tracking-ID response header.

  • It is only meant to be used for support and does not involve tracking of you or your users in any form.

Value: <string>

Response data

Successful response

For a single request, the Traffic API Incident Details endpoint returns its response body in JSON format. The fields that appear in the JSON response depend on the value of the fields request parameter.

Response schema

The exclamation mark ! means that a particular field cannot be equal to null , for example:

  • Point! - value cannot be equal to null
  • [Point!] - array of non-null objects
  • [Point]! - array cannot be null, but it can contain null values

Notice:

  • The definition of type Query varies from the request method (and from the query parameter used in the GET request).
  • For the GET method with the bbox query parameter, the mentioned type is defined as follows.
type Query
1type Query {
2 incidents : [Incident!]!
3}
  • In the response for the GET method with the ids query parameter or POST, the non-existing incidents for specific incident IDs will be present as null.
  • In that case, Query type is defined as follows.
type Query
1type Query {
2 incidents : [Incident]!
3}

The rest of the scheme is the same for each variant.

Common part of response scheme
type Incident
1type Incident {
2 type: GeojsonFeatureType!
3 geometry : GeojsonGeometry!
4 properties: IncidentProperties!
5}
type IncidentProperties, Event, GeojsonGeometry, GeojsonLinestring, Aci
1type IncidentProperties {
2 id : String!
3 iconCategory : Int!
4 magnitudeOfDelay : Int!
5 events : [Event!]!
6 startTime : String
7 endTime : String
8 from : String
9 to : String
10 length : Float!
11 delay : Int
12 roadNumbers : [String!]!
13 timeValidity : TimeValidity!
14 probabilityOfOccurrence : ProbabilityOfOccurrence!
15 numberOfReports : Int
16 lastReportTime : String
17 tmc : Tmc
18}
19
20type Event {
21 description : String!
22 code : Int!
23 iconCategory : Int!
24}
25
26union GeojsonGeometry = GeojsonPoint | GeojsonLinestring
27
28type GeojsonPoint {
29 type : GeojsonPointType!
30 coordinates : [Float!]!
31}
32
33type GeojsonLinestring {
34 type : GeojsonLinestringType!
35 coordinates : [[Float!]!]!
36}
37
38enum GeojsonLinestringType {
39 LineString
40}
41
42enum GeojsonPointType {
43 Point
44}
45
46enum GeojsonFeatureType {
47 Feature
48}
49
50enum ProbabilityOfOccurrence {
51 certain
52 probable
53 risk_of
54 improbable
55}
56
57type Tmc {
58 countryCode: String!
59 tableNumber: String!
60 tableVersion: String!
61 direction: Direction!
62 points [TmcPoint!]!
63}
64
65enum Direction {
66 positive
67 negative
68}
69
70type TmcPoint {
71 location : Int!
72 offset: Int
73}
74
75enum TimeValidity {
76 present
77 future
78}

Response field structure

The following table describes JSON element fields that can appear in a response.

Structure of the root object

FieldDescription

incidents
object

Incidents which belong to or intersect with the given bounding box.

Structure of the Incident object

FieldDescription

type
string

The value is set as Feature (GeoJSON feature object).

geometry
object

A GeoJSON feature of type Point or Linestring (depending on the incident). It always contains the type and coordinates fields.

properties
object

The properties of a particular incident.

Structure of the IncidentProperties object

FieldDescription

id
string

The ID of the traffic incident, common among Traffic Incident API services where it is available.

iconCategory
integer

The main icon category associated with this incident. This is an icon category associated with the first event in the events list describing the incident. The values meaning:

  • 0: Unknown

  • 1: Accident

  • 2: Fog

  • 3: Dangerous Conditions

  • 4: Rain

  • 5: Ice

  • 6: Jam

  • 7: Lane Closed

  • 8: Road Closed

  • 9: Road Works

  • 10: Wind

  • 11: Flooding

  • 14: Broken Down Vehicle

magnitudeOfDelay
integer

The magnitude of delay associated with an incident. The values meaning:

  • 0: Unknown

  • 1: Minor

  • 2: Moderate

  • 3: Major

  • 4: Undefined (used for road closures and other indefinite delays)

events
object

The list of events describing the details of the incident in the language requested. Traffic incident can be described with more than one Event object.

startTime
string

Start time of the incident, if available. The date is described in the ISO8601 format.

endTime
string

End time of the incident, if available. The date is described in the ISO8601 format.

from
string

The name of the location where the traffic due to the incident starts.

to
string

The name of the location where the traffic due to the incident ends.

length
float

The length of the incident in meters.

delay
integer

The delay in seconds caused by the incident (except road closures). It is calculated against free-flow travel time (the travel time when the traffic is minimal, e.g., night traffic).

roadNumbers
array of strings

The road number(s) affected by the incident.

timeValidity
string

Enumeration string describing if the incident occurrence is now or in the future.

tmc
object

TMC (Traffic Message Channel) data of the traffic incident, needed to determine its location.

probabilityOfOccurrence
string

Enumeration string specifying the likelihood of the occurring incident.
Allowed values:

  • certain

  • probable

  • risk_of

  • improbable

numberOfReports
integer

The number of reports given by actual end-users.

lastReportTime
string

The date in ISO8601 format, when the last time the incident was reported. Gives the user confidence that the incident is fresh.

Structure of the Event object

FieldDescription

description
string

The description of the event (being part of incident) in the requested language.

code
integer

The predefined alert code, describing the event (part of incident).

iconCategory
integer

The icon category associated with the event. The icon category from the first event in the list is replicated in the iconCategory field in the IncidentProperties object.

Response example - JSON
1{
2 "incidents": [
3 {
4 "type": "Feature",
5 "properties": {
6 "iconCategory": 8
7 },
8 "geometry": {
9 "type": "LineString",
10 "coordinates": [
11 [4.8905266414, 52.3725919469],
12 [4.8905306647, 52.372535656],
13 [4.8905360291, 52.3724806443],
14 [4.8905387113, 52.3724028603],
15 [4.8905440757, 52.3723505607],
16 [4.8905467579, 52.3722754886],
17 [4.8905574868, 52.3721722195],
18 [4.8905762622, 52.3719066767],
19 [4.8905963788, 52.371663905],
20 [4.8905936966, 52.371524454],
21 [4.8905749211, 52.3714278871],
22 [4.8905440757, 52.3713393544],
23 [4.8905065248, 52.3712669418],
24 [4.8904555628, 52.3711703743],
25 [4.8904166708, 52.3711100387],
26 [4.8903268168, 52.3709759593],
27 [4.8901725898, 52.370765372],
28 [4.8900062928, 52.370581651],
29 [4.8899472842, 52.3705320104]
30 ]
31 }
32 }
33 ]
34}
Response example with available fields - JSON
1{
2 "incidents" : [
3 {
4 "type" : "Feature",
5 "properties" : {
6 "id":"4819f7d0a15db3d9b0c3cd9203be7ba5",
7 "iconCategory" : 8,
8 "magnitudeOfDelay" : 4,
9 "startTime" : "2021-02-02T15:37:00Z",
10 "endTime" : "2021-04-30T22:00:00Z",
11 "from" : "Paleisstraat",
12 "to" : "Rosmarijnsteeg",
13 "length" : 238.553,
14 "delay" : 0,
15 "roadNumbers" : [],
16 "timeValidity" : "present",
17 "events" : [
18 {
19 "code" : 401,
20 "description" : "Closed",
21 "iconCategory" : 8
22 }
23 ],
24 "tmc" : null
25 "probabilityOfOccurrence" : "certain",
26 "numberOfReports" : "null",
27 "lastReportTime" : "null"
28 },
29 "geometry" : {
30 "type" : "LineString",
31 "coordinates" : [[4.8905266414,52.3725919469],[4.8905306647,52.3725356560],[4.8905360291,52.3724806443],[4.8905387113,52.3724028603],[4.8905440757,52.3723505607],[4.8905467579,52.3722754886],[4.8905574868,52.3721722195],[4.8905762622,52.3719066767],[4.8905963788,52.3716639050],[4.8905936966,52.3715244540],[4.8905749211,52.3714278871],[4.8905440757,52.3713393544],[4.8905065248,52.3712669418],[4.8904555628,52.3711703743],[4.8904166708,52.3711100387],[4.8903268168,52.3709759593],[4.8901725898,52.3707653720],[4.8900062928,52.3705816510],[4.8899472842,52.3705320104]]
32 }
33 }
34 ]
35}

Error response

If there is an error in the supplied parameters or any other internal problem, an error response is generated in the requested format. If the contentType parameter could not be parsed, XML will be returned.

Error response field structure

FieldDescription

detailedError
object

Main object of the error response.

code
string

One of a server-defined set of error codes.

message
string

A human-readable description of the error code.
Error response example - JSON
1{
2 "detailedError ": {
3 "code": "INVALID_REQUEST",
4 "message": "Unknown field in fields=incidents.properties.last"
5 }
6}

HTTP response codes

CodeMeaning & possible causes
200

OK

400

Bad request: Usually due to a malformed syntax or incorrect format of Traffic Model ID.

403

Forbidden: The supplied API Key is not valid for this request.

405

Method Not Allowed: The provided HTTP request method is known by the server, but is not supported by the target resource.

429

Too Many Requests: Too many requests were sent in a given amount of time for the supplied API Key.

500

Internal Server Error.

HTTP response headers

The following table lists HTTP response headers of particular interest to clients of the Traffic API Incident Details endpoint.

HeaderDescription
Access-Control-Allow-Origin

Indicates that cross-origin resource sharing (CORS) is allowed.
Value: *

Allow

Lists the set of supported HTTP methods. The header is sent in case a 405 HTTP response code is returned.
Value: GET, POST, HEAD

Content-Encoding

Indicates which encodings were applied to the response body.
Value: gzip

Content-Length

Contains information about the size of the response body.
Value: <decimal number>

Content-Type

Indicates the media type of the resource returned.
Value: <application/json; charset=utf-8>

Date

Contains the date and time when the message was originated.
Value: <http-date>

TrafficModelID

Contains the reference value for the state of traffic at a particular time. If the request contains a valid Traffic Model ID, its value is replicated here. If the request does not contain a Traffic Model ID, or it contains outdated data, then the most recent one is returned.
Value: <numeric>

Tracking-ID

An identifier for the request.

  • If the Tracking-ID header was specified in the request, it is replicated in the response.
  • Otherwise, it is generated automatically by the service.
  • For details check RFC 4122.
  • It is only meant to be used for support and does not involve tracking of you or your users in any form.

Value: <string>