Thumbtack APIthumbtack.com ↗
Search Thumbtack service providers by ZIP code and service type. Get profiles, ratings, reviews, pricing estimates, and cost guides via 4 structured endpoints.
What is the Thumbtack API?
The Thumbtack API exposes 4 endpoints covering local service provider search, detailed business profiles, provider photos, and pricing cost guides. The search_providers endpoint returns provider names, star ratings, review counts, pricing estimates, and business facts filtered by service type slug and 5-digit ZIP code. The get_cost_guide endpoint delivers structured national pricing tables including ranges by bedroom and bathroom count, hourly rates, and service-type breakdowns.
// select an endpoint above
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace thumbtack-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""
Thumbtack API - Search for local service providers and compare pricing
"""
from parse_apis.thumbtack_api import Thumbtack, Provider, ProviderProfile, CostGuide, PricingSection
thumbtack = Thumbtack()
# Search for house cleaning providers in Austin, TX
for provider in thumbtack.providers.search(service="house-cleaning", zip_code="78701"):
print(provider.name, provider.rating, provider.review_count, provider.service_pk)
# Get detailed profile for a provider
profile = provider.details()
print(profile.name, profile.about)
print(profile.stats.hires, profile.stats.years_in_business, profile.stats.top_pro)
for svc in profile.services:
print(svc)
break
# Get a provider profile directly by URL
profile = thumbtack.providerprofiles.get(url="/tx/austin/house-cleaning/personal-castles-cleaning-services/service/544927104834420740")
print(profile.name, profile.rating, profile.review_count)
# Get cost guide for house cleaning
guide = thumbtack.costguides.get(service="house-cleaning")
print(guide.title, guide.url)
for section in guide.sections:
print(section.header, section.rows, section.text)
About the Thumbtack API
Search and Provider Discovery
The search_providers endpoint accepts a service parameter (a URL slug such as house-cleaning or plumbing) and a zip_code for location-based filtering. Each item in the returned items array includes name, rating, review_count, is_online, price, url, service_pk, and a facts object. The total field gives the integer count of providers returned for that query. Provider url values feed directly into the profile and photo endpoints.
Provider Profiles and Stats
get_provider_profile takes a url path or full URL from search results and returns a detailed profile. Key response fields include about (the business description), stats (an object covering hires, similar_jobs, years_in_business, employees, top_pro, and background_checked), services (an array of category names), and a reviews array. Note that the reviews array may be empty depending on how the profile page renders at request time.
Cost Guides
get_cost_guide accepts the same service slug format used in search_providers. The response includes title (e.g. How much do house cleaners charge?), url, and pricing_data — an object mapping section headers to arrays of pricing table rows or text blocks. Sections typically cover national averages, ranges by number of bedrooms or bathrooms, hourly rates, and breakdowns by specific service variant.
Photos Endpoint
get_provider_photos retrieves project media for a specific provider. The response shape for this endpoint is not fully specified in current documentation, so field availability may vary. Use search_providers and get_provider_profile first to confirm a provider URL before calling the photos endpoint.
The Thumbtack API is a managed, monitored endpoint for thumbtack.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when thumbtack.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official thumbtack.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a local contractor comparison tool using
rating,review_count, andpricefields fromsearch_providers - Populate a home services directory with business stats such as
hires,years_in_business, andbackground_checkedfromget_provider_profile - Estimate project budgets by querying
get_cost_guidefor services likeplumbingorpaintingand parsing thepricing_datatables - Track provider availability and online status across ZIP codes using the
is_onlinefield in search results - Aggregate reviews and ratings for multiple providers in a service category using
reviewsandreview_countfrom profile responses - Enrich CRM or lead-gen tools with Thumbtack provider profiles by mapping
service_pkandurlfrom search to full profile data
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Thumbtack have an official developer API?+
What does `get_provider_profile` return beyond what `search_providers` includes?+
search_providers returns a summary row per provider: name, rating, review count, price estimate, and a facts object. get_provider_profile adds the full about description, a stats object with fields like hires, similar_jobs, years_in_business, employees, top_pro, and background_checked, plus a services array and a reviews array that may contain individual review objects.Are reviews always included in the `get_provider_profile` response?+
reviews array may be empty depending on how the profile page renders at the time of the request. The review_count field (total number of reviews) is a separate integer and is more consistently populated than the full review objects array.Does the API support filtering providers by price range or minimum rating?+
search_providers endpoint filters by service slug and zip_code only. Client-side filtering on rating, review_count, or price fields is possible after retrieving results, but the API does not accept those as query parameters. You can fork this API on Parse and revise it to add server-side filtering logic on those fields.