Klaviyo Client API

client

OpenAPI Specification

klaviyo-client-api-openapi.yml Raw ↑
openapi: 3.0.2
info:
  title: Klaviyo Accounts Client API
  version: '2026-04-15'
  description: The Klaviyo REST API. Please visit https://developers.klaviyo.com for more details.
  contact:
    name: Klaviyo Developer Experience Team
    email: developers@klaviyo.com
    url: https://developers.klaviyo.com
  termsOfService: https://www.klaviyo.com/legal/api-terms
  license:
    name: License
    url: https://www.klaviyo.com/legal
servers:
- url: https://a.klaviyo.com
  description: Production
security:
- Klaviyo-API-Key: []
tags:
- name: Client
  description: client
paths:
  /client/review-values-reports:
    get:
      operationId: get_client_review_values_reports
      summary: Get Client Review Values Reports
      description: 'Get all reviews values reports in an account.<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m`'
      parameters:
      - name: company_id
        in: query
        description: Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.
        required: true
        schema:
          description: Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.
          type: string
          example: PUBLIC_API_KEY
      - name: fields[review-values-report]
        in: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - results
        explode: false
      - name: filter
        in: query
        description: 'For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`product_external_ids`: `any`, `equals`'
        schema:
          type: string
          example: equals(product_external_ids,'example')
      - name: group_by
        in: query
        description: group by value for this report
        required: true
        schema:
          description: group by value for this report
          type: string
          example: product_id
          enum:
          - company_id
          - product_id
      - name: page[cursor]
        in: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#pagination
        required: false
        schema:
          type: string
      - name: page[size]
        in: query
        description: 'Default: 20. Min: 1. Max: 100.'
        required: false
        schema:
          type: integer
          default: 20
          maximum: 100
          minimum: 1
      - name: statistics
        in: query
        description: list of statistics to calculate for this report
        required: true
        schema:
          description: list of statistics to calculate for this report
          type: string
          example: average_rating,total_reviews
      - name: timeframe
        in: query
        description: timeframe window for value report
        required: true
        schema:
          description: timeframe window for value report
          type: string
          example: all_time
          enum:
          - all_time
          - last_30_days
          - last_365_days
          - last_90_days
      - name: revision
        in: header
        description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])'
        required: true
        schema:
          type: string
          default: '2026-04-15'
      responses:
        '200':
          description: Success
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/GetReviewValuesReportResponseCollection'
        4XX:
          $ref: '#/components/responses/ClientError'
        5XX:
          $ref: '#/components/responses/ServerError'
      security: []
      tags:
      - Client
      x-klaviyo-pre-release: None
      x-klaviyo-ratelimit:
        burst: 10/s
        steady: 150/m
      x-klaviyo-scopes: []
  /client/reviews:
    get:
      operationId: get_client_reviews
      summary: Get Client Reviews
      description: 'Get all reviews. This endpoint is for client-side environments only, for server-side use, refer to https://developers.klaviyo.com/en/reference/get_reviews<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m`'
      parameters:
      - name: company_id
        in: query
        description: Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.
        required: true
        schema:
          description: Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.
          type: string
          example: PUBLIC_API_KEY
      - name: fields[review]
        in: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - author
            - content
            - created
            - images
            - product
            - product.external_id
            - product.image_url
            - product.name
            - product.url
            - public_reply
            - public_reply.author
            - public_reply.content
            - public_reply.updated
            - rating
            - review_type
            - smart_quote
            - status
            - status.rejection_reason
            - status.rejection_reason.reason
            - status.rejection_reason.status_explanation
            - status.value
            - title
            - updated
            - verified
        explode: false
      - name: filter
        in: query
        description: 'For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`status`: `equals`<br>`review_type`: `equals`<br>`rating`: `any`, `equals`, `greater-or-equal`, `less-or-equal`<br>`id`: `any`, `equals`<br>`content`: `contains`<br>`smart_quote`: `has`<br>`public_reply`: `has`<br>`verified`: `equals`<br>`incentivized`: `equals`<br>`edited`: `equals`<br>`media`: `has`<br>`created`: `greater-or-equal`, `less-or-equal`<br>`updated`: `greater-or-equal`, `less-or-equal`'
        schema:
          type: string
          example: equals(status,'published')
      - name: page[cursor]
        in: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#pagination
        required: false
        schema:
          type: string
      - name: page[size]
        in: query
        description: 'Default: 20. Min: 1. Max: 100.'
        required: false
        schema:
          type: integer
          default: 20
          maximum: 100
          minimum: 1
      - name: sort
        in: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sorting
        schema:
          type: string
          enum:
          - created
          - -created
          - rating
          - -rating
          - updated
          - -updated
      - name: revision
        in: header
        description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])'
        required: true
        schema:
          type: string
          default: '2026-04-15'
      responses:
        '200':
          description: Success
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/GetClientReviewResponseDTOCollection'
        4XX:
          $ref: '#/components/responses/ClientError'
        5XX:
          $ref: '#/components/responses/ServerError'
      security: []
      tags:
      - Client
      x-klaviyo-pre-release: None
      x-klaviyo-ratelimit:
        burst: 10/s
        steady: 150/m
      x-klaviyo-scopes: []
    post:
      operationId: create_client_review
      summary: Create Client Review
      description: 'Create a review with the given ID. This endpoint is for client-side environments only.<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m`'
      parameters:
      - name: company_id
        in: query
        description: Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.
        required: true
        schema:
          description: Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.
          type: string
          example: PUBLIC_API_KEY
      - name: revision
        in: header
        description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])'
        required: true
        schema:
          type: string
          default: '2026-04-15'
      requestBody:
        required: true
        content:
          application/vnd.api+json:
            schema:
              $ref: '#/components/schemas/ReviewCreateDTO'
      responses:
        '202':
          description: Success
        4XX:
          $ref: '#/components/responses/ClientError'
        5XX:
          $ref: '#/components/responses/ServerError'
      security: []
      tags:
      - Client
      x-klaviyo-pre-release: None
      x-klaviyo-ratelimit:
        burst: 10/s
        steady: 150/m
      x-klaviyo-scopes: []
  /client/geofences:
    get:
      operationId: get_client_geofences
      summary: Get Client Geofences
      description: 'Get all geofences in an account.


        Returns a paginated list of all geofences for the specified company.

        This is the GA API endpoint designed for mobile SDK consumption.

        No authentication required.


        Returns a maximum of 100 results per page (default 20).


        This API supports filtering via header instead of query param. Provide

        `X-Klaviyo-API-Filters` header to filter geofences. We don''t use regular

        query param filters here because lat and long are sensitive information.


        Supported filters:

        - `lat` (equals) - Latitude coordinate for distance-based sorting

        - `lng` (equals) - Longitude coordinate for distance-based sorting


        When both lat and lng are provided, geofences are returned sorted by

        distance from the specified coordinates (closest first).


        Example filter header:

        `X-Klaviyo-API-Filters: and(equals(lat,40.7128),equals(lng,-74.0060))`<br><br>*Rate limits*:<br>Burst: `3/s`<br>Steady: `60/m`'
      parameters:
      - name: company_id
        in: query
        description: Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.
        required: true
        schema:
          description: Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.
          type: string
          example: PUBLIC_API_KEY
      - name: fields[geofence]
        in: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - latitude
            - longitude
            - radius
        explode: false
      - name: page[cursor]
        in: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#pagination
        required: false
        schema:
          type: string
      - name: page[size]
        in: query
        description: 'Default: 20. Min: 1. Max: 100.'
        required: false
        schema:
          type: integer
          default: 20
          maximum: 100
          minimum: 1
      - name: X-Klaviyo-API-Filters
        in: header
        description: '

          Supported filters:

          - `lat` (equals) - Latitude coordinate for distance-based sorting

          - `lng` (equals) - Longitude coordinate for distance-based sorting


          When both lat and lng are provided, geofences are returned sorted by

          distance from the specified coordinates (closest first).

          '
        required: false
        schema:
          type: string
          example: and(equals(lat,40.7128),equals(lng,-74.0060))
      - name: revision
        in: header
        description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])'
        required: true
        schema:
          type: string
          default: '2026-04-15'
      responses:
        '200':
          description: Success
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/GetGeofenceResponseCollection'
        4XX:
          $ref: '#/components/responses/ClientError'
        5XX:
          $ref: '#/components/responses/ServerError'
      security: []
      tags:
      - Client
      x-klaviyo-pre-release: None
      x-klaviyo-ratelimit:
        burst: 3/s
        steady: 60/m
      x-klaviyo-scopes: []
  /client/subscriptions:
    post:
      operationId: create_client_subscription
      summary: Create Client Subscription
      description: 'Creates a subscription and consent record for email and/or SMS channels based on the provided `email` and `phone_number` attributes, respectively. One of either `email` or `phone_number` must be provided.


        This endpoint is specifically designed to be called from publicly-browseable, client-side environments only and requires a [public API key (site ID)](https://www.klaviyo.com/settings/account/api-keys). Never use a private API key with our client-side endpoints.


        Do not use this endpoint from server-side applications.

        To subscribe profiles from server-side applications, instead use [POST /api/profile-subscription-bulk-create-jobs](https://developers.klaviyo.com/en/reference/subscribe_profiles).


        Profiles can be opted into multiple channels: email marketing, SMS marketing, and SMS transactional. You can specify the channel(s) to subscribe the profile to by providing a subscriptions object in the profile attributes.


        If you include a subscriptions object, only channels in that object will be subscribed.  You can use this to update `email` or `phone` on the profile without subscribing them, for example, by setting the profile property but omitting that channel in the subscriptions object. If a subscriptions object is not provided, subscriptions are defaulted to `MARKETING`.<br><br>*Rate limits*:<br>Burst: `350/s`<br>Steady: `750/m`


        **Scopes:**

        `subscriptions:write`'
      parameters:
      - name: company_id
        in: query
        description: Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.
        required: true
        schema:
          description: Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.
          type: string
          example: PUBLIC_API_KEY
      - name: revision
        in: header
        description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])'
        required: true
        schema:
          type: string
          default: '2026-04-15'
      requestBody:
        required: true
        content:
          application/vnd.api+json:
            schema:
              $ref: '#/components/schemas/OnsiteSubscriptionCreateQuery'
      responses:
        '202':
          description: Success
        4XX:
          $ref: '#/components/responses/ClientError'
        5XX:
          $ref: '#/components/responses/ServerError'
      security: []
      tags:
      - Client
      x-klaviyo-pre-release: None
      x-klaviyo-ratelimit:
        burst: 350/s
        steady: 750/m
      x-klaviyo-scopes:
      - subscriptions:write
  /client/push-tokens:
    post:
      operationId: create_client_push_token
      summary: Create or Update Client Push Token
      description: 'Create or update a push token.


        This endpoint is specifically designed to be called from our mobile SDKs ([iOS](https://github.com/klaviyo/klaviyo-swift-sdk) and [Android](https://github.com/klaviyo/klaviyo-android-sdk)) and requires a [public API key (site ID)](https://www.klaviyo.com/settings/account/api-keys). Never use a private API key with our client-side endpoints.

        You must have push notifications enabled to use this endpoint.


        To migrate push tokens from another platform to Klaviyo, please use our server-side [POST /api/push-tokens](https://developers.klaviyo.com/en/reference/create_push_token) endpoint instead.<br><br>*Rate limits*:<br>Burst: `150/s`<br>Steady: `1400/m`'
      parameters:
      - name: company_id
        in: query
        description: Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.
        required: true
        schema:
          description: Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.
          type: string
          example: PUBLIC_API_KEY
      - name: revision
        in: header
        description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])'
        required: true
        schema:
          type: string
          default: '2026-04-15'
      requestBody:
        required: true
        content:
          application/vnd.api+json:
            schema:
              $ref: '#/components/schemas/PushTokenCreateQuery'
      responses:
        '202':
          description: Success
        4XX:
          $ref: '#/components/responses/ClientError'
        5XX:
          $ref: '#/components/responses/ServerError'
      security: []
      tags:
      - Client
      x-klaviyo-pre-release: None
      x-klaviyo-ratelimit:
        burst: 150/s
        steady: 1400/m
      x-klaviyo-scopes: []
  /client/push-token-unregister:
    post:
      operationId: unregister_client_push_token
      summary: Unregister Client Push Token
      description: 'Unregister a push token.


        This endpoint is specifically designed to be called from our mobile SDKs ([iOS](https://github.com/klaviyo/klaviyo-swift-sdk) and [Android](https://github.com/klaviyo/klaviyo-android-sdk)) and requires a [public API key (site ID)](https://www.klaviyo.com/settings/account/api-keys). Never use a private API key with our client-side endpoints.

        You must have push notifications enabled to use this endpoint.<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m`'
      parameters:
      - name: company_id
        in: query
        description: Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.
        required: true
        schema:
          description: Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.
          type: string
          example: PUBLIC_API_KEY
      - name: revision
        in: header
        description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])'
        required: true
        schema:
          type: string
          default: '2026-04-15'
      requestBody:
        required: true
        content:
          application/vnd.api+json:
            schema:
              $ref: '#/components/schemas/PushTokenUnregisterQuery'
      responses:
        '202':
          description: Success
        4XX:
          $ref: '#/components/responses/ClientError'
        5XX:
          $ref: '#/components/responses/ServerError'
      security: []
      tags:
      - Client
      x-klaviyo-operation-aliases:
      - create_client_push_token_unregister
      x-klaviyo-pre-release: None
      x-klaviyo-ratelimit:
        burst: 10/s
        steady: 150/m
      x-klaviyo-scopes: []
  /client/events:
    post:
      operationId: create_client_event
      summary: Create Client Event
      description: 'Create a new event to track a profile''s activity.


        This endpoint is specifically designed to be called from publicly-browseable, client-side environments only and requires a [public API key (site ID)](https://www.klaviyo.com/settings/account/api-keys). Never use a private API key with our client-side endpoints.


        Do not use this endpoint from server-side applications.

        To create events from server-side applications, instead use [POST /api/events](https://developers.klaviyo.com/en/reference/create_event).


        Note that to update a profile''s existing identifiers (e.g., email), you must use a server-side endpoint authenticated by a private API key. Attempts to do so via client-side endpoints will return a 202, however the identifier field(s) will not be updated.<br><br>*Rate limits*:<br>Burst: `350/s`<br>Steady: `3500/m`


        **Scopes:**

        `events:write`'
      parameters:
      - name: company_id
        in: query
        description: Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.
        required: true
        schema:
          description: Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.
          type: string
          example: PUBLIC_API_KEY
      - name: revision
        in: header
        description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])'
        required: true
        schema:
          type: string
          default: '2026-04-15'
      requestBody:
        required: true
        content:
          application/vnd.api+json:
            schema:
              $ref: '#/components/schemas/EventCreateQueryV2'
      responses:
        '202':
          description: Success
        4XX:
          $ref: '#/components/responses/ClientError'
        5XX:
          $ref: '#/components/responses/ServerError'
      security: []
      tags:
      - Client
      x-klaviyo-pre-release: None
      x-klaviyo-ratelimit:
        burst: 350/s
        steady: 3500/m
      x-klaviyo-scopes:
      - events:write
  /client/profiles:
    post:
      operationId: create_client_profile
      summary: Create or Update Client Profile
      description: 'Create or update properties about a profile without tracking an associated event.


        This endpoint is specifically designed to be called from publicly-browseable, client-side environments only and requires a [public API key (site ID)](https://www.klaviyo.com/settings/account/api-keys). Never use a private API key with our client-side endpoints.


        Do not use this endpoint from server-side applications.

        To create or update profiles from server-side applications, instead use [POST /api/profile-import](https://developers.klaviyo.com/en/reference/create_or_update_profile).


        Note that to update a profile''s existing identifiers (e.g., email), you must use a server-side endpoint authenticated by a private API key. Attempts to do so via client-side endpoints will return a 202, however the identifier field(s) will not be updated.<br><br>*Rate limits*:<br>Burst: `350/s`<br>Steady: `3500/m`


        **Scopes:**

        `profiles:write`'
      parameters:
      - name: company_id
        in: query
        description: Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.
        required: true
        schema:
          description: Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.
          type: string
          example: PUBLIC_API_KEY
      - name: revision
        in: header
        description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])'
        required: true
        schema:
          type: string
          default: '2026-04-15'
      requestBody:
        required: true
        content:
          application/vnd.api+json:
            schema:
              $ref: '#/components/schemas/OnsiteProfileCreateQuery'
      responses:
        '202':
          description: Success
        4XX:
          $ref: '#/components/responses/ClientError'
        5XX:
          $ref: '#/components/responses/ServerError'
      security: []
      tags:
      - Client
      x-klaviyo-pre-release: None
      x-klaviyo-ratelimit:
        burst: 350/s
        steady: 3500/m
      x-klaviyo-scopes:
      - profiles:write
  /client/event-bulk-create:
    post:
      operationId: bulk_create_client_events
      summary: Bulk Create Client Events
      description: 'Create new events to track a profile''s activity.


        This endpoint is specifically designed to be called from publicly-browseable, client-side environments only and requires a [public API key (site ID)](https://www.klaviyo.com/settings/account/api-keys). Never use a private API key with our client-side endpoints.


        Do not use this endpoint from server-side applications.

        To create events from server-side applications, instead use [POST /api/event-bulk-create-jobs](https://developers.klaviyo.com/en/reference/bulk_create_events).


        Accepts a maximum of `1000` events per request.<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m`


        **Scopes:**

        `events:write`'
      parameters:
      - name: company_id
        in: query
        description: Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.
        required: true
        schema:
          description: Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.
          type: string
          example: PUBLIC_API_KEY
      - name: revision
        in: header
        description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])'
        required: true
        schema:
          type: string
          default: '2026-04-15'
      requestBody:
        required: true
        content:
          application/vnd.api+json:
            schema:
              $ref: '#/components/schemas/EventsBulkCreateQuery'
      responses:
        '202':
          description: Success
        4XX:
          $ref: '#/components/responses/ClientError'
        5XX:
          $ref: '#/components/responses/ServerError'
      security: []
      tags:
      - Client
      x-klaviyo-operation-aliases:
      - create_client_event_bulk_create
      x-klaviyo-pre-release: None
      x-klaviyo-ratelimit:
        burst: 10/s
        steady: 150/m
      x-klaviyo-scopes:
      - events:write
  /client/back-in-stock-subscriptions:
    post:
      operationId: create_client_back_in_stock_subscription
      summary: Create Client Back In Stock Subscription
      description: 'Subscribe a profile to receive back in stock notifications. Check out [our Back in Stock API guide](https://developers.klaviyo.com/en/docs/how_to_set_up_custom_back_in_stock) for more details.


        This endpoint is specifically designed to be called from publicly-browseable, client-side environments only and requires a [public API key (site ID)](https://www.klaviyo.com/settings/account/api-keys). Never use a private API key with our client-side endpoints.


        Do not use this endpoint from server-side applications.

        To create back in stock subscriptions from server-side applications, instead use [POST /api/back-in-stock-subscriptions](https://developers.klaviyo.com/en/reference/create_back_in_stock_subscription).<br><br>*Rate limits*:<br>Burst: `350/s`<br>Steady: `3500/m`


        **Scopes:**

        `catalogs:write`

        `profiles:write`'
      parameters:
      - name: company_id
        in: query
        description: Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.
        required: true
        schema:
          description: Your Public API Key / Site ID. See [this article](https://help.klaviyo.com/hc/en-us/articles/115005062267) for more details.
          type: string
          example: PUBLIC_API_KEY
      - name: revision
        in: header
        description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])'
        required: true
        schema:
          type: string
          default: '2026-04-15'
      requestBody:
        required: true
        content:
          application/vnd.api+json:
            schema:
              $ref: '#/components/schemas/ClientBISSubscriptionCreateQuery'
      responses:
        '202':
          description: Success
        4XX:
          $ref: '#/components/responses/ClientError'
        5XX:
          $ref: '#/components/responses/ServerError'
      security: []
      tags:
      - Client
      x-klaviyo-pre-release: None
      x-klaviyo-ratelimit:
        burst: 350/s
        steady: 3500/m
      x-klaviyo-scopes:
      - catalogs:write
      - profiles:write
components:
  schemas:
    ReviewValuesReportResponseObjectResource:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/ReviewValuesReportEnum'
        id:
          description: The unique identifier for the reviews values report
          type: string
          example: 925e385b52fb405715f3616c337cc65c
        attributes:
          type: object
          properties:
            results:
              description: The list of groupings and their corresponding statistics in the reviews values report
              type: array
              items:
                $ref: '#/components/schemas/ReviewValueReportGrouping'
              example:
              - groupings:
                  product_id: id1
                statistics:
                  total_ratings: 459
                  average_rating: 4.5
              - groupings:
                  product_id: id2
                statistics:
                  total_ratings: 459
                  average_rating: 2.5
          required:
          - results
        links:
          $ref: '#/components/schemas/ObjectLinks'
      required:
      - type
      - id
      - attributes
      - links
    EventProfileCreateQueryResourceObject:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/ProfileEnum'
        id:
          description: Primary key that uniquely identifies this profile. Generated by Klaviyo.
          type: string
          nullable: true
        attributes:
          type: object
          properties:
            email:
              description: Individual's email address
              type: string
              example: sarah.mason@klaviyo-demo.com
              nullable: true
            phone_number:
              description: Individual's phone number in E.164 format
              type: string
              example: '+15005550006'
              nullable: true
            external_id:
              description: A unique identifier used by customers to associate Klaviyo profiles with profiles in an external system, such as a point-of-sale system. Format varies based on the external system.
              type: string
              nullable: true
            anonymous_id:
              type: string
              nullable: true
            _kx:
              description: 'Also known as the `exchange_id`, this is an encrypted identifier used for identifying a

                profile by Klaviyo''s web tracking.


                You can use this field as a filter when retrieving profiles via the Get Profiles endpoint.'
              type: string
              nullable: true
            first_name:
              description: Individual's first name
              type: string
              example: Sarah
              nullable: true
            last_name:
              description: Individual's last name
              type: string
              example: Mason
              nullable: true
            organization:
              description: Name of the company or organization within the company for whom the individual works
              type: string
              example: Example Corporation
              nullable: true
            locale:
              description: The locale of the profile, in the IETF BCP 47 language t

# --- truncated at 32 KB (96 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/klaviyo/refs/heads/main/openapi/klaviyo-client-api-openapi.yml