Get Local Business Intelligence data with one API
The Local Business Enrichment API resolves a business to structured data as clean JSON.
2 active endpoints. Every call is 8 credits.
- POST/enrich-local/v1/business_lookup
- POST/enrich-local/v1/batch
What Local Business Intelligence endpoints does ReefAPI ship?
2 live read endpoints. Read-only data API: no writes, no account actions, no dashboard access on the target site.
Local Business Intelligence API
1 of 2 endpoints, ready to run
name+location ‖ place_query → matched place (Google Maps) + multi-source review presence + we…
// Press "Try it" and this pane shows exactly what the // live site returned this second — including an empty // result, if that is the truth. No key, no account.
How the Local Business Intelligence API works
Local Business Intelligence is a normal ReefAPI surface — the same four rules that hold for every other engine on the key.
No OAuth app, no request signing, no per-site account. One key covers all 185 engines.
Every route is a POST with a JSON body. Parameters are validated against the published schema before anything is charged.
Credits, not seats. Failed and blocked calls are never charged, and cache hits cost nothing.
One envelope everywhere. meta carries latency_ms, record_count and the endpoint that answered.
How to tell a real match from a nearest-neighbor match
This engine always returns a place, so the match block is the only thing standing between you and the wrong business. The two columns below are real calls: one for a business that exists, given with coordinates, and one for a name that does not exist anywhere. Both returned ok:true and a fully populated place, and the difference is visible only in these fields.
| Field | Real business, lat/lng supplied | Fabricated name, no coordinates |
|---|---|---|
| Query sent | Katz's Delicatessen, Manhattan, lat 40.7223 lng -73.9874 | Qqxzv Nonexistent Plumbing Services, Austin, Texas |
| place.name returned | Katz's Delicatessen | Economy Plumbing Services, LLC |
| match_confidence | 0.97 | 0.83 |
| name_similarity | 1.0 | 0.67 |
| geo_validated | true | false |
| distance_km | 0.01 | null |
| runner_up | null | Reliant Plumbing - Austin, score_gap 0.09 |
geo_validated is the field that separated the two, and it can only be true when you supply lat and lng or an address specific enough to geocode. A second fabricated name, this one a bakery in an invented Kansas town, behaved identically: it returned a real bakery in Herington, KS at match_confidence 0.75 with geo_validated false. Gate on geo_validated and name_similarity together, not on match_confidence alone.
What people build with Local Business Intelligence
The jobs this data is most often used for.
endpoints
credits per call
CRM enrichment calls business_lookup to attach place data to a lead.
Lead-gen tools resolve a business to its phone and website.
Data pipelines use batch to enrich a whole list of businesses.
What Local Business Intelligence data costs
The cheapest call here is 8 credits, so $15/mo (Pro) buys 1,250 of them — $1.50 per 1,000 credits. Credits roll over and never expire, and failed or blocked calls are not charged.
Full pricing →- 1,000 free credits on signup, no card
- One key, all 185 APIs, one credit pool
- Failed and blocked calls are never charged
- Credits roll over and never expire
Call it in two lines
Sign up, get 1,000 credits and one key that works on every engine. Then this is the whole protocol.
curl -X POST https://api.reefapi.com/enrich-local/v1/business_lookup \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"name":"Katz's Delicatessen","location":"Manhattan","lat":40.7223,"lng":-73.9874,"include":["website"]}'import requests
r = requests.post(
"https://api.reefapi.com/enrich-local/v1/business_lookup",
headers={"x-api-key": REEF_KEY},
json={
"name": "Katz's Delicatessen",
"location": "Manhattan",
"lat": 40.7223,
"lng": -73.9874,
"include": [
"website"
]
},
)
print(r.json()["data"])Have a question? We got answers.
The questions people actually ask before wiring up Local Business Intelligence.
Get a free key →What does the response look like when the business does not exist?▾
It does not 404 and it does not come back empty. In two measured runs with invented business names, the engine returned ok:true and the nearest same-category real business: a fabricated Kansas bakery resolved to 'Sweet Creations Bakery' at match_confidence 0.75, and a fabricated Austin plumber resolved to 'Economy Plumbing Services, LLC' at 0.83. In both cases geo_validated was false, name_similarity was 0.67 or lower, and a runner_up was present with a small score_gap. Treat a miss as something you detect from the match block rather than from an error code.
Google shows found:false but there is a rating in the same object. Which is it?▾
found on the google entry means review text is available, not that the place has no rating. A measured lookup returned google {found:false, rating:4.5, review_count:null} together with the note that Maps supplies a star rating only. A second lookup on the same business, phrased as a place_query with country US, returned found:true with review_count 54698. The rating is reliable in both, so read rating and review_count directly instead of branching on found.
Yelp and Tripadvisor keep coming back found:false. Are they really absent?▾
Not necessarily. Each source carries its own missing_reason, and that reason describes the lookup path rather than proving the business has no page there. In one measured run for a famously reviewed New York deli, both came back found:false, and a repeat of the same business returned more sources. If Yelp coverage matters, pass yelp_enc_biz_id, the encrypted business identifier, which skips the resolution step and populates the review samples directly.
What are fid, place_id and cid, and are they the same thing?▾
fid and place_id came back identical in every measured response, both in the hex-pair form 0x89c2598f7ff4aa09:0x313547e757cb8cea. cid is the decimal form of the second half, 3545819340560108778 in that example, and it is what maps_url uses: https://www.google.com/maps?cid=3545819340560108778. Store all of them as strings, because cid overflows a 32-bit integer and the hex pair is not a number at all.
Is the legitimacy block a trust score?▾
No, and the response goes out of its way to say so. It returns signals as a list of named checks, each with present true or false and a human-readable detail, alongside an unknowns array for anything that could not be established. A measured lookup produced 7 signals and 4 unknowns, including listed_on_google_maps, has_public_address, has_public_phone, has_working_website, domain_registered and website_has_ssl. The disclaimer in the payload states that missing data is reported as unknown and never as a risk signal, and that this is not a KYB, AML or credit decision.
Does passing country actually change anything?▾
Yes, it changes source routing and the honesty note attached to it. Without country, a measured response carried a coverage_note beginning 'country could not be determined' and its reviews group listed only one real source. With country US on the same business, the note dropped that clause and the reviews group reported two real sources. It costs nothing to send, so send it.
When should I use enrich-company instead?▾
When your input is a domain rather than a name and a place. This engine is anchored on a Maps listing, so it wants a business name plus a location, coordinates or a place_query, and it will not accept a bare domain. enrich-company starts from the domain and returns firmographics, WHOIS, hiring and tech instead of storefront data. The overlap is small: both can surface a Trustpilot match and basic domain health.
How do include and exclude behave, and what is the batch limit?▾
The place group is always resolved because it is the anchor, so include and exclude only govern reviews, website, presence, news and legitimacy. Groups you leave out appear in provenance with status 'skipped', which is distinct from 'not_found'. Batch takes up to 10 businesses per call and reports per-item ok or error; an empty request with no name, location or place_query returns MISSING_PARAM.
What is the Local Business Intelligence API?▾
Local Business Intelligence API is a ReefAPI endpoint group for local business intelligence It returns live JSON through POST requests under /enrich-local/v1.
Is the Local Business Intelligence API free to try?▾
Yes. ReefAPI starts with 1,000 free credits, no card required. Local Business Intelligence calls use the same shared credit balance as every other ReefAPI engine.
Do I need a Local Business Intelligence login or account?▾
No login to Local Business Intelligence is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.
How fresh is the Local Business Intelligence data?▾
The page example is captured from a live business_lookup call, and production requests fetch live data through ReefAPI rather than a static sample.
How many credits does the Local Business Intelligence API use?▾
Local Business Intelligence actions currently cost 8 credits per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.
Can I call Local Business Intelligence from an AI assistant or MCP client?▾
Yes. Connect ReefAPI once through MCP and your assistant can call enrich-local actions with the same key, credit pool and JSON envelope used by normal REST requests.
14 Reputation & Reviews APIs on the same key
One key, one credit pool, one response envelope. If you are pulling Local Business Intelligence, you are one call away from the rest of the category — no second contract, no second integration.
Try it on your own data before you pay anything
The call above is the real endpoint, not a recording. A free key gives you 1,000 credits, the other 184 APIs, and the same envelope everywhere.
Endpoints, parameters and credit costs on this page are read from the live catalog and cannot drift from what the API accepts.