Revision History
The following revision table presents the changes made for each version of this document.
Revision |
Date |
State/Description |
2.7.1 |
May 2016 |
Updated-confidence and reliability scores |
2.7.2 |
June 2016 |
Updated linqmap:speed units |
2.8 |
March 2017 |
Added configuration options, and specified irregularity parameters |
2.8 |
August 2017 |
Added broken traffic light alert, receive number of thumbs up by users, get image of irregularity |
2.9 |
August 2022 |
Adjust to PartnerHub new platform |
3.0 |
April 2023 |
Added openLR information, new URL format, online documentation |
Overview
This article details the structure and content of the Waze real-time traffic data feed.
Waze maps provide information about specific routes to assist motorists in avoiding traffic jams. Our maps and traffic are dynamically updated by a continually expanding network of drivers worldwide.
We provide information about traffic jams and events that affect road conditions, either from drivers using Waze, a.k.a. Wazers, or from external sources. Wazers may issue reports from the location at which they are currently located or, if no longer at the location, within 30 minutes after the event occurred. We are also able to provide automatic alerts for what we call Unusual Traffic (or Irregularities) - incidents that affect a large number of users and fall outside the normal traffic patterns for a given day and time.
Retrieving Waze traffic-data
Waze provides Waze for Cities partners with a GeoRSS API to retrieve traffic data in the form of an XML/JSON file containing all the data approved for sharing, as per the partner agreement.
- Feed content per managed area: The feed will include all available data per managed area the partner was approved for. To check the partner's current approved managed areas or to request another/change an existing one, use the Settings section on the PartnerHub.
- Base URL for each managed area: To get the URL for the feed associated with a managed area, go to the Toolbox section, then choose Waze Data Feed, and then check the Feed Links section on the table. Choose JSON/XML format to get the URL and current feed content. The base URL will have this structure:
https://waze.com/partnerhub-api/partners/<partner-id>/waze-feeds/<unique-token>?format=<format>
- Adjustments to the feed content: after getting the base feed URL, you will be able to customize it by adding additional parameters. These are the additional parameters available:
Parameter |
Possible values |
Details and example |
format |
1/2 |
A value of 1 generates a response in JSON format, and a value of 2 in XML. This parameter is already included in the links displayed in Partner Hub. |
types |
alerts/ irregularities/ traffic |
Filter the type of information. The default is to fetch all types. Adding this filter will decrease response size and will make server response faster. Multiple types can be specified as comma-separated values. For example: https://waze.com/partnerhub-api/partners/<partner-id>/waze-feeds/<unique-token>?format=<format>&types=alerts,traffic |
acotu |
false/true |
If true adds a field “nThumbsUp” to alerts that havebeen “thumbed up” by Wazers. Default to false. Setting to true makes server response slower. For example: https://waze.com/partnerhub-api/partners/<partner-id>/waze-feeds/<unique-token>?format=<format>&acotu=true
|
atf |
Alert types: |
Filters specific alert types. Example: https://waze.com/partnerhub-api/partners/<partner-id>/waze-feeds/<unique-token>?format=<format>&atf=ROAD_CLOSED,ACCIDENT
|
fa |
false/true |
If true includes alerts that have been reported by a partner feed, in addition to alerts reported by Wazers. If false, the output includes only alerts reported by users. Default to true. Example: https://waze.com/partnerhub-api/partners/<partner-id>/waze-feeds/<unique-token>?format=<format>&fa=true
|
ofa |
false/true |
If true includes only alerts which have been reported via partner feed. If false includes alerts which have been reported by partner feed and Wazers via the application. Default to false. Example: https://waze.com/partnerhub-api/partners/<partner-id>/waze-feeds/<unique-token>?format=<format>&ofa=true
|
olri |
false/true |
If true, includes alert segment openLR info - info on the segment the alert is on, such as coordinate and azimuth of start and end points of the segment, and the distance between them. |
dfp |
String (date time pattern) |
Date format pattern to use in date time fields. |
Using Waze traffic data
Waze traffic data consists of the following information:
- General information: time-stamp of the file, geographic area from which the data was retrieved, etc.
- Traffic alerts: traffic incidents reported by users.
- Traffic jams: traffic slowdown information generated by the service based on a user’s location and speed.
- Unusual Traffic (Irregularities): alerts and traffic jams that affect an exceptionally large number of users.
Traffic alerts
Reliability and Confidence scores
Reliability
Each alert gets a reliability score based on other user reactions (‘Thumbs up’, ‘Not there’ etc.) and the level of the reporter (Wazers gain levels by contributing to the map, starting at level 1 and reaching up to level 6. The higher the level, the more experienced and trustworthy the Wazer.) The score (0-10) indicates how reliable the report is.
Confidence
Each alert gets a confidence score based on other user reactions (‘Thumbs up’, ‘Not there’). The score ranges between -1 and 5. A higher score indicates more positive feedback from Waze users.
Data Elements
XML
Element |
Value |
Description |
pubDate |
Time |
Publication date |
georss:point |
Coordinates |
Location per report (Lat long) |
linqmap:uuid |
String |
Unique system ID |
linqmap:magvar |
Integer (0-359) |
Event direction (Driver heading at report time. 0 degrees at North, according to the driver’s device) |
linqmap:type |
See alert type table |
Event type |
linqmap:subtype |
See alert sub types table |
Event sub type - depends on atof parameter |
linqmap:reportDescription |
String |
Report description (supplied when available) |
linqmap:street |
String |
Street name (as is written in database, no canonical form, may be null) |
linqmap:city |
String |
City and state name [City, State] in case both are available, [State] if not associated with a city. (supplied when available) |
linqmap:country |
String |
(see two letters codes in http://en.wikipedia.org/wiki/ISO_3166-1) |
linqmap:roadType |
Integer |
Road type (see road types ) |
linqmap:reportRating |
Integer |
User rank between 1-6 ( 6 = high ranked user) |
linqmap:jamUuid |
string |
If the alert is connected to a jam - jam ID |
linqmap:Reliability |
0-10 |
Reliability score based on user reactions and reporter level |
confidence |
0-10 |
Confidence score based on user reactions |
linqmap:reportByMunicipalityUser |
Boolean |
True if the alert was reported by a municipality user (partner). Optional - added only on demand (if appeared in the url params). |
linqmap:nThumbsUp |
integer |
Number of thumbs up by users |
openlrinfo |
Contain 2 “reference_point” objects |
OpenLR Segment information the alert is located on. Each “reference_point” (start and end point) contains latitude, longitude, bearing_deg (azimuth) and a distance between the points. |
JSON
Element |
Value |
Description |
pubMillis |
Timestamp |
Publication date (Unix time – milliseconds since epoch) |
location |
Coordinates |
Location per report (X Y - Long-lat) |
uuid |
String |
Unique system ID |
magvar |
Integer (0-359) |
Event direction (Driver heading at report time. 0 degrees at North, according to the driver’s device) |
type |
See alert type table |
Event type |
subtype |
See alert sub types table |
Event sub type - depends on atof parameter |
reportDescription |
String |
Report description (supplied when available) |
street |
String |
Street name (as is written in database, no canonical form, may be null) |
city |
String |
City and state name [City, State] in case both are available, [State] if not associated with a city. (supplied when available) |
country |
String |
(see two letters codes in http://en.wikipedia.org/wiki/ISO_3166-1) |
roadType |
Integer |
Road type (see road types) |
reportRating |
Integer |
User rank between 1-6 ( 6 = high ranked user) |
jamUuid |
string |
If the alert is connected to a jam - jam ID |
Reliability |
0-10 |
Reliability score based on user reactions and reporter level |
confidence |
0-10 |
Confidence score based on user reactions |
reportByMunicipalityUser |
Boolean |
Alert reported by municipality user (partner) Optional. |
nThumbsUp |
integer |
Number of thumbs up by users |
Traffic Alerts examples
XML format
<item>
<pubDate>Thu Nov 26 14:02:29 +0000 2015</pubDate>
<georss:point>45.02395420471421 7.670893079148089</georss:point>
<linqmap:uuid>9fd1ee98-7b56-37e9-a2d4-72e9478dd838</linqmap:uuid>
<linqmap:magvar>6</linqmap:magvar>
<linqmap:type>WEATHERHAZARD</linqmap:type>
<linqmap:subtype>HAZARD_ON_ROAD_CONSTRUCTION</linqmap:subtype>
<linqmap:reportDescription>
scambio di carreggiata causa lavori dalle 00:00 del 16 novembre 2015 alle 23:59 del 21 gennaio 2016
</linqmap:reportDescription>
<linqmap:city>Torino</linqmap:city>
<linqmap:country>IT</linqmap:country>
<linqmap:roadType>4</linqmap:roadType>
<linqmap:reportRating>0</linqmap:reportRating>
<linqmap:reliability>10</linqmap:reliability>
</item>
<item>
<pubDate>Thu Nov 26 14:02:26 +0000 2015</pubDate>
<georss:point>45.02395420471421 7.670893079148089</georss:point>
<linqmap:uuid>ed06a695-53ee-347c-a6eb-133bf8746880</linqmap:uuid>
<linqmap:magvar>6</linqmap:magvar>
<linqmap:type>WEATHERHAZARD</linqmap:type>
<linqmap:subtype>HAZARD_ON_ROAD_CONSTRUCTION</linqmap:subtype>
<linqmap:reportDescription>
chiusura notturna causa lavori di manutenzione dalle 23:00 alle 05:30, solo nei giorni feriali dalle 23:00 del 9 novembre 2015 alle 05:30 del 5 dicembre 2015
</linqmap:reportDescription>
<linqmap:city>Torino</linqmap:city>
<linqmap:country>IT</linqmap:country>
<linqmap:roadType>4</linqmap:roadType>
<linqmap:reportRating>0</linqmap:reportRating>
<linqmap:reliability>7</linqmap:reliability>
</item>
JSON format
Traffic Jams
The jams section includes data gathered in real time about traffic slowdowns on specific road segments.
The URL includes an array of jams and the start time and date of the report. Each jam includes the parameters detailed below.
Waze generates traffic jam information by processing the following data sources:
- GPS location-points sent from user phones (users who drive while using the app) and calculations of the current average speed vs. free-flow speed (maximum speed measured on the road-segment). For Unusual traffic (irregularities) Waze uses historic average speeds (on 30 minute time-slots).
- User generated reports - reports shared by Waze users who encounter traffic jams. These appear as regular alerts, and also affect the way we identify and present traffic jams.
Data Elements
XML
Element |
Value |
Description |
pubDate |
Time |
Publication date |
linqmap:type |
String |
TRAFFIC_JAM |
georss:line |
List of Longitude and Latitude coordinates |
Traffic jam line string (supplied when available) |
linqmap:speed |
Float |
Current average speed on jammed segments in meters/seconds |
linqmap:speedKPH |
Float |
Current average speed on jammed segments in KM/h |
linqmap:length |
Integer |
Jam length in meters |
linqmap:delay |
Integer |
Delay of jam compared to free flow speed, in seconds (in case of block, -1) |
linqmap:street |
String |
Street name (as is written in database, no canonical form. (supplied when available) |
linqmap:city |
String |
City and state name [City, State] in case both are available, [State] if not associated with a city (supplied when available) |
linqmap:country |
String |
available on EU (world) server (see two letters codes in http://en.wikipedia.org/wiki/ISO_3166-1) |
linqmap:roadType |
Integer |
Road type (see road types) |
linqmap:startNode |
String |
Nearest Junction/street/city to jam start (supplied when available) |
linqmap:endNode |
String |
Nearest Junction/street/city to jam end (supplied when available) |
linqmap:level |
0 - 5 |
Traffic congestion level (0 = free flow 5 = blocked). |
linqmap:uuid |
Long integer |
Unique jam ID |
linqmap:turnLine |
Coordinates |
A set of coordinates of a turn - only when the jam is in a turn (supplied when available) |
linqmap:turnType |
String |
What kind of turn is it - left, right, exit R or L, continue straight or NONE (no info) (supplied when available) |
linqmap:blockingAlertUuid |
string |
UUID of the corresponding road closure alert for a jam that represents blocked traffic due to a road closure |
JSON
Element |
Value |
Description |
pubMillis |
Timestamp |
Publication date (Unix time – milliseconds since epoch) |
type |
String |
TRAFFIC_JAM |
line |
List of Longitude and Latitude coordinates |
Traffic jam line string (supplied when available) |
speed |
Float |
Current average speed on jammed segments in meters/seconds |
speedKPH |
Float |
Current average speed on jammed segments in Km/h |
length |
Integer |
Jam length in meters |
delay |
Integer |
Delay of jam compared to free flow speed, in seconds (in case of block, -1) |
street |
String |
Street name (as is written in database, no canonical form. (supplied when available) |
city |
String |
City and state name [City, State] in case both are available, [State] if not associated with a city. (supplied when available) |
country |
String |
available on EU (world) server (see two letters codes in http://en.wikipedia.org/wiki/ISO_3166-1) |
roadType |
Integer |
Road type (see road types ) |
startNode |
String |
Nearest Junction/steet/city to jam start (supplied when available) |
endNode |
String |
Nearest Junction/steet/city to jam end (supplied when available) |
level |
0 - 5 |
Traffic congestion level (0 = free flow 5 = blocked). |
uuid |
Long integer |
Unique jam ID |
turnLine |
Coordinates |
A set of coordinates of a turn - only when the jam is in a turn (supplied when available) |
turnType |
String |
What kind of turn is it - left, right, exit R or L, continue straight or NONE (no info) (supplied when available) |
blockingAlertUuid |
string |
if the jam is connected to a block (see alerts) |
Traffic jam examples
XML Format
<item>
<title>jam</title>
<pubDate>Mon Aug 8 06:10:26 +0000 2022</pubDate>
<linqmap:id>1320005294</linqmap:id>
<linqmap:uuid>1320005294</linqmap:uuid>
<linqmap:type>NONE</linqmap:type>
<georss:line>40.885657 -73.980907 40.885302 -73.9803</georss:line>
<linqmap:speed>0.0</linqmap:speed>
<linqmap:speedKMH>0.0</linqmap:speedKMH>
<linqmap:length>65</linqmap:length>
<linqmap:delay>-1</linqmap:delay>
<linqmap:endNode>S Dean St</linqmap:endNode>
<linqmap:street>E Forest Ave</linqmap:street>
<linqmap:city>Englewood, NJ</linqmap:city>
<linqmap:country>US</linqmap:country>
<linqmap:roadType>7</linqmap:roadType>
<linqmap:level>5</linqmap:level>
<linqmap:turnType>NONE</linqmap:turnType>
<linqmap:blockingAlertUuid>9fd8bf93-0e69-46c3-8447-270181a98b93</linqmap:blockingAlertUuid>
</item>
JSON Format
Unusual traffic (Irregularities)
Data Elements
XML
Element |
Value |
Description |
linqmap:id |
Long integer |
Irregularity Identifier |
detectionDate |
Date timestamp |
Date of irregularity |
detectionDateMillis |
Unix date in milliseconds |
Date of irregularity |
updateDate |
Date timestamp |
Last update |
updateDateMillis |
Unix date in milliseconds |
Last update |
georss:line |
List of Longitude and Latitude coordinates |
Traffic jam line string (supplied when available) |
linqmap:type |
String |
Irregularity type - NONE(0, "NONE"), SMALL(1, "Small"), MEDIUM(2, "Medium"), LARGE(3, "Large"), HUGE(4, "Huge"); |
linqmap:speed |
Float number |
Traffic speed in irregularity |
linqmap:regularSpeed |
Float number |
Historical regular speed in segment |
linqmap:delaySeconds |
Number |
Delay in seconds from regular speed |
linqmap:seconds |
Number |
Current traffic speed |
linqmap:length |
Number |
Irregularity length |
linqmap:trend |
Number |
-1 improving, 0 constant, 1 getting worse |
linqmap:street |
String |
Street name |
linqmap:city |
String |
City name |
JSON
Element |
Value |
Description |
id |
Long integer |
Irregularity Identifier |
detectionDate |
Date timestamp |
Date of irregularity |
detectionDateMillis |
Unix date in milliseconds |
Date of irregularity |
updateDate |
Date timestamp |
Last update |
updateDateMillis |
Unix date in milliseconds |
Last update |
line |
List of Longitude and Latitude coordinates |
Traffic jam line string (supplied when available) |
type |
String |
Irregularity type - NONE(0, "NONE"), SMALL(1, "Small"), MEDIUM(2, "Medium"), LARGE(3, "Large"), HUGE(4, "Huge"); |
speed |
Float number |
Traffic speed in irregularity |
regularSpeed |
Float number |
Historical regular speed in segment |
delaySeconds |
Number |
Delay in seconds from regular speed |
seconds |
Number |
Current traffic speed |
length |
Number |
Irregularity length |
trend |
Number |
-1 improving, 0 constant, 1 getting worse |
street |
String |
Street name |
city |
String |
City name |
country |
String |
Country name |
severity |
Float number |
Calculated severity of irregularity 0-5 (5 = most severe) |
jamLevel |
Number |
1-4, 4 being worst jam level |
driversCount |
Number |
Number of Wazers in irregularity |
alertsCount |
Number |
How many alerts from Wazers in irregularity segments |
Irregularity example
<item>
<title>irregularity</title>
<description>LineString consists of lat, lon pairs</description>
<guid>urn:uuid:d496f4e3-7fd8-4169-ac6208e36dffa7f0</guid>
<link>http://georss.org/example/simple/point</link>
<author>LinQmap</author>
<linqmap:id>1874175156</linqmap:id>
<detectionDate>Tue Apr 18 11:21:46 +0000 2023</detectionDate>
<detectionDateMillis>1681816906824</detectionDateMillis>
<updateDate>Tue Apr 18 12:16:39 +0000 2023</updateDate>
<updateDateMillis>1681820199470</updateDateMillis>
<georss:line>26.637526 -82.015391 26.637676 -82.011215 26.637694 -82.01099 26.637772 -82.010316 26.637821 -82.00999 26.637893 -82.009646 26.638041 -82.009055 26.638174 -82.008521 26.6385 -82.007214 26.638535 -82.007075</georss:line>
<linqmap:type>SMALL</linqmap:type>
<linqmap:speed>8.5</linqmap:speed>
<linqmap:regularSpeed>27.08</linqmap:regularSpeed>
<linqmap:delaySeconds>300</linqmap:delaySeconds>
<linqmap:seconds>355</linqmap:seconds>
<linqmap:length>839</linqmap:length>
<linqmap:trend>0</linqmap:trend>
<linqmap:endNode>Chiquita Blvd</linqmap:endNode>
<linqmap:street>SW Pine Island Rd</linqmap:street>
<linqmap:city>Cape Coral, FL</linqmap:city>
<linqmap:country>US</linqmap:country>
<linqmap:severity>5.0</linqmap:severity>
<linqmap:jamLevel>4</linqmap:jamLevel>
<linqmap:driversCount>20</linqmap:driversCount>
<linqmap:alerts>
<linqmap:alert>
<item>
<title>alert</title>
<pubDate>Tue Apr 18 12:03:58 +0000 2023</pubDate>
<georss:point>26.638075 -82.008922</georss:point>
<linqmap:uuid>56e58267-0937-43da-a7d3-ec01a24bdbf3</linqmap:uuid>
<linqmap:magvar>74</linqmap:magvar>
<linqmap:type>JAM</linqmap:type>
<linqmap:subtype>JAM_STAND_STILL_TRAFFIC</linqmap:subtype>
<linqmap:street>FL</linqmap:street>
<linqmap:city>Cape Coral</linqmap:city>
<linqmap:country>US</linqmap:country>
<linqmap:reportByMunicipalityUser>false</linqmap:reportByMunicipalityUser>
<linqmap:roadType>6</linqmap:roadType>
<linqmap:reportRating>4</linqmap:reportRating>
<confidence>0</confidence>
<linqmap:reliability>5</linqmap:reliability>
</item>
</linqmap:alert>
</linqmap:alerts>
<linqmap:alertsCount>1</linqmap:alertsCount>
<linqmap:nComments>0</linqmap:nComments>
<linqmap:nImages>1</linqmap:nImages>
<linqmap:nThumbsUp>0</linqmap:nThumbsUp>
<linqmap:highway>true</linqmap:highway>
</item>
Waze currently supports the following types and subtypes of user-generated alerts:
Note: for historical reasons, HAZARD and WEATHERHAZARD types are used interchangeably. The nature of such alerts should be determined using the subtype.
Alert type |
Alert Subtype |
ACCIDENT |
|
JAM |
|
WEATHERHAZARD / HAZARD |
|
MISC |
|
CONSTRUCTION |
|
ROAD_CLOSED |
|
Value |
Type |
1 |
Streets |
2 |
Primary Street |
3 |
Freeways |
4 |
Ramps |
5 |
Trails |
6 |
Primary |
7 |
Secondary |
8, 14 |
4X4 Trails |
15 |
Ferry crossing |
9 |
Walkway |
10 |
Pedestrian |
11 |
Exit |
16 |
Stairway |
17 |
Private road |
18 |
Railroads |
19 |
Runway/Taxiway |
20 |
Parking lot road |
21 |
Service road |