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

Pro Profiles

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.

Overview

The Business APIs support two different groups of behaviors: general purpose Business operations and Business Webhook related operations.

Businesses API

More technical details regarding general purpose Business operations can be seen in the Businesses API.

Fetching Business Data

GET /api/v4/businesses HTTP/2
authorization: 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
}
}

Webhooks

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.

Creating a Webhook for a Business

The below command creates a disabled webhook which listens for MessageCreatedV4 and NegotiationCreatedV4 Events.
POST /api/v4/businesses/{{businessID}}/webhooks HTTP/2
authorization: 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"
]
}

Getting a Webhook by ID for a Business

We can fetch this Webhook's data directly, as such:
GET /api/v4/businesses/{{businessID}}/webhooks/{{webhookID}} HTTP/2
authorization: Bearer {{authCode}}
{
"webhookID": "<your webhookID>",
"webhookURL": "<your webhook.site URL>",
"enabled": false,
"authType": "Basic",
"businessID": "<the businessID>",
"eventTypes": [
"MessageCreatedV4",
"NegotiationCreatedV4"
]
}

Getting All Webhooks for a Business

Alternatively, we can fetch all Webhooks for the given Business.
GET /api/v4/businesses/{{businessID}}/webhooks HTTP/2
authorization: Bearer {{authCode}}
{
"data": [
{
...webhook fields
},
...
],
"pagination": {
"limit": 10
}
}

Updating a Webhook for a Business

We can enable the webhook by:
PUT /api/v4/businesses/{{businessID}}/webhooks/{{webhookID}} HTTP/2
authorization: Bearer {{authCode}}
content-type: application/json
{
"enabled": true
}

Updating a Webhook's Authentication for a Business

We can modify the Webhook's authentication by:
PUT /api/v4/businesses/{{businessID}}/webhooks/{{webhookID}}/auth HTTP/2
authorization: Bearer {{authCode}}
content-type: application/json
{
"username": "username",
"password": "password"
}

Deleting a Webhook's Authentication for a Business

We can delete the Webhook's authentication by:
DELETE /api/v4/businesses/{{businessID}}/webhooks/{{webhookID}}/auth HTTP/2
authorization: Bearer {{authCode}}

Deleting a Webhook for a Business

DELETE /api/v4/businesses/{{businessID}}/webhooks/{{webhookID}} HTTP/2
authorization: Bearer {{authCode}}

Last Updated: May 1st, 2026