Overview

Getting Started

Widgets

Categories

Keywords

Reviews

Users

Businesses

Businesses Search

Negotiations

Messages

Requests

On-Demand Orders

Help

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 MessageCreated Events.
POST /api/v4/users/webhooks HTTP/2
authorization: Bearer {{authCode}}
content-type: application/json
{
"webhookURL": "<your webhook URL>",
"eventTypes": [
"MessageCreated"
],
"enabled": false,
"auth": {
"username": "hello",
"password": "world"
}
}
{
"webhookID": "<your unique webhookID>",
"webhookURL": "<your webhook URL>",
"enabled": false,
"authType": "Basic",
"userID": "<your userID>",
"eventTypes": [
"MessageCreated"
]
}

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": [
"MessageCreated"
]
}

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