recordType | string | Record type business = one lead (charged lead-business); query = per-query summary (not charged). |
query | string | Query Search query. |
location | string | Location Location used for the search. |
rank | integer | null | Rank Position in Google Maps results. |
title | string | null | Business name Name on Google Maps. |
category | string | null | Category Primary Google category. |
address | string | null | Address Formatted address. |
addressInfo | object | null | Address parts street, borough, city, zip, region, countryCode. |
phone | string | null | Phone Google Maps phone (falls back to the first website phone). |
phoneE164 | string | null | Phone (E.164) The listing phone (else the first website phone) in E.164, e.g. +15035550141. |
phoneType | string | null | Phone type MOBILE, FIXED_LINE, FIXED_LINE_OR_MOBILE, TOLL_FREE, VOIP, … (libphonenumber metadata). |
phonesE164 | array | Phones (E.164) Every phone of the listing and the website in E.164, de-duplicated. |
website | string | null | Website Website URL (final URL after redirects when fetched). |
domain | string | null | Domain Website domain without www. |
email | string | null | Email Best email: first verified-valid (else catch-all) address, else the first address found (own domain first) that was not verified as invalid or disposable. |
emailStatus | string | null | Email status valid | invalid | catch_all | disposable | unknown | error | not_verified (null when no email). |
emails | array | All emails All emails found on the website, own-domain first. |
phones | array | All phones Google Maps phone plus phones found on the website. |
socials | object | Social profiles facebook, instagram, linkedin, twitter, youtube, tiktok, pinterest URLs found on the website. |
emailVerifications | array | Verifications { email, status, method, reason? } per checked address: method precheck = settled by the free local pre-check (status invalid or disposable, reason invalid_syntax | domain_not_found | no_mail_server | disposable; never sent to the verifier, not charged), method mailbox = verified at mailbox level (charged lead-email-verified). |
rating | object | null | Rating { value, votesCount } |
isClaimed | boolean | null | Claimed The Google Business Profile is claimed by the owner. |
totalPhotos | integer | null | Photos Photos on the listing. |
currentStatus | string | null | Status on Google open, closed (right now), temporarily_closed or closed_forever. |
websiteSignals | object | null | Website signals With auditWebsite: { reachable, status, finalUrl, error, https, sslError, sslDaysLeft, sslIssuer, mobileFriendly, title, hasMetaDescription, speed (fast | average | slow), ttfbMs, loadMs, htmlKb, cms, ecommercePlatform, technologies[], bookingWidgets[], chatWidgets[], adPixels[], runsAds, analytics[], hasLocalBusinessSchema, copyrightYear, lastModified, outdated }; null without a website. |
emailAuth | object | null | E-mail domain setup With auditWebsite: { domain, mailProvider, hasMailServer, spf, dmarcPolicy, spfDmarcLookup } of the website's domain; spfDmarcLookup failed = the SPF / DMARC lookup failed (spf null, dmarcPolicy unknown); null for a site on a shared platform domain (wixsite.com, myshopify.com …). |
leadScore | integer | null | Lead score 0–100: gaps an agency can fix (no or weak website, unclaimed listing, few reviews, no ads) plus reachability (e-mail, phone). Higher = more promising. |
leadTags | array | Lead tags Segment tags behind the score, highest-scoring first: no-website, no-own-website, broken-website, ssl-error, no-https, not-mobile-friendly, unclaimed-listing, outdated-website, few-reviews, has-email, slow-website, not-running-ads, low-rating, verified-email, has-phone, temporarily-closed, permanently-closed. |
leadReasons | array | Lead reasons One sentence per tag, same order. |
placeId | string | null | Place ID Google place_id. |
cid | string | null | CID Google customer id. |
latitude | number | null | Latitude WGS84 latitude. |
longitude | number | null | Longitude WGS84 longitude. |
googleMapsUrl | string | null | Google Maps URL Link to the place. |
sources | array | Sources google_maps plus each website page fetched. |
warnings | array | Warnings E.g. no website, website unreachable, budget or time limit reached, duplicates skipped, verification off on the free plan. |
placesFound | integer | Places found Query records only. |
businessesDelivered | integer | Businesses delivered Query records only. |
businessesWithEmail | integer | With email Query records only. |
emailsVerified | integer | Emails verified Query records only: paid mailbox-level verifications. |
emailsPrechecked | integer | Emails pre-checked Query records only: addresses the free local pre-check settled (never sent to the verifier, not charged). |
leadsScoring50Plus | integer | Leads scoring 50+ Query records only: businesses with a lead score of 50 or more. |
status | string | Status ok | not_found | error | skipped_budget | skipped_free_plan | skipped_trial |
charged | boolean | Charged Whether this record incurred a lead-business charge. |
chargedEvent | string | Charged event lead-business |
sponsored | boolean | Sponsored true when a promotional trial paid for this record instead of you: delivered with charged false and never billed (present only then). |
promotionId | string | Promotion Id of the promotional trial that sponsored this record (present only with sponsored). |
trialUnitsApplied | integer | Trial events Events of this record the trial paid for (present only with sponsored). |
retailValueWaivedUsd | number | Value waived (USD) What those events cost at the listed prices, in USD: what you did not pay (present only with sponsored). |
emailVerificationsCharged | integer | Verifications charged Number of lead-email-verified events charged for this business. |
source | string | Source Upstream data source. |
fetchedAt | string | Fetched at ISO timestamp. |