Google Local Services Ads Scraper
Pricing
from $70.00 / 1,000 completed local services advertiser lists
Google Local Services Ads Scraper
Find public Google Local Services advertisers by service and city for market research and prospecting. Returns name, rank, badge, reviews, public profile URL, source URL, and collection time. Excludes private Ads accounts, consumer leads, budgets, and messages. $0.009/query.
Pricing
from $70.00 / 1,000 completed local services advertiser lists
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
7 days ago
Last modified
Categories
Share
Get a structured list of publicly visible Google Local Services advertisers for supported service categories in a United States city or district. Each record includes the advertiser’s rank, rating and reviews, phone when shown, service area, years in business, collection time, and public Google profile or source URL when the provider returns them.
Best fit for this Actor
Use this Actor to build a sourced local-services prospect list, monitor category competition, or give an AI agent a clean advertiser dataset for a specific market. It uses a dedicated Google Local Services provider surface rather than treating ordinary Maps or organic results as ads. Its scope is public advertiser-card data; campaign accounts, consumer messages, budgets, and private lead records remain outside this workflow.
Focused standalone workflow
This Actor is designed as a focused standalone workflow for public Local Services advertiser research. Start with a service category and city CID, export the structured advertiser records, then pass the selected public profiles into your CRM, website research, or outreach-review process with their provenance intact.
Quick start
{"queries": ["electrician", "plumber"],"locationName": "Austin, Texas, United States","dataCid": "6745062158417646970","maxResults": 20,"languageCode": "en","countryCode": "us"}
dataCid is the decimal Google CID for the city or district. It is the authoritative market selector because Local Services availability depends on the precise market. Use the city or district CID rather than identifiers from individual-business or Place resources, and keep it as a string so all digits are preserved. locationName is the matching caller-supplied readable label carried into the output; pair it with the corresponding CID for the intended provider market. For example, Austin, Texas uses 6745062158417646970.
Use the service category in queries and supply the city separately through locationName and dataCid. For example, send "electrician" with the Austin location fields. Add jobType when you have a supported Local Services job-type identifier, such as "restore_power" for an electrician query.
Output data
Each dataset record represents one public advertiser returned for a category and city CID at collection time.
| Field | Meaning |
|---|---|
businessName | Public advertiser name. |
advertiserRank | Order in the returned Local Services advertiser list. |
googleBadge | Public Google verification label when returned. |
rating and reviewCount | Public rating and review volume. |
phone, serviceArea, yearsInBusiness | Public card fields useful for prospect qualification. |
advertiserProfileUrl | Public Google Local Services profile link when returned. |
locationDataCid | Exact city or district CID used for the request. |
publicLeadSignals | Transparent tags derived from public fields, never inferred intent. |
sourceUrl, sourceProcessedAt, and collectedAt | Provenance, provider processing time, and Actor collection time for the record. |
{"recordType": "local_services_advertiser","query": "electrician","locationName": "Austin, Texas, United States","locationDataCid": "6745062158417646970","businessName": "Abacus Electrical","advertiserRank": 1,"rating": 4.8,"reviewCount": 6050,"phone": "+15125664985","serviceType": "Electrician","serviceArea": "Austin","yearsInBusiness": 23,"advertiserProfileUrl": "https://www.google.com/localservices/profile?...","publicLeadSignals": ["established_review_volume", "public_phone_available", "service_area_visible"],"dataSource": "serpapi_google_local_services","sourceProcessedAt": "2026-08-24 12:00:00 UTC","collectedAt": "2026-08-24T12:00:00.000Z"}
maxResults limits saved advertiser rows for each category. A completed category can validly return no cards when Google has no current Local Services inventory for that service and city CID; the terminal OUTPUT record makes that outcome explicit.
API workflow
curl -X POST "https://api.apify.com/v2/acts/khadinakbar~google-local-services-ads-scraper/runs" \-H "Authorization: Bearer $APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"queries":["electrician"],"locationName":"Austin, Texas, United States","dataCid":"6745062158417646970","maxResults":20}'
Read OUTPUT before exporting the dataset. It reports the terminal outcome, returned-record count, query-event charges, durable per-query receipts, and any actionable warnings. RUN_SUMMARY holds safe provider diagnostics, source counts, and provenance metadata for the completed run. QUERY_OUTCOMES is the durable receipt list: the Actor writes each receipt, and any advertiser cards, before charging its matching completed-query event.
Use with AI agents through Apify MCP
Find public Google Local Services advertisers for electricians in Austin, Texas, United States. Use the city CID
6745062158417646970, return up to 20 advertisers, and preserve business name, rank, rating, review count, public phone, service area, years in business, Google profile URL and source URL when returned, and collection time. Read the terminal output before using the dataset.
Use the current Apify MCP setup with your client. AI agents can send searchQueries, location, data_cid, maxResultsPerQuery, language, and job_type aliases; the Actor normalizes them to the same bounded request contract. Keep locationDataCid, sourceProcessedAt, and collectedAt in every downstream CRM or outreach workflow, plus sourceUrl when the provider returns a public source link.
Pricing
This Actor uses Pay per event plus Apify platform usage. It charges $0.07 for each successfully completed Local Services category and city-CID query and $0.00005 per Actor start. It makes the matching advertiser cards (or a durable valid-empty receipt) available before charging the completed-query event. One category query costs $0.07 plus the start event and platform usage; ten category queries cost at most $0.70 in query events. A caller-set cap below the first-query amount yields CONFIG_ERROR with stopReason: "charge_limit" before the provider request; a cap reached after useful work yields PARTIAL with that same stop reason. When the platform leaves a post-persistence event unconfirmed, the available receipt stays not_charged, collection stops, and the run returns PARTIAL with stopReason: "billing_unconfirmed". Check the live Pricing tab for the current effective rate before scheduling a large collection.
Best results
- Use a supported Local Services category such as electrician, plumber, HVAC, locksmith, roofer, or appliance repair.
- Use a city or district CID; city-level CIDs produce the most consistent list coverage.
- Run each market and service category independently when you need a clear competitive snapshot.
- The Actor requests a fresh provider response for each completed query. Keep
sourceProcessedAtandcollectedAt, plussourceUrlwhen available, to keep each observation traceable.
Builder's note
I designed this Actor around the dedicated Local Services advertiser surface so the output remains an advertiser list rather than a mixture of Maps listings and organic results. The category-and-city-CID request is the billable unit, giving agencies and AI workflows a known upper bound before collection while retaining provider timestamps and any public source link returned for each record.
Responsible use
Use public business information in line with applicable laws, Google and provider terms, and your own outreach obligations. This workflow supports market research and responsible business prospecting.