# HubSpot Marketing Campaigns Public Api API

> HubSpot Marketing Campaigns Public Api API on Apizie: 28 endpoints (Retrieve campaigns, Create a campaign, Retrieve asset types, Batch archive campaigns, …) 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://apizie.tech/v1/business:hubspot-marketing-campaigns-public-api/{endpoint} or from Claude, ChatGPT and Cursor through the Apizie MCP server. Free plan: 1,000 requests a month.

- Project key: `business:hubspot-marketing-campaigns-public-api`
- Category: Business
- Status: byok
- Source: https://developers.hubspot.com/docs/api/overview
- Page: https://apizie.tech/api/business/hubspot-marketing-campaigns-public-api
- OpenAPI: https://apizie.tech/api/business/hubspot-marketing-campaigns-public-api/openapi.json

Basepom for all HubSpot Projects

## Endpoints

### Retrieve campaigns
`GET https://apizie.tech/v1/business:hubspot-marketing-campaigns-public-api/get-marketing-campaigns-2026-09` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| after | string | no | A cursor token for pagination. Use the value from the previous response's paging.next.after field. |
| limit | integer | no | The maximum number of results to display per page. |
| name | string | no | A string to filter campaigns by name. |
| properties | array | no | An array of property names to include in the response. |
| sort | string | no | A string to specify the sorting order of the results. |

### Create a campaign
`POST https://apizie.tech/v1/business:hubspot-marketing-campaigns-public-api/post-marketing-campaigns-2026-09` (byok)

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

### Retrieve asset types
`GET https://apizie.tech/v1/business:hubspot-marketing-campaigns-public-api/get-marketing-campaigns-2026-09-asset-types` (byok)

### Batch archive campaigns
`POST https://apizie.tech/v1/business:hubspot-marketing-campaigns-public-api/post-marketing-campaigns-2026-09-batch-archive` (byok)

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

### Batch create campaigns
`POST https://apizie.tech/v1/business:hubspot-marketing-campaigns-public-api/post-marketing-campaigns-2026-09-batch-create` (byok)

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

### Batch retrieve campaigns
`POST https://apizie.tech/v1/business:hubspot-marketing-campaigns-public-api/post-marketing-campaigns-2026-09-batch-read` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| endDate | string | no | The end date for filtering campaigns, formatted as a string. |
| properties | array | no | A comma-separated list of property names to include in the response. |
| startDate | string | no | The start date for filtering campaigns, formatted as a string. |
| body | object | yes | JSON request body |

### Batch update campaigns
`POST https://apizie.tech/v1/business:hubspot-marketing-campaigns-public-api/post-marketing-campaigns-2026-09-batch-update` (byok)

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

### Clone a campaign
`POST https://apizie.tech/v1/business:hubspot-marketing-campaigns-public-api/post-marketing-campaigns-2026-09-clone-marketing-campaigns-2` (byok)

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

### Retrieve cloneable asset types
`GET https://apizie.tech/v1/business:hubspot-marketing-campaigns-public-api/get-marketing-campaigns-2026-09-clone-asset-types-marketing` (byok)

### Retrieve clone status
`GET https://apizie.tech/v1/business:hubspot-marketing-campaigns-public-api/get-marketing-campaigns-2026-09-clone-campaign-guid-status-m` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| campaignGuid | string | yes | The unique identifier (GUID) of the new campaign returned by the clone endpoint. |

### Retrieve a campaign
`GET https://apizie.tech/v1/business:hubspot-marketing-campaigns-public-api/get-marketing-campaigns-2026-09-campaign-guid` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| campaignGuid | string | yes | The unique identifier of the campaign to retrieve. |
| endDate | string | no | The end date for filtering campaign data, formatted as YYYY-MM-DD. |
| properties | array | no | A comma-separated list of property names to include in the response. |
| startDate | string | no | The start date for filtering campaign data, formatted as YYYY-MM-DD. |

### Update a campaign
`POST https://apizie.tech/v1/business:hubspot-marketing-campaigns-public-api/patch-marketing-campaigns-2026-09-campaign-guid` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| campaignGuid | string | yes | The unique identifier of the campaign to update. |
| body | object | yes | JSON request body |

### Delete a campaign
`POST https://apizie.tech/v1/business:hubspot-marketing-campaigns-public-api/delete-marketing-campaigns-2026-09-campaign-guid` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| campaignGuid | string | yes | The unique identifier of the campaign to delete. |

### Retrieve assets
`GET https://apizie.tech/v1/business:hubspot-marketing-campaigns-public-api/get-marketing-campaigns-2026-09-campaign-guid-assets-asset-t` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| assetType | string | yes | The type of asset to filter the list. |
| campaignGuid | string | yes | The unique identifier of the campaign. |
| after | string | no | The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged… |
| endDate | string | no | The end date for filtering assets, formatted as a string. |
| limit | string | no | The maximum number of results to display per page. |
| startDate | string | no | The start date for filtering assets, formatted as a string. |

### Add asset
`POST https://apizie.tech/v1/business:hubspot-marketing-campaigns-public-api/put-marketing-campaigns-2026-09-campaign-guid-assets-asset-t` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| assetId | string | yes | The unique identifier of the asset to be associated with the campaign. |
| assetType | string | yes | The type of asset being associated with the campaign. |
| campaignGuid | string | yes | The unique identifier of the campaign to which the asset will be associated. |

### Remove asset
`POST https://apizie.tech/v1/business:hubspot-marketing-campaigns-public-api/delete-marketing-campaigns-2026-09-campaign-guid-assets-asse` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| assetId | string | yes | The unique identifier of the asset to be disassociated from the campaign. |
| assetType | string | yes | The type of asset to be disassociated from the campaign. |
| campaignGuid | string | yes | The unique identifier of the campaign from which the asset will be disassociated. |

### Add budget item
`POST https://apizie.tech/v1/business:hubspot-marketing-campaigns-public-api/post-marketing-campaigns-2026-09-campaign-guid-budget` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| campaignGuid | string | yes | The unique identifier of the campaign to which the budget item will be added. |
| body | object | yes | JSON request body |

### Retrieve budget details
`GET https://apizie.tech/v1/business:hubspot-marketing-campaigns-public-api/get-marketing-campaigns-2026-09-campaign-guid-budget-totals` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| campaignGuid | string | yes | The unique identifier of the campaign for which budget totals are being retrieved. |

### Retrieve budget item
`GET https://apizie.tech/v1/business:hubspot-marketing-campaigns-public-api/get-marketing-campaigns-2026-09-campaign-guid-budget-budget` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| budgetId | integer | yes | The unique identifier of the budget item, represented as an integer. |
| campaignGuid | string | yes | The unique identifier of the campaign. |

### Update budget item
`POST https://apizie.tech/v1/business:hubspot-marketing-campaigns-public-api/put-marketing-campaigns-2026-09-campaign-guid-budget-budget` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| budgetId | integer | yes | The unique identifier of the budget item to update. |
| campaignGuid | string | yes | The unique identifier of the campaign. |
| body | object | yes | JSON request body |

### Delete budget item
`POST https://apizie.tech/v1/business:hubspot-marketing-campaigns-public-api/delete-marketing-campaigns-2026-09-campaign-guid-budget-budg` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| budgetId | integer | yes | The unique identifier of the budget item to be deleted. |
| campaignGuid | string | yes | The unique identifier of the campaign from which the budget item will be deleted. |

### Retrieve contact IDs
`GET https://apizie.tech/v1/business:hubspot-marketing-campaigns-public-api/get-marketing-campaigns-2026-09-campaign-guid-reports-contac` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| campaignGuid | string | yes | The unique identifier of the campaign. |
| contactType | string | yes | The type of contact to filter the list. |
| after | string | no | A cursor token for pagination. Use the value from the previous response's paging.next.after field. |
| endDate | string | no | The end date for filtering contact data, formatted as YYYY-MM-DD. |
| limit | integer | no | The maximum number of results to display per page. |
| startDate | string | no | The start date for filtering contact data, formatted as YYYY-MM-DD. |

### Retrieve metrics
`GET https://apizie.tech/v1/business:hubspot-marketing-campaigns-public-api/get-marketing-campaigns-2026-09-campaign-guid-reports-metric` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| campaignGuid | string | yes | The unique identifier of the campaign. |
| endDate | string | no | The end date for fetching campaign metrics, formatted as YYYY-MM-DD. |
| startDate | string | no | The start date for fetching campaign metrics, formatted as YYYY-MM-DD. |

### Retrieve revenue report
`GET https://apizie.tech/v1/business:hubspot-marketing-campaigns-public-api/get-marketing-campaigns-2026-09-campaign-guid-reports-revenu` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| campaignGuid | string | yes | The unique identifier of the campaign. |
| attributionModel | string | no | The attribution model to use for the revenue report. Specify the model to filter the data accordingly. |
| endDate | string | no | End date to fetch attribution data, in the format YYYY-MM-DD. |
| startDate | string | no | Start date to fetch attribution data, in the format YYYY-MM-DD. |

### Create spend item
`POST https://apizie.tech/v1/business:hubspot-marketing-campaigns-public-api/post-marketing-campaigns-2026-09-campaign-guid-spend` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| campaignGuid | string | yes | The unique identifier of the campaign for which the spend item is being created. |
| body | object | yes | JSON request body |

### Retrieve spend Item
`GET https://apizie.tech/v1/business:hubspot-marketing-campaigns-public-api/get-marketing-campaigns-2026-09-campaign-guid-spend-spend-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| campaignGuid | string | yes | The unique identifier of the campaign. |
| spendId | integer | yes | The unique identifier of the spend item to retrieve. |

### Update spend item
`POST https://apizie.tech/v1/business:hubspot-marketing-campaigns-public-api/put-marketing-campaigns-2026-09-campaign-guid-spend-spend-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| campaignGuid | string | yes | The unique identifier of the campaign. |
| spendId | integer | yes | The unique identifier of the spend item to update. |
| body | object | yes | JSON request body |

### Delete spend item
`POST https://apizie.tech/v1/business:hubspot-marketing-campaigns-public-api/delete-marketing-campaigns-2026-09-campaign-guid-spend-spend` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| campaignGuid | string | yes | The unique identifier of the campaign. |
| spendId | integer | yes | The unique identifier of the spend item to delete. |

## Example
```
curl "https://apizie.tech/v1/business:hubspot-marketing-campaigns-public-api/get-marketing-campaigns-2026-09" \
  -H "x-api-key: $APIZIE_KEY" \
  -H "x-upstream-key: $PROVIDER_KEY"
```

## FAQ

### How do I call the HubSpot Marketing Campaigns Public Api API?
Create a free Apizie key, then send GET https://apizie.tech/v1/business:hubspot-marketing-campaigns-public-api/get-marketing-campaigns-2026-09 with the header x-api-key. Every endpoint returns { project, data, timestamp }.

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

### Can AI agents use the HubSpot Marketing Campaigns Public Api API?
Yes. Add the Apizie MCP server (https://apizie.tech/mcp) to Claude, ChatGPT, Cursor or VS Code, then ask in plain language. The agent calls run_scraper with project key business:hubspot-marketing-campaigns-public-api.

### What is the status of the HubSpot Marketing Campaigns Public Api API?
Needs your own provider key (bring your own key)
