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.