canonical: https://jentic.com/apis/hubspot.com/hubspot-crm-object-library

# HubSpot CRM Object Library

The HubSpot CRM Object Library API reports which CRM object types are enabled in a given HubSpot portal. It returns the enablement status for every object available in the library, including standard objects (contacts, companies, deals) and HubSpot-shipped specialised objects such as appointments, courses, and listings. Use it as a discovery step before integrating with a portal so the integration knows which objects it can write to and which require enablement first.

## For AI agents

Read which CRM object types are enabled in a HubSpot portal so an integration can route operations to enabled objects only.

## Scope

Does not handle object enablement changes, schema definition, or record-level CRUD - use for read-only object enablement discovery only.

## Capabilities

- List the enablement state of every CRM object type available in the library for the connected portal
- Read the enablement state of a single object type by its objectTypeId
- Surface specialised objects shipped by HubSpot (appointments, courses, listings) that require explicit enablement
- Drive integration discovery flows that decide which objects to operate against based on enablement
- Inform onboarding scripts that need to confirm object availability before configuring workflows

## Use cases

### Integration Capability Discovery at Connect Time

When an integration first connects to a HubSpot portal, query the object library to learn which objects the portal can accept writes for. The response lets the integration enable or hide features (appointments scheduling, course enrolment, listings sync) based on portal capability rather than guessing or failing on a 403 from a write call. The discovery call typically runs once at connection time and is cached for the session.

Example prompt: Call GET /crm/v3/object-library/enablement at connect time, parse the response into a map of objectTypeId to enabled flag, and persist the map for the session.

### Onboarding Wizard Pre-Flight

Drive an onboarding wizard that asks users which HubSpot features to wire up. Before showing a feature option, query the object library to confirm the underlying object is enabled in their portal, hiding options that would not work. This prevents setup failures and reduces support load on the integration vendor.

Example prompt: GET /crm/v3/object-library/enablement, then in the onboarding UI hide any feature whose corresponding objectTypeId returns enabled equals false.

### Agent-Driven Capability-Aware Tool Routing

An AI agent operating across a HubSpot portal can call the object library at session start, learn which objects are enabled, and refuse to invoke tools that target disabled objects with a clear explanation back to the user. Through Jentic, the agent finds the read-all enablement operation by intent and uses the response to gate downstream tool calls.

Example prompt: GET /crm/v3/object-library/enablement and store the result; before any subsequent write call, look up the target objectTypeId and return a structured 'object not enabled' message if disabled.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /crm/v3/object-library/enablement | Read enablement state for all object types |
| GET | /crm/v3/object-library/enablement/{objectTypeId} | Read enablement state for a specific object type |

## Key resources

- **Object library enablement** — Read the enablement status of every standard, specialised, and custom CRM object type in the portal

## Why Jentic

- **Setup:** Wiring HubSpot CRM Object Library by hand means implementing its OAuth2 authorization-code flow (or managing a private-app token), routing read calls to api.hubapi.com, and parsing the enablement response yourself. Through Jentic you install once, import HubSpot CRM Object Library from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** These endpoints are read-only enablement lookups, with the object type id in the URL path (/crm/v3/object-library/enablement/{objectTypeId}) on the single-object read. Limit the agent to the operations it needs, such as reading enablement status, so it only queries the object enablement you intend.
- **Credential handling:** Your HubSpot 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 'check HubSpot object enablement', and Jentic returns the matching enablement operation with its response schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **HubSpot CRM Schemas** — Defines custom object schemas after enablement is confirmed
- **HubSpot Generic CRM Objects** — Generic CRUD that operates over any object type the library reports as enabled
- **HubSpot CRM Limits Tracking** — Reports per-object record and property quotas for enabled objects

## FAQ

### What authentication does the HubSpot Object Library API use?

OAuth 2.0 Bearer tokens or HubSpot Private App tokens in the Authorization header. Jentic stores the token encrypted in the vault and provides the agent with a scoped reference rather than the raw token.

### Which object types appear in the response?

The response covers every CRM object type available in the library for that portal - standard objects (contacts, companies, deals), HubSpot-shipped specialised objects (appointments, courses, listings, services), and any custom object schemas defined in the portal - each with an enabled flag.

### What are the rate limits for this API?

Standard HubSpot quotas apply: 100 requests per 10 seconds for OAuth apps and 110 for Private Apps, with daily caps that vary by Hub subscription. Because the response is small and changes rarely, integrations typically cache it for the connection session rather than calling it repeatedly.

### How do I check object enablement through Jentic?

Run pip install jentic, call client.search('check HubSpot object enablement'), client.load to get the schema for GET /crm/v3/object-library/enablement, and client.execute. The response is a flat list of objectTypeId entries with their enabled state.

### Does this API let me enable an object type?

No. The endpoints are read-only. Enabling a specialised object such as appointments or listings is done through the HubSpot UI or product-specific setup, not via this API.

### What is the difference between this API and the CRM Schemas API?

The Object Library reports which object types are enabled in the portal. The CRM Schemas API defines the property and association shape of custom object types. Use the Object Library for capability discovery, and Schemas for actually creating or modifying custom object definitions.

### Can I limit what my agent is allowed to do with the HubSpot CRM Object Library API?

Yes. Because Jentic One is self-hosted, you set the rules that decide which operations and credentials your agent may use. This API exposes only two read-only enablement lookups: reading the enablement state of all object types, and reading a single object type by its objectTypeId in the path. You can restrict the agent to just the operations it needs, such as the read-all enablement call, so it only queries the object enablement you intend and never reaches other HubSpot endpoints.
