Skip to main content

Supported products

Requires one of the following products or higher.
Content HubContent Hub -Enterprise
The CMS content audit API allows you to query audit logs of CMS changes that occurred within your HubSpot account. Use this API to track content changes by type, time period, object, or user. For example, you can find out which user most recently made changes to a list of pages, or identify all content that was deleted within a specific time window.

Query audit logs

To retrieve audit logs, make a GET request to /cms/v3/audit-logs/. For example, the following request retrieves audit logs for landing page updates made by a specific user:
curl 'https://api.hubapi.com/cms/v3/audit-logs/?objectType=LANDING_PAGE,BLOG_POST&eventType=UPDATED,CREATED&userId=1011561&limit=10' \
  --request GET \
  --header "Authorization: Bearer YOUR_ACCESS_TOKEN"
The following query parameters are available for filtering and paginating results:
ParameterTypeDescription
afterStringTimestamp after which audit logs will be returned. Use for filtering by time range (e.g., 2024-01-01T00:00:00Z).
beforeStringTimestamp before which audit logs will be returned. Use for filtering by time range.
eventTypeStringComma-separated list of event types to filter by. See event types below.
limitStringThe number of logs to return per page.
objectIdStringComma-separated list of object IDs to filter by.
objectTypeStringComma-separated list of object types to filter by. See object types below.
sortStringThe sort direction for the audit logs. Can only sort by timestamp. Use timestamp for ascending or -timestamp for descending.
userIdStringComma-separated list of HubSpot user IDs to filter by. To retrieve user IDs, make a GET request to /settings/v3/users/.
The response will include details for each event that meets the filter criteria.
{
  "results": [
    {
      "objectId": "4065364319",
      "objectName": "My Landing Page",
      "fullName": "John Doe",
      "event": "UPDATED",
      "userId": "1011561",
      "timestamp": "2024-03-10T15:24:34.672Z",
      "objectType": "LANDING_PAGE"
    },
    {
      "objectId": "4065364320",
      "objectName": "Homepage",
      "fullName": "John Doe",
      "event": "PUBLISHED",
      "userId": "1011561",
      "timestamp": "2024-03-10T14:12:18.123Z",
      "objectType": "LANDING_PAGE"
    }
  ],
  "paging": {
    "next": {
      "after": "1710081138123",
      "link": "https://api.hubapi.com/cms/v3/audit-logs/?after=1710081138123"
    }
  }
}
FieldTypeDescription
objectIdStringThe ID of the content object that was changed.
objectNameStringThe internal name of the object in HubSpot.
objectTypeStringThe type of object. See object types below.
eventStringThe type of event. See event types below.
userIdStringThe ID of the user who made the change.
fullNameStringThe name of the user who made the change.
timestampStringThe timestamp when the event occurred (ISO 8601 format).
metaObjectSupplementary metadata about the event. For example, HubDB events may include rows deleted/updated, and Content Settings events include the specific fields that were changed.

Pagination

Results are paginated using cursor-based pagination. To retrieve the next page of results, include an after query parameter with the value from the paging.next object in the response. For example, in the example response above, the after value is 1710081138123. To retrieve the next page of results, you would make a GET request to /cms/v3/audit-logs/?objectType=BLOG_POST&limit=10&after=1710081138123.
curl 'https://api.hubapi.com/cms/v3/audit-logs/?objectType=BLOG_POST&limit=10&after=1710081138123' \
  --request GET \
  --header "Authorization: Bearer YOUR_ACCESS_TOKEN"

Example use cases

Find recent changes to a specific page

To find all changes made to a specific page, use the objectId parameter:
curl 'https://api.hubapi.com/cms/v3/audit-logs/?objectId=4065364319&sort=-timestamp&limit=20' \
  --request GET \
  --header "Authorization: Bearer YOUR_ACCESS_TOKEN"

Find all deleted content in a time range

To find all content that was deleted within a specific time window:
curl 'https://api.hubapi.com/cms/v3/audit-logs/?eventType=DELETED&after=2024-01-01T00:00:00Z&before=2024-02-01T00:00:00Z' \
  --request GET \
  --header "Authorization: Bearer YOUR_ACCESS_TOKEN"

Audit changes by a specific user

To see all changes made by a specific user across all content types:
curl 'https://api.hubapi.com/cms/v3/audit-logs/?userId=1011561&sort=-timestamp&limit=50' \
  --request GET \
  --header "Authorization: Bearer YOUR_ACCESS_TOKEN"

Event types

The eventType parameter accepts the following values. You can specify multiple values as comma-separated strings (e.g., eventType=CREATED,UPDATED).
Event TypeDescription
CREATEDAn object has been created.
DELETEDAn object has been deleted or disconnected.
PUBLISHEDAn object has been published.
UNPUBLISHEDAn object has been unpublished.
UPDATEDAn object has been updated.

Object types

The objectType parameter accepts the following values. You can specify multiple values as comma-separated strings (e.g., objectType=BLOG,LANDING_PAGE).
Object TypeDescription
BLOGChanges made to your blog settings in your account settings.
BLOG_POSTBlog posts associated with your blog(s).
CONTENT_SETTINGSChanges made to your website settings in your account settings. The values changed will appear in the meta JSON object.
CTAChanges made to your Calls-to-action (CTAs).
DOMAINChanges made to the domains connected in your Domains & URLs settings in your account settings.
EMAILChanges made to emails in the email editor.
FILEChanges made to files in the files tool.
GLOBAL_MODULEChanges made to global modules.
HUBDB_TABLEChanges made to HubDB tables.
KNOWLEDGE_BASEChanges made to your knowledge base settings in your account settings.
KNOWLEDGE_BASE_ARTICLEChanges made to knowledge base articles in the content editor.
LANDING_PAGEChanges made to landing pages in the content editor.
MODULEChanges made to modules.
SERVERLESS_FUNCTIONChanges made to serverless functions.
TEMPLATEChanges made to templates.
THEMEChanges made to Theme Settings and when Themes are created.
URL_MAPPINGChanges made to your URL Redirects in URL Redirects settings in your account settings.
WEBSITE_PAGEChanges made to website pages in the content editor.
Last modified on January 23, 2026