Référence de l'API
Référence générée depuis docs/openapi.yaml (version 1.0.0). Elle reste en anglais, comme la spécification.
Generated from docs/openapi.yaml (OpenAPI 3.1.0, API version 1.0.0). Servers: https://api.addrova.eu (Production (EU) — not yet live); http://localhost:8000 (Local development).
Authentication
- ApiKeyHeader: header
X-API-Key. - BearerKey: bearer token. The API key as a bearer token
- ConsoleSession: bearer token. Console session token from
/console/v1/auth/verify(not an API key). - ApiKeyQuery: query
key. Accepted on /compat routes only, for drop-in compatibility. Never logged.
Endpoints
geocoding
GET /v1/geocode
Forward geocoding (query string) · operationId geocodeGet
The address appears in the URL; prefer POST when proxies you do not control may log URLs.
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
q |
query | yes | string (max length 512) | Free-text address. Unicode NFC normalised, trimmed. |
country |
query | no | string (pattern ^[A-Za-z]{2}$) |
Restrict to one country (ISO 3166-1 alpha-2, case-insensitive). |
limit |
query | no | integer (min 1, max 20, default 5) |
Authentication: ApiKeyHeader, BearerKey.
| Status | Response |
|---|---|
| 200 | Candidates, best first, with attribution — SearchResponse |
| 400 | Invalid parameters (invalid_request) — Problem |
| 401 | Missing or invalid key (unauthorized) — Problem |
| 429 | quota_exceeded (monthly) or rate_limited (per second) — Problem |
| 503 | Engine temporarily unavailable (engine_unavailable) — Problem |
POST /v1/geocode
Forward geocoding (JSON body, recommended) · operationId geocodePost
Request body (application/json, required): GeocodeRequest
{"q":"4 place d'Armes, Belfort","country":"FR","limit":3}
Authentication: ApiKeyHeader, BearerKey.
| Status | Response |
|---|---|
| 200 | Candidates, best first, with attribution — SearchResponse |
| 400 | Invalid parameters (invalid_request) — Problem |
| 401 | Missing or invalid key (unauthorized) — Problem |
| 429 | quota_exceeded (monthly) or rate_limited (per second) — Problem |
| 503 | Engine temporarily unavailable (engine_unavailable) — Problem |
GET /v1/reverse
Reverse geocoding · operationId reverse
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
lat |
query | yes | number (min -90, max 90) | |
lon |
query | yes | number (min -180, max 180) | |
limit |
query | no | integer (min 1, max 10, default 1) |
Authentication: ApiKeyHeader, BearerKey.
| Status | Response |
|---|---|
| 200 | Candidates, best first, with attribution — SearchResponse |
| 400 | Invalid parameters (invalid_request) — Problem |
| 401 | Missing or invalid key (unauthorized) — Problem |
| 429 | quota_exceeded (monthly) or rate_limited (per second) — Problem |
| 503 | Engine temporarily unavailable (engine_unavailable) — Problem |
GET /v1/autocomplete
Type-ahead suggestions · operationId autocomplete
Designed for checkout and form fields. Keys used from browsers must declare allowed origins.
Pass the same session token for all keystrokes of one input to be billed once per session.
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
q |
query | yes | string (max length 512) | Free-text address. Unicode NFC normalised, trimmed. |
country |
query | no | string (pattern ^[A-Za-z]{2}$) |
Restrict to one country (ISO 3166-1 alpha-2, case-insensitive). |
limit |
query | no | integer (min 1, max 10, default 5) |
|
lat |
query | no | number (min -90, max 90) | Focus point latitude |
lon |
query | no | number (min -180, max 180) | Focus point longitude |
session |
query | no | string (pattern ^[A-Za-z0-9-]{8,64}$) |
Authentication: ApiKeyHeader, BearerKey.
| Status | Response |
|---|---|
| 200 | Candidates, best first, with attribution — SearchResponse |
| 400 | Invalid parameters (invalid_request) — Problem |
| 401 | Missing or invalid key (unauthorized) — Problem |
| 429 | quota_exceeded (monthly) or rate_limited (per second) — Problem |
POST /v1/repair
Repair and standardise an address · operationId repair
Synchronous: street-type abbreviation rules, component parsing, then fuzzy matching of query
variants against official registers. Returns the corrected address, the field-level diff and a
confidence. unchanged covers inputs that only needed case/accent normalisation.
Asynchronous fallback (allow_async, 202, pending): interface only, currently disabled — no
external call is ever made. Billed on success (repaired) only.
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
Idempotency-Key |
header | no | string (max length 255) | Makes the POST safe to retry for 24 h (per API key's tenant). Same key and same request: the original result is returned (Idempotent-Replayed: true) and nothing is billed twice. Same key with a different request: 422 idempotency_key_reused; still running: 409 idempotency_in_progress. Addrova stores only a hash of the request, never its content. |
Request body (application/json, required): RepairRequest
{"address":"4 pl darmes 90000 belfor","country":"FR"}
Authentication: ApiKeyHeader, BearerKey.
| Status | Response |
|---|---|
| 200 | Repair result — RepairResponse |
| 202 | Fallback job queued — RepairResponse |
| 400 | Invalid parameters (invalid_request) — Problem |
| 401 | Missing or invalid key (unauthorized) — Problem |
| 429 | quota_exceeded (monthly) or rate_limited (per second) — Problem |
GET /v1/repair/jobs/{job_id}
Result of an asynchronous repair · operationId getRepairJob
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
job_id |
path | yes | string |
Authentication: ApiKeyHeader, BearerKey.
| Status | Response |
|---|---|
| 200 | Repair result (status pending while running) — RepairResponse |
| 401 | Missing or invalid key (unauthorized) — Problem |
| 404 | Unknown resource (not_found) — Problem |
batch
POST /v1/batch
Submit a file for asynchronous geocoding · operationId createBatch
CSV (UTF-8, header row, , ; tab or | separated) or JSON Lines. Limits are configurable
(defaults: 200 MB, 1,000,000 rows, capped by plan). Files are streamed: processed in blocks with a
checkpoint, resumed automatically if a worker stops, progress goes from 0 to 1, and the result is
streamed back. Billing: one unit per non-empty address row, reserved at upload
(the monthly quota must cover the whole file). The input file is deleted as soon as processing
ends; the result and the job metadata are deleted after the retention period (default 1 hour
after completion) or immediately with DELETE. A job never processed is purged after 24 hours.
Each output row gets addrova_status: matched, uncertain (best candidate returned but
confidence low), not_found, invalid (empty or rejected address) or error. rows_matched
counts matched rows only. Identical addresses within a file are geocoded once.
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
Idempotency-Key |
header | no | string (max length 255) | Makes the POST safe to retry for 24 h (per API key's tenant). Same key and same request: the original result is returned (Idempotent-Replayed: true) and nothing is billed twice. Same key with a different request: 422 idempotency_key_reused; still running: 409 idempotency_in_progress. Addrova stores only a hash of the request, never its content. |
Request body (multipart/form-data, required): object
Authentication: ApiKeyHeader, BearerKey.
| Status | Response |
|---|---|
| 202 | Job accepted — BatchJob |
| 400 | Invalid parameters (invalid_request) — Problem |
| 401 | Missing or invalid key (unauthorized) — Problem |
| 413 | File or row count over the limits (payload_too_large) — Problem |
| 429 | quota_exceeded (monthly) or rate_limited (per second) — Problem |
GET /v1/batch/{job_id}
Job status and progress · operationId getBatch
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
job_id |
path | yes | string |
Authentication: ApiKeyHeader, BearerKey.
| Status | Response |
|---|---|
| 200 | Job — BatchJob |
| 401 | Missing or invalid key (unauthorized) — Problem |
| 404 | Unknown resource (not_found) — Problem |
DELETE /v1/batch/{job_id}
Cancel the job and purge its files immediately · operationId deleteBatch
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
job_id |
path | yes | string |
Authentication: ApiKeyHeader, BearerKey.
| Status | Response |
|---|---|
| 204 | Purged |
| 401 | Missing or invalid key (unauthorized) — Problem |
| 404 | Unknown resource (not_found) — Problem |
GET /v1/batch/{job_id}/result
Download results · operationId getBatchResult
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
job_id |
path | yes | string |
Authentication: ApiKeyHeader, BearerKey.
| Status | Response |
|---|---|
| 200 | Input columns plus addrova_label, addrova_lat, addrova_lon, addrova_precision, addrova_confidence, addrova_confidence_level, addrova_sources, addrova_status. The attribution of all sources used is included as a trailing comment line (CSV) or a final {"attribution": [...]} record (JSONL). — string |
| 401 | Missing or invalid key (unauthorized) — Problem |
| 404 | Unknown resource (not_found) — Problem |
| 409 | Job not finished (conflict) — Problem |
account
GET /v1/usage
Usage of the calling tenant · operationId getUsage
Counts only. Addrova does not store the content of your requests.
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
period |
query | no | string (pattern ^\d{4}-\d{2}$) |
Month, YYYY-MM (default: current) |
Authentication: ApiKeyHeader, BearerKey.
compat-google
Drop-in compatible with the Google Geocoding API request/response shape.
GET /compat/google/maps/api/geocode/json
Google Geocoding API compatible endpoint · operationId compatGoogleGeocode
Replace https://maps.googleapis.com with the Addrova base URL and your Google key with an Addrova
key. Supports address (forward) or latlng (reverse), components=country:XX, language.
Errors are returned in the Google shape (status field, HTTP 200) for client compatibility.
Only the request/response format is emulated; no Google data is used.
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
address |
query | no | string (max length 512) | |
latlng |
query | no | string | lat,lng |
components |
query | no | string | Only country:XX is honoured |
language |
query | no | string | |
region |
query | no | string |
Authentication: ApiKeyQuery, ApiKeyHeader.
| Status | Response |
|---|---|
| 200 | Google-shaped response — GoogleGeocodeResponse |
compat-nominatim
Drop-in compatible with the Nominatim search / reverse (jsonv2) shape.
GET /compat/nominatim/search
Nominatim compatible search · operationId compatNominatimSearch
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
q |
query | yes | string (max length 512) | |
format |
query | no | json \ |
jsonv2 |
limit |
query | no | integer (min 1, max 40, default 10) |
|
countrycodes |
query | no | string | Comma-separated ISO alpha-2 codes |
addressdetails |
query | no | 0 \ |
1 |
Authentication: ApiKeyQuery, ApiKeyHeader.
| Status | Response |
|---|---|
| 200 | Nominatim-shaped list — array of NominatimPlace |
| 400 | Invalid parameters (invalid_request) — Problem |
| 401 | Missing or invalid key (unauthorized) — Problem |
GET /compat/nominatim/reverse
Nominatim compatible reverse · operationId compatNominatimReverse
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
lat |
query | yes | number (min -90, max 90) | |
lon |
query | yes | number (min -180, max 180) | |
format |
query | no | json \ |
jsonv2 |
addressdetails |
query | no | 0 \ |
1 |
Authentication: ApiKeyQuery, ApiKeyHeader.
| Status | Response |
|---|---|
| 200 | Single Nominatim place, or {"error": "Unable to geocode"} — NominatimPlace or object |
| 400 | Invalid parameters (invalid_request) — Problem |
| 401 | Missing or invalid key (unauthorized) — Problem |
demo
Public demo gateway for the Addrova website: same shapes as /v1, no API key (the server uses an internal demo identity), low daily limits per pseudonymised IP, batch files up to 1,000 rows. CORS is open only to the website origin. Not for production use.
GET /demo/v1/geocode
Demo forward geocoding (query string) · operationId demoGeocodeGet
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
q |
query | yes | string (max length 512) | Free-text address. Unicode NFC normalised, trimmed. |
country |
query | no | string (pattern ^[A-Za-z]{2}$) |
Restrict to one country (ISO 3166-1 alpha-2, case-insensitive). |
limit |
query | no | integer (min 1, max 20, default 5) |
| Status | Response |
|---|---|
| 200 | Candidates, best first, with attribution — SearchResponse |
| 400 | Invalid parameters (invalid_request) — Problem |
| 404 | Demo disabled on this server |
| 429 | quota_exceeded (monthly) or rate_limited (per second) — Problem |
POST /demo/v1/geocode
Demo forward geocoding (JSON body) · operationId demoGeocodePost
Request body (application/json, required): GeocodeRequest
| Status | Response |
|---|---|
| 200 | Candidates, best first, with attribution — SearchResponse |
| 400 | Invalid parameters (invalid_request) — Problem |
| 429 | quota_exceeded (monthly) or rate_limited (per second) — Problem |
GET /demo/v1/reverse
Demo reverse geocoding · operationId demoReverse
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
lat |
query | yes | number (min -90, max 90) | |
lon |
query | yes | number (min -180, max 180) | |
limit |
query | no | integer (min 1, max 10, default 1) |
| Status | Response |
|---|---|
| 200 | Candidates, best first, with attribution — SearchResponse |
| 400 | Invalid parameters (invalid_request) — Problem |
| 429 | quota_exceeded (monthly) or rate_limited (per second) — Problem |
POST /demo/v1/batch
Demo file geocoding (max 1,000 rows; counts 1 demo request per 100 rows) · operationId demoCreateBatch
Request body (multipart/form-data, required): object
| Status | Response |
|---|---|
| 202 | Job accepted — BatchJob |
| 400 | Invalid parameters (invalid_request) — Problem |
| 413 | More than 1,000 rows or file too large (payload_too_large) — Problem |
| 429 | quota_exceeded (monthly) or rate_limited (per second) — Problem |
GET /demo/v1/batch/{job_id}
Demo job status (only from the same visitor, same day) · operationId demoGetBatch
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
job_id |
path | yes | string |
DELETE /demo/v1/batch/{job_id}
**** · operationId demoDeleteBatch
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
job_id |
path | yes | string |
| Status | Response |
|---|---|
| 204 | Purged |
| 404 | Unknown resource (not_found) — Problem |
GET /demo/v1/batch/{job_id}/result
**** · operationId demoGetBatchResult
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
job_id |
path | yes | string |
| Status | Response |
|---|---|
| 200 | CSV or JSON Lines result — string |
| 404 | Unknown resource (not_found) — Problem |
| 409 | Job not finished (conflict) — Problem |
console
Developer console backend (JSON only). Session auth, not API keys.
POST /console/v1/auth/magic-link
Email a single-use sign-in link · operationId consoleMagicLink
Always 202, whether or not the account exists (no account enumeration). At most 5 links per
address per hour. The token travels in the URL fragment (/login#token=…).
Request body (application/json, required): object
| Status | Response |
|---|---|
| 202 | Link sent (or silently rate-limited) |
| 400 | Invalid parameters (invalid_request) — Problem |
| 503 | Engine temporarily unavailable (engine_unavailable) — Problem |
POST /console/v1/auth/verify
Exchange a link token for a session · operationId consoleVerify
First sign-in creates the account and a default organization on the default plan.
Request body (application/json, required): object
| Status | Response |
|---|---|
| 200 | Session — object |
| 401 | Missing or invalid key (unauthorized) — Problem |
POST /console/v1/auth/logout
**** · operationId consoleLogout
Authentication: ConsoleSession.
| Status | Response |
|---|---|
| 204 | Session ended |
| 401 | Missing or invalid key (unauthorized) — Problem |
GET /console/v1/me
**** · operationId consoleMe
Authentication: ConsoleSession.
| Status | Response |
|---|---|
| 200 | Account — ConsoleAccount |
| 401 | Missing or invalid key (unauthorized) — Problem |
GET /console/v1/plans
Plan catalog (limits and monthly prices; contract-only plans have no price) · operationId consolePlans
| Status | Response |
|---|---|
| 200 | Catalog — object |
GET /console/v1/orgs
**** · operationId consoleListOrgs
Authentication: ConsoleSession.
| Status | Response |
|---|---|
| 200 | Organizations of the account — array of ConsoleOrg |
| 401 | Missing or invalid key (unauthorized) — Problem |
POST /console/v1/orgs
**** · operationId consoleCreateOrg
Request body (application/json, required): object
Authentication: ConsoleSession.
| Status | Response |
|---|---|
| 201 | Created on the default plan — ConsoleOrg |
| 401 | Missing or invalid key (unauthorized) — Problem |
GET /console/v1/orgs/{org_id}/keys
**** · operationId consoleListKeys
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
org_id |
path | yes | string |
Authentication: ConsoleSession.
| Status | Response |
|---|---|
| 200 | Keys (never the secret) — array of ApiKeyInfo |
| 404 | Unknown resource (not_found) — Problem |
POST /console/v1/orgs/{org_id}/keys
Create a key (secret shown once) · operationId consoleCreateKey
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
org_id |
path | yes | string |
Request body (application/json): object
Authentication: ConsoleSession.
| Status | Response |
|---|---|
| 201 | New key — NewApiKey |
| 404 | Unknown resource (not_found) — Problem |
| 409 | Plan key limit reached (limit_reached) |
POST /console/v1/orgs/{org_id}/keys/{key_id}/rotate
Issue a replacement key; the old one stays valid for the grace period · operationId consoleRotateKey
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
org_id |
path | yes | string | |
key_id |
path | yes | string |
Request body (application/json): object
Authentication: ConsoleSession.
DELETE /console/v1/orgs/{org_id}/keys/{key_id}
**** · operationId consoleRevokeKey
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
org_id |
path | yes | string | |
key_id |
path | yes | string |
Authentication: ConsoleSession.
| Status | Response |
|---|---|
| 204 | Revoked |
| 404 | Unknown resource (not_found) — Problem |
GET /console/v1/orgs/{org_id}/usage
Daily usage per endpoint (up to one minute behind) · operationId consoleUsage
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
org_id |
path | yes | string | |
from |
query | no | string (date) | |
to |
query | no | string (date) |
Authentication: ConsoleSession.
| Status | Response |
|---|---|
| 200 | Usage — object |
| 400 | Invalid parameters (invalid_request) — Problem |
| 404 | Unknown resource (not_found) — Problem |
GET /console/v1/orgs/{org_id}/usage.csv
Daily usage per endpoint as CSV (day,endpoint,units) · operationId consoleUsageCsv
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
org_id |
path | yes | string | |
from |
query | no | string (date) | |
to |
query | no | string (date) |
Authentication: ConsoleSession.
| Status | Response |
|---|---|
| 200 | CSV attachment — string |
| 400 | Invalid parameters (invalid_request) — Problem |
| 404 | Unknown resource (not_found) — Problem |
PUT /console/v1/orgs/{org_id}/plan
Switch to another self-serve plan (owner only) · operationId consoleChangePlan
| Parameter | In | Required | Type | Description |
|---|---|---|---|---|
org_id |
path | yes | string |
Request body (application/json, required): object
Authentication: ConsoleSession.
| Status | Response |
|---|---|
| 200 | Plan applied — object |
| 400 | Invalid parameters (invalid_request) — Problem |
| 403 | Contract-only plan (forbidden) |
| 404 | Unknown resource (not_found) — Problem |
meta
GET /metrics
Prometheus metrics (internal) · operationId metrics
Bounded labels only (method, route template, status class, engine operation and outcome).
Protected by a bearer token when ADDROVA_METRICS_TOKEN is set; not exposed publicly.
Authentication: BearerKey.
| Status | Response |
|---|---|
| 200 | Prometheus text exposition format — string |
| 401 | Missing or invalid key (unauthorized) — Problem |
GET /coverage
Countries covered, sources, licences and calibration (public) · operationId coverage
No authentication, cached 10 s. Lists every indexed country with its status, record count, data
sources and licences (attribution text as required by each licence), whether confidences are
calibrated, and the confident threshold. A country without calibration never returns
confidence_level: high.
| Status | Response |
|---|---|
| 200 | Coverage — object |
GET /status
Public aggregated status (for the status page) · operationId status
No authentication. Cached 10 s. Overall status is the worst component status.
Engine status is per indexed country when the engine reports it, else a single * entry.
| Status | Response |
|---|---|
| 200 | Status — PublicStatus |
GET /health
**** · operationId health
| Status | Response |
|---|---|
| 200 | Alive — object |
GET /version
**** · operationId version
| Status | Response |
|---|---|
| 200 | Build information — object |
Schemas
Schema PublicStatus
| Field | Type | Required | Description |
|---|---|---|---|
status |
ComponentStatus | yes | |
checked_at |
string (date-time) | yes | |
components |
object | yes |
Schema ComponentStatus
Type: operational | degraded | outage
Schema ConsoleOrg
| Field | Type | Required | Description |
|---|---|---|---|
id |
string | no | |
name |
string | no | |
plan |
string | no | |
role |
owner \ |
admin \ |
member |
Schema ConsoleAccount
| Field | Type | Required | Description |
|---|---|---|---|
id |
string | no | |
email |
string | no | |
organizations |
array of ConsoleOrg | no |
Schema ApiKeyInfo
| Field | Type | Required | Description |
|---|---|---|---|
id |
string | no | |
name |
string or null | no | |
prefix |
string | no | First 12 characters |
env |
live \ |
test |
no |
created_at |
string (date-time) | no | |
expires_at |
string or null (date-time) | no | |
revoked_at |
string or null (date-time) | no |
Schema NewApiKey
| Field | Type | Required | Description |
|---|---|---|---|
id |
string | yes | |
key |
string | yes | Secret |
name |
string or null | no | |
env |
string | no | |
prefix |
string | no | |
previous_expires_at |
string (date-time) | no | Rotation only |
Schema Plan
| Field | Type | Required | Description |
|---|---|---|---|
id |
string | no | |
name |
string | no | |
self_serve |
boolean | no | |
monthly_quota |
integer | no | |
rate_per_sec |
number | no | |
max_keys |
integer | no | |
batch_max_rows |
integer | no | |
repair |
on_success \ |
included \ |
none |
overage |
boolean | no | |
price |
object | no | Omitted while not published |
Schema GeocodeRequest
| Field | Type | Required | Description |
|---|---|---|---|
q |
string (max length 512) | yes | |
country |
string or null (pattern ^[A-Za-z]{2}$) |
no | |
limit |
integer (min 1, max 20, default 5) |
no |
Schema SearchResponse
| Field | Type | Required | Description |
|---|---|---|---|
results |
array of Result | yes | |
attribution |
array of Attribution | yes |
Schema Result
| Field | Type | Required | Description |
|---|---|---|---|
id |
string | no | Stable identifier in the source register |
label |
string | yes | |
components |
Components | yes | |
location |
Location | yes | |
precision |
rooftop \ |
street \ |
centroid \ |
confidence |
number (min 0, max 1) | yes | Estimated probability that the result is correct at the stated precision. |
confidence_level |
high \ |
medium \ |
low |
confidence_calibrated |
boolean | no | true when confidence comes from a calibration table for this country and precision (a measured probability); false for the uncalibrated heuristic — do not present it as a percentage. |
country |
string (pattern ^[A-Z]{2}$) |
yes | |
sources |
array of string | yes | Source ids; see attribution for licences. |
distance_m |
number | no | Reverse geocoding only — distance from the query point |
Schema Components
| Field | Type | Required | Description |
|---|---|---|---|
housenumber |
string | no | |
street |
string | no | |
postcode |
string | no | |
city |
string | no | |
district |
string | no | |
region |
string | no | |
country_code |
string | no | |
cedex |
string | no | FR delivery office suffix, e.g. CEDEX 9 |
po_box |
string | no | PO box (BP, Postfach, apartado) |
Schema Location
WGS 84
| Field | Type | Required | Description |
|---|---|---|---|
lat |
number | yes | |
lon |
number | yes |
Schema Attribution
| Field | Type | Required | Description |
|---|---|---|---|
source |
string | yes | |
text |
string | yes | |
license |
string | no |
Schema RepairRequest
| Field | Type | Required | Description |
|---|---|---|---|
address |
string (max length 512) | no | |
components |
object | no | |
country |
string (pattern ^[A-Za-z]{2}$) |
no | |
allow_async |
boolean (default false) |
no | Opt in to the asynchronous fallback. Not yet available; ignored until enabled. |
Schema RepairResponse
| Field | Type | Required | Description |
|---|---|---|---|
status |
unchanged \ |
repaired \ |
unrepairable \ |
job_id |
string | no | Present when status is pending |
parsed |
Components | no | |
result |
Result | no | |
confidence |
number (min 0, max 1) | no | Repair confidence (engine confidence blended with input similarity). |
confidence_level |
high \ |
medium \ |
low |
changes |
array of object | no | |
attribution |
array of Attribution | no |
Schema BatchJob
| Field | Type | Required | Description |
|---|---|---|---|
id |
string | yes | |
status |
queued \ |
running \ |
succeeded \ |
created_at |
string (date-time) | yes | |
finished_at |
string or null (date-time) | no | |
expires_at |
string or null (date-time) | no | |
rows_total |
integer | no | |
rows_done |
integer | no | |
rows_matched |
integer | no | |
progress |
number (min 0, max 1) | no | |
webhook_secret |
string | no | Webhook signing secret (whsec_…), only in the 202 response of the upload. |
links |
object | no |
Schema Usage
| Field | Type | Required | Description |
|---|---|---|---|
tenant_id |
string | yes | |
period |
string | yes | |
plan |
string | no | |
quota |
integer | yes | |
used |
integer | yes | |
by_endpoint |
object | no |
Schema Problem
RFC 9457 problem details. The offending input value is never echoed back.
| Field | Type | Required | Description |
|---|---|---|---|
type |
string (uri) | yes | |
title |
string | yes | |
status |
integer | yes | |
code |
invalid_request \ |
unauthorized \ |
forbidden \ |
detail |
string | no | |
errors |
array of object | no |
Schema GoogleGeocodeResponse
| Field | Type | Required | Description |
|---|---|---|---|
status |
OK \ |
ZERO_RESULTS \ |
OVER_QUERY_LIMIT \ |
error_message |
string | no | |
results |
array of object | yes | |
attribution |
array of Attribution | no | Addrova extension, ignored by existing clients. |
Schema NominatimPlace
| Field | Type | Required | Description |
|---|---|---|---|
place_id |
string | no | |
licence |
string | no | Attribution text of the source(s) |
lat |
string | no | |
lon |
string | no | |
display_name |
string | no | |
category |
string | no | format=jsonv2 |
class |
string | no | format=json (same value as category) |
type |
string | no | |
importance |
number | no | |
address |
object | no | |
boundingbox |
array of string | no |