deal/batch/read idProperty values using custom properties? is it possible?

The documentation for Accounts Dashboard | HubSpot endpoint /read lists an “idProperty” but doesn’t specify what values or format to use. Removing the field completely results in use of the Deal ID “hs_object_id” and if you use “id” or “hs_object_id” it works, but I want to use a custom property.

e.g. I want to look for Deals with a custom field “transaction_id” for a batch of records, so I know if I need to use the batch/create or batch/update

trying with “idProperty”: “transaction_id” just results in :

“Could not get some DEAL objects, they may be deleted or not exist. Check that ids are valid.”

Does deal/batch/read allow custom properties or am I missing something?

Other people have asked similar questions and are directed to the api/crm/search, but that is not a solution as it only allows 3 filters / 3 filter groups at a time, and I’m bulk updating potentially hundreds of deals (hence my wanting to use the batch option ) and I’d like to avoid having to look up each record as a separate api call

Hi @MWeddup,

The key here is that the enpdoint sepecifys “unique property values”. What this means(though the documentation is a little lacking in this subject), is that the property you are searching for must be unique.
To do this you must create a property from the api. If you use the `/crm/v3/properties/{objectType}` endpoint, you can specify “hasUniqueValue”: true. Which will enforce that the properties are unique across all objects, which can then be used for that endpoint.
For example:

With the results:

{
 "status": "COMPLETE",
 "results": [
 {
 "id": "6930077741",
 "properties": {
 "amount": "12000",
 "closedate": "2021-11-30T21:34:33.990Z",
 "createdate": "2021-11-15T21:34:33.990Z",
 "deal_unique_identifier": "eb0e42c9-09a9-4199-a4ce-f477a056fb16",
 "dealname": "Jar Jar - New Deal",
 "dealstage": "1634009",
 "hs_lastmodifieddate": "2022-01-26T17:31:00.289Z",
 "hs_object_id": "6930077741",
 "pipeline": "1634002"
 },
 "createdAt": "2021-11-15T21:34:33.990Z",
 "updatedAt": "2022-01-26T17:31:00.289Z",
 "archived": false
 }
 ],
 "numErrors": 1,
 "errors": [
 {
 "status": "error",
 "category": "OBJECT_NOT_FOUND",
 "message": "Could not get some DEAL objects, they may be deleted or not exist. Check that ids are valid.",
 "context": {
 "ids": [
 "6f19b2f7-aaf9-463e-8d79-c3a83d828cdd"
 ]
 }
 }
 ],
 "startedAt": "2022-01-26T17:32:14.267Z",
 "completedAt": "2022-01-26T17:32:14.293Z"
}

I had created the transaction_id property via the web interface via settings and properties, I shall remove it and recreate it via the api, thanks for your help