canonical: https://jentic.com/apis/hubspot.com/hubspot-cms-site-search

# HubSpot Site Search

The HubSpot CMS Site Search API queries the search index that HubSpot maintains for content hosted on its CMS - site pages, landing pages, blog posts, and knowledge base articles. It exposes a search endpoint that returns ranked results plus an inspector endpoint that returns the indexed payload for a specific content ID, useful for debugging why a page does or does not appear in results. Use it to power on-site search experiences or to programmatically query a portal's public content.

## For AI agents

Run search queries against a HubSpot CMS website's index and inspect indexed content for a given page or post, so an agent can answer questions about the customer's public site.

## Scope

Does not modify content, manage the index, or search HubDB tables - use for querying and inspecting the existing HubSpot CMS search index only.

## Capabilities

- Run a keyword search across a HubSpot CMS website and return ranked results
- Filter search results by content type, language, domain, and pathPrefix
- Inspect the raw indexed payload for a specific content ID to debug ranking
- Power an on-site search box without standing up a separate search service
- Verify that newly published content has been indexed before linking to it

## Use cases

### On-Site Search Box

Marketing teams that publish a site on HubSpot want a search box without contracting a third-party search vendor. The Site Search API returns ranked content from the same index HubSpot uses, supporting filters by language, domain, and content type. A single GET on the search endpoint is enough to back a working search UI.

Example prompt: GET /cms/v3/site-search/search?term='pricing'&type=BLOG_POST&language=en, render the top 10 results with title and URL, and link each to the matching live page.

### Indexing Debug

When a freshly published page does not appear in search, content teams need a deterministic way to confirm whether it is indexed at all. The /indexed-data endpoint returns the indexed body and metadata for a content ID, surfacing missing fields or empty content that explain low ranking.

Example prompt: GET /cms/v3/site-search/indexed-data/{contentId} for a recently published page, confirm the body field is non-empty, and flag the page for re-indexing if it is.

### Agent RAG Over the Customer's Public Site

An AI agent answering questions about a company's product can ground its answers in the customer's own marketing site. Using the search endpoint as a retrieval layer, the agent fetches the most relevant pages and posts for a user query, then summarises them - keeping answers consistent with published positioning.

Example prompt: Use Jentic to search 'hubspot site search', load the schema, execute it with the user's query, and pass the top 5 result URLs into the agent's summarisation prompt.

### Content Quality Sweep

Content auditors run periodic queries against the public site to surface stale or duplicated pages. A scheduled agent fires search queries for known brand terms and surfaces pages whose snippets appear duplicated across multiple URLs, feeding into a remediation queue for the content team.

Example prompt: GET /cms/v3/site-search/search for each brand term, group results by snippet hash, and flag any term with more than three near-duplicate snippets.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /cms/v3/site-search/search | Run a search query against the CMS index |
| GET | /cms/v3/site-search/indexed-data/{contentId} | Retrieve indexed data for a specific content ID |

## Key resources

- **Search** — Run keyword searches against the CMS index with filters for type, language, domain, and path
- **Indexed Data** — Inspect the indexed payload for a specific content ID for debugging

## Why Jentic

- **Setup:** Wiring HubSpot Site Search by hand means registering an OAuth app or minting a private app token, targeting api.hubapi.com, and coding the search query and indexed-data reads yourself. Through Jentic you install once, import Site Search from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** Site Search puts the content id in the URL path (/cms/v3/site-search/indexed-data/{contentId}), so a rule can pin your agent to inspecting one indexed record. Both operations are read-only, so nothing your agent calls modifies content or the index.
- **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 the HubSpot site search index', and Jentic returns the matching Site Search operation with its filter schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **CMS Pages** — Manages the page content that this API searches over
- **Blog Posts** — Manages the blog post content this API can return as results
- **Domains** — Lists the domains that scope which content shows up in search results

## FAQ

### What authentication does the HubSpot Site Search API use?

It accepts HubSpot OAuth 2.0 tokens or Private App tokens in the Authorization header. The /search endpoint is treated as a public-facing operation, while /indexed-data requires a content scope. Through Jentic, the relevant credentials are stored encrypted and the agent only sees a scoped execution token.

### Can the Site Search API search content from any HubSpot portal?

It searches the CMS content of the portal whose credentials authorise the call. To search a different portal, supply credentials for that portal - the API does not perform cross-portal search.

### What are the rate limits for the HubSpot Site Search API?

It uses HubSpot's standard public API caps: 100 requests per 10 seconds for OAuth apps and 110 per 10 seconds for Private Apps on Pro and Enterprise. Cache hot queries client-side to keep usage low for high-traffic search boxes.

### How do I run a site search through Jentic?

After pip install jentic, search 'hubspot site search query', load the schema, and execute it with term and any filters such as type=BLOG_POST or language=en. Jentic returns the parsed result list to the agent.

### Does the Site Search API index custom database tables (HubDB)?

No. It indexes published CMS content - site pages, landing pages, blog posts, and knowledge base articles. HubDB rows are queried via the HubDB API, which is a separate surface.

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

Yes. Because you run Jentic One yourself, your own rules decide which of the two Site Search operations the agent may call and which HubSpot credentials it can use. Both operations are read-only, so nothing the agent runs can modify your content or the search index. And since the indexed-data endpoint takes the content ID in its path (/cms/v3/site-search/indexed-data/{contentId}), you can pin the agent to inspecting a single indexed record rather than the whole search endpoint.
