canonical: https://jentic.com/apis/hubspot.com/hubspot-cms-content-audit

# HubSpot CMS Content Audit

The HubSpot CMS Content Audit API exposes a single read endpoint for querying audit logs of CMS changes that occurred on a HubSpot account. It returns who changed what content, when, and from which interface, making it the system of record for compliance reviews and post-incident investigation of CMS edits. The endpoint supports filters for date range, user, and content type so an agent can fetch only the events relevant to a given audit window.

## For AI agents

Query HubSpot CMS audit logs to see who changed which page, post, or template, and when, so an agent can answer compliance questions or detect unexpected edits.

## Scope

Does not modify CMS content or surface non-CMS portal events - use for querying read-only HubSpot CMS audit logs only.

## Capabilities

- Query CMS audit log events by date range, user, and content object
- Detect unauthorised edits to landing pages or site pages by filtering for unfamiliar user IDs
- Reconstruct the edit history of a specific CMS object before publishing a rollback
- Feed CMS change events into a SIEM or compliance dashboard via scheduled pulls
- Verify that a scheduled change took effect by polling for the matching audit event

## Use cases

### Compliance Audit Trail

Regulated industries require a tamper-evident record of who changed customer-facing content and when. The CMS Content Audit endpoint returns those events with user, timestamp, and content references in JSON, ready to feed into a compliance archive. Pulling the log nightly and storing it externally provides defensible evidence of governance over public content.

Example prompt: Call GET /cms/v3/audit-logs/ with a 24-hour window, write each event to long-term storage, and surface any event whose userId is not on an approved-editor list.

### Pre-Rollback Investigation

Before reverting a CMS object, an editor needs to know what changed and who made the change. The audit endpoint returns the chronological event list for the object, supporting a confident rollback decision. Combining it with the Pages or Posts revision endpoints completes the picture of which revision to restore.

Example prompt: Query /cms/v3/audit-logs/ for objectId 12345 over the last 14 days, present the user, timestamp, and event type for each entry, and recommend the latest known-good revision to restore.

### Out-of-Hours Change Monitor

Marketing teams sometimes set policies that production CMS edits should not happen outside working hours. A scheduled agent pulls the audit log every hour, filters events with timestamps outside business windows, and posts an alert into Slack. The single-endpoint design makes the integration trivially small.

Example prompt: Hourly, GET /cms/v3/audit-logs/ for the previous hour, filter events with timestamp outside 09:00-18:00 local time, and post each to a Slack webhook.

### Agent-Driven Audit Lookup

An AI compliance agent answering an auditor's question must produce evidence quickly. Through Jentic, the agent searches for the CMS audit operation, loads the schema, and executes it with the requested filters. The structured response is returned to the agent for summarisation, with credentials handled by Jentic rather than the agent.

Example prompt: Use Jentic to search 'hubspot cms audit log query', load the schema, execute it with userId and date range filters, then summarise the returned events for the auditor.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /cms/v3/audit-logs/ | Query CMS audit log events with filters |

## Key resources

- **CMS Audit Log** — Read-only access to CMS change events filtered by user, date, and content object

## Why Jentic

- **Setup:** Wiring HubSpot CMS Content Audit by hand means registering an OAuth app or minting a private app token, targeting api.hubapi.com, and coding the audit-log filters and paging yourself. Through Jentic you install once, import CMS Content Audit from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** CMS Content Audit exposes a single read on /cms/v3/audit-logs/, so scope your agent to that query operation. It is read-only, so no operation it can call modifies CMS content.
- **Credential handling:** Your HubSpot OAuth token or private app token is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'query HubSpot CMS audit logs', and Jentic returns the matching CMS Content Audit operation with its filter schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Account Audit Logs** — Account-level audit events that complement CMS-specific audit data
- **CMS Pages** — The page objects whose edits are recorded in the audit log
- **Blog Posts** — The blog post objects whose edits are also captured in CMS audit logs

## FAQ

### What authentication does the HubSpot CMS Content Audit API use?

It accepts HubSpot OAuth 2.0 tokens or Private App tokens in the Authorization header. The audit endpoint typically requires the cms.knowledge_base or content scope on Marketing Hub Enterprise tiers; through Jentic the credentials live in the vault and the agent receives a scoped execution token.

### Can the CMS Content Audit API modify or delete log entries?

No. The single endpoint GET /cms/v3/audit-logs/ is read-only. Audit records are immutable in HubSpot, which is what makes them useful as evidence.

### What are the rate limits for the CMS Content Audit API?

Standard HubSpot public API limits apply: 100 requests per 10 seconds for OAuth apps and 110 per 10 seconds for Private Apps on Pro and Enterprise. Use the date filters to keep response sizes small rather than polling at high frequency.

### How do I pull yesterday's CMS audit log through Jentic?

Run pip install jentic, search 'hubspot cms audit log query', load the schema, and execute it with a 24-hour date filter. Jentic handles OAuth and returns the parsed event list to the agent.

### Is the HubSpot CMS Content Audit API available on every HubSpot tier?

No. CMS audit logs are an Enterprise tier feature. Calls from non-Enterprise portals return a 403 response, so check the portal level before relying on this endpoint.

### Can I limit what my agent is allowed to do with the HubSpot CMS Content Audit API?

Yes. Because you run Jentic One yourself, your own rules decide which operations and credentials the agent can use. This API exposes a single read on GET /cms/v3/audit-logs/, so you can scope the agent to that one query operation and nothing else. It is read-only, so even at full access the agent can retrieve audit events but cannot modify or delete any CMS content.
