Businesses API#
Search businesses#
GET /api/v1/businesses
Portugal is available with country=pt, using stable city slugs such as
lisboa and porto. Its website coverage is currently partial across the
mainland, Madeira, and the Azores. Spain and France also have live website
directories; Brazil adds partial coverage of its twenty largest city regions under country=br. Brazilian profiles use /br/pt/, including cities such as sao-paulo and rio-de-janeiro. German and Italian records remain available through this API.
Query parameters#
| Parameter | Type | Required | Description |
|---|---|---|---|
country |
string | yes | Dataset code: de, es, fr, it, pt, or br. Case-insensitive. |
city |
string | no | Lowercase city slug such as berlin, madrid, roma, or lisboa. |
category |
string | no | One taxonomy key: beauty, hairSalon, barber, beautySalon, nailSalon, massage, spa, lashBrow, hairRemoval, tanning, tattooPiercing, aestheticMedicine. beauty is the whole directory. |
q |
string | no | Literal text match across names, city, primary type, and categories; maximum 100 characters. |
whatsapp |
boolean | no | true selects records whose primary number appears WhatsApp-reachable. |
verified |
boolean | no | Select verified or unverified Lindavia listings. |
limit |
integer | no | Records per page, from 1 to 100. Default: 25. |
cursor |
string | no | Opaque nextCursor from the preceding response. |
curl --get 'https://www.lindavia.com/api/v1/businesses' \
--header "X-API-Key: $LINDAVIA_API_KEY" \
--data-urlencode 'country=pt' \
--data-urlencode 'city=lisboa' \
--data-urlencode 'category=hairSalon' \
--data-urlencode 'verified=true'
Business object#
| Field | Type | Meaning |
|---|---|---|
id |
string | Stable Lindavia place identifier. |
name, legalName |
string or null | Published display and legal names. |
address |
object | street, city, state, postalCode, and two-letter country. |
location |
object or null | latitude and longitude. |
phone, phoneType |
string or null | Primary normalized number and mobile, landline, or other. |
additionalPhones |
array | Additional normalized phone records. |
email |
string or null | Published business email. |
website, googleMapsUrl |
string or null | Validated public HTTP(S) URLs. |
primaryType, categories |
string / array | Published source category labels. |
rating, reviewCount |
number or null | Published Google rating signals. |
whatsappEligible |
boolean | Technical reachability signal; never consent. |
verified |
boolean | Whether Lindavia has verified the listing. |
workingHours |
object or null | Published source day labels mapped to time ranges. |
profileUrl |
string | Canonical public Lindavia profile. |
Fields with no published value remain null or an empty array; clients should
not invent data from neighboring fields.
Get one business#
GET /api/v1/businesses/{businessId}
URL-encode the id received from a search response:
const url = `https://www.lindavia.com/api/v1/businesses/${encodeURIComponent(business.id)}`
const response = await fetch(url, {
headers: { 'X-API-Key': process.env.LINDAVIA_API_KEY },
})
const { business } = await response.json()
The endpoint returns 404 when the id is unknown, suppressed, closed, or no
longer published.
Scope#
Lindavia is a directory. The API does not book appointments, confirm availability or prices, or give treatment advice, and a category label is a published source label rather than a verified qualification.