Generated from code
On this page
Wherebox API v0.2.0
Static locator-map images: highlight an area, fade the surroundings, add labeled points.
openapi.json License AGPL-3.0-only
GET /v1/map#
Render a map from query parameters
Path and header parameters
| Name | In | Type | Description |
|---|---|---|---|
X-Provider-Key | header | string | API key for a commercial basemap style |
X-Routing-Key | header | string | API key for openrouteservice / GraphHopper routing |
Query parameters
| Name | In | Type | Description |
|---|---|---|---|
area | query | string | The area to frame and highlight. Ambiguous names return 409 with candidates. Name, iso:CZ, iso:CZ-72, osm:r51684 or wikidata:Q213. Country-level areas fall back to Natural Earth when the OSM import does not cover them (area=Japan, iso:IT); regions and cities need the OSM import. |
level | query | integer | Only match areas at this OSM admin level (2 = country; regions and municipalities vary by country). Narrows a name lookup (turns area into {query, level}). |
country | query | string | Only match areas inside this ISO 3166-1 alpha-2 country. Narrows a name lookup. |
bounds | query | string | Explicit frame [west, south, east, north]; overrides automatic framing. west,south,east,north. |
padding | query | number | Space around the framed content as a fraction of the image size. |
projection | query | "mercator" | "globe" | "auto" | Map projection. mercator is the usual flat web map. globe draws an orthographic globe, which keeps continent-spanning routes and high latitudes true to shape; the content must fit on one hemisphere (within 85° of the view center), and neighbor labels are not available. auto picks the globe when the content spans more than 50° or Mercator would stretch it more than 2.5× between its lowest and highest latitude, else Mercator. mercator (default), globe or auto. |
globeview | query | "full" | "fit" | How much of the globe to show. full (default): the whole globe, centered on your content, with space around it; recognizable at a glance as a globe. fit: zoomed in until the content fills the image; a larger scale with more detail along the route, but only part of the globe is visible. full (default) or fit. |
poi | query | array of string | Points with markers and labels (up to 50). lat,lon or place:Name, followed by |option:value pairs (see POI options). Repeat for more points. |
from | query | string | Start point when the server should compute the line. lat,lon or place:Name. A route needs from+to or polyline. |
to | query | string | Finish point when the server should compute the line. |
via | query | array of string | Points the route must pass through, in order. |
profile | query | "car" | "bike" | "foot" | "straight" | "geodesic" | How endpoints are connected: routed by car/bike/foot (needs a routing engine on the server or your X-Routing-Key), or locally as straight segments or geodesic great-circle arcs. The default geodesic always works (no routing engine, key or plan feature needed) and is the true shortest path, so it suits flights and locator maps; ask for car/bike/foot explicitly for roads. |
polyline | query | string | The line as an encoded polyline (Google algorithm). URL-encode it (polylines can contain |, ? and \). |
polylineprecision | query | "5" | "6" | Polyline precision: 5 (Google) or 6 (Valhalla/OSRM). |
routeprovider | query | "valhalla" | "openrouteservice" | "graphhopper" | Routing provider (default: the server's). openrouteservice and GraphHopper need a key (server-side or X-Routing-Key). |
routecolor | query | string | Color of the route line. |
routewidth | query | number | Line width in px. |
routecasing | query | string | Outline drawn under the line so it reads on busy basemaps. |
routedash | query | string | Dash pattern in line widths, e.g. [2, 1.5]. Comma-separated. |
routeopacity | query | number | Line opacity. |
fromlabel | query | string | Label at this end (default: the place name, if the end was given as a place). |
tolabel | query | string | Label at this end (default: the place name, if the end was given as a place). |
frommarker | query | "pin" | "dot" | "ring" | "flag" | "triangle" | "circle" | "square" | "star" | "diamond" | Marker preset. Defaults depend on the role: plain point → pin, route start → ring, route finish → flag. |
tomarker | query | "pin" | "dot" | "ring" | "flag" | "triangle" | "circle" | "square" | "star" | "diamond" | Marker preset. Defaults depend on the role: plain point → pin, route start → ring, route finish → flag. |
showfrom | query | string | false hides the marker and label for this end. |
showto | query | string | false hides the marker and label for this end. |
w | query | integer | Image width in CSS px (the output is width × scale pixels). |
h | query | integer | Image height in CSS px, including the title band if any. |
scale | query | integer | Pixel ratio for high-DPI output (2 = retina). |
format | query | "png" | "jpeg" | "webp" | Image format (GET can also use the path extension: /v1/map.png, .jpg, .webp). Or use the path extension: /v1/map.webp. |
quality | query | integer | JPEG/WebP quality. |
attribution | query | "bottom-right" | "bottom-left" | "top-right" | "top-left" | Corner for the data attribution (always drawn; required by the data licenses). |
preset | query | "locator-relief" | "light" | "dark" | Built-in basemap: shaded relief (Wikipedia locator style), light, or dark. No key needed. |
style | query | string | Any MapLibre style.json URL; overrides preset. {key} in the URL is replaced with providerKey. URL-encode it. |
key | query | string | Key for a commercial style (prefer the X-Provider-Key header so it stays out of URLs). Prefer the X-Provider-Key header so the key stays out of URLs and logs. |
fade | query | number | How much the surroundings are washed out: 0 = not at all, 1 = fully covered. |
fadecolor | query | string | Color the surroundings fade towards. URL-encode # as %23. |
outline | query | string | Area outline color. |
outlinewidth | query | number | Area outline width in px; 0 = none. |
tint | query | string | Optional color tint drawn over the area. |
tintopacity | query | number | Opacity of tint. |
subdivisions | query | "auto" | Inner admin borders: auto draws the next level that splits the area, a number forces that admin level, false hides them. auto, false, or an admin level number. |
desaturate | query | number | Outside the area: 0 = full color, 1 = grayscale (applied on top of fade). |
blur | query | number | Outside the area: blur radius in CSS px; 0 = sharp. |
subarea | query | string | A second, smaller area highlighted inside the framed one (e.g. a region within its country). |
subareacolor | query | string | Fill and outline color of subArea. |
subareaopacity | query | number | Fill opacity of subArea. |
subareaoutlinewidth | query | number | Outline width of subArea in px; 0 = none. |
worldview | query | "ar" | "bd" | "br" | "cn" | "de" | "eg" | "es" | "fr" | "gb" | "gr" | "id" | "il" | "in" | "it" | "jp" | "kr" | "ma" | "nl" | "np" | "pk" | "pl" | "ps" | "pt" | "ru" | "sa" | "se" | "tr" | "tw" | "ua" | "us" | "vn" | Draw country borders as this country sees them (ISO 3166-1 alpha-2, e.g. in, cn, us, ma). Replaces the basemap's country and disputed borders with Natural Earth's borders for that worldview, and uses its country shapes for a highlighted country and for neighbor labels. Regions, cities and everything below country level stay OpenStreetMap. Default: the basemap's borders (OpenStreetMap, on-the-ground control). One of the 31 Natural Earth worldviews; the Locator maps guide explains what changes ("Disputed borders"). |
neighbors | query | "name" | "code" | "flag" | "flag+code" | "flag+name" | What to show for each neighboring country: its name, its international vehicle registration code (D, A, SK…), its flag, or a flag with code/name. false/none turns them off. A literal + may arrive as a space; both work. |
neighborfit | query | "extend" | "shrink" | "drop" | When a label does not fit in the visible part of its country: extend grows the image on that side (the output becomes larger than width×height; see X-Image-Width), shrink reduces the label to 70 %, drop omits it. |
neighborwhich | query | "touching" | "visible" | touching = countries bordering the area; visible = every other country in the frame. |
neighborsize | query | number | Text size in CSS px; flags are sized to match. |
neighborcolor | query | string | Text color (default: the theme's muted label color). |
neighborupper | query | string | Uppercase country names. |
lang | query | string | Label language (ISO 639-1). Default: local names (Deutschland, Polska), as on Wikipedia locator maps. |
font | query | "noto-sans" | "noto-serif" | "noto-sans-mono" | A bundled family, or your own TTF/OTF/WOFF as a data: URI or an https URL on an allowed host (WHEREBOX_FONT_HOSTS). Missing glyphs fall back to Noto Sans, then Noto Sans Mono. Bundled families only in GET; custom fonts via POST. |
fontweight | query | integer | Weight for all labels (100–900; the nearest bundled weight is used). |
title | query | string | Title text (one line; long titles shrink, then get an ellipsis). |
titlepos | query | "top" | "bottom" | Band above or below the map. |
titlealign | query | "left" | "center" | "right" | Text alignment in the band. |
titlesize | query | number | Text size in CSS px. |
titleweight | query | integer | Font weight. |
titlecolor | query | string | Text color (default: the theme label color). |
titlebg | query | string | Band background (default: white, or near-black on the dark preset). |
Responses
| Status | Description |
|---|---|
| 200 | The rendered image
|
| 304 | Not modified |
| 400 | RFC 7807 problem details |
| 404 | RFC 7807 problem details |
| 409 | RFC 7807 problem details |
| 502 | RFC 7807 problem details |
| 503 | RFC 7807 problem details |
POST /v1/map#
Render a map from a JSON MapSpec
Path and header parameters
| Name | In | Type | Description |
|---|---|---|---|
X-Provider-Key | header | string | API key for a commercial basemap style |
X-Routing-Key | header | string | API key for openrouteservice / GraphHopper routing |
Query parameters
| Name | In | Type | Description |
|---|---|---|---|
response | query | string | "json" returns { url, key, meta } instead of the image |
Request body
application/json required as MapSpec
area string or object example "Czechia"
One of:
- string length 1 to 200 example
"Czechia"A name ("Czechia", "Zlínský kraj"), or an id:iso:CZ,iso:CZ-72,osm:r51684,wikidata:Q213. object A name lookup narrowed by admin level and/or country, for ambiguous names.
querystring required length 1 to 200 example"Nová Ves"Name or id, as in the string form.levelinteger 1 to 11 example8Only match areas at this OSM admin level (2 = country; regions and municipalities vary by country).countrystring length 2 to 2 example"CZ"Only match areas inside this ISO 3166-1 alpha-2 country.
routes array of object 0 to 10 items default []
Each item:
polyline string length 0 to 200000 example "_p~iF~ps|U_ulLnnqC_mqNvxq`@"polylinePrecision 5 or 6 default 5 example 5
One of:
- 5
- 6
from object example {"lat":40.4168,"lon":-3.7038}
One of:
object A place name to look up.
placestring required length 1 to 200 example"Sevilla"Place name to look up (imported OSM places first, then the server's geocoder if configured); its name becomes the default label.
to object example {"lat":40.4168,"lon":-3.7038}
One of:
object A place name to look up.
placestring required length 1 to 200 example"Sevilla"Place name to look up (imported OSM places first, then the server's geocoder if configured); its name becomes the default label.
via array of object 0 to 20 items default []
Each item:
One of:
object A place name to look up.
placestring required length 1 to 200 example"Sevilla"Place name to look up (imported OSM places first, then the server's geocoder if configured); its name becomes the default label.
profile "car" | "bike" | "foot" | "straight" | "geodesic" default "geodesic" example "geodesic"car/bike/foot (needs a routing engine on the server or your X-Routing-Key), or locally as straight segments or geodesic great-circle arcs. The default geodesic always works (no routing engine, key or plan feature needed) and is the true shortest path, so it suits flights and locator maps; ask for car/bike/foot explicitly for roads.provider "valhalla" | "openrouteservice" | "graphhopper" example "valhalla"X-Routing-Key).color string pattern ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$ default "#d01c1c" example "#d01c1c"width number 0.5 to 20 default 3 example 3casingColor string pattern ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$ default "#ffffff" example "#ffffff"casingWidth number 0 to 10 default 1.5 example 1.5dash array of number 0 to 8 items example [2,1.5][2, 1.5].opacity number 0 to 1 default 1 example 1start object default {}
label string length 0 to 160 example "Madrid"labelPosition "auto" | "right" | "left" | "top" | "bottom" | "top-right" | "top-left" | "bottom-right" | "bottom-left" default "auto" example "auto"auto picks the first free spot and falls back to a leader line.labelSize number 6 to 48 default 16 example 16labelWeight integer 100 to 900 example 700font.weight).labelColor string pattern ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$ example "#1a1a1a"marker object
shape "pin" | "dot" | "ring" | "flag" | "triangle" | "circle" | "square" | "star" | "diamond" example "pin"pin, route start → ring, route finish → flag.color string pattern ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$ example "#e02020"size number 4 to 64 example 20scale). Default depends on the shape.strokeColor string pattern ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$ example "#ffffff"strokeWidth number 0 to 8 example 1.5dot and pin have a thin default outline.icon string length 0 to 200000 example "data:image/svg+xml;base64,PHN2Zy8+"data: URI, or an https URL on a host the server allows (WHEREBOX_ICON_HOSTS). SVGs with external references or scripts are rejected.anchor "center" | "bottom" example "bottom"show boolean default true example truefalse hides the marker and label for this end.finish object default {}
label string length 0 to 160 example "Madrid"labelPosition "auto" | "right" | "left" | "top" | "bottom" | "top-right" | "top-left" | "bottom-right" | "bottom-left" default "auto" example "auto"auto picks the first free spot and falls back to a leader line.labelSize number 6 to 48 default 16 example 16labelWeight integer 100 to 900 example 700font.weight).labelColor string pattern ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$ example "#1a1a1a"marker object
shape "pin" | "dot" | "ring" | "flag" | "triangle" | "circle" | "square" | "star" | "diamond" example "pin"pin, route start → ring, route finish → flag.color string pattern ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$ example "#e02020"size number 4 to 64 example 20scale). Default depends on the shape.strokeColor string pattern ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$ example "#ffffff"strokeWidth number 0 to 8 example 1.5dot and pin have a thin default outline.icon string length 0 to 200000 example "data:image/svg+xml;base64,PHN2Zy8+"data: URI, or an https URL on a host the server allows (WHEREBOX_ICON_HOSTS). SVGs with external references or scripts are rejected.anchor "center" | "bottom" example "bottom"show boolean default true example truefalse hides the marker and label for this end.shapes array of object 0 to 50 items default []
Each item:
color string pattern ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$ default "#555555" example "#555555"width number 0 to 20 default 2 example 2dash array of number 0 to 8 items example [3,2]opacity number 0 to 1 default 1 example 1fill string pattern ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$ example "#ffcc00"fillOpacity number 0 to 1 default 0.25 example 0.25font object default {}
family "noto-sans" | "noto-serif" | "noto-sans-mono" or string default "noto-sans" example "noto-serif"
data: URI or an https URL on an allowed host (WHEREBOX_FONT_HOSTS). Missing glyphs fall back to Noto Sans, then Noto Sans Mono.One of:
- "noto-sans" | "noto-serif" | "noto-sans-mono" example
"noto-sans"Bundled font family. - string length 0 to 2000000
weight integer 100 to 900 default 400 example 600title object
text string required length 1 to 200 example "Madrid – Seville"position "top" | "bottom" default "top" example "top"align "left" | "center" | "right" default "left" example "left"size number 8 to 64 default 18 example 18weight integer 100 to 900 default 600 example 600color string pattern ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$ example "#1a1a1a"background string pattern ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$ example "#ffffff"dividerColor string pattern ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$ example "#cfcfcf"dividerWidth number 0 to 6 default 1 example 1padding number 0 to 40 default 10 example 10pois array of object 0 to 50 items default []
Each item:
lat number -90 to 90 example 49.13lon number -180 to 180 example 17.33place string length 1 to 200 example "Chřiby"label string length 0 to 160 example "Crash Site\n(near Urda)"\n in GET) starts a new line.labelPosition "auto" | "right" | "left" | "top" | "bottom" | "top-right" | "top-left" | "bottom-right" | "bottom-left" default "auto" example "auto"auto picks the first free spot and falls back to a leader line.labelSize number 6 to 48 default 16 example 16labelWeight integer 100 to 900 example 700font.weight).labelColor string pattern ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$ example "#1a1a1a"marker object
shape "pin" | "dot" | "ring" | "flag" | "triangle" | "circle" | "square" | "star" | "diamond" example "pin"pin, route start → ring, route finish → flag.color string pattern ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$ example "#e02020"size number 4 to 64 example 20scale). Default depends on the shape.strokeColor string pattern ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$ example "#ffffff"strokeWidth number 0 to 8 example 1.5dot and pin have a thin default outline.icon string length 0 to 200000 example "data:image/svg+xml;base64,PHN2Zy8+"data: URI, or an https URL on a host the server allows (WHEREBOX_ICON_HOSTS). SVGs with external references or scripts are rejected.anchor "center" | "bottom" example "bottom"leader boolean default true example truewidth integer 64 to 2048 default 600 example 468scale pixels).height integer 64 to 2048 default 400 example 280scale integer 1 to 3 default 1 example 2format "png" | "jpeg" | "webp" default "png" example "png"quality integer 1 to 100 default 90 example 90padding number 0 to 0.45 default 0.04 example 0.04projection "mercator" | "globe" | "auto" default "mercator" example "globe"mercator is the usual flat web map. globe draws an orthographic globe, which keeps continent-spanning routes and high latitudes true to shape; the content must fit on one hemisphere (within 85° of the view center), and neighbor labels are not available. auto picks the globe when the content spans more than 50° or Mercator would stretch it more than 2.5× between its lowest and highest latitude, else Mercator.globe object default {}
projection globe, or auto when it picks the globe).view "full" | "fit" default "full" example "full"full (default): the whole globe, centered on your content, with space around it; recognizable at a glance as a globe. fit: zoomed in until the content fills the image; a larger scale with more detail along the route, but only part of the globe is visible.basemap object default {}
preset "locator-relief" | "light" | "dark" default "locator-relief" example "locator-relief"styleUrl string (uri) example "https://api.maptiler.com/maps/streets-v2/style.json?key={key}"preset. {key} in the URL is replaced with providerKey.providerKey string length 0 to 200 example "your-provider-key"X-Provider-Key header so it stays out of URLs).highlight object default {}
fade number 0 to 1 example 0.45fadeColor string pattern ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$ example "#ffffff"outlineColor string pattern ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$ example "#555555"outlineWidth number 0 to 10 example 1.1tint string pattern ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$ example "#d03030"tintOpacity number 0 to 1 example 0.15tint.subdivisions boolean or "auto" or integer example "auto"
auto draws the next level that splits the area, a number forces that admin level, false hides them.One of:
- boolean
- "auto"
- integer 3 to 11
subdivisionColor string pattern ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$ example "#8a8a8a"subdivisionWidth number 0 to 6 example 0.6desaturate number 0 to 1 example 0.8fade).blur number 0 to 20 example 1.5subArea string or object example "Zlínský kraj"
One of:
- string length 1 to 200 example
"Czechia"A name ("Czechia", "Zlínský kraj"), or an id:iso:CZ,iso:CZ-72,osm:r51684,wikidata:Q213. object A name lookup narrowed by admin level and/or country, for ambiguous names.
querystring required length 1 to 200 example"Nová Ves"Name or id, as in the string form.levelinteger 1 to 11 example8Only match areas at this OSM admin level (2 = country; regions and municipalities vary by country).countrystring length 2 to 2 example"CZ"Only match areas inside this ISO 3166-1 alpha-2 country.
subAreaColor string pattern ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$ example "#d03030"subArea.subAreaOpacity number 0 to 1 example 0.35subArea.subAreaOutlineWidth number 0 to 10 example 1.2subArea in px; 0 = none.attribution "bottom-right" | "bottom-left" | "top-right" | "top-left" default "bottom-right" example "bottom-right"neighbors object
area).show "name" | "code" | "flag" | "flag+code" | "flag+name" default "name" example "flag+code"which "touching" | "visible" default "touching" example "touching"touching = countries bordering the area; visible = every other country in the frame.fit "extend" | "shrink" | "drop" default "extend" example "extend"extend grows the image on that side (the output becomes larger than width×height; see X-Image-Width), shrink reduces the label to 70 %, drop omits it.size number 6 to 32 default 12 example 12color string pattern ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$ example "#666666"uppercase boolean default false example truemax integer 1 to 30 default 12 example 12worldview "ar" | "bd" | "br" | "cn" | "de" | "eg" | "es" | "fr" | "gb" | "gr" | "id" | "il" | "in" | "it" | "jp" | "kr" | "ma" | "nl" | "np" | "pk" | "pl" | "ps" | "pt" | "ru" | "sa" | "se" | "tr" | "tw" | "ua" | "us" | "vn" example "in"in, cn, us, ma). Replaces the basemap's country and disputed borders with Natural Earth's borders for that worldview, and uses its country shapes for a highlighted country and for neighbor labels. Regions, cities and everything below country level stay OpenStreetMap. Default: the basemap's borders (OpenStreetMap, on-the-ground control).lang string pattern ^[a-z]{2,3}$ example "en"Responses
| Status | Description |
|---|---|
| 200 | The rendered image
|
| 400 | RFC 7807 problem details |
| 404 | RFC 7807 problem details |
| 409 | RFC 7807 problem details |
| 502 | RFC 7807 problem details |
| 503 | RFC 7807 problem details |
GET /v1/map.{ext}#
Render a map; the extension picks the format
Path and header parameters
| Name | In | Type | Description |
|---|---|---|---|
ext | path | "png" | "jpg" | "webp" | |
X-Provider-Key | header | string | API key for a commercial basemap style |
Query parameters
Same 65 query parameters as GET /v1/map.
Responses
| Status | Description |
|---|---|
| 200 | The rendered image
|
| 400 | RFC 7807 problem details |
| 404 | RFC 7807 problem details |
| 409 | RFC 7807 problem details |
| 502 | RFC 7807 problem details |
| 503 | RFC 7807 problem details |
GET /v1/images/{key}#
Fetch a cached image by content hash
Path and header parameters
| Name | In | Type | Description |
|---|---|---|---|
key | path | string |
Responses
GET /v1/areas/search#
Search areas by name (with hierarchy context for disambiguation)
Query parameters
Responses
| Status | Description |
|---|---|
| 200 | Matching areas |
GET /v1/areas/{id}#
Get one area
Path and header parameters
| Name | In | Type | Description |
|---|---|---|---|
id | path | string |
Responses
GET /v1/places/search#
Search named places (cities, peaks, mountain ranges…)
Query parameters
Same 2 query parameters as GET /v1/areas/search.
Responses
| Status | Description |
|---|---|
| 200 | Matching places |
Problem details#
RFC 7807 problem details. type identifies the error (see the error reference).
type string title string status integer detail string issues array of any [{path, message}] — one entry per problem.candidates array of any ref (pass it as area, e.g. osm:r439539), adminLevel and context (e.g. "Česko › Liberecký kraj").suggestions array of any requestId string X-Request-Id header). Quote it when reporting a problem.Problem types
Each type links to its entry in the error reference.