VTEX Events API

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

Operations 1

POST /event VTex Save 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

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/vtex-events-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

vtex-events-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: VTEX Intelligent Search API - Headless Events API
  description: Intelligent Search Events API is responsible for collecting the search events to improve your search results, such as page interactions and conversion, in a headless implementation.
  contact: {}
  version: '1.0'
servers:
- url: https://sp.vtex.com/event-api/v1/{accountName}
  description: Server URL.
  variables:
    accountName:
      default: apiexamples
      description: Name of the VTEX account. Used as part of the URL.
tags:
- name: Events
paths:
  /event:
    post:
      summary: VTex Save events
      description: 'Creates search events to integrate with VTEX Intelligent Search using a headless implementation.


        >⚠️ **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
      operationId: postEvent
      x-operation-id-source: derived
components:
  schemas:
    UserIdentification:
      required:
      - anonymous
      - session
      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
    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
    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'
    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
    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
    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
    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
    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
    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