VTEX Events API

The Events API from VTEX — 1 operation(s) for events.

Documentation

📖
Documentation
https://developers.vtex.com/docs/guides/how-the-integration-protocol-between-vtex-and-antifraud-companies-works
📖
Documentation
https://developers.vtex.com/docs/guides/bulk-import-buyer-organizations-spreadsheet
📖
Documentation
https://developers.vtex.com/docs/guides/catalog-api-seller-portal-overview
📖
Documentation
https://developers.vtex.com/docs/guides/catalog-overview
📖
Documentation
https://developers.vtex.com/docs/guides/checkout-overview
📖
Documentation
https://help.vtex.com/en/tutorial/customer-credit-overview--1uIqTjWxIIIEW0COMg4uE0
📖
Documentation
https://help.vtex.com/en/tutorial/data-subject-rights--6imchxTx09icupKMbzHVIM
📖
Documentation
https://developers.vtex.com/docs/api-reference/do-api
📖
Documentation
https://developers.vtex.com/docs/guides/managing-vtex-gift-cards
📖
Documentation
https://developers.vtex.com/docs/guides/gift-card-integration-guide
📖
Documentation
https://developers.vtex.com/docs/guides/faststore/headless-cms-overview
📖
Documentation
https://developers.vtex.com/docs/api-reference/vtex-id-api
📖
Documentation
https://help.vtex.com/en/tracks/vtex-intelligent-search--19wrbB7nEQcmwzDPl1l4Cb/3qgT47zY08biLP3d5os3DG
📖
Documentation
https://developers.vtex.com/docs/apps/vtex.search@1.0.8
📖
Documentation
https://help.vtex.com/en/tracks/cms--2YcpgIljVaLVQYMzxQbc3z/1oN446gRGcR2s70RvBCAmj
📖
Documentation
https://developers.vtex.com/docs/guides/search-overview
📖
Documentation
https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3
📖
Documentation
https://developers.vtex.com/docs/guides/fulfillment
📖
Documentation
https://developers.vtex.com/docs/guides/marketplace-overview
📖
Documentation
https://developers.vtex.com/updates/release-notes/marketplace-protocol-documentation-update
📖
Documentation
https://developers.vtex.com/docs/guides/external-marketplace-integration-guide
📖
Documentation
https://developers.vtex.com/docs/guides/external-seller-integration-connector
📖
Documentation
https://developers.vtex.com/docs/guides/external-seller-integration-guide
📖
Documentation
https://help.vtex.com/en/tutorial/master-data--4otjBnR27u4WUIciQsmkAw
📖
Documentation
https://help.vtex.com/en/tutorial/understanding-the-message-center--tutorials_84
📖
Documentation
https://developers.vtex.com/docs/guides/orders-overview
📖
Documentation
https://developers.vtex.com/docs/guides/changes-in-vtex-features-behavior-to-handle-pii-data
📖
Documentation
https://help.vtex.com/en/tutorial/payment-provider-protocol--RdsT2spdq80MMwwOeEq0m
📖
Documentation
https://developers.vtex.com/docs/guides/payments-integration-guide
📖
Documentation
https://help.vtex.com/en/tutorial/vtex-pick-and-pack-last-mile--HN7WKV0xoq2ssVjsJlfzr
📖
Documentation
https://developers.vtex.com/docs/guides/vtex-io-documentation-policies
📖
Documentation
https://developers.vtex.com/docs/guides/pricing-hub
📖
Documentation
https://developers.vtex.com/docs/guides/pricing-overview
📖
Documentation
https://developers.vtex.com/docs/guides/profile-system
📖
Documentation
https://developers.vtex.com/docs/guides/promotions-overview
📖
Documentation
https://developers.vtex.com/docs/apps/vtex.reviews-and-ratings
📖
Documentation
https://developers.vtex.com/docs/guides/sent-offers-integration-guide-connectors
📖
Documentation
https://developers.vtex.com/docs/guides/sessions-system-overview
📖
Documentation
https://developers.vtex.com/docs/guides/vtex-shipping-network
📖
Documentation
https://help.vtex.com/en/tutorial/sku-bindings--1SmrVgNwjJX17hdqwLa0TX
📖
Documentation
https://developers.vtex.com/docs/guides/subscriptions
📖
Documentation
https://developers.vtex.com/docs/apps/vtex.search/suggestions
📖
Documentation
https://developers.vtex.com/docs/guides/vtex-tracking

Specifications

OpenAPI Specification

vtex-events-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: VTex Anti-fraud Provider Account Events API
  description: ">ℹ️ Onboarding guide\r\n>\r\n> Check the new [Payments onboarding guide](https://developers.vtex.com/docs/guides/payments-overview). We created this guide to improve the onboarding experience for developers at VTEX. It assembles all documentation on our Developer Portal about Payments and is organized by focusing on the developer's journey.\r\n\r\nThe Anti-fraud Provider Protocol is a set of definitions to help you integrate your anti-fraud service API into VTEX platform.\r\n\r\nTo achieve this, you need to implement a web API (REST) following the specifications described in this documentation.\r\n\r\n>⚠️ You can also access our [template on GitHub](https://github.com/vtex-apps/antifraud-provider-example) to help you quickly develop your anti-fraud connector using the Anti-fraud Provider Protocol and VTEX IO.\r\n\r\nTo learn more about the Anti-fraud Provider Protocol, check our [developer guide](https://developers.vtex.com/docs/guides/how-the-integration-protocol-between-vtex-and-antifraud-companies-works).\r\n\r\n## Anti-fraud Provider API Index\r\n\r\n### Anti-fraud  Flow\r\n\r\n- `POST` [Send Anti-fraud Pre-Analysis Data (optional)](https://developers.vtex.com/docs/api-reference/antifraud-provider-protocol#post-/pre-analysis)\r\n- `POST` [Send Anti-fraud Data](https://developers.vtex.com/docs/api-reference/antifraud-provider-protocol#post-/transactions)\r\n- `PUT` [Update Anti-fraud Transactions (optional)](https://developers.vtex.com/docs/api-reference/antifraud-provider-protocol#put-/transactions/-transactionId-)\r\n- `GET` [List Anti-fraud Provider Manifest](https://developers.vtex.com/docs/api-reference/antifraud-provider-protocol#get-/manifest)\r\n- `GET` [Get Anti-fraud Status](https://developers.vtex.com/docs/api-reference/antifraud-provider-protocol#get-/transactions/-transactions.id-)\r\n- `DELETE` [Stop Anti-fraud Analysis (optional)](https://developers.vtex.com/docs/api-reference/antifraud-provider-protocol#delete-/transactions/-transactions.Id-)\r\n\r\n### OAuth Flow\r\n\r\n1. `POST` [Retrieve Token](https://developers.vtex.com/docs/api-reference/antifraud-provider-protocol#post-/authorization/token)\r\n2. `GET` [Redirect](https://developers.vtex.com/docs/api-reference/antifraud-provider-protocol#get-/redirect)\r\n3. `GET` [Return to VTEX](https://developers.vtex.com/docs/api-reference/antifraud-provider-protocol#get-/authorizationCode)\r\n4. `GET` [Get Credentials](https://developers.vtex.com/docs/api-reference/antifraud-provider-protocol#get-/authorization/credentials)"
  version: '1.0'
servers:
- url: https://{providerApiEndpoint}
  description: Anti-fraud provider endpoint URL.
  variables:
    providerApiEndpoint:
      description: Anti-fraud provider endpoint URL.
      default: '{providerApiEndpoint}'
tags:
- name: Events
paths:
  /event:
    post:
      summary: VTex Save events
      description: "Creates search events to integrate with VTEX Intelligent Search using a headless implementation. \r\n\r\n >⚠️ **This API applies only to Headless scenarios**. It doesn't apply to stores using VTEX's storefront solution, natively integrated with Intelligent Search."
      parameters:
      - name: accountName
        in: path
        description: Name of the VTEX account. Used as part of the URL.
        required: true
        schema:
          type: string
          example: apiexamples
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
              - $ref: '#/components/schemas/SessionPing'
              - $ref: '#/components/schemas/PageCart'
              - $ref: '#/components/schemas/PageEmptyCart'
              - $ref: '#/components/schemas/PageConfirmation'
              - $ref: '#/components/schemas/Click'
              - $ref: '#/components/schemas/Query'
            examples:
              Session Ping:
                value:
                  session: zZlNhqz1vFJP6iPG5Oqtt
                  anonymous: Om1TNluGvgmSgU5OOTvkkd
                  url: https://example.com/search/?query=zapatilha
                  agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:83.0) Gecko/20100101 Firefox/83.0
                  type: search.query
                  text: zapatilha
                  misspelled: true
                  match: 392
                  operator: and
              Page Cart:
                value:
                  session: zZlNhqz1vFJP6iPG5Oqtt
                  anonymous: Om1TNluGvgmSgU5OOTvkkd
                  products:
                  - productId: ABC123
                    quantity: 2
                  - productId: XYZ789
                    quantity: 1
                  type: page.cart
              Empty Cart:
                value:
                  session: zZlNhqz1vFJP6iPG5Oqtt
                  anonymous: Om1TNluGvgmSgU5OOTvkkd
                  products: []
                  type: page.empty_cart
              Page Confirmation:
                value:
                  session: zZlNhqz1vFJP6iPG5Oqtt
                  anonymous: Om1TNluGvgmSgU5OOTvkkd
                  products:
                  - productId: ABC123
                    price: 9.99
                    quantity: 3
                  - productId: XYZ789
                    price: 5.99
                    quantity: 2
                  order: 123ABC
                  type: page.confirmation
              Search Click:
                value:
                  type: search.click
                  productId: '12345'
                  position: 1
                  url: https://example.com/s?q=pneu&sort=score_desc&page=0
                  text: pneu
                  agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36
                  anonymous: 1ce47e50-3f10-4556-95d3-57d4881c03a4
                  session: 51a53ce3-096d-4740-a6d0-3cf86085ba13
              Search Query:
                value:
                  session: zZlNhqz1vFJP6iPG5Oqtt
                  anonymous: Om1TNluGvgmSgU5OOTvkkd
                  url: https://example.com/search/?query=zapatilha
                  agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:83.0) Gecko/20100101 Firefox/83.0
                  type: search.query
                  text: zapatilha
                  misspelled: true
                  match: 392
                  operator: and
      tags:
      - Events
      responses:
        '204':
          description: No content
components:
  schemas:
    UserIdentification:
      properties:
        anonymous:
          type: string
          title: anonymous
          description: Identifier related to related to the user, according to the [nanoid](https://github.com/ai/nanoid) pattern. This information is kept in storage for one year.
          example: Om1TNluGvgmSgU5OOTvkkd
        session:
          type: string
          title: session
          description: Identifier related to the current navigation, according to the [nanoid](https://github.com/ai/nanoid) pattern. It is a cookie that lasts for 30 minutes, changing if the user opens another tab in private navigation mode.
          example: zZlNhqz1vFJP6iPG5Oqtt
    Query:
      title: Search Query
      description: Sends a query event every time the shopper makes a full-text search.
      type: object
      required:
      - session
      - anonymous
      - type
      - misspelled
      - text
      - match
      - operator
      properties:
        session:
          $ref: '#/components/schemas/UserIdentification/properties/session'
        anonymous:
          $ref: '#/components/schemas/UserIdentification/properties/anonymous'
        url:
          type: string
          title: url
          description: URL that identifies from which page the event occurred.
          example: https://example.com/search/?query=zapatilha
        agent:
          type: string
          title: agent
          description: Identifies whether the request came from a mobile or desktop application. It's used as a filter in the search report.
          default: desktop
          example: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:83.0) Gecko/20100101 Firefox/83.0
        type:
          type: string
          title: type
          description: 'Type of event, which can be one of the following: `page.cart`, `page.empty_cart`, `search.query`, `page.confirmation`, `session.ping`, `search.click`.'
          example: search.query
        text:
          type: string
          title: text
          description: Query used in the search.
          example: tv
        misspelled:
          type: boolean
          title: misspelled
          description: Indicates whether the query has a typo (`true`) or not (`false`).
          example: true
        match:
          type: number
          title: match
          description: Amount of products retrieved by the search.
          example: 396
        operator:
          type: string
          title: operator
          description: 'Identifies the type of operator used on the search. The possible values are: `and`, `or`. Find more details in [this Elastic Search guide](https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-match-query.html).'
          example: and
    PageConfirmation:
      title: Page Confirmation
      description: Sends a confirmation informing the products that were bought.
      type: object
      required:
      - session
      - anonymous
      - type
      - order
      - products
      properties:
        session:
          $ref: '#/components/schemas/UserIdentification/properties/session'
        anonymous:
          $ref: '#/components/schemas/UserIdentification/properties/anonymous'
        products:
          type: array
          title: products
          description: Array of objects containing products. If the event type is `page.cart`, the array contains all the products in the cart, with their ID and quantity.  Each interaction should include all products inside the shopping cart at that time. In case a product is removed, sent the updated card. If there are no products in the cart (page.`empty_cart`), the array is empty. If the event type is `page.confirmation`, the array contains all the products that were purchased, with their ID, price and quantity.
          items:
            $ref: '#/components/schemas/OrderProduct'
        order:
          type: string
          title: order
          description: Order ID.
          example: 123ABC
        type:
          type: string
          title: type
          description: 'Type of event, which can be one of the following: `page.cart`, `page.empty_cart`, `search.query`, `page.confirmation`, `session.ping`, `search.click`.'
          example: page.confirmation
    OrderProduct:
      type: object
      description: Product information.
      required:
      - productId
      - price
      - quantity
      properties:
        productId:
          type: string
          description: Unique identifier of the product.
          example: ABC123
        price:
          type: number
          description: Price of the product.
          example: 9.99
        quantity:
          type: number
          description: Quantity of the product.
          example: 3
    PageCart:
      title: PageCart
      description: Sends an event every time the shopper enters the cart page. Each interaction should include all products inside the shopping cart at that time. In case a product is removed, sent the updated card.
      type: object
      required:
      - session
      - anonymous
      - type
      - products
      properties:
        session:
          $ref: '#/components/schemas/UserIdentification/properties/session'
        anonymous:
          $ref: '#/components/schemas/UserIdentification/properties/anonymous'
        products:
          type: array
          title: products
          description: Array of objects containing products. If the event type is `page.cart`, the array contains all the products in the cart, with their ID and quantity.  Each interaction should include all products inside the shopping cart at that time. In case a product is removed, sent the updated card. If there are no products in the cart (page.`empty_cart`), the array is empty. If the event type is `page.confirmation`, the array contains all the products that were purchased, with their ID, price and quantity.
          items:
            $ref: '#/components/schemas/CartProduct'
        type:
          type: string
          title: type
          description: 'Type of event, which can be one of the following: `page.cart`, `page.empty_cart`, `search.query`, `page.confirmation`, `session.ping`, `search.click`.'
          example: page.cart
    PageEmptyCart:
      title: Empty Cart
      description: Sends an event if there are no products in the shopping cart at that time.
      type: object
      required:
      - session
      - anonymous
      - type
      - products
      properties:
        session:
          $ref: '#/components/schemas/UserIdentification/properties/session'
        anonymous:
          $ref: '#/components/schemas/UserIdentification/properties/anonymous'
        products:
          type: array
          title: products
          description: Array of objects containing products. If the event type is `page.cart`, the array contains all the products in the cart, with their ID and quantity.  Each interaction should include all products inside the shopping cart at that time. In case a product is removed, sent the updated card. If there are no products in the cart (page.`empty_cart`), the array is empty. If the event type is `page.confirmation`, the array contains all the products that were purchased, with their ID, price and quantity.
          items:
            $ref: '#/components/schemas/CartProduct'
        type:
          type: string
          title: type
          description: 'Type of event, which can be one of the following: `page.cart`, `page.empty_cart`, `search.query`, `page.confirmation`, `session.ping`, `search.click`.'
          example: page.empty_cart
    SessionPing:
      title: SessionPing
      description: Sends an ACK to the API to renew the session server-side. It should be sent every 1 minute.
      type: object
      required:
      - session
      - anonymous
      - type
      - agent
      properties:
        session:
          $ref: '#/components/schemas/UserIdentification/properties/session'
        anonymous:
          $ref: '#/components/schemas/UserIdentification/properties/anonymous'
        type:
          type: string
          title: type
          description: 'Type of event, which can be one of the following: `page.cart`, `page.empty_cart`, `search.query`, `page.confirmation`, `session.ping`, `search.click`.'
          example: session.ping
        agent:
          type: string
          title: agent
          description: Identifies whether the request came from a mobile or desktop application. It's used as a filter in the search report.
          default: desktop
          example: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:83.0) Gecko/20100101 Firefox/83.0
    Click:
      title: Search Click
      description: Sends an event every time a shopper clicks on a product from a search page.
      type: object
      required:
      - type
      - productId
      - position
      - text
      - anonymous
      - session
      properties:
        type:
          type: string
          title: type
          description: 'Type of event, which can be one of the following: `page.cart`, `page.empty_cart`, `search.query`, `page.confirmation`, `session.ping`, `search.click`.'
          example: search.click
        productId:
          type: string
          description: Unique identifier of the clicked product.
          example: '12345'
        position:
          type: integer
          description: Position of the clicked product on the search results page.
          example: 1
        url:
          type: string
          title: url
          description: URL that identifies from which page the event occurred.
          example: https://example.com/s?q=pneu&sort=score_desc&page=0
        text:
          type: string
          title: text
          description: Query used in the search.
          example: tv
        agent:
          type: string
          title: agent
          description: Identifies whether the request came from a mobile or desktop application. It's used as a filter in the search report.
          default: desktop
          example: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:83.0) Gecko/20100101 Firefox/83.0
        anonymous:
          $ref: '#/components/schemas/UserIdentification/properties/anonymous'
        session:
          $ref: '#/components/schemas/UserIdentification/properties/session'
    CartProduct:
      type: object
      description: Product information.
      required:
      - productId
      - quantity
      properties:
        productId:
          type: string
          description: Unique identifier of the product.
          example: ABC123
        quantity:
          type: number
          description: Quantity of the product.
          example: 2
  securitySchemes:
    VtexIdclientAutCookie:
      type: apiKey
      in: header
      name: VtexIdclientAutCookie
      description: '[User token](https://developers.vtex.com/docs/guides/api-authentication-using-user-tokens), valid for 24 hours.'