Thumbtack Scraper — Professionals by Service & ZIP avatar

Thumbtack Scraper — Professionals by Service & ZIP

Pricing

from $30.00 / 1,000 scraped professionals

Go to Apify Store
Thumbtack Scraper — Professionals by Service & ZIP

Thumbtack Scraper — Professionals by Service & ZIP

Export Thumbtack professionals for any service and US ZIP code: name, profile URL, rating, review count, categories and location. USD 40 per 1,000 pros.

Pricing

from $30.00 / 1,000 scraped professionals

Rating

0.0

(0)

Developer

Muhammad Afzal

Muhammad Afzal

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

3 hours ago

Last modified

Share

Thumbtack Scraper exports public Thumbtack professionals for any service and US ZIP code: business name, profile URL, star rating, review count, service categories, profile description and location. It is built for home-services marketers, lead-generation agencies, marketplace researchers and software vendors who sell to local pros, and it costs USD 40 per 1,000 professionals on the FREE tier (USD 30 per 1,000 on GOLD).

What data does the Thumbtack scraper return?

Each dataset row is one unique professional, deduplicated by profile URL:

FieldWhat it contains
nameBusiness or professional name as shown on Thumbtack
profileUrlCanonical Thumbtack profile link
ratingAverage star rating, unrounded, for example 4.79
reviewCountNumber of reviews on the profile
categoriesServices listed on the profile, or the service you searched when the profile lists none
descriptionThe pro's own profile introduction
locationCity, state and ZIP from the profile, for example Austin, TX, 78704
phone, websiteAlways null: Thumbtack's public profiles do not show pros' phone numbers or websites (checked again on 2026-10-27); the fields stay for compatibility
sourceUrl, sourceService, sourceLocation, scrapedAtThe search page, service and ZIP that produced the record, and collection time

Missing values are null. The run summary is saved as OUTPUT: outcome (DATA, EMPTY, BLOCKED, REJECTED or FAILED), records delivered, profiles discovered on search pages, profile fallbacks, pages visited, stop reason and warnings.

How do I get a list of Thumbtack pros for a service and ZIP code?

Enter a service phrase and a five-digit ZIP code. The Actor opens Thumbtack's public search page for that service near the ZIP, collects the professional cards, then (by default) opens each profile for the description, categories and location.

InputExampleNotes
servicehouse cleaningAny Thumbtack service phrase: handyman, plumbing, interior painting, dog training
location78701Five-digit US ZIP code; city names are rejected
startUrlshttps://www.thumbtack.com/k/house-cleaning/near-me/Thumbtack search pages (/k/<service>/near-me/) or profile pages (/service/<id>); used instead of service and ZIP
maxResults251 to 100 professionals (default 10; the Console prefill asks for 1)
maxPages21 to 10 search pages (default 1); a next page is followed only when Thumbtack shows a next link
includeProfileDetailsfalseOn by default; turn off for faster, search-card-only records

Handymen near downtown Denver:

{
"service": "handyman",
"location": "80202",
"maxResults": 25
}

Known profiles, without a search:

{
"startUrls": [
{ "url": "https://www.thumbtack.com/tx/austin/house-cleaning/personal-castles-cleaning-services/service/544927104834420740" }
]
}

One search page for house cleaning near 78701 listed 26 professionals in the latest cloud run.

How fast is it, and how many pros can one run get?

The Actor opens each search page in a browser, then reads the profile pages from that same session, four at a time; a profile that does not answer that way gets its own browser visit. In a cloud run on 2026-10-27, 32 house cleaners near 78701 with profile details took about 2 minutes. If a run nears its timeout, it stops opening pages, keeps every professional already saved and records stopReason: "time limit" in OUTPUT; raise the timeout for very large runs.

Does it get Thumbtack reviews or phone numbers?

It returns each pro's rating and review count, not the text of individual reviews. Thumbtack keeps contact inside its own messaging, so public profiles show no phone number or website and those fields are always null. For phone numbers of local trades, use the Google Maps based Actors listed below.

When should I use it, and when not?

Use it when you need to know which pros compete for a service in a ZIP code, with ratings and review counts, for market sizing, agency prospecting or marketplace research.

Use another Actor when:

How do I run it from code?

JavaScript with apify-client:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('muhammadafzal/thumbtack-scraper').call({
service: 'interior painting',
location: '30303',
maxResults: 20,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const pro of items) console.log(pro.name, pro.rating, pro.reviewCount, pro.location);

Python with apify-client:

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("muhammadafzal/thumbtack-scraper").call(run_input={
"service": "house cleaning",
"location": "78701",
"maxResults": 10,
"includeProfileDetails": False,
})
for pro in client.dataset(run.default_dataset_id).iterate_items():
print(pro["name"], pro["profileUrl"], pro.get("rating"))

Use it from an AI assistant

Thumbtack Scraper works from Claude, ChatGPT, Cursor or any MCP client through Apify's MCP server. Add the single-tool URL https://mcp.apify.com/?tools=muhammadafzal/thumbtack-scraper to your client and ask, for example: "List 15 Thumbtack house cleaners near ZIP 78701 with their rating and number of reviews." Each professional is charged at the prices below, so include a result limit in your request.

What does the output look like?

Two records from cloud runs on 2026-10-21 and 2026-09-24 (descriptions shortened):

[
{
"name": "Personal Castles Cleaning Services",
"profileUrl": "https://www.thumbtack.com/tx/austin/house-cleaning/personal-castles-cleaning-services/service/544927104834420740",
"rating": 4.791666666666667,
"reviewCount": 24,
"categories": ["house cleaning"],
"description": "Personal Castles Cleaning Service is a reliable and detail-oriented cleaning company specializing in both residential and commercial spaces...",
"phone": null,
"website": null,
"location": "Austin, TX, 78704",
"sourceUrl": "https://www.thumbtack.com/k/house-cleaning/near-me/?zip_code=78701",
"sourceService": "house cleaning",
"sourceLocation": "78701",
"scrapedAt": "2026-10-21T05:08:41.495Z"
},
{
"name": "Ocean touch queen cleaning",
"profileUrl": "https://www.thumbtack.com/tx/austin/house-cleaning/ocean-touch-queen-cleaning/service/582164169027420174",
"rating": 4.714285714285714,
"reviewCount": 21,
"categories": ["house cleaning"],
"description": "Premium house cleaning using eco-friendly, non-toxic products...",
"location": "Austin, TX, 78731",
"scrapedAt": "2026-09-24T07:32:21.209Z"
}
]

How much does Thumbtack data cost?

The Actor uses pay-per-event pricing, and platform usage is included in the event prices. Each professional saved to the default dataset is charged automatically, so there is no double charging.

EventFREEBRONZESILVERGOLD / PLATINUM / DIAMOND
Scraped professional (one dataset row)USD 0.04USD 0.037USD 0.033USD 0.03
Actor start (per started GB of allocated memory)USD 0.005USD 0.005USD 0.005USD 0.005

Worked totals on the FREE tier at the default 1 GB memory (one start event, USD 0.005):

  • 1 professional (Console prefill): USD 0.04 + USD 0.005 = USD 0.045
  • 50 professionals: 50 × USD 0.04 + USD 0.005 = USD 2.005

Empty, blocked and rejected runs charge only the start events.

Limits and reliability

  • Scale: 1 to 100 professionals per run. One search page lists about 30 pros, so set maxPages above 1 for more; runs stop cleanly before the timeout (see the speed section).
  • Access: Thumbtack sometimes answers with an access challenge (seen in September 2026 testing). The run then ends as failed with outcome BLOCKED, no records and no result events; retry later.
  • Fallbacks: if a profile page fails after its search card was collected, the card record is kept and counted in profileFallbacks.
  • Input errors: a city name instead of a ZIP, or a non-Thumbtack URL, ends the run as REJECTED with a message.

FAQ

Is there a free Thumbtack scraper?

You can run Thumbtack Scraper on Apify's free plan with no subscription. Each professional is charged at the FREE-tier price above.

Can I search by city instead of ZIP code?

No. Thumbtack's public search can ignore city names, so the Actor accepts a five-digit ZIP code. To target a city, pick a central ZIP or paste a Thumbtack search URL.

Can I use it like a Thumbtack API?

Yes. Call it through the Apify API or the client libraries above and read the results as JSON, CSV or Excel. No Thumbtack account is needed.

Why is rating a long decimal?

It is the unrounded average Thumbtack publishes in the page data, for example 4.7916. Round it in your sheet if you need one decimal.

Does it log in or contact pros?

No. It reads public search and profile pages only and never sends quote requests or messages.

Can I scrape several ZIP codes at once?

Paste several Thumbtack search URLs into startUrls, or run the Actor once per ZIP code.

The Actor reads public Thumbtack pages without logging in and does not bypass access controls or solve CAPTCHAs. Professional names and profiles can be personal data: use them lawfully, follow CAN-SPAM, TCPA and anti-spam rules for outreach, and respect Thumbtack's terms. This tool is not affiliated with Thumbtack, and this is not legal advice.

Last verified: 2026-10-27