There's a new version of the HubSpot API

As of November 30, 2022, HubSpot API keys are no longer a supported authentication method for accessing HubSpot APIs. Instead, you should use a private app access token or OAuth to authenticate API calls. Learn more about this change and how to migrate an API key integration to use a private app instead.

List blog topics

Last updated May 31, 2023

GET /blogs/v3/topics

Method Details

HTTP Methods:

GET

Response Format:

json

Requires Authentication?

Yes

Rate Limited?

Yes

Headers

User-Agent

Products:

Marketing

Required Scope:

content

List all blog topics. Supports paging and filtering.

Required Parameters How to use Description
OAuth access token or private app access token Authorization: Bearer {token} header Used to authenticate the request. Please see this page for more details about authentication.

Optional query string filters & options

Some parameters support "range" filters via double-underscored param suffixes, like '__gt'. If a parameter supports a filter type of 'gt', that means you can append a double-underscore and 'gt' to the parameter name to find all items greater than a specified value.

For example, the following query will find all items with the 'updated' time greater than 1364424600000: https://api.hubapi.com/blogs/v3/topics?created__gt=1364424600000

Parameter name Description
id Search for topics by id. Supports exact value matching and the 'in' range filter (e.g. id__in=348109009,348109019)
name Search for topics by name. Supports exact value matching, 'contains' searching, and 'icontains' case-insensitive searching (e.g. name__contains=topic1)
slug Search for topics by slug. Supports exact value matching
created Filter results by creation date, in milliseconds since the epoch. Supports exact value matching and the following range filters: range, gt, gte, lt, lte
limit The maximum number of items to return. Defaults to 20.
offset The offset from the beginning of the result set from which to start returning results. Used for paging. Defaults to 0.
casing Use the casing=snake parameter to change the API's casing for all query parameters (including those above) and JSON fields (below) to snake_case, rather than camelCase, which is the default. This option is provided for backwards-compatibility and ease of migration from Content v2 APIs, which used snake_case.

JSON Fields returned in the response

Field name Type Description
id long The unique id of the topic
portalId int The hub id
created long When the topic was first created, in milliseconds since the epoch
updated long When the topic was last updated, in milliseconds since the epoch
deletedAt long When the topic was deleted, in milliseconds since the epoch. Zero if the topic was never deleted. Use a DELETE request to properly soft delete a topic - do not set this value directly.
name string The topic name
slug string The URL-friendly version of the topic, used in blog urls
description string The topic description