One country
Unlimited calls against a single country index.
€4 / month
- Unlimited API calls
- One country index of your choice
- Ranked suggestions with parents and children
Meridian
Type ahead and get ranked location suggestions as you type — with parents, children, and region type in the same response, ready for production place pickers.
Product
Meridian is a place autocomplete API for administrative regions. As users type, the API returns ranked suggestions with the context your UI needs: district, municipality, parish, and the nested regions underneath.
Debounced client requests hit a prefix search index, so suggestions stay responsive while subtitles and child regions keep results unambiguous — without maintaining your own gazetteer or wrapping a general geocoder for typeahead.
Live demo
Start typing an administrative region. Suggestions update in realtime as you type, with ranked matches, a regional subtitle, and child regions when a district or municipality has sub-areas.
Choose a country above to search its administrative regions. We keep adding new countries — see coverage.
Coverage
Meridian is building administrative-region search across Europe and North America. The countries below are on the coverage roadmap for the same API.
Capabilities
Every keystroke-driven request returns UI-ready fields: ranked titles, disambiguating context, and hierarchy when you need to expand or filter.
Prefix search over normalized names responds as the user types. Debounce on the client, keep the API simple — each call returns the current top matches for the partial query.
Matches are scored with place importance so major regions appear before obscure names, which keeps autocomplete lists useful under short prefixes.
Each hit returns region type separately from the geographic subtitle, so shared names stay distinguishable across districts.
Districts and municipalities include their nested sub-regions as structured children for nested navigation and scoped filtering.
Parent and child links reflect real geographic containment rather than fragile name matching.
Search is scoped by language and country index, keeping results relevant when the same API serves multiple markets.
Title and subtitle are already formatted for autocomplete rows. Postcodes are stripped from display strings to keep suggestions clean.
How it works
Meridian is a pipeline as much as an API. Place regions are extracted, enriched, linked, and indexed so realtime autocomplete stays fast under typing load.
01 — Extract
Region records and tags are imported, including names, admin levels, and region types used for display and filtering.
02 — Hierarchy
Each place is linked to its containing regions and nested sub-regions, so autocomplete can surface hierarchy without extra client-side lookup.
03 — Enrich
Human-readable display names and importance scores are attached, then normalized for accent-insensitive search.
04 — Serve
Documents are indexed for prefix search. As users type, the API aggregates matches, loads full documents, and formats autocomplete fields for the client.
Use cases
Power address and area autocomplete so users select a parish, municipality, or district with clear subtitles while suggestions update as they type.
Delivery, insurance, and field-service products can search a parent region in realtime, then browse child regions without inventing their own administrative tree.
Support and ops teams get instant place suggestions, then expand into contained municipalities or parishes for routing and assignment.
API surface
Call GET /locations/search on each debounced keystroke. Optional lang selects the country index, and limit caps how many ranked suggestions come back. Full parameter notes are in the API docs.
q
Partial text from the autocomplete input. Prefix matching starts after two characters.
lang
Country index code. us for the United States, nl for the Netherlands, de for Germany.
limit
Maximum results, from 1 to 100. The demo requests 10.
GET /locations/search?q=bretagne&lang=fr&limit=10
{
"query": "bretagne",
"language": "fr",
"total": 1099,
"results": [
{
"score": 8,
"weighted_score": 3.96919786624,
"display_name": "Bretagne, France métropolitaine, France",
"title": "Bretagne",
"subtitle": "France métropolitaine, France",
"hierarchy_subtitle": "France métropolitaine, France",
"display_name_norm": "bretagne, france metropolitaine, france",
"location": {
"id": 102740,
"name": "Bretagne",
"name_norm": "bretagne",
"tags": {
"name": "Bretagne",
"name:en": "Brittany",
"population": "3354854",
"population:date": "2019"
},
"details": {
"addresstype": "state",
"name": "Bretagne",
"display_name": "Bretagne, France métropolitaine, France",
"display_name_norm": "bretagne, france metropolitaine, france",
"address": {
"state": "Bretagne",
"ISO3166-2-lvl4": "FR-BRE",
"region": "France métropolitaine",
"country": "France",
"country_code": "fr"
}
},
"parent_id": 1403916,
"ancestor_ids": [1403916, 2202162],
"child_ids": [7398, 102430, 7465, 7447],
"parents": [
{
"id": 1403916,
"name": "France métropolitaine",
"name_norm": "france metropolitaine",
"region_type": "territorial"
},
{
"id": 2202162,
"name": "France",
"name_norm": "france",
"region_type": "territorial"
}
],
"children": [
{
"id": 7398,
"name": "Côtes-d'Armor",
"name_norm": "cotes-darmor",
"region_type": "departement"
},
{
"id": 102430,
"name": "Finistère",
"name_norm": "finistere",
"region_type": "departement"
}
],
"lineage": "/2202162/1403916/102740/"
}
}
]
}Each hit includes ranked autocomplete fields plus the full stored location document — parents, children, lineage, and address details — when clients need more than the suggestion row. Child lists are abbreviated in this example.
Pricing
Pick one country or every country on the coverage roadmap. Both plans include unlimited autocomplete requests — no per-call metering.
Unlimited calls against a single country index.
€4 / month
All coverage
Unlimited calls across every country Meridian covers.
€10 / month
FAQ
Contact
Tell us about your product, coverage needs, or integration timeline. We will follow up with next steps.