canonical: https://jentic.com/apis/hubapi.com/hubspot-cms-api

# HubSpot Domains

Jentic publishes the only available OpenAPI specification for HubSpot CMS Domains, keeping it validated and agent-ready. The HubSpot CMS Domains API exposes the connected domains attached to a HubSpot CMS account - the hostnames used to serve websites, blogs, and landing pages. Agents and integrations can list every domain configured in the portal and read individual domain records by ID. It is the read surface that powers content publishing decisions in HubSpot's CMS Hub.

## For AI agents

List and inspect connected domains in a HubSpot CMS account so an agent can route published content to the correct hostname.

## Scope

Does not handle DNS configuration, SSL provisioning, or page content edits - use for reading connected CMS domain records only.

## Capabilities

- List every domain connected to a HubSpot CMS account with pagination
- Fetch a single domain record by domainId
- Read primary domain flags to choose the canonical hostname for publishing
- Filter listed domains by created and updated timestamps
- Read SSL and CDN configuration metadata for a domain
- Identify which domain hosts blogs, landing pages, or website pages

## Use cases

### Multi-Domain Content Publishing

Agencies and large brands often connect several domains to one HubSpot CMS portal - a primary site, a careers site, and regional subdomains. The Domains API lets a publishing pipeline list every domain and select the right hostname before creating or updating a page, so content lands on the intended public site.

Example prompt: Call GET /cms/v3/domains/ and return the domain whose primary flag is true so a downstream page-creation step can target it

### Domain Audit and Reporting

Operations teams audit which domains are still connected, which have SSL, and which were added recently. A scheduled job pulls the full domain list, joins it with a CMDB or asset inventory, and flags drift between HubSpot's view of the portfolio and the canonical record. The two read endpoints provide everything needed for this kind of audit.

Example prompt: List all domains in the portal and return any record where ssl is false or where the domain is not present in the internal CMDB

### Pre-Publish Hostname Resolution

Before an agent uses a separate HubSpot endpoint to create a landing page or blog post, it needs to know which domain to attach the content to. The Domains API resolves the right domainId given a hostname or content type, so the publishing step uses the correct identifier rather than a guessed string.

Example prompt: Look up the domainId where domain equals 'blog.example.com' and return it for use in a subsequent page creation request

### Agent-Driven CMS Routing

An AI agent that schedules content across multiple brands queries Jentic for 'list hubspot cms domains', loads the schema, and pulls every domain. It uses the response to route generated content to the right brand without an operator picking a domain manually.

Example prompt: Search Jentic for 'list hubspot cms domains', load the schema, execute GET /cms/v3/domains/, and pick the domain that matches the target brand

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /cms/v3/domains/ | List all connected domains in the portal |
| GET | /cms/v3/domains/{domainId} | Get a single domain by ID |

## Key resources

- **Domains** — List and read connected domains attached to a HubSpot CMS account

## Why Jentic

- **Setup:** Wiring the HubSpot Domains API by hand means handling both OAuth and app-token auth against api.hubapi.com and paging the connected-domain records yourself. Through Jentic you install once, import Domains from the API Directory, store the credential once, and your agent calls it.
- **Permission scoping:** HubSpot puts the domain id in the URL path (/cms/v3/domains/{domainId}), so a rule can pin your agent to reading one domain, or to listing domains, and nothing else. This API is read-only, so the agent has no write or delete operations to grant.
- **Credential handling:** Your HubSpot credential 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 'list hubspot cms domains', and Jentic returns GET /cms/v3/domains/ with its input schema so the agent fetches the domain list without browsing the reference docs.

## Related APIs

- **HubSpot Files** — Files hosts the assets (images, PDFs) that CMS pages on a domain serve
- **HubSpot Marketing Events Extension** — Marketing events surface alongside CMS content in HubSpot's marketing toolkit
- **HubSpot CRM Cards** — CRM cards extend record pages while CMS Domains describe the public site hosting

## FAQ

### Why is there no official OpenAPI spec for HubSpot CMS Domains?

HubSpot does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call HubSpot CMS Domains via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the HubSpot CMS Domains API use?

It accepts OAuth 2.0 access tokens, the private-app header for private apps, and the hapikey query parameter as legacy fallbacks. Jentic stores all of these in its encrypted vault and hands the agent a scoped token at execution time, so the raw HubSpot credentials never enter the agent's context.

### Can I create or delete domains through this API?

No. The API exposes only GET /cms/v3/domains/ and GET /cms/v3/domains/{domainId}. Domain provisioning, DNS updates, and SSL configuration must be done in the HubSpot UI; this API is read-only for connected domains.

### What are the rate limits for the HubSpot CMS Domains API?

Standard HubSpot API limits apply: 100 requests per 10 seconds per private app token and 110 per 10 seconds per OAuth app per portal, with daily limits tied to the HubSpot subscription tier. Two GET endpoints means most integrations are far below the limit.

### How do I find the primary domain for a portal through Jentic?

Search Jentic for 'list hubspot cms domains', load the schema for GET /cms/v3/domains/, execute the call, and filter the response for the entry with primary set to true. That entry is the canonical hostname for content publishing.

### Is the HubSpot CMS Domains API free?

API access is included with any CMS Hub subscription. Domain configuration itself requires CMS Hub Starter or higher; the API is read-only and reflects whatever is configured in the portal settings.

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

Yes. Jentic One is self-hosted, so your own rules decide which operations and credentials the agent may use. Because HubSpot puts the domain id in the URL path at GET /cms/v3/domains/{domainId}, you can pin the agent to reading a single domain, or allow only the list call GET /cms/v3/domains/, and nothing else. This API is read-only, so there are no write or delete operations to grant, and the agent can only inspect connected domains you permit.
