> ## Documentation Index
> Fetch the complete documentation index at: https://developers.hubspot.de/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Search for products using specified criteria.

> Suchen Sie nach CRM-Objekten eines bestimmten Typs mithilfe verschiedener Filter und Kriterien. Dieser Endpunkt ermöglicht es Ihnen, eine Sammlung von Objekten basierend auf den im Anfragetext definierten Suchparametern abzurufen. Dies ist nützlich, um bestimmte Datensätze zu finden, die bestimmten Bedingungen in Ihrem HubSpot-Account entsprechen.

> **Supported products**

> **Required Scopes**


## OpenAPI

````yaml specs/2026-09/crm-products-v2026-09.json POST /crm/objects/2026-09/products/search
openapi: 3.0.1
info:
  title: CRM Products
  description: Basepom for all HubSpot Projects
  version: 2026-09
  x-hubspot-product-tier-requirements:
    marketing: FREE
    sales: FREE
    service: FREE
    cms: FREE
    commerce: FREE
    crmHub: FREE
    dataHub: FREE
servers:
  - url: https://api.hubapi.com
security: []
tags:
  - name: Advanced
  - name: Basic
  - name: Batch
  - name: Search
paths:
  /crm/objects/2026-09/products/search:
    post:
      tags:
        - Search
      summary: Suchen
      description: >-
        Suchen Sie nach CRM-Objekten eines bestimmten Typs mithilfe
        verschiedener Filter und Kriterien. Dieser Endpunkt ermöglicht es Ihnen,
        eine Sammlung von Objekten basierend auf den im Anfragetext definierten
        Suchparametern abzurufen. Dies ist nützlich, um bestimmte Datensätze zu
        finden, die bestimmten Bedingungen in Ihrem HubSpot-Account entsprechen.
      operationId: >-
        post-/crm/objects/2026-09/products/search_/crm/objects/2026-09-beta/{objectType}/search
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PublicObjectSearchRequest'
        required: true
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/CollectionResponseWithTotalSimplePublicObject
        default:
          $ref: '#/components/responses/Error'
          description: ''
      security:
        - oauth2:
            - crm.objects.deals.read
        - oauth2:
            - crm.objects.subscriptions.read
        - oauth2:
            - crm.objects.services.read
        - oauth2:
            - crm.objects.tickets.sensitive.read
        - oauth2:
            - crm.objects.orders.read
        - oauth2:
            - crm.objects.listings.write
        - oauth2:
            - crm.objects.custom.read
        - oauth2:
            - crm.objects.companies.write
        - oauth2:
            - crm.objects.tasks.read
        - oauth2:
            - crm.objects.custom.sensitive.write.v2
        - oauth2:
            - crm.objects.custom.highly_sensitive.write.v2
        - oauth2:
            - crm.objects.companies.read
        - oauth2:
            - crm.objects.appointments.sensitive.read.v2
        - oauth2:
            - crm.objects.contacts.highly_sensitive.read.v2
        - oauth2:
            - crm.objects.tickets.highly_sensitive.read
        - oauth2:
            - crm.objects.companies.sensitive.read.v2
        - oauth2:
            - crm.objects.tickets.sensitive.write
        - oauth2:
            - media_bridge.read
        - oauth2:
            - crm.objects.deals.highly_sensitive.read.v2
        - oauth2:
            - crm.objects.contacts.highly_sensitive.write.v2
        - oauth2:
            - crm.objects.companies.highly_sensitive.read.v2
        - oauth2:
            - crm.objects.commercepayments.write
        - oauth2:
            - crm.objects.invoices.write
        - oauth2:
            - crm.objects.contacts.sensitive.write.v2
        - oauth2:
            - crm.objects.calls.read
        - oauth2:
            - crm.objects.users.write
        - oauth2:
            - crm.objects.meetings.read
        - oauth2:
            - crm.objects.custom.sensitive.read.v2
        - oauth2:
            - crm.objects.users.read
        - oauth2:
            - crm.objects.partner-services.read
        - oauth2:
            - crm.objects.orders.write
        - oauth2:
            - crm.objects.partner-services.write
        - oauth2:
            - crm.objects.appointments.write
        - oauth2:
            - crm.objects.projects.highly_sensitive.write
        - oauth2:
            - crm.objects.carts.write
        - oauth2:
            - crm.objects.tickets.highly_sensitive.write
        - oauth2:
            - crm.objects.commercepayments.read
        - oauth2:
            - crm.objects.products.write
        - oauth2:
            - crm.objects.feedback_submissions.read
        - oauth2:
            - crm.objects.services.write
        - oauth2:
            - crm.objects.subscriptions.write
        - oauth2:
            - crm.objects.deals.sensitive.write.v2
        - oauth2:
            - crm.objects.contacts.read
        - oauth2:
            - crm.objects.appointments.sensitive.write.v2
        - oauth2:
            - crm.objects.projects.highly_sensitive.read
        - oauth2:
            - crm.objects.invoices.read
        - oauth2:
            - crm.objects.custom.write
        - oauth2:
            - tickets.sensitive.v2
        - oauth2:
            - crm.objects.deals.write
        - oauth2:
            - e-commerce
        - oauth2:
            - crm.objects.appointments.read
        - oauth2:
            - crm.objects.projects.read
        - oauth2:
            - crm.objects.companies.sensitive.write.v2
        - oauth2:
            - crm.objects.companies.highly_sensitive.write.v2
        - oauth2:
            - crm.objects.deals.highly_sensitive.write.v2
        - oauth2:
            - crm.objects.custom.highly_sensitive.read.v2
        - oauth2:
            - crm.objects.goals.write
        - oauth2:
            - crm.objects.projects.sensitive.read
        - oauth2:
            - crm.objects.line_items.write
        - oauth2:
            - crm.objects.contacts.write
        - oauth2:
            - crm.objects.goals.read
        - oauth2:
            - crm.objects.line_items.read
        - oauth2:
            - crm.objects.partner-clients.write
        - oauth2:
            - crm.objects.projects.write
        - oauth2:
            - crm.objects.projects.sensitive.write
        - oauth2:
            - crm.objects.deals.sensitive.read.v2
        - oauth2:
            - crm.objects.quotes.write
        - oauth2:
            - tickets.highly_sensitive.v2
        - oauth2:
            - crm.objects.leads.read
        - oauth2:
            - crm.objects.leads.write
        - oauth2:
            - crm.objects.carts.read
        - oauth2:
            - crm.objects.emails.read
        - oauth2:
            - crm.objects.quotes.read
        - oauth2:
            - crm.objects.courses.write
        - oauth2:
            - crm.objects.partner-clients.read
        - oauth2:
            - crm.objects.notes.read
        - oauth2:
            - crm.objects.courses.read
        - oauth2:
            - crm.objects.listings.read
        - oauth2:
            - crm.objects.contacts.sensitive.read.v2
        - oauth2:
            - crm.objects.products.read
components:
  schemas:
    PublicObjectSearchRequest:
      required:
        - after
        - filterGroups
        - limit
        - properties
        - sorts
      type: object
      properties:
        after:
          type: string
          description: >-
            Eine Zeichenfolge, die das Paging-Cursor-Token darstellt, um
            Ergebnisse nach einem bestimmten Punkt abzurufen.
        filterGroups:
          type: array
          description: >-
            Ein Array von Filtergruppen, die zur Verfeinerung der Suchergebnisse
            verwendet werden. Jede Filtergruppe enthält eine Reihe von Filtern,
            die zusammen angewendet werden.
          items:
            $ref: '#/components/schemas/FilterGroup'
        limit:
          type: integer
          description: >-
            Eine Ganzzahl, die die maximale Anzahl der zurückzugebenden
            Ergebnisse angibt.
          format: int32
        properties:
          type: array
          description: >-
            Ein Array von Zeichenfolgen, das angibt, welche Eigenschaften der
            Objekte in den Suchergebnissen zurückgegeben werden sollen.
          items:
            type: string
        query:
          type: string
          description: Eine Zeichenfolge, die die anzuwendende Suchanfrage darstellt.
        sorts:
          type: array
          description: >-
            Ein Array von Zeichenfolgen, das die Sortierreihenfolge der
            Suchergebnisse angibt.
          items:
            type: string
      description: Beschreibt eine Suchanfrage
    CollectionResponseWithTotalSimplePublicObject:
      required:
        - results
        - total
      type: object
      properties:
        paging:
          $ref: '#/components/schemas/Paging'
        results:
          type: array
          description: >-
            Ein Array einfacher öffentlicher Objekte, die auf der aktuellen
            Seite der Sammlung enthalten sind.
          items:
            $ref: '#/components/schemas/SimplePublicObject'
        total:
          type: integer
          description: Die Anzahl der verfügbaren Ergebnisse
          format: int32
      description: >-
        Stellt eine Liste einfacher Objekte dar, die von einer API-Anfrage
        zurückgegeben werden, zusammen mit der Gesamtzahl der verfügbaren
        Objekte.
    FilterGroup:
      required:
        - filters
      type: object
      properties:
        filters:
          type: array
          description: >-
            Ein Array von Filterobjekten, die die Kriterien für die Suche
            definieren. Jeder Filter gibt eine Eigenschaft, einen Operator und
            einen Wert an, nach dem gefiltert werden soll.
          items:
            $ref: '#/components/schemas/Filter'
      description: >-
        Stellt eine Gruppe von Filtern dar, die zum Abfragen von Daten in
        HubSpot verwendet werden. Diese Komponente wird verwendet, um Kriterien
        für die Filterung von Datensätzen in verschiedenen API-Endpunkten zu
        definieren.
    Paging:
      type: object
      properties:
        next:
          $ref: '#/components/schemas/NextPage'
        prev:
          $ref: '#/components/schemas/PreviousPage'
      description: >-
        Stellt die Informationen zur Seitennummerierung für die Navigation durch
        eine Ergebnisliste in der API dar. Enthält Details zum Zugriff auf den
        vorherigen oder nächsten Satz von Ergebnissen.
    SimplePublicObject:
      required:
        - archived
        - createdAt
        - id
        - properties
        - updatedAt
      type: object
      properties:
        archived:
          type: boolean
          description: Ein boolescher Wert, der angibt, ob dieses Objekt archiviert ist.
        archivedAt:
          type: string
          description: >-
            Der Zeitpunkt (Datum und Uhrzeit) der Archivierung dieses Objekts im
            ISO-8601-Format.
          format: date-time
        createdAt:
          type: string
          description: >-
            Der Zeitpunkt (Datum und Uhrzeit) der Erstellung dieses Objekts im
            ISO-8601-Format.
          format: date-time
        id:
          type: string
          description: Die eindeutige ID für dieses Objekt, dargestellt als Zeichenfolge.
        objectWriteTraceId:
          type: string
          description: >-
            Eine Zeichenfolge, die zum Tracen der Schreibvorgänge für dieses
            Objekt verwendet wird.
        properties:
          type: object
          additionalProperties:
            type: string
          description: >-
            Eine Zuordnung von Eigenschaftsnamen zu ihren Werten, wobei jeder
            Wert eine Zeichenfolge ist.
        propertiesWithHistory:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/ValueWithTimestamp'
          description: >-
            Eine Zuordnung von Eigenschaftsnamen zu einem Array von historischen
            Werten, jeweils mit einem Zeitstempel und Quellinformationen.
        updatedAt:
          type: string
          description: >-
            Der Zeitpunkt (Datum und Uhrzeit) der letzten Aktualisierung dieses
            Objekts im ISO-8601-Format.
          format: date-time
        url:
          type: string
          description: Eine Zeichenfolge, die die URL dieses Objekts darstellt.
        warnings:
          type: array
          description: >-
            Ein Array von Warnungen zu diesem Objekt, die jeweils eine
            Kategorie, eine Nachricht und einen Kontext enthalten.
          items:
            $ref: '#/components/schemas/PublicObjectWarning'
      description: Ein einfaches öffentliches Objekt.
    Error:
      required:
        - category
        - correlationId
        - message
      type: object
      properties:
        category:
          type: string
          description: Die Fehlerkategorie
        context:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: Kontext zur Fehlerbedingung
          example: >-
            {invalidPropertyName=[propertyValue], missingScopes=[scope1,
            scope2]}
        correlationId:
          type: string
          description: >-
            Eine eindeutige ID für die Anfrage. Berücksichtigen Sie diesen Wert
            in Fehlerberichten oder Support-Tickets.
          format: uuid
          example: aeb5f871-7f07-4993-9211-075dc63e7cbf
        errors:
          type: array
          description: Weitere Informationen zum Fehler
          items:
            $ref: '#/components/schemas/ErrorDetail'
        links:
          type: object
          additionalProperties:
            type: string
          description: >-
            Eine Zuordnung der Namen von Links zu zugeordneten URIs mit einer
            Dokumentation zum Fehler oder empfohlenen Abhilfemaßnahmen
        message:
          type: string
          description: >-
            Eine für Menschen lesbare Nachricht mit einer Beschreibung des
            Fehlers und ggf. Abhilfemaßnahmen
          example: An error occurred
        subCategory:
          type: string
          description: Eine spezifische Kategorie, die genauere Details zum Fehler enthält
      description: >-
        Stellt eine Fehlerantwort dar, die von der API zurückgegeben wird, wenn
        ein Vorgang fehlschlägt. Diese Komponente wird in verschiedenen
        Endpunkten verwendet, um detaillierte Informationen über den
        aufgetretenen Fehler bereitzustellen.
      example:
        message: Invalid input (details will vary based on the error)
        correlationId: aeb5f871-7f07-4993-9211-075dc63e7cbf
        category: VALIDATION_ERROR
        links:
          knowledge-base: https://www.hubspot.com/products/service/knowledge-base
    Filter:
      required:
        - operator
        - propertyName
      type: object
      properties:
        highValue:
          type: string
          description: >-
            Eine optionale Zeichenfolge, die den oberen Grenzwert für
            bereichsbasierte Filter darstellt.
        operator:
          type: string
          description: >-
            Der Operator, der für die Filterbedingung verwendet wird. Es handelt
            sich um eine Zeichenfolge. Zu den gültigen Optionen gehören „EQ“,
            „NEQ“, „LT“, „LTE“, „GT“, „GTE“, „BETWEEN“, „IN“, „NOT_IN“,
            „HAS_PROPERTY“, „NOT_HAS_PROPERTY“, „CONTAINS_TOKEN“ und
            „NOT_CONTAINS_TOKEN“.
          enum:
            - BETWEEN
            - CONTAINS_TOKEN
            - EQ
            - GT
            - GTE
            - HAS_PROPERTY
            - IN
            - LT
            - LTE
            - NEQ
            - NOT_CONTAINS_TOKEN
            - NOT_HAS_PROPERTY
            - NOT_IN
        propertyName:
          type: string
          description: >-
            Der Name der Eigenschaft, nach der gefiltert werden soll. Es ist
            eine Zeichenfolge, die angibt, auf welche Eigenschaft des Objekts
            der Filter angewendet wird.
        value:
          type: string
          description: >-
            Der spezifische Wert, nach dem gefiltert werden soll. Dies ist eine
            Zeichenfolge, die den Zielwert für die angegebene Eigenschaft
            darstellt.
        values:
          type: array
          description: "Ein Array von Zeichenfolgen, das mehrere Werte für den Filter darstellt. Dies wird verwendet, wenn der Filter-Operator mehrere Werte unterstützt, z.\_B. „IN“ oder „NOT_IN“."
          items:
            type: string
      description: >-
        Definiert eine einzelne Bedingung für die Suche nach CRM-Objekten, wobei
        die zu filternde Eigenschaft, der zu verwendende Operator (wie „gleich“,
        „größer als“ oder „enthält“) und die zu vergleichenden Werte angegeben
        werden. 
    NextPage:
      required:
        - after
      type: object
      properties:
        after:
          type: string
          description: >-
            Ein Zeichenfolgen-Token, das als Cursor verwendet wird, um die
            nächste Ergebnisseite in einer paginierten Antwort abzurufen.
        link:
          type: string
          description: >-
            Eine Zeichenfolge, die den URL-Link zur nächsten Ergebnisseite
            darstellt.
      description: >-
        Gibt die Seitennummerierungsinformationen an, die zum Abrufen der
        nächsten Ergebnisse in einer seitennummerierten API-Antwort erforderlich
        sind
    PreviousPage:
      required:
        - before
      type: object
      properties:
        before:
          type: string
          description: >-
            Ein Zeichenfolge-Token, das zum Abrufen der vorherigen Ergebnisseite
            verwendet wird.
        link:
          type: string
          description: Eine URL-Zeichenfolge, die auf die vorherige Ergebnisseite verlinkt.
      description: >-
        Gibt die Seitennummerierungsinformationen an, die zum Abrufen der
        vorherigen Ergebnisse in einer seitennummerierten API-Antwort
        erforderlich sind
    ValueWithTimestamp:
      required:
        - sourceType
        - timestamp
        - value
      type: object
      properties:
        sourceId:
          type: string
          description: >-
            Eine Zeichenfolgen-ID für die spezifische Quelle, die den Wert
            bereitgestellt hat.
        sourceLabel:
          type: string
          description: Ein Zeichenfolgenlabel, das die Quelle des Werts beschreibt.
        sourceType:
          type: string
          description: >-
            Eine Zeichenfolge, die den Typ der Quelle angibt, die den Wert
            bereitgestellt hat.
        timestamp:
          type: string
          description: >-
            Der Zeitpunkt (Datum und Uhrzeit) der Erfassung des Werts im
            ISO-8601-Format.
          format: date-time
        updatedByUserId:
          type: integer
          description: >-
            Eine Ganzzahl, die die ID des Benutzers darstellt, der den Wert
            zuletzt aktualisiert hat.
          format: int32
        value:
          type: string
          description: Der aktuelle Wert der Eigenschaft, dargestellt als Zeichenfolge.
      description: Eigenschaftsmodell, das einen Zeitstempel enthält.
    PublicObjectWarning:
      required:
        - category
        - context
        - message
      type: object
      properties:
        category:
          type: string
          description: Eine Zeichenfolge, die die Kategorie der Warnung angibt.
        context:
          type: object
          additionalProperties:
            type: string
          description: >-
            Ein Objekt, das zusätzlichen Kontext zur Warnung bereitstellt, mit
            Zeichenfolgenwerten für jeden Kontextschlüssel.
        message:
          type: string
          description: Eine Zeichenfolge, die die Warnmeldung enthält.
      description: >-
        Stellt eine Warnmeldung zu einem öffentlichen Objekt in HubSpot dar, die
        Details zur Art und zum Kontext der Warnung bereitstellt.
    ErrorDetail:
      required:
        - message
      type: object
      properties:
        code:
          type: string
          description: Der Statuscode, der dem Fehlerdetail zugeordnet ist
        context:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: Kontext zur Fehlerbedingung
          example: '{missingScopes=[scope1, scope2]}'
        in:
          type: string
          description: >-
            Der Name des Felds oder Parameters, in dem der Fehler gefunden
            wurde.
        message:
          type: string
          description: >-
            Eine für Menschen lesbare Nachricht mit einer Beschreibung des
            Fehlers und ggf. Abhilfemaßnahmen
        subCategory:
          type: string
          description: Eine spezifische Kategorie, die genauere Details zum Fehler enthält
      description: >-
        Stellt detaillierte Informationen zu einem in der API aufgetretenen
        Fehler dar. Diese Komponente wird verwendet, um zusätzlichen Kontext und
        spezifische Details zu Fehlern bereitzustellen, typischerweise als Teil
        einer Fehlerantwort.
  responses:
    Error:
      description: An error occurred.
      content:
        '*/*':
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    oauth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://app.hubspot.com/oauth/authorize
          tokenUrl: https://api.hubapi.com/oauth/v1/token
          scopes:
            crm.objects.appointments.read: ''
            crm.objects.appointments.sensitive.read.v2: ''
            crm.objects.appointments.sensitive.write.v2: ''
            crm.objects.appointments.write: ''
            crm.objects.calls.read: ''
            crm.objects.carts.read: ''
            crm.objects.carts.write: ''
            crm.objects.commercepayments.read: ''
            crm.objects.commercepayments.write: ''
            crm.objects.companies.highly_sensitive.read.v2: ''
            crm.objects.companies.highly_sensitive.write.v2: ''
            crm.objects.companies.read: ''
            crm.objects.companies.sensitive.read.v2: ''
            crm.objects.companies.sensitive.write.v2: ''
            crm.objects.companies.write: ''
            crm.objects.contacts.highly_sensitive.read.v2: ''
            crm.objects.contacts.highly_sensitive.write.v2: ''
            crm.objects.contacts.read: ''
            crm.objects.contacts.sensitive.read.v2: ''
            crm.objects.contacts.sensitive.write.v2: ''
            crm.objects.contacts.write: ''
            crm.objects.courses.read: ''
            crm.objects.courses.write: ''
            crm.objects.custom.highly_sensitive.read.v2: ''
            crm.objects.custom.highly_sensitive.write.v2: ''
            crm.objects.custom.read: ''
            crm.objects.custom.sensitive.read.v2: ''
            crm.objects.custom.sensitive.write.v2: ''
            crm.objects.custom.write: ''
            crm.objects.deals.highly_sensitive.read.v2: ''
            crm.objects.deals.highly_sensitive.write.v2: ''
            crm.objects.deals.read: ''
            crm.objects.deals.sensitive.read.v2: ''
            crm.objects.deals.sensitive.write.v2: ''
            crm.objects.deals.write: ''
            crm.objects.emails.read: ''
            crm.objects.feedback_submissions.read: ''
            crm.objects.goals.read: ''
            crm.objects.goals.write: ''
            crm.objects.invoices.read: ''
            crm.objects.invoices.write: ''
            crm.objects.leads.read: ''
            crm.objects.leads.write: ''
            crm.objects.line_items.read: ''
            crm.objects.line_items.write: ''
            crm.objects.listings.read: ''
            crm.objects.listings.write: ''
            crm.objects.meetings.read: ''
            crm.objects.notes.read: ''
            crm.objects.orders.read: ''
            crm.objects.orders.write: ''
            crm.objects.partner-clients.read: ''
            crm.objects.partner-clients.write: ''
            crm.objects.partner-services.read: ''
            crm.objects.partner-services.write: ''
            crm.objects.products.read: ''
            crm.objects.products.write: ''
            crm.objects.projects.highly_sensitive.read: ''
            crm.objects.projects.highly_sensitive.write: ''
            crm.objects.projects.read: ''
            crm.objects.projects.sensitive.read: ''
            crm.objects.projects.sensitive.write: ''
            crm.objects.projects.write: ''
            crm.objects.quotes.read: ''
            crm.objects.quotes.write: ''
            crm.objects.services.read: ''
            crm.objects.services.write: ''
            crm.objects.subscriptions.read: ''
            crm.objects.subscriptions.write: ''
            crm.objects.tasks.read: ''
            crm.objects.tickets.highly_sensitive.read: ''
            crm.objects.tickets.highly_sensitive.write: ''
            crm.objects.tickets.sensitive.read: ''
            crm.objects.tickets.sensitive.write: ''
            crm.objects.users.read: ''
            crm.objects.users.write: ''
            e-commerce: ''
            media_bridge.read: ''
            tickets.highly_sensitive.v2: ''
            tickets.sensitive.v2: ''

````