> ## 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.

# Get sample CRM card detail response

> Gibt eine Antwort mit Beispielkartendetails zurück. Dies ist die Payload mit angezeigten Details für eine Karte, die einem Benutzer angezeigt wird. Eine App sollte dies als Antwort auf die Datenabrufanfrage senden.

export const SupportedProducts = ({marketing, sales, service, cms, marketingLevel, salesLevel, serviceLevel, cmsLevel}) => {
  const translations = {
    header: "Unterstützte Produkte",
    description: "Erfordert eines der folgenden Produkte oder höher.",
    productNames: {
      marketing: "Marketing Hub",
      sales: "Sales Hub",
      service: "Service Hub",
      cms: "Content Hub"
    },
    tiers: {
      free: "Kostenlos",
      starter: "Starter",
      professional: "Professional",
      enterprise: "Enterprise"
    }
  };
  const translateTier = tier => {
    if (!tier) return '';
    const lowerTier = tier.toLowerCase();
    return translations.tiers[lowerTier] || tier;
  };
  const products = [{
    name: marketing ? translations.productNames.marketing : '',
    level: translateTier(marketingLevel),
    icon: "https://mintlify-assets.b-cdn.net/Icons/marketing-bolt.svg",
    alt: "Marketing Hub"
  }, {
    name: sales ? translations.productNames.sales : '',
    level: translateTier(salesLevel),
    icon: "https://mintlify-assets.b-cdn.net/Icons/sales-star.svg",
    alt: "Sales Hub"
  }, {
    name: service ? translations.productNames.service : '',
    level: translateTier(serviceLevel),
    icon: "https://mintlify-assets.b-cdn.net/Icons/service-heart.svg",
    alt: "Service Hub"
  }, {
    name: cms ? translations.productNames.cms : '',
    level: translateTier(cmsLevel),
    icon: "https://mintlify-assets.b-cdn.net/Icons/content-play.svg",
    alt: "Content Hub"
  }].filter(product => product.name && product.level);
  if (products.length === 0) return null;
  return <div>
      <div className="text-sm mb-2">{translations.description}</div>
      <div className={`grid ${products.length === 1 ? 'grid-cols-1' : 'grid-cols-2'} gap-1.5`}>
        {products.map((product, index) => <div key={index} style={{
    display: 'flex',
    alignItems: 'center'
  }}>
            <img src={product.icon} alt={product.alt} className="w-3.5 h-3.5 mr-1.5 mt-2.5 mb-2.5 flex-shrink-0 align-middle" />
            <span className="font-medium mr-1 text-sm">{product.name} -</span>
            <span className="text-sm">{product.level}</span>
          </div>)}
      </div>
    </div>;
};

<Accordion title="Supported products" defaultOpen="true" icon="cubes">
  <SupportedProducts marketing={true} sales={true} service={true} cms={true} marketingLevel="FREE" salesLevel="FREE" serviceLevel="FREE" cmsLevel="FREE" />
</Accordion>


## OpenAPI

````yaml specs/legacy/v3/crm-public-app-crm-cards-v3.json GET /crm/v3/extensions/cards-dev/sample-response
openapi: 3.0.1
info:
  title: CRM-Karten von öffentlicher App
  description: >-
    Allows an app to extend the CRM UI by surfacing custom cards in the sidebar
    of record pages. These cards are defined up-front as part of app
    configuration, then populated by external data fetch requests when the
    record page is accessed by a user.
  version: v3
  x-hubspot-product-tier-requirements:
    marketing: FREE
    sales: FREE
    service: FREE
    cms: FREE
    commerce: FREE
    crmHub: FREE
    dataHub: FREE
  x-hubspot-api-use-case: >-
    Fügen Sie den Kontaktdatensätzen eine benutzerdefinierte Karte hinzu, die
    Daten aus Ihrer externen Bug-Tracking-Software anzeigt.
  x-hubspot-related-documentation:
    - name: Custom Cards Guide
      url: https://developers.hubspot.com/docs/guides/api/crm/extensions/crm-cards
  x-hubspot-introduction: >-
    Erstellen Sie benutzerdefinierte Karten für Daten aus externen Systemen in
    CRM-Datensätzen. Erfordert eine öffentliche App. Diese CRM-Karten
    unterscheiden sich von den UI-Erweiterungen, die Sie mit Projekten erstellen
    können.
servers:
  - url: https://api.hubapi.com
security: []
tags:
  - name: Advanced
  - name: Basic
paths:
  /crm/v3/extensions/cards-dev/sample-response:
    get:
      tags:
        - Basic
      summary: Antwort mit Beispielkartendetails abrufen
      description: >-
        Gibt eine Antwort mit Beispielkartendetails zurück. Dies ist die Payload
        mit angezeigten Details für eine Karte, die einem Benutzer angezeigt
        wird. Eine App sollte dies als Antwort auf die Datenabrufanfrage senden.
      operationId: get-/crm/v3/extensions/cards-dev/sample-response_getCardsSampleResponse
      parameters: []
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntegratorCardPayloadResponse'
        default:
          $ref: '#/components/responses/Error'
          description: ''
components:
  schemas:
    IntegratorCardPayloadResponse:
      required:
        - totalCount
      type: object
      properties:
        allItemsLinkUrl:
          type: string
          description: >-
            URL zu einer Seite, die der Integrator erstellt hat und die alle
            Details zu dieser Karte anzeigt. Diese URL wird den Benutzern unter
            einem Link „Weitere [x] anzeigen“ angezeigt, wenn Ihre Antwort mehr
            als fünf Elemente enthält, wobei „x“ der Wert von „itemLabel“ ist.
        cardLabel:
          type: string
          description: "Die Bezeichnung, die für den Link „allItemsLinkUrl“ verwendet werden soll (z.\_B. „Weitere Tickets anzeigen“). Bei fehlender Angabe wird der Titel der Karte verwendet."
        responseVersion:
          type: string
          description: Die Zahlenversion der Antwort.
          enum:
            - v1
            - v3
        sections:
          type: array
          description: Eine Liste mit bis zu fünf gültigen Kartenunterkategorien
          items:
            $ref: '#/components/schemas/IntegratorObjectResult'
        topLevelActions:
          $ref: '#/components/schemas/TopLevelActions'
        totalCount:
          type: integer
          description: >-
            Die Gesamtzahl der Karteneigenschaften, die in dieser Antwort
            gesendet werden
          format: int32
      description: >-
        The card details payload, sent to HubSpot by an app in response to a
        data fetch request when a user visits a CRM record page.
    IntegratorObjectResult:
      required:
        - actions
        - id
        - title
        - tokens
      type: object
      properties:
        actions:
          type: array
          description: >-
            Eine Liste der mit der Karte verbundenen Aktionen, darunter
            Action-Hooks, Bestätigungs-Action-Hooks oder Iframes.
          items:
            oneOf:
              - $ref: '#/components/schemas/ActionHookActionBody'
              - $ref: '#/components/schemas/IFrameActionBody'
        id:
          type: string
          description: Die eindeutige ID für die Karte.
        linkUrl:
          type: string
          description: Eine URL, die im Titel der Karte verwendet wird
        title:
          type: string
          description: >-
            Der Top-Level-Titel für diese Karte. Wird den Benutzern in der
            CRM-UI angezeigt.
        tokens:
          type: array
          description: >-
            Eine Sammlung von Token, die bestimmte Eigenschaften der Karte
            darstellen.
          items:
            $ref: '#/components/schemas/ObjectToken'
    TopLevelActions:
      required:
        - secondary
      type: object
      properties:
        primary:
          description: >-
            Definiert die primäre Aktion für eine Karte, die entweder ein
            Action-Hook oder ein Iframe sein kann.
          oneOf:
            - $ref: '#/components/schemas/ActionHookActionBody'
            - $ref: '#/components/schemas/IFrameActionBody'
        secondary:
          type: array
          description: >-
            Gibt eine Liste von sekundären Aktionen für eine Karte an, von denen
            jede ein Action-Hook oder ein Iframe sein kann.
          items:
            oneOf:
              - $ref: '#/components/schemas/ActionHookActionBody'
              - $ref: '#/components/schemas/IFrameActionBody'
        settings:
          $ref: '#/components/schemas/IFrameActionBody'
    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
      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
    ActionHookActionBody:
      title: ACTION_HOOK
      required:
        - httpMethod
        - propertyNamesIncluded
        - type
        - url
      type: object
      properties:
        confirmation:
          $ref: '#/components/schemas/ActionConfirmationBody'
        httpMethod:
          type: string
          description: >-
            Die HTTP-Methode, die beim Aufruf verwendet werden soll. Sie kann
            auf GET, POST, PUT, DELETE oder PATCH festgelegt werden. Bei
            Verwendung von GET oder DELETE.
          enum:
            - CONNECT
            - DELETE
            - GET
            - HEAD
            - OPTIONS
            - PATCH
            - POST
            - PUT
            - TRACE
        label:
          type: string
          description: >-
            Das Zuordnungslabel für diese Eigenschaft, wie sie den Benutzern
            angezeigt werden soll
        propertyNamesIncluded:
          type: array
          description: >-
            Eine Liste der Eigenschaftsnamen, die in die Aktion aufgenommen
            werden. Weitere Informationen finden Sie in der Dokumentation.
          items:
            type: string
        type:
          type: string
          description: Der Typ des Status
          default: ACTION_HOOK
          enum:
            - ACTION_HOOK
        url:
          type: string
          description: >-
            Der URL-Endpunkt, der aufgerufen wird, wenn die Aktion ausgelöst
            wird.
      x-hubspot-sub-type-impl: true
    IFrameActionBody:
      title: IFRAME
      required:
        - height
        - propertyNamesIncluded
        - type
        - url
        - width
      type: object
      properties:
        height:
          type: integer
          description: Die Höhe des iframe in Pixel.
          format: int32
        label:
          type: string
          description: >-
            Das Zuordnungslabel für diese Eigenschaft, wie sie den Benutzern
            angezeigt werden soll
        propertyNamesIncluded:
          type: array
          description: >-
            Eine Liste von Eigenschaftsnamen, die in die URL des iframe
            aufgenommen werden.
          items:
            type: string
        type:
          type: string
          description: Der Typ des Status
          default: IFRAME
          enum:
            - IFRAME
        url:
          type: string
          description: Der URL-Endpunkt, der beim Auslösen im iframe geladen wird.
        width:
          type: integer
          description: Die Breite des iframe in Pixel.
          format: int32
      x-hubspot-sub-type-impl: true
    ObjectToken:
      required:
        - value
      type: object
      properties:
        dataType:
          type: string
          description: Typ der durch diese Eigenschaft dargestellten Daten.
          enum:
            - BOOLEAN
            - CURRENCY
            - DATE
            - DATETIME
            - EMAIL
            - LINK
            - NUMERIC
            - STATUS
            - STRING
        label:
          type: string
          description: >-
            Das Zuordnungslabel für diese Eigenschaft, wie sie den Benutzern
            angezeigt werden soll
        name:
          type: string
          description: >-
            Eine interne ID für diese Eigenschaft. Dieser Wert muss ein
            eindeutiges TO-DO sein.
        value:
          type: string
          description: Der Wert der Eigenschaft
    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
    ActionConfirmationBody:
      required:
        - cancelButtonLabel
        - confirmButtonLabel
        - prompt
      type: object
      properties:
        cancelButtonLabel:
          type: string
          description: Das Label für den Button, mit dem die Aktion abgebrochen wird.
        confirmButtonLabel:
          type: string
          description: Das Label für den Button, mit dem die Aktion bestätigt wird.
        prompt:
          type: string
          description: >-
            Die Meldung, die dem Benutzer angezeigt wird, um die Aktion zu
            bestätigen.
  responses:
    Error:
      description: An error occurred.
      content:
        '*/*':
          schema:
            $ref: '#/components/schemas/Error'

````