Unable to update company via API when using idProperty

The following request returns 404 Not Found.

curl --request PATCH \
 --url 'https://api.hubapi.com/crm/v3/objects/companies/abc_p0PGXKfNbcaYw5oW?idProperty=external_id' \
 --header 'authorization: Bearer pat-xxx' \
 --header 'content-type: application/json' \
 --data '{
 "properties": {
 "contracts_uploaded":"30"
 }
}'

I have confirmed that I can update using the HubSpot record ID with the following request:

curl --request PATCH \
 --url 'https://api.hubapi.com/crm/v3/objects/companies/8210492620' \
 --header 'authorization: Bearer pat-xxx' \
 --header 'content-type: application/json' \
 --data '{
 "properties": {
 "contracts_uploaded":"20"
 }
}'

I also confirmed that I can find the company by the external_id property when using the search API in the following request:

curl --request POST \
 --url https://api.hubapi.com/crm/v3/objects/companies/search \
 --header 'authorization: Bearer pat-xxx' \
 --header 'content-type: application/json' \
 --data '{
 "properties": [ "contracts_uploaded" ],
 "filterGroups": [
 {
 "filters": [
 {
 "propertyName": "external_id",
 "value": "abc_p0PGXKfNbcaYw5oW",
 "operator": "EQ"
 }
 ]
 }
 ]
}'

Any ideas why the first request is not working? I’d like to avoid having to make two separate API calls.

@mcote2 - checking that ‘external_id’ has been set up as a company property that requires a unique value (in property rules)

Good luck!

Steve

Thanks Steve! I saw in the API documentation that the property needed to be unique, but I wasn’t aware of the validation rule to enforce that.