Places
Search by category or name, open a place, and analyse any mix of categories around a point: counts, nearest, nearest by travel time.
- GET /places/categories
- POST /places/search
- GET /places/{id}
- POST /places/analyze
NILQ for business
One API answers what every listing is asked: what is around this address, and how long it takes to get there on foot, by bike or by car. Every fact carries its source and date, and the answers are yours to keep.
Live in Portugal and Spain. More of Europe next, market by market.
POST /api/v1/places/analyze
Live
Baixa, Lisbon
{
"request": {
"country_code": "PT",
"location": {
"latitude": 38.7101,
"longitude": -9.1374
}
},
"answers": [
{
"label": "Supermarket",
"mode": "walk",
"minutes": 6,
"name": "Supermercado Mega Grumme"
},
{
"label": "Pharmacy",
"mode": "walk",
"minutes": 1,
"name": "Farmácia Cortez"
},
{
"label": "Gym",
"mode": "bike",
"minutes": 2,
"name": "Viva Fit & Pilates Fit"
},
{
"label": "Coffee shops within 800 m",
"mode": "walk",
"count": 103
}
]
}
POST /api/v1/places/analyze
Live
Puerta del Sol, Madrid
{
"request": {
"country_code": "ES",
"location": {
"latitude": 40.4168,
"longitude": -3.7038
}
},
"answers": [
{
"label": "Supermarket",
"mode": "walk",
"minutes": 3,
"name": "Supermercado El Corte Inglés"
},
{
"label": "Pharmacy",
"mode": "walk",
"minutes": 2,
"name": "Farmacia Arenal 2 (Antigua Farmacia Gayoso)"
},
{
"label": "Gym",
"mode": "bike",
"minutes": 1,
"name": "Dreamfit | Gimnasio Ventas"
},
{
"label": "Coffee shops within 800 m",
"mode": "walk",
"count": 224
}
]
}
POST /api/v1/places/analyze
Live
Old town, Palma
{
"request": {
"country_code": "ES",
"location": {
"latitude": 39.5696,
"longitude": 2.6502
}
},
"answers": [
{
"label": "Supermarket",
"mode": "walk",
"minutes": 3,
"name": "Supermarket Sindicat"
},
{
"label": "Pharmacy",
"mode": "walk",
"minutes": 3,
"name": "Farmacia Lda. A. M. Moll"
},
{
"label": "Gym",
"mode": "bike",
"minutes": 2,
"name": "BI-Bodyindex Deutschland"
},
{
"label": "Coffee shops within 800 m",
"mode": "walk",
"count": 99
}
]
}
POST /api/v1/places/analyze
Live
Madeira, Funchal
{
"request": {
"country_code": "PT",
"location": {
"latitude": 32.6496,
"longitude": -16.9086
}
},
"answers": [
{
"label": "Supermarket",
"mode": "walk",
"minutes": 2,
"name": "Amanhecer Venda Nova"
},
{
"label": "Pharmacy",
"mode": "walk",
"minutes": 3,
"name": "Farmácia Botica Inglesa"
},
{
"label": "Gym",
"mode": "bike",
"minutes": 3,
"name": "BodyFit"
},
{
"label": "Coffee shops within 800 m",
"mode": "walk",
"count": 42
}
]
}
Computed on production data at 21:18 UTC. Every answer names its source and data version.
Everything in one API
Most teams buy this from three vendors and glue it together. Here it comes from one API, with one data version behind every answer.
Search by category or name, open a place, and analyse any mix of categories around a point: counts, nearest, nearest by travel time.
Routes, matrices and reachable areas on foot, by bike and by car.
Address to coordinates and back, with the match level and postcode, and nearby places in the same call.
Hotels, apartments and campsites near a point, with stable source ids.
Monthly climate from 2020 to 2025, and ready-made signals such as beach access and grocery on foot.
Send a whole list at once for enrichment, analysis or geocoding. Rows that fail come back with a reason; the rest still arrive.
Keep your addresses with NILQ. Answers refresh on every data release, overnight on Scale, and you read them when you like.
The same operations for Claude and other assistants over MCP, with the same key, limits and usage.
Keys, usage per day and your plan in the console, and the same numbers over the API.
What you can build
Listings and portals
Every listing is asked the same thing: school, shops, the station, in minutes. Run your catalogue once, store the answers, and every page view reads from your own tables. Cost per address: once. Cost per view: nothing.
Relocation and mobility
A shortlist is addresses times places times three travel modes. From Starter up there is no monthly lookup ceiling, so your consultants compare, reorder and rerun without watching a counter.
Site selection
Pull the minutes to what matters for every candidate and give site two the same depth as site nine. A wrong lease costs years; the check costs a lookup.
AI assistants and agents
Connect NILQ over MCP and your assistant can search places, find addresses and measure travel time, with sources attached. One line to connect, the same key as your app.
How it runs
The Free plan starts at once. Create your key in the console and make your first call in minutes.
Send an address and we find it, or send coordinates. One at a time from your product, or a whole list as a bulk job.
Write every response into your own database and serve it from there. The answers are yours to keep.
On each new data release your saved addresses are recomputed. You read the new answers; nothing to rebuild.
For your engineers
One address
curl https://nilq.com/api/v1/places/analyze \
-H "Authorization: Bearer $NILQ_API_KEY" \
-H "Content-Type: application/json" \
-d '{"country_code": "PT",
"location": {"latitude": 38.7101,
"longitude": -9.1374},
"radius_meters": 800,
"category_ids": ["foursquare:4bf58dd8d48988d1e0931735"],
"metrics": ["count", "travel_time_nearest"],
"mode": "walk"}'
One round trip. No job to poll.
Whole catalogue
POST /api/v1/jobs
Idempotency-Key: catalogue-2026-10
{"operation": "place_analysis",
"records": [ ... ],
"analysis": { ... }}
202 Accepted
GET /api/v1/jobs/{id}/results
Runs in the background. The same key twice is never charged twice.
AI assistant
claude mcp add --transport http nilq \ https://nilq.com/api/v1/mcp \ --header "Authorization: Bearer $NILQ_API_KEY"
Your assistant sees the same tools, limits and usage as your app.
Keep it
Coverage
A market goes live when its places, routes and addresses pass the same checks as the ones below. Tell us which market you need; it shapes the order.
Where we stop
Our own map scores stays against each person's needs, and that score stays out of the API on purpose. What an eight-minute walk to school is worth to a family is your call and your product. Every answer we sell is a counted place or a measured minute, with a source and a date.
How NILQ compares
Pricing
From Starter up there is no monthly lookup ceiling, and every answer is yours to store. Prices exclude VAT.
| Free €0for evaluation Start free | Starter €149a month, or €1,490 a year Choose Starter | Recommended Core €790a month, or €7,900 a year Choose Core | Scale €1,990a month, or €19,900 a year Choose Scale | |
|---|---|---|---|---|
| Addresses you keep answers for | 1,000 | 2,500 | 50,000 | 500,000 |
| Lookups per month | 10,000 | No monthly ceiling | No monthly ceiling | No monthly ceiling |
| Markets | 1 of Portugal or Spain | 1 of Portugal or Spain | Up to 8 (Portugal and Spain available now) | All we run (Portugal and Spain available now) |
| Requests per second | 2 | 5 | 10 | 40 |
| Whole-catalogue jobs | No | No | Included | Priority queue |
| Refresh on every data release | No | Included | Included | Included, overnight target |
| Store and reuse results | 30 days | Forever | Forever | Forever |
| Support | Docs | Email, one working day | Named contact |
There is no overage billing. At a plan limit new work waits with a clear message, stored answers stay untouched, and moving up is your decision.
Every plan's request rate is load-tested on production: at the plan rate nothing is refused, above it the limit steps in.
Pay yearly and two months come off. Your renewal price is held for 12 months, in writing.
A saved address is one active saved location per customer reference; updating it does not use another slot. More than 500,000 addresses, more markets, your own deployment or different terms: from €1,990 a month, quoted against your scope at api@nilq.com. Use is governed by the Terms.
Scope
NILQ answers what surrounds an address and how long daily life takes from its door. Data about the property itself or about people stays with the specialists you may already use.
Start
Create a business account, pick your first country, and your key is waiting in the console. Try it on the address you know best; that is the one that tells you whether this is real.
Scale, custom scope or other terms: api@nilq.com