---
title: "Perform a batch upsert operation on subscription objects."
method: POST
path: "/crm/objects/2026-03/subscriptions/batch/upsert"
tags: ["Batch"]
---

# Perform a batch upsert operation on subscription objects.

`POST /crm/objects/2026-03/subscriptions/batch/upsert`

This endpoint allows you to perform a batch upsert operation on subscription objects, which will either update existing records or create new ones if they do not already exist. The operation returns the status, timestamps, and a list of successfully processed objects.

## Request body

- CrmObjectsBatchInputSimplePublicObjectBatchInputUpsert
  - `inputs` CrmObjectsSimplePublicObjectBatchInputUpsert[], required
    - `id` string, required — The unique ID of the object.
    - `idProperty` string — The name of a property whose values are unique for this object
    - `objectWriteTraceId` string — An identifier for tracing the creation request.
    - `properties` object, required — Key value pairs representing the properties of the object.

## Response `200`

successful operation

- CrmObjectsBatchResponseSimplePublicUpsertObject — Represents the result of a batch upsert operation, including the operation’s status, timestamps, and a list of successfully created or updated objects.
  - `completedAt` string, date-time, required — The timestamp when the batch process was completed, in ISO 8601 format.
  - `links` object — An object containing relevant links related to the batch request.
  - `requestedAt` string, date-time — The timestamp when the batch process was initiated, in ISO 8601 format.
  - `results` CrmObjectsSimplePublicUpsertObject[], required
    - `archived` boolean, required — Whether the object is archived.
    - `archivedAt` string, date-time — The timestamp when the object was archived, in ISO 8601 format.
    - `createdAt` string, date-time, required — The timestamp when the object was created, in ISO 8601 format.
    - `id` string, required — The unique ID of the object.
    - `new` boolean, required — Whether the property is new.
    - `objectWriteTraceId` string — An identifier used for tracing the write request for the object.
    - `properties` object, required — Key value pairs representing the properties of the object.
    - `propertiesWithHistory` object — Key-value pairs representing the properties of the object along with their history.
    - `updatedAt` string, date-time, required — The timestamp when the object was last updated, in ISO 8601 format.
    - `url` string — The URL associated with the object.
  - `startedAt` string, date-time, required — The timestamp when the batch process began execution, in ISO 8601 format.
  - `status` 'CANCELED' | 'COMPLETE' | 'PENDING' | 'PROCESSING', required — The status of the batch processing request. Can be: "PENDING", "PROCESSING", "CANCELED", or "COMPLETE".

## Other responses

- `207` — multiple statuses
- `default` — An error occurred.

## Changes

> 14 revisions in range; 1 not diffed, 2 could not be searched.

- **2026-04-08** `b0d8bc008db9` — 2 info
  - the security scope `crm.objects.listings.write` was added to the endpoint's security scheme `private_apps`
  - the security scope `crm.objects.deals.highly_sensitive.write` was removed from the endpoint's security scheme `private_apps`
- **2026-04-03** `3578967e48df` — 2 info
  - the security scope `crm.objects.listings.write` was added to the endpoint's security scheme `private_apps`
  - the security scope `crm.objects.deals.highly_sensitive.write` was removed from the endpoint's security scheme `private_apps`
- **2026-04-01** `e0403341222c` — 2 warning, 3 info
  - removed the optional property `errors` from the response with the `200` status
  - removed the optional property `numErrors` from the response with the `200` status
  - the security scope `crm.objects.listings.write` was added to the endpoint's security scheme `private_apps`
  - the security scope `crm.objects.deals.highly_sensitive.write` was removed from the endpoint's security scheme `private_apps`
  - …1 more
- **2026-03-31** `f33be5a82610` — 2 info
  - the security scope `crm.objects.listings.write` was added to the endpoint's security scheme `private_apps`
  - the security scope `crm.objects.deals.highly_sensitive.write` was removed from the endpoint's security scheme `private_apps`
- …earlier changes not shown

[Full history](https://skmtc.dev/hubspot/apis/hubspot-api-specification/changes/crm/objects/2026-03/subscriptions/batch/upsert/post.md)

---

[API](https://skmtc.dev/hubspot/apis/hubspot-api-specification.md) · [All operations](https://skmtc.dev/hubspot/apis/hubspot-api-specification/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/hubspot/hubspot-api-specification/revisions/f9c7181056c5/schema)
