Unable to Filter Search on Products Object via CRM Search API (FilterGroups Always Fail)

Hi HubSpot Community,

I’m building an integration between NetSuite and HubSpot, and I’m trying to synchronize product data. I’ve successfully set up API authentication, and I can fetch Products via the /crm/v3/objects/products endpoint and also search products using the query parameter in the search API.

However, any time I try to use structured filters (i.e. filterGroups and filters) on the Products object, I get a generic error response:

{ “status”: “error”, “message”: “There was a problem with the request.”, “correlationId”: “ec277a53-70bd-4cfb-a5a7-8f1fc89a3c6c” }

For example, this works:

{ “query”: “Dummy”, “properties”: [“name”, “ns_item_id”, “price”, “description”], “limit”: 5 }

But this fails:

{ “filterGroups”: [ { “filters”: [ { “propertyName”: “name”, “operator”: “EQ”, “value”: “Dummy_product” } ] } ], “properties”: [“name”, “ns_item_id”, “price”, “description”], “limit”: 5 }

I’ve tried filtering on:

  • Default properties like name
  • Custom properties like ns_item_id

Every filter-based search fails the same way.

The documentation for the CRM search API suggests that filterGroups should work on all CRM objects, and the Products object is explicitly listed in the supported search endpoints:

/crm/v3/objects/products/search

Is there a known limitation on using filters with the Products object? Or is there an account or feature setting I’m missing to enable structured filtering on products?

I’d appreciate any insights, especially from anyone who has successfully performed filter-based searches on products!

Hey @RVerma62 :waving_hand: What about this?

POST https://api.hubapi.com/crm/v3/objects/products/search

{
 "filterGroups": [
 {
 "filters": [
 {
 "propertyName": "name",
 "operator": "IN",
 "values": [
 "Mega Ramp for Cats",
 "High speed ramp for cats",
 "Cats on Bikes"
 ]
 },
 {
 "propertyName": "ns_item_id",
 "operator": "NEQ",
 "value": "MRC-001"
 }
 ]
 }
 ],
 "properties": [
 "name",
 "price",
 "hs_sku",
 "ns_item_id"
 ]
}

Which gave me the expected response of

{
 "total": 3,
 "results": [
 {
 "id": "1545947753",
 "properties": {
 "createdate": "2022-07-13T21:21:36.128Z",
 "hs_lastmodifieddate": "2025-07-10T23:00:53.654Z",
 "hs_object_id": "1545947753",
 "hs_sku": null,
 "name": "Cats on Bikes",
 "ns_item_id": "maybe",
 "price": "6000"
 },
 "createdAt": "2022-07-13T21:21:36.128Z",
 "updatedAt": "2025-07-10T23:00:53.654Z",
 "archived": false
 },
 {
 "id": "1744257209",
 "properties": {
 "createdate": "2023-01-10T17:42:52.195Z",
 "hs_lastmodifieddate": "2025-07-10T23:00:22.220Z",
 "hs_object_id": "1744257209",
 "hs_sku": null,
 "name": "High speed ramp for cats",
 "ns_item_id": "no",
 "price": "60000"
 },
 "createdAt": "2023-01-10T17:42:52.195Z",
 "updatedAt": "2025-07-10T23:00:22.220Z",
 "archived": false
 },
 {
 "id": "15482619680",
 "properties": {
 "createdate": "2024-10-29T22:34:06.499Z",
 "hs_lastmodifieddate": "2025-07-10T22:59:58.658Z",
 "hs_object_id": "15482619680",
 "hs_sku": "ou812",
 "name": "Mega Ramp for Cats",
 "ns_item_id": "yes",
 "price": "100000"
 },
 "createdAt": "2024-10-29T22:34:06.499Z",
 "updatedAt": "2025-07-10T22:59:58.658Z",
 "archived": false
 }
 ]
}

Have fun testing!

Best,

Jaycee

Hey, @RVerma62 :waving_hand: Based on my tests, the bare minimum scopes needed to make the request work are `crm.objects.line_items.read` and `crm.objects.products.read` I made a new Private App with only Products and got the same (I assume) 403 error you were hitting. But adding Line Items to the scopes worked.

Talk soon! — Jaycee

Hi Jaycee,

Thanks so much for sharing your example, it’s super helpful to see it working for you!

I tried running your exact query (even copying the JSON from your post) against my account, but I’m still getting the same error response:

{“status”:“error”,“message”:“There was a problem with the request.”}

I’m using a private app with both the crm.objects.products.read and crm.objects.products.write scopes, so I’d love to check:

- Which scopes did you use in your request?

- Is there anything special you needed to enable in your account to get filters working for products?

I’m starting to wonder if this might be a limitation or configuration issue specific to my HubSpot account, since brute-force searching works fine for me, but filters always fail.

Thanks again for your help!

Hey, @RVerma62 :waving_hand: My private app token has lots of scopes added lol. But I can make a super simple version and test out what are the bare minimum scopes to get my request to work. I didn’t do anything special outside of using Postman to keep it simple and prove the endpoint will work in this way. Talk soon! — Jaycee