Products

Local Grounding API: stop your assistant guessing business facts

Models invent opening hours and phone numbers because nothing in their training data knows what is true today. One call returns the businesses that match, trimmed to the fields an answer needs, with a text block you can drop straight into a prompt and a citation on every record so the answer can be traced.

GET/v1/ground/local

200GET /v1/ground/local?q=dentist&location=Lisbon, Portugal&limit=2
{
  "data": [
    {
      "name": "CDL - Dental Clinic Lisbon",
      "categories": [
        "Dental implants provider"
      ],
      "address": "R. Ferreira da Silva 9B, 1900-228 Lisboa, Portugal",
      "phone": "+351213540059",
      "website": "https://dentistalisboa.com/",
      "rating": 4.8,
      "review_count": 272,
      "open_now": false,
      "citation": {
        "place_id": "ChIJPy04-ZkzGQ0RvdLuGmOMygg",
        "source": "maps_public",
        "fetched_at": "2026-09-07T12:58:02Z"
      }
    },
    "… 1 more"
  ],
  "text": "2 businesses matching 'dentist' in Lisbon, Portugal:\n1. CDL - Dental Clinic Lisbon | 4.8/5 (272 reviews) | +351213540059 | closed now\n2. …",
  "meta": {
    "credits_used": 2,
    "latency_ms": 2962,
    "source": "maps_public"
  }
}

What you get

Every field in the response.

FieldMeaning
textThe whole answer as compact text, one line per business, ready to put in a prompt
name, categories, address, city, country_codeWho and where, trimmed to two categories
phone, website, rating, review_countThe facts an assistant is usually asked for
status, open_now, hours_todayWhether it is open, and today's hours
emails, whatsapp, contact_form_urlWith detail=true: how to reach them, read from the website
citationplace_id, source and the time the record was read

How it works

What happens between your request and the response.

Live, not remembered

Every call reads the listing at request time. Nothing is served from a stale copy, which is the whole point of grounding.

Trimmed on purpose

Up to ten businesses, two categories each, no photo arrays. Context windows are the constraint, so the response is small by design.

Cited by default

Each record carries the id it came from and when it was read, so an answer built on it can be checked.

Optional depth

With detail=true each result is fetched in full: seven days of hours plus the email, WhatsApp and social profiles from the business website.

Pricing

One credit system for every endpoint.

One credit per business returned, two with detail=true. Credits are reserved for the limit you ask for and settled to what actually came back. The Free plan covers 200 a month with no card.

See all plans

Questions

Things people ask about the LLM Grounding API.

How is this different from the search endpoint?

Same data, different shape. Search is built for databases: full records, paging, every field. Grounding is built for a context window: a handful of businesses, only the fields an answer needs, a ready-made text block and a citation on each record.

Why does an AI assistant need this at all?

Because business hours, phone numbers and closures change constantly and no model knows them. Without a live source an assistant either refuses to answer or invents an answer, and inventing is worse.

Can my agent call it as a tool instead of an HTTP request?

Yes. The same account works over the Model Context Protocol at https://api.locomint.io/mcp, so assistants can call local_search and the other tools directly with your key as a bearer token.