CIFS specification

CIFS (Closure and Incident Feed Specification) is Waze's standard protocol to describe Incidents and Road Closures in Partners' feeds.

The parameter table below classifies each element as follows:

  • Required: Without a properly-formatted value for a required tag, your feed is considered invalid.
  • Requested: While technically not required, requested tags are considered recommended.
  • Optional: Optional tags that allow you to provide more data.

The order of the elements does not matter to the engine parsing the file.

Those tags can describe either an Incident or a Road Closure according to the value of the type tag. Minor differences are explained where relevant.

Here are some examples of Road Closures in a feed
Here is some examples of Incidents in a feed
Remember that you can mix Closures and Incidents in the same feed file.

CIFS Elements

Element Required Tag input Description
incident id Required Free text

Specifies an alphanumeric or numeric identifier.
The Id must be unique inside your feed and remain stable over an incident’s lifetime.

<incident id="LND11DEayKr">...</incident>
type Required One of:
ROAD_CLOSED
ACCIDENT
CONSTRUCTION
HAZARD
POLICE
CHIT_CHAT
JAM
CAMERA

The type will determine the way your event will be consumed by the Waze app.
ROAD_CLOSED will result in a full closure.

All other types will be shown in the Waze map and will trigger a popup notification for nearby Wazers, but will have no direct impact on routing.

<type>ROAD_CLOSED</type>
subtype Requested See list of allowed subtypes

A more precise description for the type of the reported incident.
The subtype must match the value provided in the type tag.
Here is the full list of allowed subtypes per type

polyline Required List of blank separated
lat lon pairs

Latitude and longitude coordinates that describe the location of the incident. These should have at least 6 digits after the decimal point for sufficient accuracy.

The order of the points reflects the relevant traffic direction of the incident!

If the incident is related to a single point, provide this point twice in your polyline

Notice, that we cannot deduct the traffic direction from a single point. To remedy that, only if the incident affects one traffic direction, supply an extra point to clarify the traffic direction.

The following example is for a single direction:

<polyline>51.510090 -0.006902 51.509142 -0.006564
51.506291 -0.003640 51.503796 0.001051 
51.499218 0.001687 51.497365 0.002020</polyline>
direction Requested BOTH_DIRECTIONS or ONE_DIRECTION

Specifies whether the disruption or closure affects one or both traffic directions on the road.

<direction>BOTH_DIRECTIONS</direction>
street Required Free text

Specifies the name of the street or road on which the event is occurring. Should match the Waze map.

<street>NW 12th St</street>
starttime Required yyyy-MM-dd'T'HH:mm:ss+HH:mm

Specifies the start datetime for one period of disruption. You can omit it for incidents that are not of type ROAD_CLOSED and we will assume the incident is currently active.

The timestamp must be in ISO8601 format in granularity of seconds and include the time zone offset.

<starttime>2016-04-07T09:00:00+01:00</starttime>
endtime Requested yyyy-MM-dd'T'HH:mm:ss+HH:mm

Specify the end datetime using ISO8601 format in granularity of seconds and include the timezone offset

If you omit this, it will default to 14 days after start time.

<endtime>2016-04-07T23:00:00+01:00</endtime>
description Requested Free text

The cause of the traffic disruption. This description should be less than 40 characters. A description that is more than 40 characters will be accepted, but may not display properly in the Waze app.

<description>I-95 All NB lanes closed btwn Exits 184 and 186.</description>
lane impact optional structured lane impact information Supply this only if the incident doesn't entail a full road closure!

Supply information on all the lanes by specifying an array of lanes, using the WZDx lane format or similar format.
Lane impact can be provided in two formats - partial and full.

Full format example:

<lanes>
  <lane>
    <order> 1 </order>
    <type> LANE </type>
    <status> CLOSED </status>
  </lane>
  <lane>
    <order> 2 </order>
    <type> LANE </type>
    <status> OPEN </status>
  </lane>
</lanes>

Partial format example:
<TotalClosedLanes> 2 </TotalClosedLanes>
<Roadside> RIGHT </Roadside>

schedule Optional <dayname>hh:mm-hh:mm</dayname>

Encapsulates all start and end datetimes for the incident.

<schedule>
  <monday>09:00-11:00,17:00-21:00</monday>
  <thursday>09:00-11:00,17:00-21:00</thursday>
  <friday>09:00-11:00,17:00-21:00</friday>
  <saturday>00:00-05:00</saturday>
  <sunday>09:00-18:00</sunday>
</schedule>

Incident And Closures subtypes

Provide more details as to the nature of the incident. Acceptable subtypes are determined by the type provided.

Type Possible subtypes
ACCIDENT
ACCIDENT_MINOR
ACCIDENT_MAJOR
HAZARD
HAZARD_ON_ROAD_CAR_STOPPED
HAZARD_ON_ROAD_CONSTRUCTION
HAZARD_ON_ROAD_ICE
HAZARD_ON_ROAD_LANE_CLOSED
HAZARD_ON_ROAD_OBJECT
HAZARD_ON_ROAD_OIL
HAZARD_ON_ROAD_POT_HOLE
HAZARD_ON_ROAD_ROAD_KILL
HAZARD_ON_ROAD_TRAFFIC_LIGHT_FAULT
HAZARD_ON_SHOULDER
HAZARD_ON_SHOULDER_ANIMALS
HAZARD_ON_SHOULDER_CAR_STOPPED
HAZARD_ON_SHOULDER_MISSING_SIGN
HAZARD_WEATHER
HAZARD_WEATHER_FLOOD
HAZARD_WEATHER_FOG
HAZARD_WEATHER_FREEZING_RAIN
HAZARD_WEATHER_HAIL
HAZARD_WEATHER_HEAT_WAVE
HAZARD_WEATHER_HEAVY_RAIN
HAZARD_WEATHER_HEAVY_SNOW
HAZARD_WEATHER_HURRICANE
HAZARD_WEATHER_MONSOON
HAZARD_WEATHER_TORNADO
ROAD_CLOSED

ROAD_CLOSED_HAZARD
ROAD_CLOSED_CONSTRUCTION
ROAD_CLOSED_EVENT
JAM

JAM_LIGHT_TRAFFIC
JAM_MODERATE_TRAFFIC
JAM_HEAVY_TRAFFIC
JAM_STAND_STILL_TRAFFIC
POLICE

POLICE_VISIBLE
POLICE_HIDING