Overview
Getting Started
MARKETPLACE
Widgets
Find Pros
Categories
Keywords
Requests
Leads
Messages
On-Demand Orders
Reviews
User Accounts
PRO INTEGRATIONS
Leads
Messages
Reviews
Pro Profiles
Business Phone Numbers
Manage Webhooks
Testing Your Pro Integration
Support
Changelog
Terms and Policies
Retrieve and manage pro profile data, including business details, service areas, and images. You can also set up webhooks to get real-time lead and message notifications.
API mapping: In the Thumbtack API, pro profiles are called businesses, and all endpoints use /api/v4/businesses/. On this page, the terms are interchangeable.
The Business APIs support two different groups of behaviors: general purpose Business operations and Business Webhook related operations.
More technical details regarding general purpose Business operations can be seen in the Businesses API.
GET /api/v4/businesses HTTP/2authorization: Bearer {{authCode}}
{"data": [{"businessID": "1337","name": "Robert's Aerial Photography","imageURL": "https://production-next-images-cdn.thumbtack.com/i/323302111019294847/desktop/standard/fullscreen"}],"pagination": {"limit": 20}}
More technical details regarding Business Webhook related operations can be seen in the Business Webhook API. Below, we illustrate an example.
For the below examples, you can leverage https://webhook.site to test out the webhook behavior.
The below command creates a disabled webhook which listens for MessageCreatedV4 and NegotiationCreatedV4 Events.
POST /api/v4/businesses/{{businessID}}/webhooks HTTP/2authorization: Bearer {{authCode}}content-type: application/json{"webhookURL": "<your webhook URL>","eventTypes": ["MessageCreatedV4","NegotiationCreatedV4"],"enabled": false,"auth": {"username": "hello","password": "world"}}
{"webhookID": "<your unique webhookID>","webhookURL": "<your webhook URL>","enabled": false,"authType": "Basic","businessID": "<the businessID>","eventTypes": ["MessageCreatedV4","NegotiationCreatedV4"]}
We can fetch this Webhook's data directly, as such:
GET /api/v4/businesses/{{businessID}}/webhooks/{{webhookID}} HTTP/2authorization: Bearer {{authCode}}
{"webhookID": "<your webhookID>","webhookURL": "<your webhook.site URL>","enabled": false,"authType": "Basic","businessID": "<the businessID>","eventTypes": ["MessageCreatedV4","NegotiationCreatedV4"]}
Alternatively, we can fetch all Webhooks for the given Business.
GET /api/v4/businesses/{{businessID}}/webhooks HTTP/2authorization: Bearer {{authCode}}
{"data": [{...webhook fields},...],"pagination": {"limit": 10}}
We can enable the webhook by:
PUT /api/v4/businesses/{{businessID}}/webhooks/{{webhookID}} HTTP/2authorization: Bearer {{authCode}}content-type: application/json{"enabled": true}
We can modify the Webhook's authentication by:
PUT /api/v4/businesses/{{businessID}}/webhooks/{{webhookID}}/auth HTTP/2authorization: Bearer {{authCode}}content-type: application/json{"username": "username","password": "password"}
We can delete the Webhook's authentication by:
DELETE /api/v4/businesses/{{businessID}}/webhooks/{{webhookID}}/auth HTTP/2authorization: Bearer {{authCode}}
DELETE /api/v4/businesses/{{businessID}}/webhooks/{{webhookID}} HTTP/2authorization: Bearer {{authCode}}
Last Updated: May 1st, 2026
On this page