Subject: Clarification on generic CRM v3 batch operation OpenAPI specification
Previously, HubSpot exposed a generic batch-create operation for CRM objects:
POST /crm/v3/objects/{objectType}/batch/create
Our understanding was that this operation used a common contract across standard and custom objects: the same path parameter, request and response structure, required fields, and general validation behavior. Our integration separately retrieves the selected object’s properties through HubSpot metadata and uses those to populate the request and response property fields.
We now see object-specific OpenAPI specifications for standard objects, while the generic CRM Objects definition appears available only for custom objects. Could you please clarify the following?
- Has the generic batch-create API contract intentionally been removed for standard CRM objects?
- Do Contact, Company, Deal, Ticket, Product, and Line Item batch-create operations differ at the API-contract level—for example, in path or query parameters, request/response schemas, required fields, validation behavior, associations, or error responses?
- If the operation contract remains functionally the same and only object properties differ, why was the generic CRM Objects specification/catalog entry replaced by object-specific specifications?
- What generic OpenAPI specification do you recommend for integrations that must support both standard and custom CRM objects?
- What is the stable discovery mechanism for the generic CRM Objects specification?
- Is there a dedicated stable OpenAPI URL?
- Is there a stable specification ID, tag, metadata attribute, or documented catalog query?
- Is HubSpot planning to restore or provide a stable identifier for the generic CRM Objects specification?
- When was this change introduced? Please share the relevant changelog, release note, or OpenAPI specification/catalog change.
From our perspective, object properties are already handled through separate metadata calls. An object-specific OpenAPI document is therefore necessary only if the operation contract itself differs—not solely because objects such as Contacts, Companies, and Deals expose different properties.
We would appreciate confirmation on whether the per-object specifications reflect an actual API-contract difference or only a catalog/documentation restructuring.
What is the recommended stable discovery mechanism for the generic CRM Objects specification?
Is there a dedicated stable OpenAPI URL?
Is there a stable specification ID, tag, metadata attribute, or documented catalog query?
Is HubSpot planning to restore or provide a stable identifier for the generic CRM Objects spec?