Overview

Getting Started

Widgets

Categories

Keywords

Reviews

Users

Businesses

Businesses Search

Negotiations

Messages

Requests

On-Demand Orders

Help

Changelog

Terms and Policies

Businesses (Pros)

Discover how to integrate Thumbtack Businesses into your Platform.

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 MessageCreated and NegotationCreated 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",
"NegotationCreatedV4"
]
}

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",
"NegotationCreatedV4"
]
}

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: Apr 22nd, 2025