Antavo Offers API

Endpoints provided by the _Offers_ module

Operations 3

GET /customers/{customer_id}/activities/offers List all offers available for the customer
POST /customers/{customer_id}/activities/offers/{offer_id}/claim Claim an offer for a specific customer
POST /offers/ List customer-specific offers

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/antavo-offers-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

antavo-offers-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Antavo Offers API
  version: '1.0'
  description: 'Operations tagged Offers across 2 of this provider''s published API definitions: antavo-display-openapi.yml, antavo-offers-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.staging.antavo.com
  description: The Antavo staging environment
tags:
- name: Offers
  description: Endpoints provided by the _Offers_ module
paths:
  /customers/{customer_id}/activities/offers:
    get:
      tags:
      - Offers
      summary: List all offers available for the customer
      description: This endpoints provides the list of all available offers for a specific customer.
      parameters:
      - name: customer_id
        in: path
        required: true
        description: "Unique customer ID. This can be \n\n  * The Antavo customer ID\n  * An external ID (requires [configuration](/docs/customers#external-identifiers)): ``{external_field:external_id_value}``\n"
        schema:
          type: string
          example: 280e674c-c4ea-4a30-987a-d9267d1a5018
      responses:
        '200':
          description: List of all available offers.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/OfferActivity'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Customer not found:
                  value:
                    type: NotFoundException
                    code: 160212
                    message: Customer not found
      security:
      - api_key: []
    servers:
    - url: https://api.staging.antavo.com
      description: The Antavo staging environment
  /customers/{customer_id}/activities/offers/{offer_id}/claim:
    post:
      tags:
      - Offers
      summary: Claim an offer for a specific customer
      description: This endpoint allows for claiming an offer for a customer.
      parameters:
      - name: customer_id
        in: path
        required: true
        description: "Unique customer ID. This can be \n\n  * The Antavo customer ID\n  * An external ID (requires [configuration](/docs/customers#external-identifiers)): ``{external_field:external_id_value}``\n"
        schema:
          type: string
          example: 280e674c-c4ea-4a30-987a-d9267d1a5018
      - name: offer_id
        in: path
        required: true
        description: The ID of the offer to be claimed.
        schema:
          type: string
          example: 63e95c4d0c12a2615822e913
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          description: The result of the claim action. The offer is claimed and a coupon object is returned if the customer has met the requirements of the offer. If the offer is available for the customer but the requirements are not met, an empty object is returned.
          content:
            application/json:
              schema:
                type: object
                properties:
                  coupon:
                    $ref: '#/components/schemas/CouponClaim'
              examples:
                Offer is claimed:
                  value:
                    code: '193'
                    status: claimed
                    created_at: '2025-02-25T10:30:01+09:30'
                    customer:
                      id: 280e674c-c4ea-4a30-987a-d9267d1a5018
                    name: Friday 20% off
                    claimed_at: '2025-02-28T00:27:01+09:30'
                    type: amount
                    value: 10
                    pool: 62c7f20687632a561f16499b
        '404':
          description: Customer or offer not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Customer not found:
                  value:
                    type: NotFoundException
                    code: 160212
                    message: Customer not found
                Offer not found:
                  value:
                    type: NotFoundException
                    code: 0
                    message: Offer not found
      security:
      - api_key: []
    servers:
    - url: https://api.staging.antavo.com
      description: The Antavo staging environment
  /offers/:
    post:
      tags:
      - Offers
      summary: List customer-specific offers
      description: 'This API endpoint is used to submit the contents of a cart and receive any available offers on the products within.

        The Offers API request body consists of 4 components:


        - `cart`: The intended purchase items, recorded in the same format as an Antavo checkout event.

        - `customer`: The Antavo ID of the customer.

        - `store`: The Antavo ID of the store. This may result in store-specific offers if configured.

        - `eligible_only`: Restricts the returned offers to those available to the customer.

        '
      responses:
        '200':
          description: Successful cart submission
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/response'
              examples:
                success:
                  summary: Successful submission
                  value:
                    data:
                    - id: offer_12345
                      name: 10% off
                      type: cart
                      weight: 1
                      min_total: 20
                      max_total: 100
                      required_match: any
                      required_items:
                      - type: product
                        id: prd_987654
                        name: Vintage Leather Jacket
                        min_quantity: '1'
                      eligible_match: all
                      eligible_items:
                      - type: product
                        id: prd_987654
                        name: Classic Denim Jeans
                        min_quantity: '1'
                      discount:
                        type: percent_discount
                        value: 10
                      is_exclusive: true
                      is_eligible: true
                      card_title: 10% Discount
                      card_description: Get 10% off on your purchase
                    eligible_only: false
                    customer:
                      id: 9f3c82d6-288e-4361-aec0-039eb066a334
                    cart:
                      total: 22.22
                      items:
                      - product_id: prd_987654
                        quantity: 2
                        price: 13.6
                        discount: 1
                        subtotal: 18
                      discount: 2.5
                      shipping: 0
                fail:
                  summary: Error - Customer is not in the system or opted out
                  value:
                    code: 160602
                    message: Invalid customer ID
        '400':
          description: Missing required parameter
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse_2'
              examples:
                fail:
                  summary: Error - Customer parameter is missing
                  value:
                    type: BadRequestException
                    code: 0
                    message: Missing required parameter ‘customer’
                fail2:
                  summary: Error - invalid Cart structure
                  value:
                    type: BadRequestException
                    code: 0
                    message: Cart structure validation Error
                fail3:
                  summary: Error - Cart item errors
                  value:
                    type: BadRequestException
                    code: 0
                    message: cart.items.1.quantity should be greater than or equal to 1
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse_2'
              examples:
                fail:
                  summary: Error - Not found
                  value:
                    code: 0
                    message: Not Found
                    type: NotFoundException
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OfferListRequest'
      security:
      - ApiKeyAuth: []
    servers:
    - url: https://api.staging.antavo.com
      description: The Antavo staging environment
components:
  schemas:
    CouponClaim:
      type: object
      properties:
        code:
          description: The coupon code.
          type: string
          example: TC22341
        status:
          description: The status of the coupon, whether it was only claimed by the customer or redeemed (used at checkout).
          type: string
          enum:
          - claimed
          - redeemed
        type:
          description: Type of the coupon.
          type: string
          enum:
          - percentage
          - amount
          - free_shipping
          - gift_card
        value:
          description: Arbitrary number as coupon value for amount type coupons, or a percentage number (0-100).
          type: number
          example: 10
        created_at:
          description: The date of coupon creation.
          type: string
          format: date-time
          example: '2021-11-23T08:34:59.000Z'
        claimed_at:
          description: The date of coupon assignment.
          type: string
          format: date-time
          example: '2021-11-23T08:34:59.000Z'
        name:
          description: Name of the coupon, which is inherited from the coupon pool.
          type: string
          example: 10% coupon codes
        pool:
          description: The original coupon pool from which the coupon was sourced.
          type: string
          example: 62c7f20687632a561f16499b
        customer:
          type: object
          properties:
            id:
              type: string
              description: The ID of the customer who is assigned to the coupon.
              example: 280e674c-c4ea-4a30-987a-d9267d1a5018
    Image:
      type: object
      description: Object contains different sizes of the image asset.
      properties:
        small:
          type: string
          format: uri
          example: https://example.com/1715791767-nH7Mf.jpeg
        medium:
          type: string
          format: uri
          example: https://example.com/1715791767-nH7Mf.jpeg
        large:
          type: string
          format: uri
          example: https://example.com/1715791767-nH7Mf.jpeg
    OfferActivity:
      type: object
      properties:
        id:
          type: string
          description: ID of the offer.
          example: 5c17c37f71f86e7f798b4576
        title:
          type: string
          description: Title of the offer.
          example: Bundle & Save 20%
        starts_at:
          type: string
          format: date-time
          description: Start date of the offer, if defined.
          example: '2024-07-01T04:22:00.000Z'
        ends_at:
          type: string
          format: date-time
          description: End date of the offer, if defined.
          example: '2024-07-31T11:59:00.000Z'
        description:
          type: string
          description: Description of the offer.
          example: Get 20% off when you add two or more items from our featured collection to your cart.
        status:
          type: string
          enum:
          - scheduled
          - active
          description: ''
        image:
          $ref: '#/components/schemas/Image'
        points:
          type: integer
          description: As points cannot be spent or earned for offers, this property is always set to zero.
          example: 0
        card_title:
          type: string
          description: Title of the offer configured for the loyalty card to display.
          example: Bundle & Save 20%!
        card_description:
          type: string
          description: Description of the offer configured for the loyalty card to display.
          example: Shop now and save on your favorite styles!
        stores:
          type: array
          description: Stores where the offer is claimable, if defined.
          items:
            type: object
            properties:
              id:
                type: string
                description: ID of the store
                example: '004'
              name:
                type: string
                description: Name of the store.
                example: 004 Dublin
    ErrorResponse:
      type: object
      description: This describes the structure returned if an error occurred
      properties:
        error:
          type: object
          properties:
            type:
              type: string
              description: Type of the error occurred.
              example: BadRequestException
            code:
              type: number
              description: Error code.
              example: 113401
            message:
              type: string
              description: Human readable error message.
              example: Missing required parameter 'parameter_name'
    Item:
      type: object
      properties:
        type:
          type: string
          enum:
          - product
          - category
          - list
          description: "Type of item:\n - `product`\n - `category`\n - `list`\n"
          example: product
        id:
          type: string
          description: Category ID or Product SKU. An array of Product IDs or SKUs can also be returned.
          example: prd_987654
        name:
          type: string
          description: Name of the category or product.
          example: Classic Denim Jeans
        min_quantity:
          type: number
          description: Minimum quantity required to qualify for the offer. Defaults to 1 if not specified.
          example: 1
      required:
      - type
      - id
    data:
      type: array
      description: An array of Offer objects
      items:
        $ref: '#/components/schemas/offer'
    Cart:
      type: object
      description: Cart content to check against available offers.
      required:
      - total
      - items
      properties:
        total:
          type: number
          description: The total value of the customer's cart including all items.
          example: 22.22
        items:
          $ref: '#/components/schemas/CartItems'
        discount:
          type: number
          description: Cart discount, already subtracted from total.
          example: 2.22
        shipping:
          type: number
          description: Shipping fee, already subtracted from total.
          example: 4.44
    response:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/data'
        eligible_only:
          type: boolean
          description: Indicates if the response includes offers that the customer is eligible for.
          example: false
        customer:
          type: object
          description: Information about the customer.
          properties:
            id:
              type: string
              description: The Antavo Customer ID.
              example: 9f3c82d6-288e-4361-aec0-039eb066a334
        cart:
          type: object
          description: Contains information about the content of the customer's cart.
          properties:
            total:
              type: string
              description: The total value of the customer's cart including all items.
              example: 22.22
            items:
              $ref: '#/components/schemas/CartItems'
    CartItems:
      type: array
      description: Cart content to check against available offers.
      items:
        description: Cart content to check against available offers.
        $ref: '#/components/schemas/CartItem'
    CartItem:
      type: object
      description: Cart content to check against available offers.
      required:
      - product_id
      - quantity
      properties:
        product_id:
          type: string
          description: Product ID or SKU.
          example: prd_987654
        quantity:
          type: number
          description: Number of items purchased.
          example: 2
        price:
          type: number
          description: Unit price of the product.
          example: 10
        discount:
          type: number
          description: Product discount value for given quantity.
          example: 1
        subtotal:
          type: number
          description: 'Product subtotal: price × quantity - discount'
          example: 18
    offer:
      type: object
      properties:
        id:
          type: string
          description: The Antavo ID for the specific offer.
          example: offer_12345
        name:
          type: string
          description: The name of the offer.
          example: 10% off
        type:
          type: string
          description: "The type of the offer:\n * `cart`\n * `item`\n * `combined`\n"
        weight:
          type: number
          description: Value from 1-10 with a lower number resulting in higher priority.
          example: 1
        min_total:
          type: number
          description: Minimum cart total eligible for the offer.
          example: 20
        max_total:
          type: number
          description: Maximum cart total eligible for the offer.
          example: 100
        required_match:
          type: string
          description: "Defines if all or at least one of the required items should be added to the cart (`cart` and `combined` offers):\n  - `any`\n  - `all` \n"
        required_items:
          type: array
          description: 'List of required items for eligibility (`cart` and `combined` offers).

            '
          items:
            $ref: '#/components/schemas/Item'
        eligible_match:
          type: string
          description: "Defines if all or at least one of the required items should be added to the cart (`cart` and `combined` offers).\n  - `any`\n  - `all` \n"
        eligible_items:
          type: array
          description: 'List of eligible items (`cart` and `combined` offers).

            '
          items:
            $ref: '#/components/schemas/Item'
        discount:
          type: object
          description: List of Offer objects.
          required:
          - type
          - value
          - target
          properties:
            type:
              type: string
              description: "Discount type:\n  - `fixed_price` -  Set price for targeted eligible items (`item` or `combined`).\n  - `fixed_discount` - Currency amount to be subtracted from target (`item` or `cart`)\n  - `percent_discount` - Percentage to be subtracted from target (`items` or `cart`)  \n"
              example: percent_discount
            value:
              type: number
              description: "Value of the offer depending on to discount type:\n  - `fixed_price` and `fixed_discount` - currency amount\n  - `percent_discount` - percentage value (0-100)\n"
              example: 10
        is_exclusive:
          type: boolean
          description: Incidates if this offer can be used with other offers.
          example: true
        is_eligible:
          type: boolean
          description: Indicates if the customer is eligible to redeem the offer.
          example: true
        card_title:
          type: string
          description: The title of the offer.
          example: 10% Discount
        card_description:
          type: string
          description: The description of the offer.
          example: Get 10% off on your purchase.
    OfferListRequest:
      type: object
      required:
      - cart
      - customer
      properties:
        cart:
          $ref: '#/components/schemas/Cart'
        customer:
          type: string
          example: 9f3c82d6-288e-4361-aec0-039eb066a334
          description: An Antavo-recognized unique customer identifier. This is used to determine customer eligibility. Providing a valid attribute will result in the return of possible loyalty and non-loyalty offers.
        store:
          type: string
          example: '3044'
          description: An Antavo identifier of the store where the purchase is made. Used to determine if there are any applicable offers.
        eligible_only:
          type: boolean
          default: true
          example: true
          description: Filters out non-eligible offers based on the current context (cart, customer, date, etc.)
    ErrorResponse_2:
      type: object
      description: occurred
      required:
      - error
      properties:
        error:
          type: object
          required:
          - type
          - code
          - message
          properties:
            type:
              type: string
              description: Type of the message.
              example: BadRequestException
            code:
              type: number
              description: "Error code.\t"
              example: 404
            message:
              type: string
              description: Human-readable error message.
              example: cart.total should be numeric
  securitySchemes:
    api_key:
      type: apiKey
      name: api_key
      description: Provides API Key access to the endpoint
      in: query
    ApiKeyAuth:
      type: apiKey
      in: query
      name: api_key
x-refined-from:
- antavo-display-openapi.yml
- antavo-offers-openapi.yml