The Map Feedback API has its own schema. This schema includes a set of fields that apply to all feedback types.
This part can be called an envelope. One of these fields, data, contains feedback-type-specific information.
Because this field can follow multiple schemas, it effectively serves as an extension point. More details about
the Map Feedback API schema can be found in Create feedback.
Road model feedback is modelled as a change request against the map data. The schema supports reporting a
missing feature (add), a feature that exists in the data but not in reality (remove), and a change to an
existing feature including its geometry (modify). Each feature type has its own set of mandatory and optional
attributes per change type (see the Feature type definitions section below).
Envelope
The Map Feedback API envelope is reused as-is. Only the kind value is specific to this schema.
Parameter
Required
Type
Description
geometry
Yes
string
Geometry of the feedback in well-known text (WKT) format. Coordinates must be in longitude-latitude (lon lat) order, e.g. POINT(-3.693252 40.399412). This marks the location of the feedback (where the issue is).
kind
Yes
string
The schema name used in the data field. For this schema the value must be set to road_model_feedback.
data
Yes
string
Feedback body, a base64 JSON-encoded string following the schema of type kind.
severity
Yes
integer
Severity of the feedback. Must be greater than 0. A lower value means higher severity. Max value is 4.
labels
No
list of strings
Labels attached to the feedback. A maximum of 20 labels is allowed.
referenceId
No
string
Reference ID of the feedback provided by the customer. The value is unique in the context of the customer.
Two geometries
The envelope geometry marks where the problem is (mandated by the API). The data.geometry field below
carries the proposed / corrected geometry of the feature itself. For an add they typically coincide; for a
geometry modify the envelope points at the current location while data.geometry holds the correction.
Schema of the data
The data field is a JSON object with a set of common fields plus a feature-specific attributes object. The
attributes allowed (and mandatory) for each feature type are defined in the Feature type definitions section below.
Common fields
Field
Required
Type
Description
changeType
Yes
enum: add, remove, modify
Nature of the requested change.
feature
Yes
enum, see Feature type definitions
Road model feature type the feedback applies to. Use other for feature types not (yet) defined in this schema.
details
Yes
string
Free-text description of the feedback being reported.
attributes
Depends on feature × changeType
object (key:value)
Proposed attribute values = desired end state. For add: the new feature’s attributes. For modify: only the attributes to change. Omit for remove (unless the feature type definition marks attributes as mandatory to identify the feature). Allowed keys and values per feature are listed in the Feature type definitions.
geometry
Required for add
string (WKT)
Proposed geometry of the feature, lon-lat WKT. Required for add; for modify include only when the geometry changes or when relocating a point feature (e.g. POI); omit for remove. Providing accurate geometry helps resolve the feedback more efficiently and accurately.
featureId
No
string
Identifier of the existing feature in the map data. Applies to remove and modify (omit for add). Optional because the reporter may not have access to map feature IDs — when absent, the feature is located via the envelope geometry, feature, and details. Provide it whenever available, as it makes the target unambiguous. For turn_restriction and speed_limit feedback, providing both the from and to featureIds helps resolve the feedback more efficiently and accurately.
mapVersion
No
string
Version of the map where the issue was identified, e.g. 57595/1.
source
No
string
Source identification, e.g. rule id from quality framework, manual feedback.
sourceDetails
No
string
Optional source details, e.g. rule name, or the source used to identify the issue (e.g. URL of a web source).
Value conventions
These conventions apply to attribute values across all feature types:
Geometry — WKT with coordinates in longitude-latitude order (POINT(lon lat), LINESTRING(lon lat, lon lat, …)), consistent with the envelope.
Time domains (opening_hours, conditional_hours, conditions) — yes or no followed by @ and a day/time span in the form <days> <from>-<to>, e.g. no @ Mo-Fr 10:00-17:00 (no access Monday–Friday 10:00–17:00), yes @ Mo-Fr 07:00-17:00 (applies Monday–Friday 07:00–17:00).
Localized values — to give an attribute value in a specific language, use LC-SC = <value>, where LC is the language code, SC the script code, e.g. nl-Latn = Amsterdamsestraatweg.
Multi-valued attributes (e.g. conditional, vehicle_access) — multiple values in one string, delimited by ;.
Units — metric is the default (weights in kg, dimensions in metres, speed per unit attribute where applicable). If specifying imperial, state it explicitly in the value, e.g. 9000 lbs, 6' 7''.
Direction — forward, backward (relative to the digitization direction of the way) or both_ways.
Feature type definitions
This section defines each value the feature field can take. For every feature type: the Add / Modify / Remove
columns list the attributes that are mandatory for that change type; Optional attributes lists what else may be
supplied, with constrained values where applicable. details is always mandatory (see common fields) and is not
repeated below.
poi
Add
Modify
Remove
Mandatory
name, category
name or featureId, plus the attribute(s) being modified
name or featureId
Optional attributes
Values / notes
category
Type of POI, e.g. restaurant, swimming_pool, fuel_station
address
Full address string with comma delimiter between address components, or one value per address attribute (see address feature)
opening_hours
Time domain syntax, e.g. no @ Mo-Fr 10:00-17:00
phone, fax, website, email, brand, takeaway
road
Add
Modify
Remove
Mandatory
type
attribute(s) being modified
type
Optional attributes
Values / notes
type
road, intersection, roundabout
road_class
motorway, primary, secondary, tertiary, minor, residential, service, path, living_street, construction
Full address string with comma delimiter between address components
housenumber, housename, street, postcode, suburb, city, state, county, country
housing_estate
Name of a housing estate or residential development. Use for estate-level reports where no single house number applies. Geometry should be a POINT, the reporter is not expected to know the estate boundary.
Localized values follow the LC-SC = <value> convention.
street_name
Add
Modify
Remove
Mandatory
street
street
street
Optional attributes
Values / notes
street (alternatives)
The name of the street; alternative names as additional values
Localized values follow the LC-SC = <value> convention.
Set to -1 to set the oneway direction against the digitization direction of the way
vehicle_type
car, bus, hgv, taxi, rideshare, motorcycle
conditions
Time domain syntax
truck_restriction
Add
Modify
Remove
Mandatory
restriction attribute(s) with value(s)
restriction attribute(s) being modified
restriction attribute(s) being removed
Optional attributes
Values / notes
restriction keys
hazmat, maxaxleload, maxheight, maxlength, maxtandemweight, maxtridemweight, maxweight, maxwidth, truck_route — each restriction type is an attribute key with its own value, e.g. maxweight: 9000 (kg). Metric is the default; state imperial explicitly, e.g. 9000 lbs, 6' 7''. Multiple restrictions may be reported in one feedback.
featureId of the way/node the restriction manoeuvres through
to
featureId of the way the restriction ends at
conditions
Time domain syntax
direction
forward, backward, both_ways
Providing from and to featureIds is strongly recommended — it helps resolve the feedback more efficiently and
accurately.
land_use
Add
Modify
Remove
Mandatory
type
attribute(s) being modified
type
Optional attributes
Values / notes
name
bridge_or_tunnel
Add
Modify
Remove
Mandatory
type
attribute(s) being modified
type
Optional attributes
Values / notes
type
bridge, tunnel
name
restriction
See truck_restriction for values
restriction_vehicle_type
bus, hgv, military
administrative_area
Add
Modify
Remove
Mandatory
type, name
attribute(s) being modified
type, name
Optional attributes
Values / notes
type
region, state, province, county, district, borough, city, town, village
name
other
Escape hatch for feature types not (yet) defined in this schema. attributes is free-form key: value; details
must describe the feature and the requested change unambiguously.
Examples
1. Missing POI (add)
1
{
2
"changeType": "add",
3
"feature": "poi",
4
"geometry": "POINT(-3.693252 40.399412)",
5
"attributes": {
6
"name": "Shell",
7
"category": "fuel_station",
8
"email": "shellbookham@shell.com"
9
},
10
"details": "Fuel station present on-site but missing from the map.",