2,500 free credits — no credit card required. Start building

SenseCollect logoSenseCollect
  • Sources
  • Solutions
  • Pricing
  • Tools
  • Blog
  • About
DocsGet API key
SourcesSolutionsPricingToolsBlogAboutDocs
Get API keyLog in
Reference · Google Maps

Google Maps data errors

The call succeeded and something in the result still looks wrong. Every one of these is expected behaviour with a known cause.

Get API keyAll API error codes

9 entries · returned with HTTP 200 · not transport failures

A Maps pull returns whatever the map itself holds. Empty fields are almost never collection failures — they are businesses that never published that detail, and the row is priced accordingly.

Contact fields come back as empty strings rather than null, so `row.contact.email === ""` is the check, not a null test.

9 entries
  • Result count3
  • Empty contact fields4
  • Filtering2

Result count

The run returned fewer rows than the limit you asked for.

fewer rows than limitdata

The map had fewer matching businesses than you asked for.

Cause
`limit` is a ceiling, not a quota. A narrow niche in a small city genuinely runs out of businesses, and no amount of retrying produces more.
Fix
You are only charged for rows actually returned — the rest of the hold comes back. Broaden the query or widen the location if you need more volume.
zero rowsdata

The query and location combination matched nothing.

Cause
Usually an over-specific query string. Maps matches business categories loosely, but a full sentence or a brand name that does not exist in that city returns nothing.
Fix
Use the category noun rather than a description — `dentists` rather than `dentists accepting new patients`. Confirm the location resolves as a place name on its own.
rows missing after verifydata

verify=true drops rows whose contact could not be confirmed deliverable.

Cause
Verification is a filter, not an annotation. A row whose email fails the deliverability check is removed rather than returned with a flag.
Fix
This is working as intended and the dropped rows cost nothing. Drop `verify` if you would rather score contacts yourself.

Empty contact fields

The row came back and a contact field is an empty string. Each has a distinct cause.

contact.email emptydata

Email is resolved from the business website, so no website means no email.

Cause
Email is not published on Maps listings. It is found by visiting the business site and reading the contact details there. A business with no site has nothing to read, and some sites publish only a contact form.
Fix
Confirm `enrich=true` — with enrichment off, email is never populated. A row with a website and no email is a site that published no address.
contact.website emptydata

The business listed no website on its Maps profile.

Cause
A genuine gap in the listing, not a collection failure. Roughly a third of local businesses in most categories never add one.
Fix
Nothing to fix — this is the signal, not the noise. It is the exact filter behind the businesses-without-website search.
contact.phone emptydata

The listing has no published number, which is rare but real.

Cause
Service-area businesses and some newer listings omit the phone number. It is the least commonly missing of the three fields.
Fix
Nothing to fix. If phone is required for your use, filter the rows client-side after collection.
all contacts emptydata

Enrichment was off for the run.

Cause
With `enrich=false` the response carries the listing only: name, address, rating, review count. Contact resolution is the step that costs the extra credits, so it does not run unasked.
Fix
Set `enrich=true`. Basic rows cost 9 credits and enriched rows cost 17 — the difference is exactly this.

Filtering

Rows you expected are absent because a filter removed them.

known business missingdata

skip_claimed defaults to true and hides leads you already claimed.

Cause
Claimed leads are excluded from later searches by default, which is what stops you buying the same row twice. It also means a business you know exists can look absent.
Fix
Pass `skip_claimed=false` to see the full result including claimed rows.
only shared inboxes returneddata

personal_only=false lets info@ and contact@ addresses through.

Cause
Most small businesses publish a role address rather than a named one. Without the filter those are the majority of what enrichment finds.
Fix
Pass `personal_only=true` alongside `verify=true` to keep named-person addresses only. Expect the row count to drop sharply.

Practices that prevent most of this

Treat empty as information

A missing website is the qualifying signal for web-design prospecting. Filtering empties out by reflex throws away the highest-intent rows on the list.

Ask for more than you need

Unused holds are refunded, so an over-large limit costs nothing but a bigger temporary hold. Under-asking costs a second call.

Verify late, not always

Verification is the expensive step. Run it on the shortlist you actually intend to contact rather than on every exploratory pull.

More references
API error codesEvery error code the SenseCollect API returns, what causes it, and how to fix it. Eight codes, their HTTP statuses, and the retry rules for each.Amazon review data errorsWhy an Amazon review pull returns fewer reviews than the product shows, and why review dates or ratings come back empty. Causes and fixes.TikTok data errorsWhy a TikTok pull returns fewer posts than expected and why metrics or author fields come back empty. Each cause with its fix.
sensecollect/
SenseCollect logo

The local lead data API. One key, one unified schema, priced by the rows you get back.

No subscriptionCredits never expireNo per-call minimumRefund on failed runs

API

DocumentationResponse schemaMCP serverExplorerCatalog (JSON)Error codesChangelog

Sources

MapsAmazon reviewsTikTokAll sources

Guides

Leads by niche & cityLocal business leadsRestaurant leadsNo-website leadsExport Maps dataExport Amazon reviewsAuf Deutsch

Company

PricingComparisonsSolutionsToolsBlogAboutContact

Account

Get API keyLog inAPI keysCredits

© 2026 SenseCollect

Public data only. Review every response before you act on it.