Skip to content

HubSpot: Retrieve the schema of a specified custom object

HubSpot schemas.getSchema: arguments, response, policy and SDK examples.

← Schemas operations · Get started

Operation hubspot.schemas_get_schema

Provider route: GET /crm-object-schemas/2026-09/schemas/{objectType}. Alter supplies the connection’s credentials and routing.

Install @alter-ai/sdk @alter-ai/hubspot with npm, or alter-sdk-hubspot with pip. Supply your connected customer’s grant ID and the arguments described below.

import { App } from "@alter-ai/sdk";
import { HubSpotIntegration } from "@alter-ai/hubspot";
async function execute(input: Parameters<HubSpotIntegration["schemas"]["getSchema"]>[0]) {
const app = new App({ apiKey: process.env.ALTER_API_KEY! });
try {
const provider = new HubSpotIntegration(app, { grantId: process.env.PROVIDER_GRANT_ID! });
const call = await provider.schemas.getSchema(input);
const result = await call.wait();
return result.bodyJson();
} finally {
await app.close();
}
}
import os
from alter_sdk import App
from alter_sdk_hubspot import HubSpotIntegration
async def execute(arguments):
async with App(api_key=os.environ["ALTER_API_KEY"]) as app:
provider = HubSpotIntegration(app, {"grant_id": os.environ["PROVIDER_GRANT_ID"]})
call = await provider.schemas.get_schema(arguments)
result = await call.wait()
return result.body_json()
FieldTypePresenceDescription and constraints
$objectRootAdditional keys: not allowed
pathobjectRequired within parentAdditional keys: not allowed
path.objectTypestringRequired within parent
queryobjectOptionalAdditional keys: not allowed
query.includeAssociationDefinitionsbooleanOptionalDefault: true
query.includeAuditMetadatabooleanOptionalDefault: true
query.includePropertyDefinitionsbooleanOptionalDefault: true

Response media type: application/json. The table describes the pinned successful response. Referenced models link to their complete fields.

FieldTypePresenceDescription and constraints
$ModelRootExpand Create a new custom object schema — response body

Referenced models: Create a new custom object schema — response body

1 more schema is linked from the tables above, on the schema pages.

Create a new custom object schema — response body
FieldTypePresenceDescription and constraints
$objectRoot
allowsSensitivePropertiesbooleanRequired within parentA boolean indicating whether the object schema allows sensitive properties.
archivedbooleanRequired within parentA boolean indicating whether the object schema is archived.
associationsarrayRequired within parentAssociations defined for a given object type.
associations[]ModelEach itemExpand Create an association for a specified object type — response body
createdAtstringOptionalWhen the object schema was created.
Format: date-time
createdByUserIdJSONOptional
createdByUserId (anyOf 1)integerAlternativeAn integer representing the ID of the user who created the object schema.
Format: int32
createdByUserId (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
descriptionstringOptionalA string providing a description of the object schema.
fullyQualifiedNamestringRequired within parentAn assigned unique ID for the object, including portal ID and object name.
idstringRequired within parentA unique ID for this schema's object type. Will be defined as {meta-type}-{unique ID}.
labelsModelRequired within parentExpand Create a new custom object schema — response body — labels
namestringRequired within parentA unique name for the schema's object type.
objectTypeIdstringRequired within parentA string representing the type ID of the object.
primaryDisplayPropertystringOptionalThe name of the primary property for this object. This will be displayed as primary on the HubSpot record page for this object type.
propertiesarrayRequired within parentProperties defined for this object type.
properties[]ModelEach itemExpand Create a new custom object schema — response body — properties item
requiredPropertiesarrayRequired within parentThe names of properties that should be **required** when creating an object of this type.
requiredProperties[]stringEach item
searchablePropertiesarrayRequired within parentNames of properties that will be indexed for this object type in by HubSpot's product search.
searchableProperties[]stringEach item
secondaryDisplayPropertiesarrayRequired within parentThe names of secondary properties for this object. These will be displayed as secondary on the HubSpot record page for this object type.
secondaryDisplayProperties[]stringEach item
updatedAtstringOptionalWhen the object schema was last updated.
Format: date-time
updatedByUserIdJSONOptional
updatedByUserId (anyOf 1)integerAlternativeAn integer representing the ID of the user who last updated the object schema.
Format: int32
updatedByUserId (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$

Referenced models: Create an association for a specified object type — response body, Create a new custom object schema — response body — labels, Create a new custom object schema — response body — properties item

Create an association for a specified object type — response body
FieldTypePresenceDescription and constraints
$objectRootThe definition of an association
createdAtstringOptionalWhen the association was defined.
Format: date-time
fromObjectTypeIdstringRequired within parentID of the primary object type to link from.
idstringRequired within parentA unique ID for this association.
namestringOptionalA unique name for this association.
toObjectTypeIdstringRequired within parentID of the target object type ID to link to.
updatedAtstringOptionalWhen the association was last updated.
Format: date-time
Create a new custom object schema — response body — labels
FieldTypePresenceDescription and constraints
$objectRoot
pluralstringOptionalThe word for multiple objects. (There’s no way to change this later.)
singularstringOptionalThe word for one object. (There’s no way to change this later.)
Create a new custom object schema — response body — properties item
FieldTypePresenceDescription and constraints
$objectRootA HubSpot property
archivedbooleanOptionalWhether or not the property is archived.
archivedAtstringOptionalWhen the property was archived.
Format: date-time
calculatedbooleanOptionalFor default properties, true indicates that the property is calculated by a HubSpot process. It has no effect for custom properties.
calculationFormulastringOptionalThe formula used to calculate the value of this property, if it is a calculated property.
createdAtstringOptionalWhen the property was created
Format: date-time
createdUserIdstringOptionalThe internal ID of the user who created the property in HubSpot. This field may not exist if the property was created outside of HubSpot.
currencyPropertyNamestringOptionalThe name of the property that defines the currency for this property, if applicable.
dataSensitivitystringOptionalThe sensitivity level of the data stored in this property, such as 'sensitive' or 'highly_sensitive'.
Known values: highly_sensitive, non_sensitive, sensitive
dateDisplayHintstringOptionalControls how date properties are displayed in the HubSpot UI, with options such as 'absolute', 'absolute_with_relative', 'time_since', and 'time_until'.
Known values: absolute, absolute_with_relative, time_since, time_until
descriptionstringRequired within parentA description of the property that will be shown as help text in HubSpot.
displayOrderJSONOptional
displayOrder (anyOf 1)integerAlternativeThe order that this property should be displayed in the HubSpot UI relative to other properties for this object type. Properties are displayed in order starting with the lowest positive integer value. A value of -1 will cause the property to be displayed **after** any positive values.
Format: int32
displayOrder (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
externalOptionsbooleanOptionalFor default properties, true indicates that the options are stored externally to the property settings.
fieldTypestringRequired within parentControls how the property appears in HubSpot.
formFieldbooleanOptionalWhether or not the property can be used in a HubSpot form.
groupNamestringRequired within parentThe name of the property group the property belongs to.
hasUniqueValuebooleanOptionalWhether or not the property's value must be unique. Once set, this can't be changed.
hiddenbooleanOptionalHidden options won't be shown in HubSpot.
hubspotDefinedbooleanOptionalThis will be true for default object properties built into HubSpot.
labelstringRequired within parentA human-readable property label that will be shown in HubSpot.
modificationMetadataModelOptionalExpand Create a new custom object schema — response body — properties item modification Metadata
namestringRequired within parentThe internal property name, which must be used when referencing the property via the API.
numberDisplayHintstringOptionalA hint for how number values should be displayed, with options like 'formatted' or 'currency'.
Known values: currency, duration, formatted, percentage, probability, unformatted
optionsarrayRequired within parentA list of valid options for the property. This field is required for enumerated properties, but will be empty for other property types.
options[]ModelEach itemExpand Read a property — response body — options item
referencedObjectTypestringOptionalIf this property is related to other object(s), they'll be listed here.
sensitiveDataCategoriesarrayOptionalAn array of categories that describe the types of sensitive data contained in this property.
sensitiveDataCategories[]stringEach item
showCurrencySymbolbooleanOptionalWhether the property will display the currency symbol set in the account settings.
textDisplayHintstringOptionalA hint for how text values should be displayed, with options like 'email' or 'phone_number'.
Known values: domain_name, email, ip_address, multi_line, phone_number, physical_address, postal_code, unformatted_single_line
typestringRequired within parentThe property data type.
updatedAtstringOptionalWhen the object type was last updated.
Format: date-time
updatedUserIdstringOptionalThe internal user ID of the user who updated the property in HubSpot. This field may not exist if the property was updated outside of HubSpot.

Referenced models: Read a property — response body — options item, Create a new custom object schema — response body — properties item modification Metadata

Create a new custom object schema — response body — properties item modification Metadata
FieldTypePresenceDescription and constraints
$objectRoot
archivablebooleanRequired within parentIndicates whether the property can be archived.
readOnlyDefinitionbooleanRequired within parentIndicates whether the property's definition is read-only.
readOnlyOptionsbooleanOptionalIndicates whether the property's options are read-only.
readOnlyValuebooleanRequired within parentIndicates whether the property's value is read-only.

SDK function policy ID: hubspot.schemas_get_schema. Catalog operation: schemas_get_schema. Rules can name either ID; function rules distinguish managed calls and conservatively cover raw calls sharing the route. Existing grant permissions and policy rules apply. wait() returns an immediate result or waits for a required approval; it never approves the request itself. Persist the approval ID to resume after a restart.

Provider errors retain their response; JSON decoding raises ProviderAPIError for provider failures. ManagedOperationError identifies contract/input/retention errors. See error handling and provider-specific behavior. Sensitive input may be refused before approval storage. A decoding error never resubmits a write.

Required provider scopes: ["crm.objects.custom.highly_sensitive.read.v2", "crm.objects.custom.read", "crm.objects.custom.sensitive.read.v2", "crm.schemas.custom.read", "oauth"]

Official provider source

Report an issue with this page

Necessary

Required for sign-in, security, authorization, and remembering your choices.

Always active

Analytics

Helps us understand which product and documentation features are useful.

Performance diagnostics

Uses performance tracing and privacy-masked session replay to diagnose problems.

You can change these choices at any time from Cookie settings.