# HubSpot Webhooks API

> HubSpot Webhooks API on Apizie: 35 endpoints (Read webhook settings, Update webhook settings, Delete webhook settings, Read event subscriptions, …) returned as clean JSON through one API key. Send your own provider key in the x-upstream-key header. Call it over REST at https://zieapi.vercel.app/v1/business:hubapi-webhooks/{endpoint} or from Claude, ChatGPT and Cursor through the Apizie MCP server. Free plan: 1,000 requests a month.

- Project key: `business:hubapi-webhooks`
- Category: Business
- Status: byok
- Source: https://developers.hubspot.com/docs/api/overview
- Page: https://zieapi.vercel.app/api/business/hubapi-webhooks
- OpenAPI: https://zieapi.vercel.app/api/business/hubapi-webhooks/openapi.json

Basepom for all HubSpot Projects

## Endpoints

### Read webhook settings
`GET https://zieapi.vercel.app/v1/business:hubapi-webhooks/get-app-webhooks-2026-09-app-id-settings-get-all` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| appId | integer | yes | The unique identifier of the app whose webhook settings are being retrieved. |

### Update webhook settings
`POST https://zieapi.vercel.app/v1/business:hubapi-webhooks/put-app-webhooks-2026-09-app-id-settings-configure` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| appId | integer | yes | The unique identifier of the app whose webhook settings are to be updated. |
| body | object | yes | JSON request body |

### Delete webhook settings
`POST https://zieapi.vercel.app/v1/business:hubapi-webhooks/delete-app-webhooks-2026-09-app-id-settings-clear` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| appId | integer | yes | The unique identifier of the app whose webhook settings are to be deleted. |

### Read event subscriptions
`GET https://zieapi.vercel.app/v1/business:hubapi-webhooks/get-app-webhooks-2026-09-app-id-subscriptions-get-all` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| appId | integer | yes | The unique identifier of the app for which to retrieve subscriptions. |

### Create an event subscription
`POST https://zieapi.vercel.app/v1/business:hubapi-webhooks/post-app-webhooks-2026-09-app-id-subscriptions-create` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| appId | integer | yes | The unique identifier of the app for which the webhook subscription is being created. |
| body | object | yes | JSON request body |

### Batch create event subscriptions
`POST https://zieapi.vercel.app/v1/business:hubapi-webhooks/post-app-webhooks-2026-09-app-id-subscriptions-batch-update` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| appId | integer | yes | The unique identifier of the app for which the subscriptions are being updated. |
| body | object | yes | JSON request body |

### Read an event subscription
`GET https://zieapi.vercel.app/v1/business:hubapi-webhooks/get-app-webhooks-2026-09-app-id-subscriptions-subscription-i` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| appId | integer | yes | The unique identifier of the app for which the subscription is configured. |
| subscriptionId | integer | yes | The unique identifier of the subscription to retrieve. |

### Update an event subscription
`POST https://zieapi.vercel.app/v1/business:hubapi-webhooks/patch-app-webhooks-2026-09-app-id-subscriptions-subscription` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| appId | integer | yes | The unique identifier of the app for which the subscription is being updated. |
| subscriptionId | integer | yes | The unique identifier of the subscription to update. |
| body | object | yes | JSON request body |

### Delete event subscription
`POST https://zieapi.vercel.app/v1/business:hubapi-webhooks/delete-app-webhooks-2026-09-app-id-subscriptions-subscriptio` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| appId | integer | yes | The unique identifier of the app for which the subscription is configured. |
| subscriptionId | integer | yes | The unique identifier of the subscription to delete. |

### Retrieve Batch
`GET https://zieapi.vercel.app/v1/business:hubapi-webhooks/get-webhooks-journal-journal-local-2026-09-batch-earliest-co` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| count | integer | yes | The number of entries to retrieve in the batch. This must be an integer with a minimum value of 1. |
| installPortalId | integer | no | The ID of the portal where the webhook is installed. This is an integer value. |

### Retrieve latest batch
`GET https://zieapi.vercel.app/v1/business:hubapi-webhooks/get-webhooks-journal-journal-local-2026-09-batch-latest-coun` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| count | integer | yes | The number of latest journal entries to retrieve. Must be an integer with a minimum value of 1. |
| installPortalId | integer | no | The ID of the portal where the webhooks are installed. This is an optional parameter. |

### Batch read
`POST https://zieapi.vercel.app/v1/business:hubapi-webhooks/post-webhooks-journal-journal-local-2026-09-batch-read-webho` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| installPortalId | integer | no | An integer representing the ID of the portal installation. This parameter is used to specify the portal context for the request. |
| body | object | yes | JSON request body |

### Retrieve batch
`GET https://zieapi.vercel.app/v1/business:hubapi-webhooks/get-webhooks-journal-journal-local-2026-09-batch-offset-next` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| count | integer | yes | The number of journal entries to retrieve in the batch. This is an integer and must be at least 1. |
| offset | string | yes | The starting point for fetching the next batch of journal entries. This is a string value. |
| installPortalId | integer | no | The ID of the portal where the webhooks are installed. This is an integer value. |

### Retrieve earliest
`GET https://zieapi.vercel.app/v1/business:hubapi-webhooks/get-webhooks-journal-journal-local-2026-09-earliest-webhooks` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| installPortalId | integer | no | The ID of the portal installation for which to retrieve the earliest journal entry. This parameter helps specify the context of the request. |

### Retrieve latest journal
`GET https://zieapi.vercel.app/v1/business:hubapi-webhooks/get-webhooks-journal-journal-local-2026-09-latest-webhooks-j` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| installPortalId | integer | no | The ID of the installation portal to filter the webhook journal entries. It is an integer value. |

### Retrieve Next Batch
`GET https://zieapi.vercel.app/v1/business:hubapi-webhooks/get-webhooks-journal-journal-local-2026-09-offset-offset-nex` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| offset | string | yes | The offset string indicating the starting point for retrieving the next batch of journal entries. |
| installPortalId | integer | no | An integer representing the ID of the portal installation for which to retrieve the journal entries. |

### Retrieve status
`GET https://zieapi.vercel.app/v1/business:hubapi-webhooks/get-webhooks-journal-journal-local-2026-09-status-status-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| statusId | string | yes | The unique identifier of the status to retrieve. It is a UUID format string. |

### Retrieve Batch
`GET https://zieapi.vercel.app/v1/business:hubapi-webhooks/get-webhooks-journal-journal-2026-09-batch-earliest-count-we` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| count | integer | yes | The number of webhook journal entries to retrieve. This must be an integer with a minimum value of 1. |
| installPortalId | integer | no | The ID of the portal where the webhook is installed. This is an integer value. |

### Retrieve latest batch
`GET https://zieapi.vercel.app/v1/business:hubapi-webhooks/get-webhooks-journal-journal-2026-09-batch-latest-count-webh` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| count | integer | yes | The number of webhook journal entries to retrieve. It is a required integer parameter with a minimum value of 1. |
| installPortalId | integer | no | The ID of the portal for which the webhook journal entries are being retrieved. It is an optional integer parameter. |

### Batch read
`POST https://zieapi.vercel.app/v1/business:hubapi-webhooks/post-webhooks-journal-journal-2026-09-batch-read-webhooks-jo` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| installPortalId | integer | no | The ID of the portal where the webhooks are installed. This is an integer value. |
| body | object | yes | JSON request body |

### Fetch Batch Entries
`GET https://zieapi.vercel.app/v1/business:hubapi-webhooks/get-webhooks-journal-journal-2026-09-batch-offset-next-count` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| count | integer | yes | The number of entries to retrieve in the batch. This is an integer and must be at least 1. |
| offset | string | yes | The starting point in the journal from which entries will be fetched. This is a string value. |
| installPortalId | integer | no | An optional integer parameter to specify the portal ID for which the webhook journal entries should be retrieved. |

### Retrieve earliest
`GET https://zieapi.vercel.app/v1/business:hubapi-webhooks/get-webhooks-journal-journal-2026-09-earliest-webhooks-journ` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| installPortalId | integer | no | The ID of the installation portal for which to retrieve the earliest journal entry. This is an integer value. |

### Retrieve latest journal
`GET https://zieapi.vercel.app/v1/business:hubapi-webhooks/get-webhooks-journal-journal-2026-09-latest-webhooks-journal` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| installPortalId | integer | no | The unique identifier of the portal installation to filter the journal entries. |

### Retrieve Next Batch
`GET https://zieapi.vercel.app/v1/business:hubapi-webhooks/get-webhooks-journal-journal-2026-09-offset-offset-next-webh` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| offset | string | yes | The offset from which to start retrieving the next set of webhook journal entries. It is a string value. |
| installPortalId | integer | no | The ID of the portal installation for which the webhook journal entries are being retrieved. It is an integer value. |

### Retrieve status
`GET https://zieapi.vercel.app/v1/business:hubapi-webhooks/get-webhooks-journal-journal-2026-09-status-status-id-webhoo` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| statusId | string | yes | The unique identifier (UUID) of the webhook journal status to retrieve. |

### Create Snapshot
`POST https://zieapi.vercel.app/v1/business:hubapi-webhooks/post-webhooks-journal-snapshots-2026-09-crm-webhooks-journal` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Get Existing Subscriptions
`GET https://zieapi.vercel.app/v1/business:hubapi-webhooks/get-webhooks-journal-subscriptions-2026-09-webhooks-journal` (byok)

### Upsert Subscription
`POST https://zieapi.vercel.app/v1/business:hubapi-webhooks/post-webhooks-journal-subscriptions-2026-09-webhooks-journal` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Create Filter
`POST https://zieapi.vercel.app/v1/business:hubapi-webhooks/post-webhooks-journal-subscriptions-2026-09-filters-webhooks` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Retrieve Filters
`GET https://zieapi.vercel.app/v1/business:hubapi-webhooks/get-webhooks-journal-subscriptions-2026-09-filters-subscript` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| subscriptionId | integer | yes | The unique identifier of the subscription for which to retrieve filters. |

### Retrieve filter
`GET https://zieapi.vercel.app/v1/business:hubapi-webhooks/get-webhooks-journal-subscriptions-2026-09-filters-filter-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| filterId | integer | yes | The unique identifier of the filter to retrieve. |

### Delete filter
`POST https://zieapi.vercel.app/v1/business:hubapi-webhooks/delete-webhooks-journal-subscriptions-2026-09-filters-filter` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| filterId | integer | yes | The unique identifier of the filter to delete. It is required to specify which filter should be removed from the subscription. |

### Delete subscription
`POST https://zieapi.vercel.app/v1/business:hubapi-webhooks/delete-webhooks-journal-subscriptions-2026-09-portals-portal` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| portalId | integer | yes | The unique identifier of the portal for which the subscription is to be deleted. |

### Retrieve subscription
`GET https://zieapi.vercel.app/v1/business:hubapi-webhooks/get-webhooks-journal-subscriptions-2026-09-subscription-id-w` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| subscriptionId | integer | yes | The unique identifier of the subscription to retrieve. It is an integer value. |

### Delete subscription
`POST https://zieapi.vercel.app/v1/business:hubapi-webhooks/delete-webhooks-journal-subscriptions-2026-09-subscription-i` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| subscriptionId | integer | yes | The unique identifier of the subscription to delete. |

## Example
```
curl "https://zieapi.vercel.app/v1/business:hubapi-webhooks/get-app-webhooks-2026-09-app-id-settings-get-all" \
  -H "x-api-key: $APIZIE_KEY" \
  -H "x-upstream-key: $PROVIDER_KEY"
```

## FAQ

### How do I call the HubSpot Webhooks API?
Create a free Apizie key, then send GET https://zieapi.vercel.app/v1/business:hubapi-webhooks/get-app-webhooks-2026-09-app-id-settings-get-all with the header x-api-key. Every endpoint returns { project, data, timestamp }.

### Is the HubSpot Webhooks API free on Apizie?
Yes. The Free plan includes 1,000 requests a month at 100 requests a minute, no credit card. HubSpot Webhooks itself also needs your own key from hubapi.com.

### Can AI agents use the HubSpot Webhooks API?
Yes. Add the Apizie MCP server (https://zieapi.vercel.app/mcp) to Claude, ChatGPT, Cursor or VS Code, then ask in plain language. The agent calls run_scraper with project key business:hubapi-webhooks.

### What is the status of the HubSpot Webhooks API?
Needs your own provider key (bring your own key)
