Intermediate Traffic Service API - FAQ

Last edit: 2022.07.22

How big are the feeds?

The sizes of the incident feed and flow feeds differ by country.

The following table shows sizes of gzip compressed snapshots of our feeds, based on the country and feed type. Detailed flow feeds show the measurement for non-free-flow (nff) and free-flow (ff). The 50th (p50) and 95th (p95) percentiles are given, better reflecting daytime variations. The values are rounded up to multiples of 100 kilobytes to compensate for seasonable effects. The feed sizes for the detailed flow feed also take into account predictive flow.

This data is from June 2020 (during the COVID-19 pandemic).

CountryIncidents Datex2
p50
[kB]
Incidents Datex2
p95
[kB]
Flow Protobuf (detailed)
nff, p50
[kB]
Flow Protobuf (detailed)
nff, p95
[kB]
Flow Protobuf (detailed)
ff
[kB]
AND100100100100100
ARE100100100100400
ARG1001001002002500
AUS4004003007005600
AUT2002001002003000
BEL3003002004001700
BGR1001002003001900
BHR100100100100100
BIH100100100100300
BLR1001001002001900
BRA1001003008007100
BRN100100100100100
CAN2002003005003400
CHE3003002003002000
CHL1001001001001300
COL100100100100800
CZE2002002003003300
DEU100011001400200019100
DNK100100100200900
EGY1001001002001800
ESP20020040060011300
EST100100100100600
FIN2002001002002800
FRA300300800170018200
GBR7007002006003100
GIB100100100100100
GRC1001002002003300
HKG100100100100100
HRV1001001001001400
HUN2002002002001700
IDN1001002004001500
IND100100600120011400
IRL1001001002001100
ISL100100100100200
ISR100100100200600
ITA300300600120010600
JPN100200130027006100
KAZ100100100100500
KEN100100100100400
KWT100100100100200
LIE100100100100100
LSO100100100100100
LTU100100100100600
LUX100100100100300
LVA100100100100400
MAC100100100100100
MAR100100100100900
MCO100100100100100
MEX1002005007007900
MLT100100100100100
MOZ100100100100300
MYS1001001002001300
NGA1001001002001000
NLD2002002003001900
NOR2002001002002200
NZL100100100200600
OMN100100100100200
PER100100100100900
PHL100100200300700
POL2002003005006200
PRT1001001002003400
QAT100100100100200
ROU1001002003002000
RUS30040060010004200
SAU1001001001001000
SGP100100100100200
SMR100100100100100
SRB100100100200600
SVK1001001002001200
SVN1001001001001200
SWE2002001002002700
THA1001003005003000
TUR2003005007008900
TWN1001003004001200
UKR1001002003004300
URY100100100100300
USA (middle)6007001000160011600
USA (north)60070070012009000
USA (south east)40040070013008700
USA (south west)30040090015009100
VAT100100100100100
VNM1001001002001100
ZAF1002002004003400

I have access to multiple incident and / or flow feeds. How many feeds can be downloaded and processed in parallel?

There is no ideal setup for downloading and processing the feeds as there are many parameters that can have an influence on the overall performance. The following are just a few parameters (there may be more):

  • The bandwidth of the internet connection from your servers to your internet service provider (ISP).
  • The potential limitation of network bandwidth between your ISP and TomTom.
  • The latency between your system and TomTom servers deployed in (Western) Europe.
  • The performance of your system in ingesting and processing the retrieved data.

Due to these limitations we can make the following general recommendations:

  • It may be advisable to download and process only a few feeds in parallel, or to download the individual feeds with a certain time delay.

  • Your client should support TCP window scaling. With this option, we can send more data to your client before an acknowledgement comes back from your client. This improves throughput, especially in low latency connections. Latency is determined with tools like PsPing (https://docs.microsoft.com/en-us/sysinternals/downloads/pstools). To test latency between your servers and traffic.tomtom.com, use the following command:

    psping traffic.tomtom.com:443

    Further examples of how to use PsPing are found on the download page. While this tool is only available for Windows, there are alternatives for other operating systems here: https://alternativeto.net/software/psping/. Since ICMP is not supported by our service, the usual ping command will not work.

  • Always use gzip compression by specifying the standard HTTP header Accept-Encoding: gzip.

  • Always use the If-Modified-Since header with the time stamp of the Last-Modified header for the last snapshot received in the same feed. This eliminates the possibility of downloading data that you already have.

  • Use free-flow (ff) / non-free-flow (nff) update mechanism for all flow feeds. This significantly reduces the total bandwidth consumption when compared with full-feed downloads. The same information is retrieved!

Do the feeds contain specific events on road regulations due to COVID-19?

As movement restrictions are lifted after the COVID-19 lockdown, various local, regional, and national authorities introduce various measures that impact road regulations. Even if these impacts are only on a temporary basis, they can affect traffic in a significant way by creating closures due to change of permitted road use, restricting road access to local residents only, introducing new bike lanes, or reduced speed limits.

TomTom strives to provide up-to-date information about these dynamically changing road conditions through the TomTom Traffic Incidents – Intermediate Service API. During the unprecedented COVID-19 situation, TomTom is working together with our partners and authorities to ensure high-quality, reliable information.

TomTom delivers the following event types related to the COVID-19 pandemic.

EventAlert-C event codes
Closed to all traffic.401
Closed to through traffic.493 + 1854
Closed based on other restrictions/conditions (i.e., the purpose of travel in case of border closures).493
Reduced amount and/or width of lanes lane layout (i.e., when increasing space for bikes and pedestrians).518

Any event in any country related to COVID-19 contains at least "COVID-19" in the comment field. The text may also contain further information.

Where is the Intermediate Traffic Service hosted?

This service is hosted on Microsoft Azure. Since Microsoft Azure hosts services in the public cloud, the IPs are non-static. One result is that the IPs can change at any time. For this reason, filters restricting outbound connection to our service will not work. You must rely on the host name for determining the IP address of this service.

What is the difference between Flow DatexII, Flow – Protobuf and Flow Detailed Protobuf?

The following tables lists all flow features and their availability depending on the product type ( Flow, Flow Detailed) and output format (DATEX II, Protobuf).

Individual FeatureDescriptionFlow - DATEX IIFlow - ProtobufFlow Detailed - ProtobufFlow Detailed Legacy - Protobuf
High road coverageFeed covers road segments with high functional road classes and also many road segments with low functional road classes.NoNoYesYes
Traffic ConditionProvides a textual traffic condition indicator (e.g., 'stationary traffic' or ‘slow traffic’).YesYesYesYes
Heavy trafficAdds support for the traffic condition “heavy traffic”. This feature only works in combination with the Traffic Condition feature.YesYesYesYes
Relative SpeedProvides an additional percentage value of the current speed compared to free flow.YesYesYesYes
Miles per hourMph is reported in addition to the speeds reported in kph.YesYesYesYes
Time to usualProvides time in minutes for the speed to return to usual speed (Speed Profile).NoYesYesYes
HOV lanesAdds separate speed entries for lanes reserved for high-occupancy vehicles.NoYesYesYes
Predictive Flow (15, 30, 45 minutes)Provides predictive speeds for 15, 30, and 45 minutes in the future.NoYesYesNo
Predictive Flow (24h)Provides predictive speeds for up to 24 hours in the future.NoYesNoNo
Dynamic sectioningAllows sectioning which describes the road links in smaller sections when conditions vary considerably within a longer stretch. In case of prediction, sectioning is supported only for 15, 30, 45 minutes.NoYesYesNo
Map versionProvides the map version being used.YesYesYesYes
TMCTMC location codes.YesYesYesNo
OpenLROpenLR binary strings.YesYesYesYes
TMC + OpenLROpenLR binary strings and TMC location where available in one feed. Requires that both referencing methods are supported in the requested country(s).YesYesYesNo

What speeds are contained in the non free flow (nff) feeds?

The Intermediate Flow feed has the concept of a free flow (ff) feed and a non-free flow (nff) feed, as explained in the documentation (TomTom Traffic Flow - Intermediate Service - Protobuf). The nff-feed consists of the flow feed segments which contain a traffic delay. The threshold for the nff-feed is per default set at 90% of the free flow speed, so all segments between 90-100% free flow speed are not reported in the nff-feed.

However, TomTom offers the configuration option to increase or decrease the threshold of the nff-feed. A low threshold (e.g., 70%) will heavily reduce the feed size of the nff-feed, which might be desirable if there are bandwidth constraints for the customer receiving the feed. A high threshold (e.g., 99%) will allow that more live data is send through the nff-feed but will also increase the feed size. The filtering is explained by the following graph:

What are the use cases to have both TMC and OpenLR in the same Flow (Detailed) feed?

The possibility to have have TMC and OpenLR in a single flow feed facilitates different use cases on the client side. Clients that are operating a hosted traffic service can serve TMC-only, OpenLR-only, or TMC-or-OpenLR (hybrid approach) devices from a single B2B feed. The vast majority of all TMC links can also be represented as OpenLR location reference.

However, in some cases the encoding is not possible. For that reason clients that intend to use the hybrid approach need to ignore all flow messages with only TMC information. These stretches are covered by other flow messages with only OpenLR location information. The following table outlines the rules by device requirement that need to be applied to cover all necessary flow segments.

Use case Filtering
TMC-only
OpenLR-only / TMC or OpenLR (hybrid)