canonical: https://jentic.com/apis/hubspot.com/hubspot-crm-schemas

# HubSpot CRM Schemas

The HubSpot CRM Schemas API defines how custom objects store and represent information in the HubSpot CRM. A schema describes an object type's properties, primary display property, secondary display properties, searchable properties, required fields, and supported associations to other CRM objects. The API exposes operations to list all schemas, create a new schema for a custom object, fetch or update an existing schema by objectType, delete a schema, and add or remove associations between schemas - making it the foundation for any HubSpot integration that goes beyond the standard contact, company, deal, ticket, and quote objects.

## For AI agents

Define and manage HubSpot custom object schemas - properties, primary display, and associations - so an agent can model bespoke CRM data structures and link them to standard objects.

## Scope

Does not handle individual record CRUD, property values, or workflow automation - use for defining custom object types, their properties, and their schema-level associations only.

## Capabilities

- List every custom object schema in the portal with GET /crm-object-schemas/v3/schemas
- Define a new custom object schema including properties and required fields via POST /crm-object-schemas/v3/schemas
- Read the current definition of a schema by objectType using GET /crm-object-schemas/v3/schemas/{objectType}
- Evolve a schema with additional properties or display rules using PATCH /crm-object-schemas/v3/schemas/{objectType}
- Add an association between two custom object schemas with POST /crm-object-schemas/v3/schemas/{objectType}/associations
- Remove a schema-level association via DELETE /crm-object-schemas/v3/schemas/{objectType}/associations/{associationIdentifier}
- Delete an obsolete schema with DELETE /crm-object-schemas/v3/schemas/{objectType}

## Use cases

### Modelling Industry-Specific Data With Custom Objects

When standard HubSpot objects (contacts, companies, deals, tickets) cannot represent industry-specific entities - like loans for a lender, vehicles for a dealership, or properties for a real-estate firm - teams use the Schemas API to define custom objects with the exact properties and display rules they need. Defining a schema is a one-time setup; once created, custom objects behave like standard objects with full CRUD, search, and association support across HubSpot.

Example prompt: Call POST /crm-object-schemas/v3/schemas with name, labels, primaryDisplayProperty, requiredProperties, and a properties array defining each field for the new custom object.

### Schema Evolution as Business Requirements Change

Business processes change, and existing custom objects need new fields or relationships over time. The Schemas API supports incremental updates via PATCH /crm-object-schemas/v3/schemas/{objectType} so engineers can add properties or update display configuration without recreating the schema. Combined with the associations endpoints, teams can also wire up new relationships (e.g., link a custom Project object to Deals) when the business model expands.

Example prompt: Call PATCH /crm-object-schemas/v3/schemas/{objectType} with an object containing the new property definitions and any updated display configuration.

### Connecting Custom Objects to Standard CRM Records

Custom objects are most useful when they relate to standard records - for example, a custom Subscription object linked to Companies and Deals so renewal data shows up in the right CRM views. POST /crm-object-schemas/v3/schemas/{objectType}/associations creates these schema-level associations, which then become available for object-level association calls. DELETE on the same path with an associationIdentifier tears the link down when needed.

Example prompt: Call POST /crm-object-schemas/v3/schemas/p_subscription/associations with fromObjectTypeId='p_subscription' and toObjectTypeId='0-2' to associate a Subscription custom object with Companies.

### AI Agent Bootstrapping a New HubSpot Tenant

An onboarding agent provisions a fresh HubSpot portal for a new customer by reading their data model from a config file and creating each custom object schema in turn. Through Jentic the agent searches for schema operations, loads the create and association schemas, and executes them in dependency order. Jentic stores the OAuth credentials in its vault so the agent only sees scoped execution tokens.

Example prompt: Search Jentic for 'create hubspot custom object schema', load the operation, and execute POST /crm-object-schemas/v3/schemas for each entry in the customer's data model config.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /crm-object-schemas/v3/schemas | List all custom object schemas |
| POST | /crm-object-schemas/v3/schemas | Create a new custom object schema |
| GET | /crm-object-schemas/v3/schemas/{objectType} | Get a schema by objectType |
| PATCH | /crm-object-schemas/v3/schemas/{objectType} | Update a schema |
| DELETE | /crm-object-schemas/v3/schemas/{objectType} | Delete a schema |
| POST | /crm-object-schemas/v3/schemas/{objectType}/associations | Create an association between schemas |
| DELETE | /crm-object-schemas/v3/schemas/{objectType}/associations/{associationIdentifier} | Remove a schema association |

## Key resources

- **Core** — Schema CRUD and association management for HubSpot custom objects via /crm-object-schemas/v3/schemas.

## Why Jentic

- **Setup:** Wiring HubSpot CRM Schemas by hand means learning its OAuth2 access token auth with the crm.schemas scopes, targeting the api.hubapi.com host, and shaping object-type and association payloads yourself. Through Jentic you install once, import HubSpot CRM Schemas from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** The Schemas API puts the object type in the URL path (/crm-object-schemas/v3/schemas/{objectType}), so a rule can pin your agent to one object type for reads and edits. You choose the operations it may call, so destructive ones like deleting a schema or removing an association are not included unless you add them.
- **Credential handling:** Your HubSpot access 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 'create a HubSpot custom object schema' or 'add a schema association', and Jentic returns the matching Schemas operation with its input schema so the agent models new object types without browsing the reference docs.

## Related APIs

- **Salesforce REST API** — Salesforce custom objects offer comparable extensibility through the Metadata API and Tooling API.
- **HubSpot Custom Objects** — Once a schema exists, the Custom Objects API performs CRUD on records of that custom object type.
- **HubSpot Properties** — The Properties API manages property definitions on any object type, including custom objects defined via Schemas.

## FAQ

### What authentication does the HubSpot CRM Schemas API use?

It uses OAuth 2.0 with the crm.schemas.custom.read and crm.schemas.custom.write scopes, passed as a Bearer token in the Authorization header. Through Jentic the OAuth token is stored encrypted in the vault and injected at execution time so the agent never holds the raw secret.

### Can I add a new property to an existing custom object with the Schemas API?

Yes. PATCH /crm-object-schemas/v3/schemas/{objectType} accepts a body that adds new property definitions to the schema. Property name, label, type, and groupName are required for each new property.

### What are the rate limits for the HubSpot CRM Schemas API?

HubSpot enforces 100 requests per 10 seconds for OAuth apps and 190 per 10 seconds for private apps on Enterprise tiers, plus daily quotas. Schema operations are typically infrequent (setup time and occasional changes) so rate limits rarely bind in practice.

### How do I create a custom object schema through Jentic?

Search Jentic for 'create hubspot custom object schema', load the POST /crm-object-schemas/v3/schemas operation, and execute it with name, labels, primaryDisplayProperty, requiredProperties, and a properties array. Jentic validates the input against the typed schema before sending.

### Can I delete a custom object schema once it has records?

HubSpot only allows deleting a schema after all records of that object type have been archived. Use the Custom Objects API to archive existing records first, then call DELETE /crm-object-schemas/v3/schemas/{objectType}.

### How do schema-level associations differ from record-level associations?

A schema-level association declares that two object types can be related (created via POST /crm-object-schemas/v3/schemas/{objectType}/associations). A record-level association uses the Associations API to link two specific records once the schema-level association exists. Both are required for end-to-end relationship modelling.

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

Yes. Because you self-host Jentic One, your own rules decide which of the seven Schemas operations your agent may call and which HubSpot credentials it may use. You can grant only read operations like GET /crm-object-schemas/v3/schemas and GET /crm-object-schemas/v3/schemas/{objectType} while withholding destructive ones such as DELETE on a schema or the removal of a schema association. Since the object type lives in the URL path, a rule can also pin the agent to a single object type for its reads and edits.
