openapi: 3.0.1 info: title: HubSpot CMS Content Audit description: Basepom for all HubSpot Projects version: 2026-09 x-hubspot-product-tier-requirements: marketing: FREE sales: FREE service: FREE cms: ENTERPRISE commerce: FREE crmHub: FREE dataHub: FREE x-hubspot-api-use-case: After noticing some recent changes to your website, including missing pages, use this API to see which user most recently modified and unpublished your website pages. x-hubspot-introduction: 'Use the content audit API to retrieve information about changes made to content objects, such as blog posts, website pages, and domains. ' servers: - url: https://api.hubapi.com tags: - name: Advanced - name: Basic paths: /cms/audit-logs/2026-09: get: tags: - Basic operationId: get-/cms/audit-logs/2026-09_/cms/audit-logs/v3 parameters: - name: after in: query description: The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results. required: false style: form explode: true schema: type: string - name: before in: query description: '' required: false style: form explode: true schema: type: string - name: eventType in: query description: '' required: false style: form explode: true schema: type: array items: type: string - name: limit in: query description: The maximum number of results to display per page. required: false style: form explode: true schema: type: integer format: int32 - name: objectId in: query description: '' required: false style: form explode: true schema: type: array items: type: string - name: objectType in: query description: '' required: false style: form explode: true schema: type: array items: type: string - name: sort in: query description: '' required: false style: form explode: true schema: type: array items: type: string - name: userId in: query description: '' required: false style: form explode: true schema: type: array items: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/CollectionResponsePublicAuditLog' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - content /cms/audit-logs/2026-09/export: post: tags: - Advanced operationId: post-/cms/audit-logs/2026-09/export_/cms/audit-logs/2026-03/export parameters: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/CmsAuditLoggingExportSettings' required: true responses: '204': description: No content content: {} default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - content components: schemas: CmsAuditLoggingExportFilters: required: - objectType type: object properties: objectType: type: array items: type: string CmsAuditLoggingExportSettings: required: - email - format - portalId - recipientUserIds - shouldMarkExportFileAsSensitive - type type: object properties: email: type: string filters: $ref: '#/components/schemas/CmsAuditLoggingExportFilters' format: type: string enum: - CSV - XLS - XLSX partition: type: integer format: int32 portalId: type: integer format: int32 recipientUserIds: type: array items: type: integer format: int32 shouldMarkExportFileAsSensitive: type: boolean type: type: string userId: type: integer format: int32 userTimeZone: type: string CollectionResponsePublicAuditLog: required: - results type: object properties: paging: $ref: '#/components/schemas/Paging' results: type: array items: $ref: '#/components/schemas/PublicAuditLog' Error: required: - category - correlationId - message type: object properties: category: type: string description: The error category context: type: object additionalProperties: type: array items: type: string description: Context about the error condition example: '{invalidPropertyName=[propertyValue], missingScopes=[scope1, scope2]}' correlationId: type: string description: A unique identifier for the request. Include this value with any error reports or support tickets format: uuid example: aeb5f871-7f07-4993-9211-075dc63e7cbf errors: type: array description: further information about the error items: $ref: '#/components/schemas/ErrorDetail' links: type: object additionalProperties: type: string description: A map of link names to associated URIs containing documentation about the error or recommended remediation steps message: type: string description: A human readable message describing the error along with remediation steps where appropriate example: An error occurred subCategory: type: string description: A specific category that contains more specific detail about the error description: Represents an error response returned by the API when an operation fails. This component is used in various endpoints to provide detailed information about the error encountered. example: message: Invalid input (details will vary based on the error) correlationId: aeb5f871-7f07-4993-9211-075dc63e7cbf category: VALIDATION_ERROR links: knowledge-base: https://www.hubspot.com/products/service/knowledge-base ErrorDetail: required: - message type: object properties: code: type: string description: The status code associated with the error detail context: type: object additionalProperties: type: array items: type: string description: Context about the error condition example: '{missingScopes=[scope1, scope2]}' in: type: string description: The name of the field or parameter in which the error was found. message: type: string description: A human readable message describing the error along with remediation steps where appropriate subCategory: type: string description: A specific category that contains more specific detail about the error description: Represents detailed information about an error that occurred in the API. This component is used to provide additional context and specifics about errors, typically as part of an error response. NextPage: required: - after type: object properties: after: type: string description: Cursor token representing the boundary timestamp after which to fetch the next page of results. Pass this value as the after query parameter to retrieve later audit logs. link: type: string description: Pre-constructed URL that can be used to directly fetch the next page of results without manually building the query. description: Specifies the paging information needed to retrieve the next set of results in a paginated API response Paging: type: object properties: next: $ref: '#/components/schemas/NextPage' prev: $ref: '#/components/schemas/PreviousPage' PreviousPage: required: - before type: object properties: before: type: string description: Pre-constructed URL that can be used to directly fetch the previous page of results without manually building the query. link: type: string description: Cursor token representing the boundary timestamp before which to fetch the previous page of results. Pass this value as the before query parameter to retrieve earlier audit logs. description: specifies the paging information needed to retrieve the previous set of results in a paginated API response PublicAuditLog: required: - event - fullName - meta - objectId - objectName - objectType - timestamp - userId type: object properties: event: type: string description: The type of event that took place (CREATED, UPDATED, PUBLISHED, DELETED, UNPUBLISHED). enum: - CREATED - DELETED - PUBLISHED - RESTORE - UNPUBLISHED - UPDATED fullName: type: string description: The name of the user who caused the event. meta: type: object properties: {} description: 'Supplementary metadata associated with the audit log entry. It provides additional context about the audited event (ex: rows deleted/updated for a HubDB event, the specific fields that were changed for a Content Settings event).' objectId: type: string description: The ID of the object. objectName: type: string description: The internal name of the object in HubSpot. objectType: type: string description: The type of the object (BLOG, LANDING_PAGE, DOMAIN, HUBDB_TABLE etc.) enum: - BLOG - BLOG_POST - CASE_STUDY - CONTENT_SETTINGS - CSS - CTA - DOMAIN - EMAIL - FILE - GLOBAL_MODULE - HUBDB_TABLE - JS - KNOWLEDGE_BASE - KNOWLEDGE_BASE_ARTICLE - LANDING_PAGE - MODULE - PODCAST - QUOTE - SERVERLESS_FUNCTION - TEMPLATE - THEME - URL_MAPPING - WEB_INTERACTIVE - WEBSITE_PAGE timestamp: type: string description: The timestamp at which the event occurred. format: date-time userId: type: string description: The ID of the user who caused the event. responses: Error: description: An error occurred. content: '*/*': schema: $ref: '#/components/schemas/Error' securitySchemes: developer_hapikey: type: apiKey name: hapikey in: query oauth2: type: oauth2 flows: authorizationCode: authorizationUrl: https://app.hubspot.com/oauth/authorize tokenUrl: https://api.hubapi.com/oauth/v1/token scopes: content: '' private_apps: type: apiKey name: private-app in: header private_apps_legacy: type: apiKey name: private-app-legacy in: header x-hubspot-available-client-libraries: - Node - Python - Ruby - PHP x-hubspot-product-tier-requirements: marketing: FREE sales: FREE service: FREE cms: ENTERPRISE commerce: FREE crmHub: FREE dataHub: FREE