# List banners for a contact

Returns the banners a contact currently matches, so you can display them on
surfaces outside the Messenger (native mobile apps, kiosks, embedded tools).

Each banner in the response includes a view_id. Use it to record a dismissal
with the dismiss endpoint. A returned banner is treated as shown: requesting
this endpoint records an impression for each banner returned, so call it at the
point you are about to display the banners, not speculatively.

Endpoint: GET /contacts/{id}/banners
Version: Preview
Security: bearerAuth

## Path parameters:

  - `id` (string, required)
    The unique identifier of a contact.

## Header parameters:

  - `Intercom-Version` (string)
    Intercom API version.By default, it's equal to the version set in the app package.
    Enum: "1.0", "1.1", "1.2", "1.3", "1.4", "2.0", "2.1", "2.2", "2.3", "2.4", "2.5", "2.6", "2.7", "2.8", "2.9", "2.10", "2.11", "2.12", "2.13", "2.14", "2.15", "Preview"

## Response 200 fields (application/json):

  - `type` (string)
    String representing the object's type. Always has the value list.
    Example: "list"

  - `data` (array)
    An array of banners.

  - `data.type` (string)
    String representing the object's type. Always has the value banner.
    Example: "banner"

  - `data.id` (string)
    The id of the banner.
    Example: "486517"

  - `data.view_id` (string)
    The id of the contact's view of this banner. Pass this to the dismiss endpoint to record a dismissal.
    Example: "645719311"

  - `data.title` (string,null)
    The banner's title. null when the banner has no title.
    Example: "Hi there"

  - `data.body` (string,null)
    The banner's body content as HTML.
    Example: "<p class=\"no-margin\">Hi there!</p>"

  - `data.style` (string)
    How the banner is displayed.
    Example: "inline"

  - `data.position` (string)
    Where the banner is positioned.
    Example: "top"

  - `data.show_dismiss_button` (boolean)
    Whether the banner should display a dismiss control.
    Example: true

  - `data.action` (object,null)
    The action a contact can take on the banner, or null when the banner has
no action. The fields present depend on type:
url (label, target), reaction (reaction_set),
email_collector, or product_tour (tour_id, tour_url).

  - `data.action.type` (string)
    The kind of action. One of url, reaction, email_collector, or product_tour.
    Example: "url"

  - `data.action.label` (string,null)
    For url actions, the label shown on the action link or button.
    Example: "Learn more"

  - `data.action.target` (string,null)
    For url actions, the URL the contact is sent to.
    Example: "https://www.intercom.com/pricing"

  - `data.action.reaction_set` (array)
    For reaction actions, the reactions a contact can choose from.

  - `data.action.reaction_set.index` (integer)
    The reaction's position in the set.

  - `data.action.reaction_set.unicode_emoticon` (string)
    The reaction's unicode emoji.
    Example: "👍"

  - `data.action.tour_id` (string,null)
    For product_tour actions, the id of the product tour to launch.
    Example: "12345"

  - `data.action.tour_url` (string,null)
    For product_tour actions, the URL that launches the product tour.
    Example: "https://app.intercom.com/tours/12345"

  - `data.client_targeting` (array,null)
    Reserved for future use. Always null in the current version — banners
that depend on client-side targeting rules (such as page URL or time on
page) are not returned by this endpoint.

  - `data.created_at` (integer)
    The time the contact's view of this banner was created.
    Example: 1780580493

## Response 404 fields (application/json):

  - `type` (string, required)
    The type is error.list
    Example: "error.list"

  - `request_id` (string,null)
    Example: "f93ecfa8-d08a-4325-8694-89aeb89c8f85"

  - `errors` (array, required)
    An array of one or more error objects

  - `errors.code` (string, required)
    A string indicating the kind of error, used to further qualify the HTTP response code
    Example: "unauthorized"

  - `errors.message` (string,null)
    Optional. Human readable description of the error.
    Example: "Access Token Invalid"

  - `errors.field` (string,null)
    Optional. Used to identify a particular field or query parameter that was in error.
    Example: "email"


