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

Users

Discover how to integrate Thumbtack Users into your platform.

Overview

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

Users API

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

Fetching User Data

GET /api/v4/users/self HTTP/2
authorization: Bearer {{authCode}}
{
"userID": "1337",
"email": "hello@world.com",
"firstName": "Hello",
"lastName": "World"
}

Webhooks

More technical details regarding User Webhook related operations can be seen in the User 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 User

The below command creates a disabled webhook which listens for MessageCreatedV4 Events.
POST /api/v4/users/webhooks HTTP/2
authorization: Bearer {{authCode}}
content-type: application/json
{
"webhookURL": "<your webhook URL>",
"eventTypes": [
"MessageCreatedV4"
],
"enabled": false,
"auth": {
"username": "hello",
"password": "world"
}
}
{
"webhookID": "<your unique webhookID>",
"webhookURL": "<your webhook URL>",
"enabled": false,
"authType": "Basic",
"userID": "<your userID>",
"eventTypes": [
"MessageCreatedV4"
]
}

Getting a Webhook by ID for a User

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

Getting All Webhooks for a User

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

Updating a Webhook for a User

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

Updating a Webhook's Authentication for a User

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

Deleting a Webhook's Authentication for a User

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

Deleting a Webhook for a User

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

Last Updated: Apr 24th, 2026