openapi: 3.0.0
info:
contact: {}
title: Antavo Display API
version: 1.0.0
servers:
- url: https://api.staging.antavo.com
description: The Antavo staging environment
paths:
/customers/{customer_id}/activities/challenges:
get:
tags:
- Challenges
summary: List all available challenges for a customer
description: This endpoint returns all active challenges that are available for the customer to
complete. To access a filtered result, please use the [v2 endpoint](/reference/get_v2-customers-customer-id-activities-challenges).
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 challenges
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/ChallengeActivity'
'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
/customers/{customer_id}/activities/content-consumption:
get:
tags:
- Content consumption
summary: List available content consumption activities for a customer
description: This endpoint returns all content consumption activities that are available for a specific
customer to complete.
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 content consumption activities for the specific customer
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/ContentConsumptionActivityEndpoint'
'404':
description: Customer not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
Customer not found:
value:
type: NotFoundException
code: 160212
message: Customer not found
/customers/{customer_id}/activities/contests:
get:
tags:
- Contests
summary: List all available contests for a customer
description: This endpoint returns all contests that are available for a specific customer to enter.
parameters:
- in: path
name: customer_id
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"
required: true
schema:
type: string
example: 280e674c-c4ea-4a30-987a-d9267d1a5018
- name: fields
in: query
description: Comma separated list of custom attributes to include in the response.
schema:
type: string
example: cf_prize_cost
responses:
'200':
description: List of available contests
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/ContestActivity'
'404':
description: Customer not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
Customer not found:
value:
type: NotFoundException
code: 160212
message: Customer not found
/customers/{customer_id}/activities/earn:
get:
tags:
- Activities
summary: List all earn activities visible for a customer
description: 'Aggregates all earn activities relevant to the customer, provided by modules including:
* [Challenges](https://docs.antavo.com/docs/challenges)
* [Gamified profiling](https://docs.antavo.com/docs/gamified-profiling)
* [Incentivized purchase](https://docs.antavo.com/docs/incentivized-purchase)
* [Social follow](https://docs.antavo.com/docs/social-follow)
* [Offline treasure hunt](https://docs.antavo.com/docs/offline-treasure-hunt)
* [Content consumption](https://docs.antavo.com/docs/content-consumption)
* [Gamified reviews](https://docs.antavo.com/docs/gamified-reviews)
'
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 earn activities for the specific customer.
The list of information
returned in the response depends on the type of the activity and its configured attributes.
content:
application/json:
schema:
type: object
properties:
data:
type: array
description: List of activities available to the customer
items:
oneOf:
- $ref: '#/components/schemas/GamifiedReviews'
- $ref: '#/components/schemas/SocialFollow'
- $ref: '#/components/schemas/Challenge'
- $ref: '#/components/schemas/ContentConsumption'
- $ref: '#/components/schemas/IncentivizedPurchase'
- $ref: '#/components/schemas/OfflineTreasure'
- $ref: '#/components/schemas/GamifiedProfiling'
'404':
description: Customer not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
Customer not found:
value:
type: NotFoundException
code: 160212
message: Customer not found
/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
/customers/{customer_id}/activities/profiling/{flow_id}/next:
get:
tags:
- Profiling
summary: Retrieve the next question to answer within a profiling flow
description: This endpoints returns the next question within a profiling flow that the customer
should answer. If there are no more questions left to answer in the given flow, the call will
trigger the ``profiling_flow`` event, and any associated points will be awarded to the 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: flow_id
in: path
required: true
description: The ID of the profiling flow to complete.
schema:
type: string
example: 63d8d8cc17572c6ec15e688c
- name: Accept-language
in: header
description: 'If set in the Antavo Management UI, this header will ensure the response returns
translated values for the following question attributes:
* title
* description
* possible answers
'
required: false
schema:
type: string
description: ISO639 code of the language.
example: de
responses:
'200':
description: The next question to answer.
The information returned in the response depends
on the type of answer and its configured attributes. This example shows the attributes of
a **text_options** question.
content:
application/json:
schema:
$ref: '#/components/schemas/ProfilingQuestionOptions'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
No more questions to answer:
value:
type: BadRequestException
code: 0
message: There are no more questions
'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
/customers/{customer_id}/activities/profiling:
get:
tags:
- Profiling
summary: List profiling flows available to the customer
description: This endpoints provides the list of all available profiling flow for a specific customer
to complete.
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 profiling flows activities
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Activity'
'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
/customers/{customer_id}/activities/quizzes/{quiz_id}:
get:
tags:
- Quizzes
summary: List quiz details
description: This endpoint returns configured attributes of quiz questions.
parameters:
- name: customer_id
in: path
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"
required: true
style: simple
schema:
type: string
example: 280e674c-c4ea-4a30-987a-d9267d1a5018
- name: quiz_id
in: path
description: Unique identifier of the quiz.
required: true
style: simple
schema:
type: string
example: 6689b5735aa0eb191451a2f5
responses:
'200':
description: Quiz details
content:
application/json:
schema:
$ref: '#/components/schemas/QuizDetailsResponse'
'404':
description: Customer not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
fail:
summary: Customer not found
value:
type: NotFoundException
code: 160212
message: Customer not Found
deprecated: false
/customers/{customer_id}/activities/quizzes:
get:
tags:
- Quizzes
summary: List all quizzes
description: This endpoint returns all configured quiz questions that the customer may answer.
parameters:
- name: customer_id
in: path
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"
required: true
schema:
type: string
example: 280e674c-c4ea-4a30-987a-d9267d1a5018
- name: offset
in: query
description: Offsets the starting number of quiz questions to return. This is used in pagination
in conjunction with the limit query.
schema:
type: integer
default: 0
- name: limit
in: query
description: Limits the number of quiz questions returned in one response. Other values are accessible
by pagination made accessible via the offset.
schema:
type: integer
default: 20
responses:
'200':
description: List of all quiz questions
content:
application/json:
schema:
$ref: '#/components/schemas/QuizActivity'
'404':
description: Customer not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
fail:
summary: Customer not found
value:
type: NotFoundException
code: 160212
message: Customer not Found
deprecated: false
/customers/{customer_id}/activities/rewards/{reward_id}:
get:
tags:
- Rewards
summary: Retrieve a specific reward available for a customer
description: A endpoint provides detailed information about a specified reward available 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
- name: reward_id
in: path
required: true
description: Unique indentifier of the reward.
schema:
type: string
example: 668434f93d963535a513bf37
- name: fields
in: query
description: 'Use the `claims` field to see the claimed rewards and associated information for
each **currently** available reward.
'
schema:
type: string
example: claims
responses:
'200':
description: The list of attributes of the reward. The list of information returned in the response
depends on the type of the reward and its configured attribute. This example shows the attributes
of claiming a **dynamic coupon** reward.
content:
application/json:
schema:
$ref: '#/components/schemas/DynamicCouponRewardActivity'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
Reward is not active:
value:
type: BadRequestException
code: 160321
message: Reward is not active
'404':
description: Customer not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
Customer not found:
value:
type: NotFoundException
code: 160212
message: Customer not found
/customers/{customer_id}/activities/rewards:
get:
tags:
- Rewards
summary: List all available rewards for a customer
description: This endpoints provides the list of all available rewards 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
- name: fields
in: query
description: "Comma separated list of non-standard fields to be included in the response. Accepted\
\ values: \n\n* `claims`: See the claimed rewards and associated information for each **currently**\
\ available reward.\n\n* `custom_data`: Access this field set in the reward configuration.\n\
\n* `gallery`: Provides, where available, image links specified in the reward configuration.\n\
\n* `instructions`: Access redeem instructions set in the reward configuration.\n\n* `terms`:\
\ Access terms and conditions set in the reward configuration.\n\n* Any custom attributes configued\
\ in the [Entities module](https://docs.antavo.com/docs/custom-entities#adding-custom-entity-attributes)\
\ with `cf_` prefix.\n"
schema:
type: string
enum:
- claims
- custom_data
- events
- gallery
- instructions
- terms
- name: limit
in: query
description: 'Limits the number of rewards to be returned in one response. Other values are accessible
by pagination made accessible via the offset.
'
schema:
type: integer
default: 100
- name: offset
in: query
description: 'Offsets the starting number of rewards to return. This is used in pagination in
conjunction with the limit query.
'
schema:
type: integer
default: 0
- name: sort
in: query
description: 'Sorts the results by the selected value, which can be `starts_at`, `ends_at`, or
`order`. This query can be used in conjunction with the order query.
'
schema:
type: string
example: starts_at
- name: order
in: query
description: 'Used in conjunction with the sort query to list the results in ascending or descending
order. The value can be `asc` for an ascending order or `desc` for a descending order.
'
schema:
type: string
example: desc
responses:
'200':
description: List of rewards
The list of information returned in the response depends on
the type of the reward and its configured attributes. This example shows the attributes of
a **coupon** reward.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/CouponPoolRewardActivity'
'404':
description: Customer not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
Customer not found:
value:
type: NotFoundException
code: 160212
message: Customer not found
/customers/{customer_id}/activities/spend:
get:
tags:
- Activities
summary: List all available spend activities for a customer
description: 'Aggregates available earn and spend options provided by modules including:
* [Rewards](https://docs.antavo.com/docs/rewards)
* [Contest lite](https://docs.antavo.com/docs/contest-lite)
'
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
responses:
'200':
description: List of earn activities for the specific customer.
The list of information
returned in the response depends on the type of the spend activity and its configured attribute.
This example shows the attributes of **claiming a coupon reward**.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/SpendActivity'
'404':
description: Customer not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
Customer not found:
value:
type: NotFoundException
code: 160212
message: Customer not found
/customers/{customer_id}/activities/treasure-hunt:
get:
tags:
- Treasure hunt
summary: List all available treasure hunts
description: This endpoint returns the list of all available online treasure hunts 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: Available treasure hunts
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/TreasureHuntResponse'
'404':
description: Customer not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
fail:
summary: Customer not found
value:
type: NotFoundException
code: 160212
message: Customer not Found
/customers/{customer_id}/activities:
get:
tags:
- Activities
summary: List all available activities for a customer
description: 'Aggregates available earn and spend options provided by modules including:
* [Challenges](https://docs.antavo.com/docs/challenges)
* [Gamified profiling](https://docs.antavo.com/docs/gamified-profiling)
* [Incentivized purchase](https://docs.antavo.com/docs/incentivized-purchase)
* [Rewards](https://docs.antavo.com/docs/rewards)
* [Social follow](https://docs.antavo.com/docs/social-follow)
* [Social share](https://docs.antavo.com/docs/social-share)
* [Offline treasure hunt](https://docs.antavo.com/docs/offline-treasure-hunt)
* [Contest lite](https://docs.antavo.com/docs/contest-lite)
* [Content consumption](https://docs.antavo.com/docs/content-consumption)
* [Gamified reviews](https://docs.antavo.com/docs/gamified-reviews)
* [Friend referral](https://docs.antavo.com/docs/friend-referral)
* [Instagram contests](https://docs.antavo.com/docs/instagram-contests)
* [Offers](https://docs.antavo.com/docs/offers)
* [Quizzes](https://docs.antavo.com/docs/quizzes)
* [Online treasure hunt](https://docs.antavo.com/docs/online-treasure-hunt)
* [Prize wheels](https://docs.antavo.com/docs/prize-wheels)
* [Workflow campaigns](https://docs.antavo.com/docs/workflow-configuration#configure-campaign-settings)
'
parameters:
- name: customer_id
in: path
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"
required: true
style: simple
schema:
type: string
example: 280e674c-c4ea-4a30-987a-d9267d1a5018
- name: activity_types
in: query
description: "A comma-separated list of activity types to filter the results. Options:\n * `challenge`\n\
\ * `reward`\n * `social_share`\n * `profiling`\n * `offer`\n * `treasure`\n * `offline_treasure`\n\
\ * `contest`\n * `incentivized_purchase`\n * `content_consumption`\n * `social_follow`\n\
\ * `review`\n * `friend_referral`\n * `instagram_contests`\n * `prize wheels`\n * `quiz`\n\
\ * `campaign`\n"
style: form
explode: true
schema:
type: string
example: reward,profiling
- name: fields
in: query
description: Comma separated list of custom attributes to include in the response.
schema:
type: string
example: cf_prize_cost
responses:
'200':
description: List of all activities for the specific customer.
The list of information returned
in the response depends on the type of the activity and its configured attribute. This example
shows the attributes of a **profiling** activity.
content:
application/json:
schema:
$ref: '#/components/schemas/ListofallActivitiesResponse'
'404':
description: Customer not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
Customer not found:
value:
type: NotFoundException
code: 160212
message: Customer not found
deprecated: false
/customers/{customer_id}/challenges:
get:
tags:
- Challenges
summary: List a customer's completed challenges
description: This endpoint returns a customer's challenge completion history. Use the [v2 endpoint](/reference/get_v2-customers-customer-id-challenges)
to get a more complete and filterable view.
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 the customer's challenge completions
content:
application/json:
schema:
type: object
description: Lists challenge completions
properties:
data:
type: array
items:
$ref: '#/components/schemas/ChallengeCompletion'
'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
/customers/{customer_id}/coupons:
get:
tags:
- Coupons
summary: List coupons assigned to a customer
description: Returns all coupons that has been assigned to a specified customer.
parameters:
- in: path
name: customer_id
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"
required: true
schema:
type: string
example: 280e674c-c4ea-4a30-987a-d9267d1a5018
- in: query
name: code
description: Filter by the coupon code
required: false
schema:
type: string
example: TC22341
- in: query
name: name
description: Filter by the name of the coupon
required: false
schema:
type: string
example: 10% off
- in: query
name: status
description: 'Filter by coupon status. Accepted values: `claimed`, `expired`, `partially_redeemed`
and `redeemed`.'
required: false
schema:
type: string
enum:
- claimed
- expired
- partially_redeemed
- redeemed
- in: query
name: type
description: 'Filter by type of coupon. Accepted values: `amount`, `free_shipping`, `gift_card`,
`percentage`.'
required: false
schema:
type: string
enum:
- amount
- free_shipping
- gift_card
- percentage
- in: query
name: value
description: Filter by the value of coupon.
required: false
schema:
type: integer
example: 10
responses:
'200':
description: Coupon list
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Coupon'
'404':
description: Customer not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
Customer not found:
value:
type: NotFoundException
code: 160212
message: Customer not found
/customers/{customer_id}/data/{data_extension}:
get:
tags:
- Data extensions
summary: Retrieve Antavo data extensions
description: This endpoint allows for accesssing data of a specific customer stored in extensions.
parameters:
- name: customer_id
in: path
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"
required: true
schema:
type: string
example: 280e674c-c4ea-4a30-987a-d9267d1a5018
- name: data_extension
in: path
required: true
description: Antavo data module.
Currently, the `profiling` extension is available which provides
a customer's answers to profiling questions.
schema:
type: string
enum:
- profiling
responses:
'200':
description: Returned data structure
content:
application/json:
schema:
$ref: '#/components/schemas/ProfilingExtension'
'400':
description: Bad request - extension is not available
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
value:
type: BadRequestException
message: Not found
code: 160401
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
value:
type: NotFoundException
message: Customer not found
code: 160212
/customers/{customer_id}/events:
get:
tags:
- History
summary: List all Antavo events associated with a customer
description: 'This endpoint returns a detailed list of events and the corresponding actions recorded
with the specified customer ID. This information can be used as a customer activity source and
can also be accessed using the `/history`endpoint.
The event history/log/stream can be pre-filtered by specific event actions and paginated by limiting
and offsetting the number of returned events. The response also includes event expiration dates,
if set.
This endpoint was historically known as `/customers/{customer_id}/history`. This endpoint is still
valid and all options listed below are also applicable.
'
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/docs/customers#external-identifiers)): ``{external_field:external_id_value}``\n"
example: 280e674c-c4ea-4a30-987a-d9267d1a5018
schema:
type: string
- name: limit
in: query
description: 'Limits the number of events returned in one response. Other values are accessible
by pagination made accessible via the offset.
'
schema:
type: integer
default: 100
example: 50
- name: offset
in: query
description: 'Offsets the starting number of events to return. Used for pagination in conjunction
with the limit query.
'
schema:
type: integer
default: 0
- name: order
in: query
description: 'Used to sort and order the results in ascending or descending order. The value can
be `asc` for sorting the results by `_id` in an ascending order, or `desc` for sorting the results
by `date` and `_id` in a descending order.
'
schema:
type: string
example: desc
- name: actions
in: query
description: A legacy field consisting of comma separated list of actions to filters the type
of returned Antavo events.
example: checkout,checkout_accept
schema:
type: string
- name: action
in: query
schema:
type: string
description: "The events history can be filtered by submitted event actions using operators. Refer\
\ to [API events](/docs/api-events) and [internal events](/docs/internal-events) lists. \nThis\
\ filter query can be used in conjunction with [operators](/docs/pagination-filtering-and-ordering#query-operators).\
\ The filter should be submitted as a parameter in the following format: `field.operator(optional)=value`.\n\
\nFiltering of events containing a `transaction_id` is also possible. This requires the action\
\ query to contain all related events and for an additional query using `properties.transaction_id`.\n\
Example: \n`action.in=checkout,checkout_accept&properties.transaction_id.in=c078c162-88af-4369-89a4-408958a8cb75`.\
\ \nThese combined filters can also use [filtering operators](/docs/pagination-filtering-and-ordering#query-operators).\
\ \nThe `transaction_id` field in any custom event must be set as filterable.\n"
- name: date
in: query
example: date.gt=2023-01-01
schema:
type: string
description: "The events history can be filtered by a specific date. Specific start and/or end\
\ dates can be stated by using multiple operators (e.g., `date.gt=2020-01-01&date.lt=2022-02-01`).\n\
The UTC timezone should be considered when sending the request.\t\n"
- name: points_only
in: query
schema:
type: boolean
example: false
description: Filter to only show non-zero points events (events that award or subtract points).
- name: references
in: query
schema:
type: boolean
example: true
description: Include the ID and name of any associated challenges/rewards in the response.
responses:
'200':
description: Customer event history data
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Event'
prev:
type: string
format: uri
description: Links to the previous page of the event feed; present only when `limit`
is set.
example: /customers/280e674c-c4ea-4a30-987a-d9267d1a5018/events?limit=100&offset=200
next:
type: string
format: uri
description: Links to the next page of the event feed; present only when `limit` is
set.
example: /customers/280e674c-c4ea-4a30-987a-d9267d1a5018/events?limit=100&offset=400
'404':
description: Customer not found
content:
application/json:
schema:
$ref: '#/components/schemas/CustomernotfoundErrorResponse'
/customers/{customer_id}/prize-wheels/{pw_id}:
get:
tags:
- Prize wheels
summary: Retrieve all slices for a specific prize wheel
description: 'This endpoint provides all information regarding each individual slice of the prize
wheel.
Configured rewards can be used in a slice, and the full reward information can be returned with
the slice information using the `fields` query.
'
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: pw_id
in: path
required: true
description: Unique identifier of the prize wheel.
schema:
type: string
example: 63fdccaca88ac11c347af899
- name: fields
in: query
required: false
description: Use the options.reward field for detailed information of rewards associated with
winning slices.
schema:
type: string
example: options.reward
responses:
'200':
description: List all prize wheel slices
content:
application/json:
schema:
$ref: '#/components/schemas/PrizeWheelOption'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
fail:
summary: Prize wheel not found
value:
type: NotFoundException
code: 0
message: Prize wheel not Found
fail2:
summary: Customer not found
value:
type: NotFoundException
code: 160212
message: Customer not Found
post:
tags:
- Prize wheels
summary: Enters a customer into a specific prize wheel draw
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: pw_id
in: path
required: true
description: Unique identifier of the prize wheel.
schema:
type: string
example: 63fdccaca88ac11c347af899
responses:
'200':
description: Get random slice from options
content:
application/json:
schema:
$ref: '#/components/schemas/PrizeWheelsOptions_ind'
examples:
success:
summary: Slice provided
value:
id: 6406f75976c1691b981ec5dd
type: reward
label: 20% coupon
weight: 0.99
win_text: Congrats! You won a 20% coupon!
_actions:
claim:
method: POST
url: /customers/280e674c-c4ea-4a30-987a-d9267d1a5018/activities/rewards/6070545656bfb26685000017/claim
enter:
method: POST
url: /customers/280e674c-c4ea-4a30-987a-d9267d1a5018/prize-wheels/63fdccaca88ac11c347af899
fail:
summary: 'Segment claim/Reward limit reached '
value:
type: LockedException
code: 120219
message: Claim temporally locked
fail2:
summary: 'No More available reward coupons '
value:
type: RuntimeException
code: 123771
message: Ran out of coupons
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
fail:
summary: Spin repeat restriction reached
value:
type: BadRequestException
code: 0
message: 'You can''t spin, try again in: 17 minutes'
fail2:
summary: Not enough points
value:
type: BadRequestException
code: 0
message: You don't have enough points
fail3:
summary: No prizes available
value:
type: BadRequestException
code: 0
message: Not found any slice
fail5:
summary: Prize wheel already ended
value:
type: BadRequestException
code: 160907
message: The prize wheel already ended
'404':
description: Missing/wrong input data
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
fail:
summary: Prize wheel not found
value:
type: NotFoundException
code: 0
message: Prize wheel not Found
fail2:
summary: Customer not found
value:
type: NotFoundException
code: 160212
message: Customer not Found
/customers/{customer_id}/prize-wheels:
get:
tags:
- Prize wheels
summary: List all available prize wheels
description: This endpoint returns the list of all available prize wheels 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
- name: offset
in: query
description: Offsets the starting number of prize wheels to return. This is used in pagination
in conjunction with the limit query.
style: form
explode: true
schema:
type: integer
default: 0
- name: limit
in: query
description: Limits the number of prize wheels returned in one response. Other values are accessible
by pagination made accessible via the offset.
style: form
explode: true
schema:
type: integer
default: 100
responses:
'200':
description: List all prize wheels
content:
application/json:
schema:
$ref: '#/components/schemas/PrizeWheelsOptions'
'404':
description: Customer not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
fail:
summary: Customer not found
value:
type: NotFoundException
code: 160212
message: Customer not Found
/customers/{customer_id}/rewards:
get:
tags:
- Rewards
summary: List a customer's claimed rewards
description: This endpoint provides the detailed list a customer's claimed rewards.
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: limit
in: query
description: "Limits the number of claimed rewards to be returned in one response. Additional\
\ claimed rewards can be accessed through pagination using the offset. \n"
schema:
type: integer
default: 100
- name: offset
in: query
description: "Specifies the starting number of claimed rewards to return. Used for pagination\
\ in combination with the limit query. \n"
schema:
type: integer
default: 0
- name: sort
in: query
description: 'Used in conjunction with the order query to sort the results in the selected order
(ascending order by defualt).
'
schema:
type: string
- name: order
in: query
description: 'Used in conjunction with the sort query to list the results in ascending or descending
order. The value can be `asc` for an ascending order or `desc` for a descending order.
'
schema:
type: string
example: desc
- name: fields
in: query
description: "Comma separated list of non-standard fields to be included in the response. Accepted\
\ values: \n\n* `category`: Displays the reward's category, if assigned.\n\n* `custom_data`:\
\ Access fields set in the reward configuration under [Wehbook data](https://docs.antavo.com/docs/rewards#custom-fields).\n\
\n* `stock`: Access this field set in the reward configuration.\n\n* `gallery`: Provides, where\
\ available, image links specified in the reward configuration.\n\n* `instructions`: Access\
\ redeem instructions set in the reward configuration.\n\n* `terms`: Access terms and conditions\
\ set in the reward configuration.\n\n* `passes`: Access details for passes assigned to the\
\ customer through a reward claim.\n\n* Any custom attributes configued in the [Entities module](https://docs.antavo.com/docs/custom-entities#adding-custom-entity-attributes)\
\ with `cf_` prefix.\n"
schema:
type: string
enum:
- category
- custom_data
- stock
- gallery
- instructions
- terms
- passes
responses:
'200':
description: List of reward claims
content:
application/json:
schema:
$ref: '#/components/schemas/RewardClaimA'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
Customer not found:
value:
type: NotFoundException
message: Customer not found
code: 160212
/customers/{customer_id}/transactions/-/search:
get:
tags:
- Transactions
summary: Search transactions for a specific customer using criteria
description: 'This endpoint provides transactional-based searches for a specific customer. Customer
transactions can be filtered by transaction ID and status, and highly selective queries can be
generated using the generic entity [filtering](/docs/pagination-filtering-and-ordering#filtering).
Example:
`GET /customers/001/transactions/-/search?id.in=trx01,trx02,trx03&status=pending`
All inline examples within this documentation uses simple matching.
This endpoint has a 8k request URI limit, this corresponds to approximately 5000 transaction IDs
which are less than 15 character in length.
Higher volumes of filtering are possible using the [POST Method](/post_customers-customer-id-transactions-search).
'
parameters:
- name: customer_id
in: path
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"
required: true
style: simple
schema:
type: string
- name: id
in: query
description: The target transaction ID of the specified customer. This example uses a simple match,
but complex filtering is possible using generic entity [filter parameters](/docs/pagination-filtering-and-ordering#filtering)
schema:
type: string
example: TR37882412
- name: status
in: query
description: Transactions can be filtered by status. This example uses a simple match but complex
filtering is possible using generic entity [filter parameters](/docs/pagination-filtering-and-ordering#filtering)
schema:
type: string
enum:
- accepted
- pending
- refunded
- rejected
- draft
required: false
- name: offset
in: query
description: Offsets the starting number of transactions to return. This is used in pagination
in conjunction with the limit query.
style: form
explode: true
schema:
type: integer
default: 0
- name: limit
in: query
description: Limits the number of transactions returned in one response. Other values are accessible
by pagination made accessible via the offset.
style: form
explode: true
schema:
type: integer
default: 100
responses:
'200':
description: The transaction history data for a specific transaction
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionHistoryResponse'
post:
tags:
- Transactions
summary: Perform bulk transaction search for a specific customer
description: 'This endpoint provides the option of high-volume transaction-based searching.
Customer transactions can be filtered by transaction ID and status provide in the request body.
Highly selective queries can be generated using the generic entity [filtering](/docs/pagination-filtering-and-ordering#filtering).
'
parameters:
- name: customer_id
in: path
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"
required: true
style: simple
schema:
type: string
example: 280e674c-c4ea-4a30-987a-d9267d1a5018
requestBody:
description: "Generally, the `id` field will be used in conjunction with the `in` operator to\
\ search a JSON array or comma separated values in a string. \n"
content:
application/json:
schema:
$ref: '#/components/schemas/transrequest'
example:
id.in:
- trx01
- trx02
- trx03
status: pending
responses:
'200':
description: The transaction history data for a specific transaction
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionHistoryResponse'
deprecated: false
/customers/{customer_id}/transactions/{transaction_id}/events:
get:
tags:
- Transactions
summary: List all events associated with a specified transaction for a specific customer
description: 'This endpoint provides a detailed breakdown of a specified customer''s transaction.
The following events are returned by this endpoint:
* [checkout](/docs/api-events#checkout), [checkout_item](/docs/api-events#checkout_item).
* [checkout_update](/docs/api-events#checkout_update), [checkout_update_item](/docs/api-events#checkout_update_item).
* [checkout_accept](/docs/api-events#checkout_accept), [checkout_reject](/docs/api-events#checkout_accept_item).
* [point_add](/docs/api-events#point_add),[point_spend](/docs/api-events#point_spend),[point_unspend](/docs/api-events#point_unspend).
* [refund](/docs/api-events#refund), [partial_refund](/docs/api-events#partial_refund), [refund_item](/docs/api-events#refund_item).
* [release_points](/docs/api-events#release_points), [reserve_points](/docs/api-events#reserve_points).
* any other event with a transaction ID.
'
parameters:
- name: customer_id
in: path
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"
required: true
style: simple
schema:
type: string
example: 280e674c-c4ea-4a30-987a-d9267d1a5018
- name: transaction_id
in: path
description: Unique transaction ID
required: true
style: simple
schema:
type: string
example: TR37882412
- name: action
in: query
schema:
type: string
example: checkout
description: "\"The events history can be filtered by submitted event actions using operators.\
\ Refer to [API events](/docs/api-events) and [internal events](/docs/internal-events) lists.\
\ \nThis filter query can be used in conjunction with the operators listed here. The filter\
\ should be submitted as a parameter in the following format: `field.operator(optional)=value`.\n\
\ \nFiltering of events containing a `transaction_id` is also possible. This requires the action\
\ query to contain all related events and for an additional query using `properties.transaction_id`.\n\
Example: \n`action.in=checkout,checkout_accept&properties.transaction_id.in=c078c162-88af-4369-89a4-408958a8cb75`.\
\ \nThese combined filters can also use [filtering operators](/docs/pagination-filtering-and-ordering#query-operators).\
\ \nThe `transaction_id` field in any custom event must be set as filterable.\"\n"
- name: date
in: query
schema:
type: string
example: '2022-01-01'
description: 'The events history can be filtered by a specific date. Specific start and/or end
dates can be stated by using multiple [operators](/docs/pagination-filtering-and-ordering#query-operators).
E.g.,
date.gt=2020-01-01&date.lt=2022-02-01
UTC timezone should be considered when sending the request.
'
- name: offset
in: query
description: Offsets the starting number of events to return. This is used in pagination in conjunction
with the limit query.
style: form
explode: true
schema:
type: integer
default: 0
- name: limit
in: query
description: Limits the number of events returned in one response. Other values are accessible
by pagination made accessible via the offset.
style: form
explode: true
schema:
type: integer
default: 100
responses:
'200':
description: The event history data of a specific transaction
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionEventsHistoryResponse'
'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
Transaction not found:
value:
type: NotFoundException
code: 0
message: Transaction not found
deprecated: false
/customers/{customer_id}/transactions/{transaction_id}:
get:
tags:
- Transactions
summary: Retrieve a specified transaction for a specific customer
description: 'This endpoint provides a detailed breakdown of a customer''s transaction.
If you need to retrieve the event ID that created the transaction, use the [/transactions](/reference/get_customers-customer-id-transactions)
endpoint with the ``id`` query parameter to access the corresponding event information.
'
parameters:
- name: customer_id
in: path
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"
required: true
style: simple
schema:
type: string
example: 280e674c-c4ea-4a30-987a-d9267d1a5018
- name: transaction_id
in: path
description: Transaction ID.
required: true
style: simple
schema:
type: string
example: TR37882412
- name: fields
in: query
description: 'Include non-standard fields in the response. Accepted values:
* `events`: Display events related to the specified transaction.
'
schema:
type: string
example: events
responses:
'200':
description: The event history data for a specific transaction.
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionPerTransactionResponse'
'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
Transaction not found:
value:
type: NotFoundException
code: 0
message: Transaction not found
deprecated: false
/customers/{customer_id}/transactions:
get:
tags:
- Transactions
summary: Retrieve the transaction history for a specific customer
description: "This endpoint provides a detailed list of a customer's transactions. \nEach returned\
\ transaction contains the transaction ID, transaction status and all other related transaction\
\ information submitted in the initial event.\n\nThe list of returned transactions can also be\
\ subsequently paginated by limiting the number of returned transactions and subsequently offsetting\
\ the returned transactions.\n"
parameters:
- name: customer_id
in: path
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"
required: true
style: simple
schema:
type: string
example: 280e674c-c4ea-4a30-987a-d9267d1a5018
- name: limit
in: query
description: 'Limits the number of transactions to be returned in one response. Other values are
accessible by pagination made accessible via the offset.
'
style: form
explode: true
schema:
type: integer
default: 100
- name: offset
in: query
description: "Offsets the starting number of transactions to return. This is used in pagination\
\ in conjunction with the limit query. \n"
style: form
explode: true
schema:
type: integer
default: 0
- name: id
in: query
description: 'Filters transactions by their unique transaction ID. You can use this parameter
to retrieve a specific transaction based on the ID.
'
style: form
explode: true
schema:
type: string
example: T10000024
responses:
'200':
description: Customer transaction history data
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionHistoryResponse2'
'404':
description: Customer not found
content:
application/json:
schema:
$ref: '#/components/schemas/CustomernotfoundErrorResponse'
deprecated: false
/customers/{customer_id}/wallet:
get:
tags:
- Wallet
summary: Retrieve download URLs for assigned wallet passes
description: This endpoint returns all wallet passes for a specific customer. A new access token
is generated every time the endpoint is called.
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: status
in: query
required: false
schema:
type: string
enum:
- assigned
- archived
description: 'Filters available passes based on status. Accepted values: `assigned` and `archived`'
responses:
'200':
description: Customer's wallet passes
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Pass'
'404':
description: Customer not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
fail:
summary: Customer not found
value:
type: NotFoundException
code: 160212
message: Customer not Found
/customers/-/events:
get:
tags:
- History
summary: Retrieve a time-filtered list of every event for all customers
description: "This endpoint returns all events for all customers that match the specified datetime\
\ timestamp query.\nThe returned object contains the total number of matching events and an array\
\ of every matching event.\t\n\nThe datetime filter accepts the following operators and can be\
\ combined to generate a time window:\n\n* `gt` - greater than\n\n* `lt` - less than \n\n* `gte`\
\ - greater than or equal\n\n * `lte` - less than or equal\n\n The timestamp filter must be in\
\ ISODate format. Example: ``timestamp.gt=2023-01-05``,``timestamp.gt=2023-01-05T13:28:55`` or\
\ ``timestamp.gt=2023-01-05T13:28:55.233+0000``.\n\n **Note**: The timezone offset optional parameter\
\ (e.g., +0000) must be URL-encoded. \n"
parameters:
- in: query
name: timestamp.gt
description: Filter events with timestamp greater than the specified value.
schema:
type: string
example: '2023-01-01T00:00:00.000Z'
- in: query
name: timestamp.lt
description: Filter events with timestamp less than the specified value.
schema:
type: string
example: '2024-01-01T00:00:00.000Z'
- in: query
name: timestamp.gte
description: Filter events with timestamp greater than or equal to the specified value.
schema:
type: string
example: '2023-01-01T00:00:00.000Z'
- in: query
name: timestamp.lte
description: Filter events with timestamp less than or equal to the specified value.
schema:
type: string
example: '2023-01-01T00:00:00.000Z'
- name: limit
in: query
description: 'Limits the number of events returned in one response. Other values are accessible
by pagination made accessible via the offset.
'
schema:
type: integer
default: 100
example: 50
- name: offset
in: query
description: 'Offsets the starting number of events to return. Used for pagination in conjunction
with the limit query.
'
schema:
type: integer
default: 0
- name: order
in: query
description: 'Used to sort and order the results in ascending or descending order. The value can
be `asc` for sorting the results by `_id` in an ascending order, or `desc` for sorting the results
by `date` and `_id` in a descending order.
'
schema:
type: string
example: desc
responses:
'200':
description: Time-filtered events
content:
application/json:
schema:
type: object
properties:
total:
type: number
description: The number of events that matched the specified datetime timestamp query.
example: 150
data:
type: array
description: An array of all events matched the specified datetime timestamp query.
items:
type: object
properties:
id:
type: string
description: Event reference ID.
example: 5defe3e1e710bd9b018b45c7
action:
type: string
description: Describes the properties and behavior when processing an event.
example: point_add
label:
type: string
description: Event action display name.
example: Point add
Customer:
type: object
properties:
id:
type: string
description: The Antavo unique customer ID.
example: 280e674c-c4ea-4a30-987a-d9267d1a5018
points:
type: integer
description: Number of points earned (positive) or spent (negative) with the
event.
example: 100
timestamp:
type: string
format: date-time
description: The timestamp of the event.
example: '2022-12-25T18:28:49.000Z'
properties:
type: array
description: The actual list of properties is defined by the action.
items:
$ref: '#/components/schemas/EventProperty2'
expdate:
type: string
pattern: /([0-9]{4})-(?:[0-9]{2})-([0-9]{2})/
description: The point expiry date stored as a YYYY-MM-DD string.
example: '2023-12-25'
/customers/-/verify/:
get:
tags:
- Customers
summary: Verify credentials provided during registration
description: 'This endpoint is used to confirm registration.
A successful verification will change the status of the customer to `active` and enable them to
log in and engage with the loyalty program. Failure will leave the customer in an `inactive` status.
The verification process occurs using a token.
This requires the Custom login module with the verification option enabled (disabled by default).
'
parameters:
- name: token
in: query
required: true
schema:
type: string
description: The access token from the link, provided in the verfication email used to verify
the customer.
example: ZTM4Mjk4YTk5ZTkyZTg5NWE5N2UzNWViNjlhNGYyZDMxZmZkNGU1M2ExOGNmZTNiOWE3Y2YzZmE2ZTMyNjdiOQ.eyJjdXN0b21lciI6Im5vdF9hX3ZhbGlkX2N1c3RvbWVyIiwiZXhwaXJlc19hdCI6ImxvbmdfYWdvIn0
- name: redirect_url
in: query
schema:
type: string
description: If provided, the user will be redirected to this URL after successful confirmation.
responses:
'200':
description: Customer registration confirmed successfully
content:
application/json:
schema:
type: object
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
fail:
summary: Invalid token
value:
type: BadRequestException
code: 0
message: This request token is not valid
fail2:
summary: Used Token
value:
type: BadRequestException
code: 0
message: This token has already been used
fail3:
summary: Expired token
value:
type: BadRequestException
code: 0
message: This token has been expired
fail4:
summary: Deactivated token
value:
type: BadRequestException
code: 0
message: This token is already deactivated
deprecated: false
/v2/customers/{customer_id}/activities/challenges:
get:
tags:
- Challenges
summary: V2 List all available challenges for a customer
description: This endpoint returns all active challenges that are available for the customer to
complete. Results can be [filtered](/docs/pagination-filtering-and-ordering#filtering) with query
parameters listed below.
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: tags
in: query
required: false
description: Filtering based on tag(s) associated.
schema:
type: string
example: transactions
- name: points
in: query
required: false
description: Filtering based on the points rewarded.
schema:
type: number
example: 100
- name: title
in: query
required: false
description: Filtering based on the title.
schema:
type: string
example: Summer+Style+Challenge
- name: offset
in: query
description: 'Offsets the starting number of active challenges to return. This is used in pagination
in conjunction with the limit query.
'
schema:
type: integer
example: 10
- name: limit
in: query
description: 'Limits the number of active challenges returned in one response. Other values are
accessible by pagination made accessible via the offset.
'
schema:
type: integer
example: 50
- name: sort
in: query
description: 'Sorts the results by the selected value, which can be `ends_at`, `title` or `points`.
This query can be used in conjunction with the order query.
'
schema:
type: string
example: points
- name: order
in: query
description: 'Used in conjunction with the sort query to list the results in ascending or descending
order. The value can be `asc` for an ascending order or `desc` for a descending order.
'
schema:
type: string
example: desc
responses:
'200':
description: List of challenges
content:
application/json:
schema:
$ref: '#/components/schemas/V2ChallengeActivity'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/ChallengesErrorResponse'
deprecated: false
/v2/customers/{customer_id}/challenges:
get:
tags:
- Challenges
summary: V2 List a customer's completed challenges
description: This endpoint returns a customer's challenge completion history. Results can be [filtered](/docs/pagination-filtering-and-ordering#filtering)
with query parameters listed below.
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: created_at.lt
in: query
description: Filter by challenge creation date (less than)
required: false
schema:
type: string
format: date-time
example: '2025-08-01T00:00:00Z'
- name: created_at.lte
in: query
description: Filter by challenge creation date (less than or equal)
required: false
schema:
type: string
format: date-time
example: '2025-08-01T00:00:00Z'
- name: created_at.gt
in: query
description: Filter by challenge creation date (greater than)
required: false
schema:
type: string
format: date-time
example: '2025-01-01T00:00:00Z'
- name: created_at.gte
in: query
description: Filter by challenge creation date (greater than or equal)
required: false
schema:
type: string
format: date-time
example: '2025-01-01T00:00:00Z'
- name: last_completed_at.lt
in: query
description: Filter by last challenge completion date/time (less than)
required: false
schema:
type: string
format: date-time
example: '2025-08-01T23:59:59Z'
- name: last_completed_at.lte
in: query
description: Filter by last challenge completion date/time (less than or equal)
required: false
schema:
type: string
format: date-time
example: '2025-08-01T23:59:59Z'
- name: last_completed_at.gt
in: query
description: Filter by last challenge completion date/time (greater than)
required: false
schema:
type: string
format: date-time
example: '2025-01-01T00:00:00Z'
- name: last_completed_at.gte
in: query
description: Filter by last challenge completion date/time (greater than or equal)
required: false
schema:
type: string
format: date-time
example: '2025-01-01T00:00:00Z'
- name: id
in: query
description: Filter to a specific challenge by id.
required: false
example: 6720e8e7dba10ac31c055d1f
schema:
type: string
- name: offset
in: query
description: 'Offsets the starting number of challenges to return. This is used in pagination
in conjunction with the limit query.
'
schema:
type: integer
example: 10
default: 0
- name: limit
in: query
description: 'Limits the number of challenges returned in one response. Other values are accessible
by pagination made accessible via the offset.
'
schema:
type: integer
example: 50
default: 20
minimum: 1
maximum: 100
responses:
'200':
description: List of the customer's challenge completions
content:
application/json:
schema:
$ref: '#/components/schemas/V2ChallengeCompletionResponse'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
Limit must be between 1-100:
value:
type: BadRequestException
code: 300123
message: Limit must be between 100 and 100
Offset cannot be negative:
value:
type: BadRequestException
code: 300121
message: Offset cannot be negative
Invalid query parameters:
value:
type: BadRequestException
code: 300122
message: Invalid query string parameter(s)
'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
/customers/{customer_id}/activities/contests/{contest_id}/enter:
post:
tags:
- Contests
summary: Submit a contest entry
parameters:
- name: customer_id
in: path
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"
required: true
schema:
type: string
example: 280e674c-c4ea-4a30-987a-d9267d1a5018
- name: contest_id
in: path
description: A unique identifier of the contest.
required: true
schema:
type: string
example: 6644e797d959c7036f18762a
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
count:
type: integer
example: 1
description: The number of times a customer should be entered into a contest with a
single API request.
responses:
'200':
description: Customer successfully entered
content:
application/json:
schema:
type: object
properties:
message:
type: string
description: The configured completion text.
example: You've successfully entered this contest!
'404':
description: Customer or contest not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
Customer not found:
value:
type: NotFoundException
code: 160212
message: Customer not found
Contest not found:
value:
type: NotFoundException
code: 0
message: Contest not found
/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
/customers/{customer_id}/activities/profiling/{flow_id}/questions/{question_id}:
post:
tags:
- Profiling
summary: Submit an answer to a profiling question
description: 'This endpoint allows for submitting the customer''s answers to profiling questions.
Two types of events are recorded through this endpoint:
* A `profiling_answer` event is recorded each time an answer is submitted to a profiling question.
* A `profiling_flow` event is recorded once all answers in a flow have been successfully submitted
in separate requests. This event indicates that the entire profiling sequence has been completed.
Learn more about these events under the list of [Internal events](/docs/internal-events#profiling_answer).
'
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: flow_id
in: path
required: true
description: Flow ID.
schema:
type: string
- name: question_id
in: path
required: true
description: Question ID.
schema:
type: string
requestBody:
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
answer:
description: Answer ID where available, or the answer text. For multiple answers an
array should be passed. This should be a boolean value for `like` questions.
type: string
required:
- answer
responses:
'200':
description: Answer accepted
content:
application/json:
schema:
type: object
properties:
message:
type: string
description: Flow completion message. Returned only when the flow is completed.
example: Congratulations! You just finished our survey.
cta_label:
type: string
description: CTA button label to dismiss completion message. Returned only when the
flow is completed.
example: Back to my activities
'400':
description: Invalid answer
content:
application/json:
schema:
type: object
properties:
type:
type: string
description: Type of the error occurred.
example: BadRequestException
code:
type: number
description: Error code.
example: 0
message:
type: string
description: Human readable error message.
example: Invalid answer
'404':
description: Customer not found
content:
application/json:
schema:
type: object
properties:
type:
type: string
description: Type of the error occurred.
example: NotFoundException
code:
type: number
description: Error code.
example: 160212
message:
type: string
description: Human readable error message.
example: Customer not found
/customers/{customer_id}/activities/quizzes/{quiz_id}/earn:
post:
tags:
- Quizzes
summary: Submit an answer to a quiz
description: This endpoint allows for the submission of answers to quiz questions.
parameters:
- name: customer_id
in: path
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"
required: true
style: simple
schema:
type: string
example: 280e674c-c4ea-4a30-987a-d9267d1a5018
- name: quiz_id
in: path
description: Unique identifier of the quiz.
required: true
style: simple
schema:
type: string
example: 6689b5735aa0eb191451a2f5
requestBody:
content:
application/x-www-form-urlencoded:
schema:
required:
- answer
type: object
properties:
answer:
type: integer
description: The answer as an index of the possible answers array.
example: 0
required: false
responses:
'200':
description: Request submitted
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/AnsweringaQuizResponse'
- $ref: '#/components/schemas/AnsweringaQuizResponseError'
examples:
successResponse:
summary: Successful answer
value:
correct_answer: true
message: Well done! You've just earned 100 points!
errorResponse:
summary: Error in answer
value:
error:
type: RuntimeException
code: 0
message: This quiz is already answered by the customer.
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
Customer not found:
value:
type: NotFoundException
message: Customer not found
code: 160212
Quiz not found:
value:
type: NotFoundException
message: Not found
code: 0
deprecated: false
/customers/{customer_id}/activities/rewards/{reward_id}/bid:
post:
tags:
- Rewards
summary: Submit a bid for the customer on a specified bidding reward
description: 'The endpoint automatically calculates and submits a bid for a specified customer on
the specific bidding reward. The bid amount is based on the current highest bid and the [bid step](https://docs.antavo.com/docs/rewards#bidding-rewards),
which is set in the Antavo Management UI.
Manually set value for bids is possible by submitting an amount in the request body.
'
parameters:
- name: customer_id
in: path
schema:
type: string
example: 280e674c-c4ea-4a30-987a-d9267d1a5018
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"
- name: reward_id
in: path
schema:
type: string
example: 668477027cad34756c6cf005
required: true
description: Unique indentifier of the reward.
requestBody:
required: false
description: 'A specific bidding amount has to be added to the request. If no bid is submitted,
the new bid amount will be the current bid + step size defined in the Management UI. '
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
amount:
type: number
description: A specific value for a bid. If empty, the automatic bid with a value current
value + bid step will be submitted.
example:
amount: 160
responses:
'200':
description: Bid successfully submitted
content:
application/json:
schema:
$ref: '#/components/schemas/BidResponse'
'400':
description: Reward is not active
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
Reward is not active:
value:
type: BadRequestException
message: Reward is not active
code: 160321
'404':
description: Customer or reward not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
Customer not found:
value:
type: NotFoundException
code: 160212
message: Customer not found
Reward not found:
value:
type: NotFoundException
message: Not Found
code: 0
/customers/{customer_id}/activities/rewards/{reward_id}/claim:
post:
tags:
- Rewards
summary: Claim a reward for a specific customer
description: This endpoint allows for claiming a reward 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: reward_id
in: path
required: true
description: Unique reward ID.
schema:
type: string
example: 63dcb7736123782ba6336425
- name: fields
in: query
schema:
type: string
enum:
- customer
- reward
description: "Returns additional objects in the response, using a comma separated list. Options:\
\ \n\n- **customer**: The complete customer response object with all customer attributes.\n\
- **reward**: The complete reward object with all reward attributes.\n"
requestBody:
required: false
description: "A request body is **only** required for specific scenarios. \n\n1. Dynamic rewards:\
\ The stated points are used to calculate the value of the generated dynamic coupon. \n\n2.\
\ Making multiple claims in a single API request: Repeated identical reward claims can be combined\
\ into an single request, reducing API traffic.\n"
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
points:
type: integer
description: Points to be used when claiming a dynamic type of reward.
example: 700
count:
type: integer
description: The number of times that the reward is claimed in a single API request.
This is only needed for multiple claims.
example: 2
responses:
'200':
description: Claim result. A coupon object is returned only for coupon rewards.
content:
application/json:
schema:
type: object
required:
- spent
properties:
spent:
type: integer
description: The number or points spent to claim the reward.
example: 700
id:
type: string
description: ID of the reward claim event
last_claimed_at:
type: string
format: date-type
description: The last time the customer claimed the reward.
example: '2021-11-23T08:34:59.000Z'
coupon:
$ref: '#/components/schemas/CouponClaim'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
Reward is not active:
value:
type: BadRequestException
message: Reward is not active
code: 160321
'404':
description: Customer not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
Customer not found:
value:
type: NotFoundException
code: 160212
message: Customer not found
/customers/{customer_id}/activities/rewards/{reward_id}/revoke:
post:
tags:
- Rewards
summary: Revoke a previously claimed reward
description: This endpoint revokes a specific reward claim.
parameters:
- name: customer_id
in: path
schema:
type: string
example: 280e674c-c4ea-4a30-987a-d9267d1a5018
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"
- name: reward_id
in: path
schema:
type: string
example: 668434f93d963535a513bf37
required: true
description: Unique indentifier of the reward.
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
event:
type: string
description: The unique indentifier of the reward claim event.
example: 66676986c688963c28608f0c
responses:
'200':
description: Successful revoke
content:
application/json:
schema:
type: object
example: {}
'400':
description: Claim cannot be revoked
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
Claim already revoked:
value:
type: BadRequestException
code: 160344
message: Claim event already revoked
Event not found:
value:
type: BadRequestException
code: 160340
message: Event not found
'404':
description: Customer not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
Customer not found:
value:
type: NotFoundException
code: 160212
message: Customer not found
/customers/{customer_id}/opt-in:
post:
tags:
- Customers
summary: Create a new customer with log-in credentials
description: "This endpoint creates customer within Antavo according to the specified opt-in parameters\
\ stated in the body. \n\nThis interface is primarily used as a customer-driven registration process\
\ which also generates login credentials, enabling the new customer to log into Antavo systems.\
\ This endpoint complements the [opt-in](https://developers.antavo.com/docs/api-events#opt_in)\
\ event.\n"
parameters:
- name: customer_id
in: path
description: ''
required: true
style: simple
schema:
type: string
example: 280e674c-c4ea-4a30-987a-d9267d1a5018
requestBody:
description: Customer opt-in parameters
content:
application/json:
schema:
$ref: '#/components/schemas/Optin'
required: false
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/Customer'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
fail:
summary: Customer already exists
value:
type: BadRequestException
code: 0
message: Customer already exists
fail2:
summary: Missing Path parameter
value:
type: BadRequestException
code: 0
message: 'Missing path param: customer_id'
deprecated: false
/customers/-/login:
post:
tags:
- Customers
summary: Log in a specific customer to Antavo
description: 'This endpoint logs the specified customer into Antavo and a successful login returns
the customer object.
The username attribute can be specified in the Antavo Management UI from any available profile
attribute.
The customer ID can then be accessed and used for subsequent calls using Antavo Display API endpoints.
A successful log-in will also create a ``daily_login`` event for the customer.
This event will only be written once to the customer''s event stream per calendar day.
This requires the Custom login module to be enabled.
'
requestBody:
description: Login request parameters
content:
application/json:
schema:
$ref: '#/components/schemas/Login'
required: false
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/Customer'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
fail:
summary: Wrong username/password
value:
type: BadRequestException
code: 0
message: Invalid username or password
deprecated: false
/customers/-/password/request:
post:
tags:
- Customers
summary: Request a new password for Antavo login
description: 'A forgotten password can be reset through this endpoint.
The username can be set in the Customer login module in the Management UI and can be any customer
profile attribute.
The `url` string is a URL which can be extended with the reset token.
'
requestBody:
description: Password reset request parameters
content:
application/json:
schema:
$ref: '#/components/schemas/PasswordRequest'
required: false
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/PasswordResponse'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
fail:
summary: Customer not found
value:
type: BadRequestException
code: 0
message: Customer not found
deprecated: false
/customers/-/password/reset:
post:
tags:
- Customers
summary: Reset the password of the current customer
description: 'This provides a customer interface for changing a password. The token is captured
from the link provided by the password reset email. A simple check is provided to ensure that
the two passwords match.
This requires the Custom login module to be enabled.'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PasswordReset'
required: false
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
properties:
token:
type: string
description: The token used for password reset.
example: ZTM4Mjk4YTk5ZTkyZTg5NWE5N2UzNWViNjlhNGYyZDMxZmZkNGU1M2ExOGNmZTNiOWE3Y2YzZmE2ZTMyNjdiOQ.eyJjdXN0b21lciI6Im5vdF9hX3ZhbGlkX2N1c3RvbWVyIiwiZXhwaXJlc19hdCI6ImxvbmdfYWdvIn0
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
fail:
summary: Invalid token
value:
type: BadRequestException
code: 0
message: This request token is not valid
fail2:
summary: Used Token
value:
type: BadRequestException
code: 0
message: This token has already been used
fail3:
summary: Expired token
value:
type: BadRequestException
code: 0
message: This token has been expired
fail4:
summary: Deactivated token
value:
type: BadRequestException
code: 0
message: This token is already deactivated
fail5:
summary: Non-matching Passwords
value:
type: BadRequestException
code: 0
message: Passwords do not match
deprecated: false
components:
securitySchemes:
api_key:
type: apiKey
name: api_key
description: Provides API Key access to the endpoint
in: query
schemas:
ChallengeActivity:
type: object
properties:
id:
type: string
description: The unique ID of the challenge.
example: 63eaabe8b0fe6815c91425b6
title:
type: string
description: Title of the challenge.
example: Summer Style Challenge
description:
type: string
description: Description of the challenge.
example: Embrace the season with our exclusive Summer Style Challenge! Purchase a full set from
our vibrant summer clothing line and showcase your fashion-forward look. Complete the challenge
to earn special rewards and make this summer your most stylish one yet.
status:
type: string
description: Current status of the challenge.
enum:
- active
- restricted
image:
$ref: '#/components/schemas/Image'
points:
type: integer
description: The number of points rewarded when the customer completes the challenge.
example: 100
progress:
type: object
description: Returned for active challenges only.
properties:
last_completed_at:
type: string
format: date-type
description: The last time time a customer completed the challenge. This is not necessarily
the current customer.
example: '2024-04-02T16:13:35.000Z'
overall:
type: number
description: Calculated overall progress as percentage (sum of capped `current` values per
sum of `threshold` values).
example: 20
criteria:
type: array
description: Detailed information of the customer's progress with each criteria of challenge
completion.
items:
type: object
properties:
action:
type: string
description: The action to perform to complete the challenge.
example: checkout_item
current:
type: integer
description: Current progess of the customer on the challenge completion.
example: 1
threshold:
type: integer
description: The number of times the action should be performed.
example: 5
message:
type: string
description: The description of the criterium.
example: Complete your look by purchasing 5 items from our summer clothing line and
unlock 100 loyalty points as a reward!
is_completed:
type: boolean
description: Indicates whether the customer has completed the challenge.
example: true
cta_label:
type: string
description: Call-to-action button label.
example: Join the Challenge
url:
type: string
format: uri
description: URL of the page that opens after the customer clicks the CTA button.
example: https://antavo.com/summer-items
starts_at:
type: string
format: date-time
description: Start date of the challenge, if defined.
example: '2024-02-29T14:30:00.000Z'
ends_at:
type: string
format: date-time
description: End date of the challenge, if defined.
example: '2024-08-31T14:29:00.000Z'
completions:
type: integer
description: Number of times the customer has completed the challenge.
example: 0
max_completions:
type: integer
description: Number of times a customer can complete the challenge.
example: 6
tags:
type: array
items:
type: string
description: Tags associated with the challenge.
example:
- summer-line
- '2024'
- 100 points
category:
type: string
description: Category of the challenge.
example: Stay stylish!
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'
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
ContentConsumptionActivityEndpoint:
type: object
properties:
title:
type: string
description: Title of the activity
example: Learn about our Summer Campaign!
activity_type:
type: string
description: Type of the point-earning activity.
example: content_consumption
status:
type: string
enum:
- active
description: Status of the content-type activity. This endpoint will always return `active`
status.
example: active
points:
type: integer
description: Points to earn.
example: 100
type:
type: string
enum:
- visit
- video
url:
type: string
description: URL of the content to visit.
example: https://example.com/summer-campaign
ContestActivity:
type: object
properties:
id:
type: string
description: Unique identifier of the contest.
example: 5ea6b6bc127abc45008b456f
title:
type: string
description: Title of the contest.
example: Win 2x VIP Tickets for the New York Fashion Week!
description:
type: string
description: Description of the contest.
example: Enter our sweepstakes for a chance to win 2x VIP tickets to one of the most exclusive
events in the industry.
end_date:
type: string
example: '2024-12-31T14:29:00.000Z'
description: End date of the contest.
start_date:
type: string
example: '2024-06-29T15:11:00.000Z'
description: Start date of the contest.
display_until:
type: string
example: '2025-01-31T14:29:00.000Z'
description: Date until the contest should be visible for customers.
completion_text:
type: string
example: The contest has ended. Winners will be announced soon.
description: Text that appears after a content has ended.
status:
type: string
enum:
- active
- scheduled
- expired
- completed
- restricted
image:
$ref: '#/components/schemas/Image'
points:
type: integer
example: 500
description: Points price of a contest entry.
terms:
type: string
description: Terms & Conditions.
example: To enter the sweepstakes, participants must redeem 500 loyalty points for each entry.
Participants may enter the sweepstakes up to a maximum of 3 times.
progress:
description: Information about the customer' activity.
type: object
properties:
max:
type: integer
description: Maximum number of times a customer can enter the contest.
example: 3
current:
type: integer
description: Number of times the customer has already entered.
example: 2
is_completed:
type: boolean
description: Indicates if the customer has already reached the entry limit.
example: false
_action:
type: object
properties:
complete:
type: object
properties:
method:
type: string
example: POST
description: Type of request to be submitted.
answer:
type: string
format: uri
description: Endpoint to submit a contest entry.
example: /customers/280e674c-c4ea-4a30-987a-d9267d1a5018/activities/contests/6644e797d959c7036f18762a/enter
ImageSet:
type: object
description: Object containing image URLs of various sizes.
properties:
small:
description: URL of the small-sized image, or false/null if not available.
example: https://example.com/images/small.jpg
medium:
description: URL of the medium-sized image, or false/null if not available.
example: https://example.com/images/medium.jpg
large:
description: URL of the large-sized image, or false/null if not available.
example: https://example.com/images/large.jpg
ProgressCriterion:
type: object
description: Individual criterion contributing to the overall progress.
properties:
action:
type: string
description: Action to complete (e.g., `checkout_item`, `visit`)
example: checkout_item
message:
type: string
description: Criterion description.
example: Complete your look by purchasing 3 items from our summer clothing line and unlock 100
loyalty points as a reward!
threshold:
type: integer
description: Number of actions required to complete this criterion.
example: 3
current:
type: integer
description: Number of actions already completed.
example: 1
is_completed:
type: boolean
description: Indicates whether the action criterion has been met.
example: false
Progress:
type: object
description: Progress details of the customer's challenge completion.
properties:
overall:
type: number
description: Overall progress percentage.
example: 33.3
criteria:
type: array
items:
$ref: '#/components/schemas/ProgressCriterion'
description: Challenge criteria details.
last_completed_at:
type: string
format: date-time
nullable: true
description: Timestamp of the customer's last completion of the challenge, if any.
example: '2025-05-12T10:30:00Z'
GamifiedReviews:
type: object
description: Activity encouraging users to leave reviews. If the Multi-accounts module is used,
the response includes point logic settings for all configured accounts.
properties:
id:
type: string
nullable: true
description: Identifier of the activity. Currently always `null`.
example: null
status:
type: string
description: Status of the activity. Always `active`.
enum:
- active
example: active
title:
type: string
description: Title of the review writing activity.
example: Leave a review
description:
type: string
description: Description shown to the user.
example: Share your thoughts about your recent purchase and earn points.
image:
$ref: '#/components/schemas/ImageSet'
points:
type: string
description: Number of points awarded for writing a review. If Multi-accounts is enabled, this
refers to the point vaule applied to the default account.
example: 50
activity_type:
type: string
enum:
- review
description: Type of the activity. Always `review`.
example: review
default_account:
type: string
description: ID of the default account.
example: default_account
accounts:
type: object
description: Object containing all point logic settings for each specific account.
additionalProperties:
type: object
properties:
points:
description: Number of points awarded for each review.
type: integer
example: 10
weekly_limit:
description: The number of reviews that are awarded by points each week.
type: integer
example: 1
example:
default_account:
points: 10
weekly_limit: 1
SocialFollow:
type: object
description: Activity encouraging users to follow a social media profile.
properties:
id:
type: string
nullable: true
description: Identifier of the activity. Currently always `null`.
example: null
status:
type: string
description: Current status of the activity. Always `active`.
example: active
title:
type: string
description: The title of the social follow activity.
example: Follow us on Twitter
description:
type: string
nullable: true
description: A brief description of the activity.
example: Let's connect on Twitter!
image:
$ref: '#/components/schemas/ImageSet'
points:
type: number
description: The number of points awarded for following a social media profile.
example: 10
activity_type:
type: string
enum:
- social_follow
description: Type of activity. Always `social_follow`.
example: social_follow
network:
type: string
description: The social network where the follow action occurs (e.g., `facebook`, `twitter`)
example: twitter
url:
type: string
description: The URL used to complete the social follow action.
example: https://example.com/connect/twitter
Challenge:
type: object
description: Activity where users participate in a challenge.
properties:
id:
type: string
description: Unique identifier of the challenge.
example: 63eaabe8b0fe6815c91425b6
status:
type: string
description: Current status of the activity.
example: active
title:
type: string
description: The title of the activity.
example: Summer Style Challenge
description:
type: string
description: A brief description of the challenge.
example: Embrace the season with our exclusive Summer Style Challenge! Purchase a full set from
our vibrant summer clothing line and showcase your fashion-forward look. Complete the challenge
to earn special rewards and make this summer your most stylish one yet.
image:
$ref: '#/components/schemas/ImageSet'
points:
type: number
description: The number of points awarded for completing the challenge.
example: 20
activity_type:
type: string
enum:
- challenge
description: Type of activity. Always `challenge`.
example: challenge
cta_label:
type: string
description: The call-to-action label for the challenge.
example: Join the Challenge
url:
type: string
description: The URL where the user is redirected after clicking the call-to-action.
example: https://antavo.com/summer-items
starts_at:
type: string
format: date-time
description: The start date and time of the challenge.
example: '2025-01-01T00:00:00+09:30'
ends_at:
type: string
format: date-time
description: The end date and time of the challenge.
example: '2025-10-31T14:52:00+09:30'
max_completions:
type: integer
description: The maximum number of times the customer can complete the challenge.
example: 1
completions:
type: integer
description: The customer's current number of challenge completions.
example: 0
tags:
type: array
description: List of tags assigned to the challenge.
items:
type: string
example:
- summer-line
- checkout_item
progress:
$ref: '#/components/schemas/Progress'
category:
type: string
description: Category assigned to the challenge.
example: Purchase-related challenges
ContentConsumption:
type: object
description: Activity where users consume content (videos or articles).
properties:
id:
type: string
description: Unique identifier of the content consumption activity.
example: 63eaabe8b0fe6815c91425b6
status:
type: string
description: Current status of the activity. Always `active`.
example: active
title:
type: string
description: The title of the activity.
example: Watch the latest tutorial
description:
type: string
description: A brief description of the content consumption activity.
example: Watch the full tutorial to earn points.
image:
$ref: '#/components/schemas/ImageSet'
points:
type: number
description: The number of points awarded for visiting/watching.
example: 15
activity_type:
type: string
enum:
- content_consumption
description: Type of activity. Always `content_consumption`.
example: content_consumption
type:
type: string
description: The type of content (`video` or `visit`).
example: video
url:
type: string
description: The URL to the content.
example: https://www.example.com/watch?v=XcfywT_7wkw
IncentivizedPurchase:
type: object
description: Activity where users complete a purchase to earn points.
properties:
id:
type: string
nullable: true
description: Identifier of the activity. Currently always `null`.
example: 'null'
status:
type: string
description: Status of the activity. Always `active`.
example: active
title:
type: string
description: The title of the activity.
example: Earn points with your purchase
description:
type: string
description: A description of the activity.
example: Earn loyalty points by purchasing items.
image:
$ref: '#/components/schemas/ImageSet'
points:
type: string
description: Multiplier applied to the product’s purchase value to calculate the awarded points.
For example, "1.00" means 100% of the value. The returned value reflects the default percentage
and does not include currency-specific overrides.
example: 1
activity_type:
type: string
enum:
- incentivized_purchase
description: Type of activity. Always `incentivized_purchase`.
example: incentivized_purchase
OfflineTreasure:
type: object
description: Activities where users participate in offline treasure hunts.
properties:
id:
type: string
description: Unique identifier of the treasure hunt activity.
example: 63eaabe8b0fe6815c91425b6
status:
type: string
description: Current status of the activity. Always `active`.
example: active
title:
type: string
description: The title of the treasure hunt.
example: Find the Hidden Treasure
description:
type: string
description: A description of the offline treasure.
example: Find the hidden treasure in the store to win!
image:
$ref: '#/components/schemas/ImageSet'
points:
description: The number of points awarded for completing the activity.
example: 50
activity_type:
type: string
enum:
- offline_treasure
description: Type of activity. Always `offline_treasure`.
example: offline_treasure
GamifiedProfiling:
type: object
description: Activity where users answer questions for gamified profiling flows.
properties:
id:
type: string
nullable: true
description: Unique identifier of the profiling question flow.
example: 63eaabe8b0fe6815c91425b6
status:
type: string
description: Current status of the profiling flow.
example: status
title:
type: string
description: The title of the profiling flow.
example: Complete your profile
description:
type: string
nullable: true
description: A description of the flow (e.g. explaining what the customer should do).
example: Complete the profiling questions to earn points.
image:
$ref: '#/components/schemas/ImageSet'
points:
oneOf:
- type: string
- type: number
description: The number of points awarded for completing the the flow.
example: 10
activity_type:
type: string
enum:
- profiling
description: Type of activity. Always `profiling`.
example: profiling
questions:
type: integer
description: Number of questions to answer within the flow.
example: 3
_actions:
type: object
properties:
next:
type: object
properties:
method:
type: string
description: The HTTP method for accessing the next question in the flow the customer
should answer.
example: GET
url:
type: string
description: The URL to access the next question.
example: /customers/280e674c-c4ea-4a30-987a-d9267d1a5018/activities/profiling/63d8d8cc17572c6ec15e688c/next
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
ProfilingQuestionOptions:
type: object
description: The profiling question to be answered.
properties:
type:
type: string
enum:
- like
- text_options
- image_options
- color_options
- text_input
- datepicker
- numeric_slider
- feedback
example: text_options
title:
type: string
description: The title of the question.
example: What type of clothing do you most frequently shop for?
description:
type: string
description: Additional information for answering the question.
example: Please select one category that you shop for the most often.
position:
type: integer
description: Question's position in the flow.
example: '2'
multi-choice:
type: boolean
description: Indicates whether the customer can select multiple answers.
example: false
answers:
type: array
description: Provided answer options.
Answers are **not present** for `numeric-slider`,
`text-input`, `date-picker` and `feedback` type of questions.
items:
type: object
properties:
id:
type: string
description: ID of the answer options.
text:
type: string
description: Answer itself.
example:
- id: 668966f298ce866bba0a3539
text: Casual
- id: 668966f298ce866bba0a353a
text: Formal
- id: 668966f298ce866bba0a353b
text: Workwear
- id: 668966f298ce866bba0a353c
text: Loungewear
- id: 668966f298ce866bba0a353d
text: Activewear
_actions:
type: object
properties:
answer:
type: object
description: The endpoint to submit the answer to the question.
properties:
method:
type: string
example: POST
url:
type: string
format: uri
example: /customers/c987654/activities/profiling/63d8d8cc17572c6ec15e688c/questions/6644deb1d959c7036f1875fd
Activity:
type: object
properties:
id:
type: string
description: Unique identifier of the profiling flow to complete.
example: 6331b62a60265969697786
title:
type: string
description: Title of the profiling flow.
example: Earn points by sharing your product preferences.
description:
type: string
description: Detailed description of the activity.
example: Click Start and answer all the questions related to xour product preferences.
status:
type: string
description: Status of the profiling flow.
enum:
- active
- scheduled
- expired
- restricted
image:
$ref: '#/components/schemas/Image'
points:
type: integer
description: Number of points to earn.
example: 100
activity_type:
type: string
description: Type of the activity.
example: profiling
questions:
type: integer
description: Number of questions within the profiling flow.
example: 5
_actions:
type: object
properties:
next:
type: object
description: Endpoint to retrieve the next question in the flow to answer.
properties:
method:
type: string
example: GET
url:
type: string
format: uri
example: /customers/c987654/activities/profiling/6331b62a60265969697786/next
QuizDetailsResponse:
title: QuizDetailsResponse
type: object
properties:
id:
type: string
description: Unique quiz ID.
example: 5c17c37f71f86e7f798b4579
title:
type: string
description: Name of the quiz.
example: Fashion quiz
description:
type: string
description: Description of the quiz question.
example: Select the correct answer
status:
type: string
description: Status of the quiz question.
example: active
image:
$ref: '#/components/schemas/Image'
points:
type: integer
description: Points rewarded if the customer provides the correct answer.
example: 100
quiz_url:
type: string
format: uri
description: Endpoint to submit an answer to the quiz.
example: /customers/280e674c-c4ea-4a30-987a-d9267d1a5018/activities/quizzes/6689b5735aa0eb191451a2f5/earn
answers:
type: array
items:
type: string
description: List of possible answers.
example:
- Coco Chanel
- Gianni Versace
- Ralph Lauren
- Christian Dior
correct_answer:
type: string
description: The correct answer.
example: Coco Chanel
QuizActivity:
type: object
properties:
data:
type: array
items:
type: object
properties:
image:
$ref: '#/components/schemas/Image'
description:
type: string
description: Description associated with the question.
example: Select the correct answer.
quiz_url:
type: string
format: uri
description: Endpoint to retrieve quiz details.
example: /customers/testcustomer/activities/quizzes/6689b5735aa0eb191451a2f5
id:
type: string
description: ID of the quiz question
example: 6689b5735aa0eb191451a2f5
title:
type: string
description: Name of the quiz.
example: Fashion quiz
status:
type: string
description: Status of the quiz question.
enum:
- active
- inactive
example: active
points:
type: integer
description: Points awarded upon completion of the quiz.
example: 100
total:
type: integer
description: Number of available quiz questions.
example: 1
DynamicCouponRewardActivity:
type: object
properties:
id:
type: string
description: Unique identifier of the reward.
example: 5c17c37f71f86e7f798b4576
type:
type: string
description: Type of the reward.
enum:
- bidding
- content
- coupon
- custom
- download
- physical
- promotion
- virtual
- bundle
- dynamic
- dynamic_coupon
title:
type: string
description: Title of the reward.
example: Summer Splash Discount
description:
type: string
description: Description of the reward.
example: Convert your points into summer savings—redeem 100 points for €1 each.
terms:
type: string
description: Terms and conditions of reward redemption.
example: 'Minimum 100 points, minimum purchase: €20, no sale items, gift cards, or other promotions.'
instructions:
type: string
description: Instructions on how to redeem the reward.
example: Enter points to redeem for the coupon, and click Claim.
category:
type: object
properties:
id:
type: string
description: Unique identifier of the reward category.
example: 64c0d6457fba49389604e065
name:
type: string
description: Description of the reward category.
example: Coupon rewards
stock:
type: integer
description: Number of items available.
example: 42
max_claims:
type: integer
description: Then number of times a customer can claim the reward.
example: 10
max_price:
type: integer
description: Maximum points that can be spent for a coupon.
example: 500
price_step:
type: integer
description: The number of points between two prices.
status:
type: string
enum:
- active
- scheduled
- expired
- inactive
image:
$ref: '#/components/schemas/Image'
points:
type: integer
description: Point price of the reward. This value is for administrative purposes only. The
actual price depends on the number of points spent.
example: 0
coupon_pool:
type: string
description: The coupon pool from which this coupon codes are generated.
example: 6671a296f30e8a1a0f2f3815
starts_at:
type: string
format: date-time
description: Start date of the reward, if defined.
example: '2024-06-30T12:00:00.000Z'
ends_at:
type: string
format: date-time
description: End date of the reward, if defined.
example: '2024-07-25T12:00:00.000Z'
exchange_rate:
type: number
description: 'The conversion percentage of points to the coupon value.
Example: if the exchange_rate
value is `1`, the 100 points will be transated to 1 EUR discount.'
example: 1
transferable:
type: boolean
description: Indicates whether the reward can be transferred to another customer.
example: true
transfer_points:
type: integer
description: The number of points to add to the customer when the reward is transferred.
example: null
transfer_limit:
type: integer
description: The number of times the reward can be transferred to another customer.
example: 1
transfer_coupon_expiration:
type: string
description: 'Method to calculate the expiration date of the transferred coupon. Options: `remain`,
`modify`, `extend`.'
example: modify
transfer_coupon_expires_in:
type: string
description: The expiration time of the transferred coupon.
example: 2 weeks
custom_data:
type: object
description: Any custom data set in reward configurations.
stores:
type: object
description: The list of stores where the coupon can be redeemed.
properties:
id:
type: string
description: ID of the store.
example: I004
name:
type: string
description: Name of the store.
example: 004 Dublin
_actions:
type: object
properties:
complete:
type: object
description: Endpoint to claim the reward. It is only included if the reward is currently
available for the customer to claim.
properties:
method:
type: string
example: POST
url:
type: string
format: url
example: /customers/c987654/activities/rewards/5c17c37f71f86e7f798b4576/claim
claims:
type: object
description: The list of claims that the customer has already submitted.
This field is returned
only when explicitly requested via the 'fields' query parameter.
properties:
created_at:
type: string
format: date-time
description: The date when the the first claim was registered.
example: '2024-07-02T17:59:10.000Z'
first_claimed_at:
type: string
format: date-time
description: The date when the customer claimed the reward for the first time.
example: '2024-07-02T17:59:10.000Z'
last_claimed_at:
type: string
format: date-time
description: The date when the customer claimed the reward for the last time.
example: '2024-07-02T17:59:10.000Z'
claims:
type: integer
description: The number of times the customer has claimed the reward.
example: 1
spent:
type: integer
description: The total number of points the customer has spent to claim the reward.
example: 300
coupons:
type: object
description: The coupons assigned to the customer.
properties:
code:
type: string
description: The coupon code.
status:
type: string
description: 'The current status of the coupon. Options: claimed, redeemed,
invalid, expired, unassigned, partially_redeemed.'
created_at:
type: string
format: date-type
description: The date when the coupon code was generated.
example: '2024-07-02T17:59:10.000Z'
customer:
type: object
properties:
id:
type: string
description: ID of the customer who is assigned to the coupon.
example: 280e674c-c4ea-4a30-987a-d9267d1a5018
name:
type: string
description: The customer-facing name of the coupon.
example: Summer Splash Discount
claimed_at:
type: string
format: date-time
description: The date when the coupon was assigned to the customer.
example: '2024-07-02T17:59:10.000Z'
type:
type: string
description: Type of coupon. Typically amount.
pool:
type: string
description: The associated coupon pool.
value:
type: number
description: The value of the coupon.
CouponPoolRewardActivity:
type: object
properties:
id:
type: string
description: The unique identifier of the reward.
example: 5c17c37f71f86e7f798b4576
title:
type: string
description: Name of the reward.
example: 20% Off on Winter Collection
description:
type: string
description: Description of the reward.
example: Example reward description
status:
type: string
description: The current status of the reward.
enum:
- active
- scheduled
- expired
- inactive
image:
$ref: '#/components/schemas/Image'
points:
type: integer
description: Point price of the reward in different currencies.
example: 700
type:
type: string
description: The type of the reward.
enum:
- bidding
- content
- coupon
- custom
- download
- physical
- promotion
- virtual
starts_at:
type: string
format: date-time
description: The start date of reward availability.
example: '2020-07-21T12:00:00.000Z'
ends_at:
type: string
format: date-time
description: The end date of reward availability.
example: '2020-12-21T12:00:00.000Z'
gallery:
type: array
description: Image gallery. This field is returned only when explicitly requested via the 'fields'
query parameter.
items:
$ref: '#/components/schemas/Image'
terms:
type: string
description: Terms and conditions of reward redemption. This field is returned only when explicitly
requested via the 'fields' query parameter.
instructions:
type: string
description: Instructions on how to redeem the reward. This field is returned only when explicitly
requested via the 'fields' query parameter.
_actions:
type: object
properties:
complete:
type: object
description: Endpoint to claim the reward.
properties:
method:
type: string
example: POST
url:
type: string
format: url
example: /customers/280e674c-c4ea-4a30-987a-d9267d1a5018/activities/rewards/5c17c37f71f86e7f798b4576/claim
stock:
type: integer
description: Number of items available.
example: 42
coupon_pool:
type: string
description: ID of the coupon pool assiciated (coupon-type rewards only).
example: 5b22a37f71f92e7f798q4186
transferable:
type: boolean
description: Indicates whether the reward can be transferred to another customer.
example: true
transfer_points:
type: integer
description: The number of points to add to the customer when the reward is transferred.
example: 0
transfer_limit:
type: integer
description: The number of times the reward can be transferred to another customer.
example: 1
transfer_coupon_expiration:
type: string
description: 'Method to calculate the expiration date of the transferred coupon. Options: `remain`,
`modify`, `extend`.'
example: modify
transfer_coupon_expires_in:
type: string
description: The expiration time of the transferred coupon.
example: 2 weeks
SpendActivity:
type: object
properties:
activity_type:
type: string
description: Type of the point-spending activity.
example: reward
id:
type: string
description: The unique identifier of the reward.
example: 5c17c37f71f86e7f798b4576
title:
type: string
description: Name of the reward.
example: 20% Off on Winter Collection
description:
type: string
description: Description of the reward.
example: Example reward description
status:
type: string
description: The current status of the reward.
enum:
- active
- scheduled
- expired
- inactive
image:
$ref: '#/components/schemas/Image'
points:
type: integer
description: Point price of the reward in different currencies.
example: 700
type:
type: string
description: The type of the reward.
enum:
- bidding
- content
- coupon
- custom
- download
- physical
- promotion
- virtual
starts_at:
type: string
format: date-time
description: The start date of reward availability.
example: '2020-07-21T12:00:00.000Z'
ends_at:
type: string
format: date-time
description: The end date of reward availability.
example: '2020-12-21T12:00:00.000Z'
items:
$ref: '#/components/schemas/Image'
_actions:
type: object
properties:
complete:
type: object
description: Endpoint to claim the reward.
properties:
method:
type: string
example: POST
url:
type: string
format: url
example: /customers/280e674c-c4ea-4a30-987a-d9267d1a5018/activities/rewards/5c17c37f71f86e7f798b4576/claim
coupon_pool:
type: string
description: ID of the coupon pool assiciated (coupon-type rewards only).
example: 5b22a37f71f92e7f798q4186
transferable:
type: boolean
description: Indicates whether the reward can be transferred to another customer.
example: true
transfer_points:
type: integer
description: The number of points to add to the customer when the reward is transferred.
example: 0
transfer_limit:
type: integer
description: The number of times the reward can be transferred to another customer.
example: 1
transfer_coupon_expiration:
type: string
description: 'Method to calculate the expiration date of the transferred coupon. Options: `remain`,
`modify`, `extend`.'
example: modify
transfer_coupon_expires_in:
type: string
description: The expiration time of the transferred coupon.
example: 2 weeks
TreasureHuntResponse:
type: object
properties:
type:
type: string
description: Type of the activity. This endpoint always returns `treasure`.
example: treasure
status:
type: string
description: Current status of the treasure hunt.
example: active
title:
type: string
description: Title of the treasure hunt.
example: Fashion Quest Adventure
description:
type: string
description: Description of the treasure hunt.
example: 'Ready for an adventure? Join our online treasure hunt! Your mission: Find the hidden
fashion product page on our website. If you succeed, you''ll earn 50 points towards your next
stylish purchase! Let the hunt begin!'
image:
$ref: '#/components/schemas/Image'
points:
type: integer
description: Points to earn.
example: 200
success_message:
type: string
description: Text displayed when the customer finds the hidden treasure.
example: Congratulations, Fashion Explorer! You've successfully completed the Fashion Quest
Adventure and discovered the hidden treasure! Claim your reward of 50 points now and continue
your stylish journey with us!
url:
type: string
description: The URL of the page where the treasure is hidden.
example: https://antavofashion.com/SS246549621
ListofallActivitiesResponse:
title: ListofallActivitiesResponse
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Activity'
description: ''
ChallengeCompletion:
type: object
properties:
id:
type: string
description: The unique ID of the challenge.
example: 63eaabe8b0fe6815c91425b6
title:
type: string
description: Title of the challenge.
example: Summer Style Challenge
created_at:
type: string
format: date-time
description: The date when the challenge was created.
example: '2023-12-10T18:28:49.000Z'
last_completed_at:
type: string
description: The date when the challenge was completed the last time.
example: '2024-07-08T09:13:32.000Z'
starts_at:
type: string
format: date-time
description: Start date of the challenge, if defined.
example: '2024-02-29T14:30:00.000Z'
completions:
type: integer
description: Number of times the customer completed the challenge.
example: 1
image:
$ref: '#/components/schemas/Image'
description:
type: string
description: Description of the challenge.
example: Embrace the season with our exclusive Summer Style Challenge! Purchase a full set from
our vibrant summer clothing line and showcase your fashion-forward look. Complete the challenge
to earn special rewards and make this summer your most stylish one yet.
cta_label:
type: string
description: Call-to-action button label.
example: Join the Challenge
url:
type: string
format: uri
description: URL of the page that opens after the customer clicks the CTA button.
example: https://antavo.com/summer-items
points:
type: integer
description: The number of points rewarded when the customer completes the challenge.
example: 100
progress:
type: array
items:
type: string
description: Returned for active challenges only.
properties:
last_completed_at:
type: string
format: date-type
description: The last time time a customer completed the challenge.
example: '2024-07-08T09:13:32.000Z'
overall:
type: number
description: Calculated overall progress as percentage (sum of capped `current` values per
sum of `threshold` values).
example: 100
criteria:
type: array
description: Detailed information of the customer's progress with each criteria of challenge
completion.
items:
type: object
properties:
action:
type: string
description: The action to perform to complete the challenge.
example: checkout_item
current:
type: integer
description: Current progess of the customer on the challenge completion.
example: 5
threshold:
type: integer
description: The number of times the action should be performed.
example: 5
message:
type: string
description: The description of the criterium.
example: Complete your look by purchasing 5 items from our summer clothing line and
unlock 100 loyalty points as a reward!
is_completed:
type: boolean
description: Indicates whether the customer has completed the challenge.
example: true
tags:
type: array
items:
type: string
description: Tags associated with the challenge.
example:
- summer-line
- '2024'
- 100 points
max_completion:
type: integer
description: The number of times a customer can complete the challenge.
example: 6
category:
type: string
description: Category of the challenge.
example: Stay stylish!
status:
type: string
description: Current status of the challenge.
enum:
- active
- restricted
Coupon:
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
currency:
description: ISO 4217 alphabetic code of the coupon currency, if defined.
type: string
example: EUR
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'
redeemed_at:
description: The date when the coupon was used at checkout.
type: string
format: date-time
example: '2022-02-21T10:24:45.000Z'
expires_at:
description: The date until which the coupon is usable.
type: string
format: date-time
example: '2022-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
ProfilingExtension:
type: object
properties:
questions:
type: array
items:
type: object
properties:
answers:
type: array
description: Customer's answers to profiling questions.
items:
type: object
properties:
id:
type: string
description: ID of the answer.
text:
type: string
description: Answer provided.
id:
type: string
description: ID of the profiling question.
title:
type: string
description: Question title.
flow:
type: object
description: The profiling flow that the question is associated with, if any.
properties:
title:
type: string
description: Flow title.
id:
type: string
description: ID of the profiling flow.
example:
questions:
- answers:
- id: 63d8dfb4d8ae5c1cc0342958
text: Dress with stilettos
id: 63d8dfb6d8ae5c1cc034295e
title: How do you dress on an average day?
flow:
title: Product preferences
id: 63d8d8cc17572c6ec15e688c
- answers:
- id: 668966f298ce866bba0a3539
text: Casual
id: 6644de7e0404c52b512f2be8
title: What type of clothing do you most frequently shop for?
flow:
title: Product preferences
id: 63d8d8cc17572c6ec15e688c
- answers:
- 3
id: 6644df66e95cbe2c3e4bdc8a
title: How satisfied are you with your overall shopping experience?
flow: []
CustomernotfoundErrorResponse:
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: NotFoundException
code:
type: number
description: A 6-digit number to uniquely identify the place the error. occurred
example: 160212
message:
type: string
description: Human readable error message.
example: Customer not found
Event:
type: object
properties:
id:
type: string
description: Event reference ID.
example: 5defe3e1e710bd9b018b45c7
action:
type: string
description: Describes the properties and behavior when processing an event.
example: opt_in
label:
type: string
description: Event action display name.
example: Opt-in
points:
type: integer
description: Number of points earned (positive) or spent (negative) through the event.
example: 10
timestamp:
type: string
format: date-time
description: The timestamp of the event.
example: '2024-06-01T12:00:00.000Z'
properties:
type: array
description: The actual list of attributes is defined by the action.
items:
$ref: '#/components/schemas/EventProperty'
expdate:
type: string
pattern: /([0-9]{4})-(?:[0-9]{2})-([0-9]{2})/
description: The point expiry date stored as a YYYY-MM-DD string.
example: '2022-12-25'
account:
type: object
description: The specific account which the event's points are associated with (only available
with Points economy module).
properties:
id:
type: string
description: ID of the account.
example: main_account
name:
type: string
description: Label of the account.
example: Main account
EventProperty:
type: object
properties:
name:
type: string
description: Attribute name used internally.
example: email
label:
type: string
description: Display name of the attribute.
example: Email address
value:
type: string
description: Attribute value.
example: john.smith@example.com
PrizeWheelOption:
type: object
properties:
_actions:
type: object
description: Endpoint to enter the customer in the prize wheel.
properties:
enter:
type: object
properties:
method:
type: string
example: POST
description: HTTP method for the enter action.
url:
type: string
example: /customers/280e674c-c4ea-4a30-987a-d9267d1a5018/prize-wheels/63fdccaca88ac11c347af899
description: Endpoint to enter the prize wheel.
button_color:
type: string
example: rgb(219, 186, 57)
description: Color of the button in RGB format.
center_logo:
type: object
properties:
small:
type: string
example: https://antavo.{environment}.com/brands/26729/media/1677577388-Vs6ZW.png
description: URL of the small center logo image.
large:
type: string
example: https://antavo.{environment}.com/brands/26729/media/1677577388-MgTpM.png
description: URL of the large center logo image.
medium:
type: string
example: https://antavo.{environment}.com/brands/26729/media/1677577388-MHFa6.png
description: URL of the medium center logo image.
background_color:
type: string
example: rgb(255, 255, 255)
description: Background color in RGB format.
button_text_color:
type: string
example: rgb(219, 186, 57)
description: Color of the button text in RGB format.
font_color:
type: string
example: ''
description: Color of the font.
main_logo:
type: object
properties:
small:
type: string
example: https://antavo.{environment}.com/brands/26729/media/1677577387-1DyAa.jpeg
description: URL of the small main logo image.
large:
type: string
example: https://antavo.{environment}.com/brands/26729/media/1677577387-wPvPE.jpeg
description: URL of the large main logo image.
medium:
type: string
example: https://antavo.{environment}.com/brands/26729/media/1677577387-xxn9O.jpeg
description: URL of the medium main logo image.
options:
type: array
description: List of possible rewards on the prize wheel.
items:
type: object
properties:
win_text:
type: string
description: Text displayed when this slice is landed on.
bgcolor:
type: string
description: Background color of the slice in RGB format.
color:
type: string
description: Font color of the slice in RGB format.
weight:
type: number
description: The percentage chance to land on this slice.
label:
type: string
description: Label for the slice.
id:
type: string
description: Unique identifier for the slice.
type:
type: string
description: Type of the slice (e.g., reward, empty).
example:
- win_text: Sorry, you were not lucky this time.
bgcolor: rgb(255, 255, 255)
color: rgb(0, 0, 0)
weight: 0.99
label: Oooops.. not this time
id: 6406f75976c1691b981ec5dc
type: empty
- win_text: Congrats! You won a 20% coupon!
bgcolor: rgb(219, 186, 57)
color: rgb(0, 0, 0)
weight: 99.01
label: 20% coupon
id: 6406f75976c1691b981ec5dd
type: reward
name:
type: string
example: Use your points to spin the wheel for a chance to win a 20% coupon
description: Name of the prize wheel.
center_rotation:
type: boolean
example: true
description: Indicates whether the center of the wheel rotates.
points:
type: integer
example: 100
description: Number of points required to spin the wheel.
PrizeWheelsOptions:
type: object
properties:
data:
type: array
items:
type: object
properties:
id:
type: string
description: ID of the prize wheel.
example: 63fdccaca88ac11c347af899
status:
type: string
description: Status of the prize wheel.
example: active
total:
type: number
description: The number of prize wheel available to the customer.
example: 1
RewardClaimA:
type: object
properties:
data:
type: array
items:
type: object
properties:
image:
$ref: '#/components/schemas/Image'
transfer_coupon_expires_in:
type: string
description: The expiration time of the transferred coupon.
spent:
type: integer
description: Total points spent on the reward.
example: 450
transferable:
type: boolean
description: Indicates whether the reward can be transferred to another customer.
example: true
description:
type: string
description: Description of the reward.
example: Spend points to claim a free shipping coupon.
created_at:
type: string
format: date-time
description: Timestamp of configuring the reward.
example: '2012-12-15T09:12:53.000Z'
transfer_limit:
type: integer
description: The number of times the reward can be transferred to another customer.
example: 1
type:
type: string
description: Type of the reward to claim.
enum:
- bidding
- content
- coupon
- custom
- download
- physical
- promotion
- virtual
title:
type: string
description: Name of the reward.
example: Free shipping
transfer_coupon_expiration:
type: string
description: 'Method to calculate the expiration date of the transferred coupon. Options:
`remain`, `modify`, `extend`.'
example: remains
points:
type: integer
description: Point price of the reward.
example: 450
_actions:
type: object
properties:
complete:
type: object
description: Endpoint to claim the reward. It is only included if the reward is currently
available for the customer to claim.
properties:
method:
type: string
example: POST
url:
type: string
format: url
example: /customers/280e674c-c4ea-4a30-987a-d9267d1a5018/activities/rewards/62cc0d5809d6a65e880d7165/claim
coupons:
type: array
items:
type: object
properties:
redeemed_at:
type: string
format: date-time
description: Timestamp of the coupon redemption.
example: '2024-06-27T10:41:41.000Z'
claimed_at:
type: string
format: date-time
description: Timestamp of claiming the reward.
example: '2024-06-19T00:47:23.000Z'
code:
type: string
description: The coupon code.
example: TC22341
pool:
type: string
description: ID of the coupon pool assiciated (coupon-type rewards only).
example: 62c7f20687632a561f16499b
name:
type: string
description: Name of the coupon pool.
example: Free shipping coupons
created_at:
type: string
format: date-time
description: Timestamp of coupon generation.
example: '2024-06-19T00:47:23.000Z'
type:
type: string
description: Type of the coupon.
enum:
- amount
- percentage
- free_shipping
- gift_card
example: free_shipping
customer:
type: array
items:
type: string
properties:
id:
type: string
description: Customer ID of the assingee.
example: 280e674c-c4ea-4a30-987a-d9267d1a5018
status:
type: string
description: Status of the coupon
example: invalid
last_claimed_at:
type: string
format: date-time
description: Timestamp of last claiming the reward.
example: '2024-06-19T00:47:23.000Z'
claims:
type: integer
description: Number of times the customer claimed the reward.
example: 1
first_claimed_at:
type: string
format: date-time
description: Timestamp of first claiming the reward.
example: '2024-06-19T00:47:23.000Z'
id:
type: string
description: Unique identifier of the reward.
example: 62cc0d5809d6a65e880d7165
transfer_points:
type: integer
description: The number of points to add to the customer when the reward is transferred.
example: 0
coupon_pool:
type: string
description: The coupon pool from which this coupon codes are generated.
example: 6671a296f30e8a1a0f2f3815
status:
type: string
description: Status of the reward.
enum:
- active
- scheduled
- expired
- inactive
total:
type: integer
description: Number of claims returned.
example: 1
TransactionHistoryResponse:
title: TransactionHistoryResponse
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Transaction'
description: ''
Transaction:
title: Transaction
type: object
properties:
id:
type: string
description: Transaction ID.
example: TR37882412
status:
$ref: '#/components/schemas/Status8'
event:
type: string
description: Event reference ID.
example: 5e7a80e264f2c53cac000005
created_at:
type: string
description: Timestamp of creation of the transaction.
format: date-time
example: '2020-04-01T10:41:10.000Z'
updated_at:
type: string
description: Timestamp of last update of the transaction.
format: date-time
example: '2020-06-01T10:41:10.000Z'
total:
type: number
description: Total value of the transaction.
example: 99.9
items:
type: array
items:
type: object
properties:
product_id:
type: string
description: Product ID.
example: prd_987654
quantity:
type: number
description: Number of items purchased.
example: 3
subtotal:
type: number
description: Amount actually paid for the item(s).
example: 99.9
description: Array of items in the transaction.
earned:
type: number
description: Number of points earned from the transaction.
example: 99
burned:
type: number
description: Number of points burned in the transaction.
example: 12
bonus:
type: number
description: Total number of associated campaign bonus points.
example: 23
Status8:
title: Status8
description: 'Transaction status. Can be one of:'
enum:
- accepted
- pending
- rejected
- refunded
- draft
type: string
TransactionEventsHistoryResponse:
title: TransactionEventsHistoryResponse
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/TransactionEvents'
description: ''
TransactionEvents:
title: Transaction
type: object
properties:
id:
type: string
description: Event ID.
example: 62cbe9a1da5ab02a8176625d
action:
type: string
description: Event action.
example: checkout
label:
type: string
description: Event label.
example: Checkout
timestamp:
type: string
description: Timestamp of creation of the event.
format: date-time
example: '2020-04-01T10:41:10.000Z'
points:
type: number
description: Points rewarded for the event.
example: 100
properties:
type: array
items:
type: object
properties:
name:
type: string
description: ID of the attribute.
example: transaction_id
value:
type: number
description: Attribute value.
example: TR37882412
label:
type: string
description: Label of the attribute.
example: Transaction ID
description: Array of event attributes.
TransactionPerTransactionResponse:
title: TransactionPerTransactionResponse
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/TransactionPerTransactionContent'
description: ''
TransactionPerTransactionContent:
title: Transaction
type: object
properties:
id:
type: string
description: Transaction ID.
example: T10000024
status:
$ref: '#/components/schemas/Status8'
created_at:
type: string
description: Timestamp of creation of the transaction.
format: date-time
example: '2020-04-01T10:41:10.000Z'
updated_at:
type: string
description: Timestamp of last update of the transaction.
format: date-time
example: '2020-06-01T10:41:10.000Z'
total:
type: number
description: Total value of the transaction.
example: 99.9
items:
type: array
items:
type: object
properties:
product_id:
type: string
description: Product ID.
example: prd_987654
quantity:
type: number
description: Number of items purchased.
example: 3
subtotal:
type: number
description: Amount actually paid for the item(s).
example: 99.9
description: Array of items in the transaction.
earned:
type: number
description: Number of points earned from the transaction.
example: 99
burned:
type: number
description: Number of points burned in the transaction.
example: 12
bonus:
type: number
description: Total number of associated campaign bonus points. This attribute is not included
in the response if no bonus points were added.
example: 23
refunded:
type: boolean
description: Number of points deducted from the customer's balance due to a refund.
example: 0
TransactionHistoryResponse2:
title: TransactionHistoryResponse2
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Transaction2'
description: ''
Transaction2:
title: Transaction
type: object
properties:
id:
type: string
description: Transaction ID.
example: T10000024
status:
$ref: '#/components/schemas/Status8'
event:
type: string
description: Event reference ID.
example: 5e7a80e264f2c53cac000005
created_at:
type: string
description: Timestamp of creation of the transaction.
format: date-time
example: '2020-04-01T10:41:10.000Z'
updated_at:
type: string
description: Timestamp of last update of the transaction.
format: date-time
example: '2020-06-01T10:41:10.000Z'
total:
type: number
description: Total value of the transaction.
example: 99.9
items:
type: array
items:
type: object
properties:
product_id:
type: string
description: Product ID.
example: prd_987654
quantity:
type: number
description: Number of items purchased.
example: 3
subtotal:
type: number
description: Amount actually paid for the item(s).
example: 99.9
description: Array of items in the transaction.
Pass:
type: object
description: A pass assigned to a customer
properties:
template:
type: object
description: Information about the pass template associated with the pass.
properties:
id:
type: string
description: ID of the pass template.
example: 651561bd669da55ee6145a4f
status:
type: string
description: Status of the pass templete.
enum:
- assigned
- active
- expired
- revoked
name:
type: string
description: Name of the pass.
example: Membership pass
id:
type: string
description: ID of the pass.
example: 66797c25cc092e625c0afcc7
created_at:
type: string
format: date-time
description: Assignment date-time of the pass
status:
type: string
description: Status of the pass.
enum:
- assigned
- active
- expired
- revoked
example: active
type:
type: string
description: Type of the pass template associated with the pass.
enum:
- coupon
- membership
- event
example: membership
expires_at:
type: string
format: date-time
description: Pass expiration time. Available for `event` and `coupon` passes only.
example: 20213-11-02T00:00:00+00:00
coupon:
type: string
description: Coupon code associated with the pass. Available for `event` and `coupon` passes
only.
example: TC22341
_actions:
type: object
description: Endpoints to download passes.
properties:
download_apple:
type: object
description: Download endpoint for Apple Wallet.
required:
- method
- url
properties:
method:
type: string
example: GET
url:
type: string
example: /v2/customers/280e674c-c4ea-4a30-987a-d9267d1a5018/wallet/apple/6512a12d59b88b611b5cdfd6/download?token=ODcyYzE1MGE2NzcwZDJkMGVkOTY2NzMxYzhlNDNlMmQxMTI3YmE3Yw.eyJicmFuZCI6IjE1NjciLCJjdXN0b21lciI6IjAwMSIsImV4cGlyZXNfYXQiOjE2OTgzMTE4MDV9
download_google:
type: object
description: Download endpoint for Google Wallet.
required:
- method
- url
properties:
method:
type: string
example: GET
url:
type: string
example: /v2/customers/280e674c-c4ea-4a30-987a-d9267d1a5018/google/6512a12d59b88b611b5cdfd6/download?token=ODcyYzE1MGE2NzcwZDJkMGVkOTY2NzMxYzhlNDNlMmQxMTI3YmE3Yw.eyJicmFuZCI6IjE1NjciLCJjdXN0b21lciI6IjAwMSIsImV4cGlyZXNfYXQiOjE2OTgzMTE4MDV9
EventProperty2:
type: object
properties:
name:
type: string
description: Attribute name used internally.
example: points
label:
type: string
description: Display name of the attribute.
example: Points
value:
type: number
description: Attribute value.
example: 100
V2ChallengeActivity:
type: object
properties:
status:
type: string
description: Status of the query.
example: success
metadata:
type: object
properties:
pagination:
type: object
properties:
total:
type: integer
description: The number of challenge items the endpoint returns.
example: 1
next:
type: string
description: Links to the next page of the challenge items. The attribute is only populated
if the next page exists.
example: https://example.com/challenges-63eaabe8b0fe6815c91425b6?page=2
previous:
type: string
description: Links to the previous page of the challenge items. The attribute is only
populated if the previous page exists.
example: https://example.com/challenges-63eaabe8b0fe6815c91425b6?page=1
payload:
type: array
items:
$ref: '#/components/schemas/V2ChallengeItem'
V2ChallengeItem:
type: object
properties:
image:
$ref: '#/components/schemas/Image'
id:
type: string
description: The unique ID of the challenge.
example: 63eaabe8b0fe6815c91425b6
category:
type: string
description: Category of the challenge.
example: Stay stylish!
status:
type: string
description: Current status of the challenge.
enum:
- active
- restricted
starts_at:
type: string
format: date-time
description: Start date of the challenge, if defined.
example: '2024-02-29T14:30:00.000Z'
ends_at:
type: string
format: date-time
description: End date of the challenge, if defined.
example: '2024-08-31T14:29:00.000Z'
completions:
type: integer
description: Number of times the customer has completed the challenge.
example: 0
description:
type: string
description: Description of the challenge.
example: Embrace the season with our exclusive Summer Style Challenge! Purchase a full set from
our vibrant summer clothing line and showcase your fashion-forward look. Complete the challenge
to earn special rewards and make this summer your most stylish one yet.
title:
type: string
description: Title of the challenge.
example: Summer Style Challenge
message:
type: string
description: Restriction message. It is only returned if the customer is currently not in the
segment that has been selected in the reward configuration.
example: Apologies, but this challenge is currently unavailable for you. Keep an eye out for
future opportunities or discover other exciting challenges to engage with!
url:
type: string
format: uri
description: URL of the page that opens after the customer clicks the CTA button.
example: https://antavo.com/summer-items
points:
type: integer
description: The number of points rewarded when the customer completes the challenge.
example: 100
tags:
type: array
items:
type: string
example:
- summer-line
- '2024'
- 100 points
cta_label:
type: string
description: Call-to-action button label.
example: Join the Challenge
max_completions:
type: integer
description: Number of times a customer can complete the challenge.
example: 6
progress:
$ref: '#/components/schemas/V2ChallengeProgress'
V2ChallengeProgress:
type: object
properties:
last_completed_at:
type: string
format: date-type
description: The last time time a customer completed the challenge. This is not necessarily
the current customer.
example: '2024-04-02T16:13:35.000Z'
overall:
type: number
description: Calculated overall progress as percentage (sum of capped `current` values per sum
of `threshold` values).
example: 20
criteria:
type: array
description: Detailed information of the customer's progress with each criteria of challenge
completion.
items:
type: object
properties:
action:
type: string
description: The action to perform to complete the challenge.
example: checkout_item
current:
type: integer
description: Current progess of the customer on the challenge completion.
example: 1
threshold:
type: integer
description: The number of times the action should be performed.
example: 5
message:
type: string
description: The description of the criterium.
example: Complete your look by purchasing 5 items from our summer clothing line and unlock
100 loyalty points as a reward!
is_completed:
type: boolean
description: Indicates whether the customer has completed the challenge.
example: true
ChallengesErrorResponse:
type: object
description: This describes the structure returned if an error occurred at the challenges endpoint.
properties:
error:
type: object
properties:
type:
type: string
description: Type of the error occurred.
example: NotFoundException
code:
type: number
description: A 6-digit number to uniquely identify the error occurred.
example: 160212
message:
type: string
description: Human readable error message
example: Customer not found
status:
type: string
description: Indicates that an error occurred when querying the list of challenges.
example: error
V2ChallengeCompletionImage:
type: object
description: Object containing different sizes of the image asset.
properties:
small:
type: string
format: uri
description: URL to the small version of the challenge image.
example: https://example.com/1715791767-nH7Mf.jpeg
medium:
type: string
format: uri
description: URL to the medium version of the challenge image.
example: https://example.com/1715791767-nH7Mf.jpeg
large:
type: string
format: uri
description: URL to the large version of the challenge image.
example: https://example.com/1715791767-nH7Mf.jpeg
V2ChallengeCompletionCriteria:
type: object
description: Defines the completion criteria for a challenge.
properties:
action:
type: string
description: The action that counts toward the challenge completion.
example: checkout_item
message:
type: string
description: A user-friendly message describing the criteria.
example: Buy summer sale items.
threshold:
type: integer
description: Number required to complete this criterion.
example: 5
current:
type: integer
description: Current progress toward this criterion.
example: 5
is_completed:
type: boolean
description: Indicates whether this criterion has been completed.
example: true
V2ChallengeCompletionProgress:
type: object
description: Tracks overall progress and individual criteria. Returned for active challenges only.
properties:
overall:
type: integer
description: Overall progress percentage of the challenge.
example: 100
criteria:
type: array
description: Array of individual completion criteria.
items:
$ref: '#/components/schemas/V2ChallengeCompletionCriteria'
V2ChallengeCompletion:
type: object
description: Represents a challenge and its completion status.
properties:
id:
type: string
description: The unique ID of the challenge.
example: 5335e5ff4905de517c946998f
status:
type: string
description: Current status of the challenge.
example: active
enum:
- active
- restricted
title:
type: string
description: Title of the challenge.
example: Summer Style Challenge
description:
type: string
description: Description of the challenge.
example: Embrace the season with our exclusive Summer Style Challenge! Purchase a full set from
our vibrant summer clothing line and showcase your fashion-forward look. Complete the challenge
to earn special rewards and make this summer your most stylish one yet.
image:
$ref: '#/components/schemas/V2ChallengeCompletionImage'
points:
type: integer
description: The number of points rewarded for completing the challenge.
example: 100
created_at:
type: string
format: date-time
description: The date the challenge was created.
example: '2025-05-09T15:21:21+00:00'
starts_at:
type: string
format: date-time
nullable: true
description: Start date of the challenge, if defined.
example: '2025-06-01T15:00:00+00:00'
ends_at:
type: string
format: date-time
nullable: true
description: End date of the challenge, if defined.
example: '2025-07-01T15:00:00+00:00'
last_completed_at:
type: string
format: date-time
description: The date when the challenge was last completed.
nullable: true
example: '2025-06-09T15:21:21+00:00'
url:
type: string
description: URL of the page that opens after the customer clicks the CTA button.
example: https://antavo.com/
tags:
type: array
description: Tags associated with the challenge.
items:
type: string
example:
- summer-line
- '2024'
- 100 points
max_completions:
type: integer
description: Maximum times a user can complete the challenge.
example: 6
completions:
type: integer
description: Number of times the customer has completed the challenge.
example: 1
cta_label:
type: string
description: Label for the call-to-action button.
example: Join the Challenge
category:
type: string
description: Category of the challenge.
example: Stay stylish!
progress:
$ref: '#/components/schemas/V2ChallengeCompletionProgress'
V2ChallengeCompletionPagination:
type: object
description: Pagination information for challenge completion list.
properties:
total:
type: integer
description: Total number of challenges.
example: 315
next:
type: string
description: URL to the next page of results.
example: /v2/customers/5335e5ff4905de517c946998f/challenges?offset=20&limit=20
previous:
type: string
description: URL to the previous page of results.
example: /v2/customers/5335e5ff4905de517c946998f/challenges?offset=40&limit=20
V2ChallengeCompletionMetadata:
type: object
description: Metadata for the challenge completion response.
properties:
pagination:
$ref: '#/components/schemas/V2ChallengeCompletionPagination'
V2ChallengeCompletionResponse:
type: object
description: Response object for the list of challenge completions.
properties:
status:
type: string
description: Status of the API response.
example: success
metadata:
$ref: '#/components/schemas/V2ChallengeCompletionMetadata'
payload:
type: array
description: Array of challenge completion objects.
items:
$ref: '#/components/schemas/V2ChallengeCompletion'
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
AnsweringaQuizResponse:
title: Successful answer
type: object
properties:
correct_answer:
type: boolean
description: A boolean value indicating whether the submitted answer was correct or not.
example: true
message:
type: string
description: Success message if the submitted answer is correct, or an error message if the
submitted answer is incorrect.
example: Well done! You've just earned 100 points!
AnsweringaQuizResponseError:
title: Error in answer
type: object
description: This describes the structure returned if an error occurred at the challenges endpoint.
properties:
error:
type: object
properties:
type:
type: string
description: The type of error that occurred.
example: RuntimeException
code:
type: integer
description: Numeric code representing the error.
example: 0
message:
type: string
description: Detailed message about the error.
example: This quiz is already answered by the customer.
BidResponse:
type: object
properties:
instructions:
type: string
description: Instructions on how to bid for the reward.
example: Enter your bid amount and confirm your bid.
terms:
type: string
description: Terms and conditions of reward redemption.
example: Starting bid is 0 point, minimum increment of 50 points, the highest bid at the end
of the auction wins the reward.
type:
type: string
description: Type of the reward. This endpoint always returns `bidding` type.
example: bidding
_actions:
type: object
properties:
complete:
type: object
description: Endpoint to submit another bid.
properties:
method:
type: string
example: POST
url:
type: string
example: /customers/[customer_id]/activities/rewards/613d1e0615d3b87b0b000004/bid
starts_at:
type: string
format: date-time
description: Start date of bidding, if defined.
example: '2021-09-10T21:21:00.000Z'
ends_at:
type: string
format: date-time
description: End date of bidding, if defined.
example: '2021-09-30T21:21:00.000Z'
bid_step:
type: integer
format: int32
description: The number of points used for the bid.
example: 10
highest_bid:
type: object
properties:
own:
type: boolean
description: Indicates whether the customer has the highest bid at the moment.
example: true
points:
type: integer
description: The point value of the highest bid.
example: 50
category:
type: object
properties:
id:
type: string
description: Unique identifier of the reward category.
example: 64c0d6457fba49389344e065
name:
type: string
description: Description of the reward category.
example: Bidding rewards
id:
type: string
description: Unique identifier of the reward.
example: 613d1e0615d3b87b0b000004
status:
type: string
description: Status of the reward.
example: active
title:
type: string
description: Title of the reward.
example: Exclusive Designer Handbag Auction
description:
type: string
description: Description of the reward.
example: Bid on an exclusive designer handbag and make it yours! This high-value fashion reward
is available to the highest bidder, so use your points wisely.
image:
$ref: '#/components/schemas/Image'
points:
type: integer
format: int32
description: Point price of the reward. This value is for administrative purposes only. The
actual price depends on the highest bid amount.
example: 0
transferable:
type: boolean
description: Indicates whether the reward can be transferred to another customer.
example: true
transfer_points:
type: integer
description: The number of points to add to the customer when the reward is transferred.
example: null
transfer_limit:
type: integer
description: The number of times the reward can be transferred to another customer.
example: 1
Customer:
title: Customer
type: object
properties:
id:
type: string
description: Unique ID of the customer.
example: 280e674c-c4ea-4a30-987a-d9267d1a5018
optin_at:
type: number
description: Timestamp of customer optin.
example: 1720425804
last_login_at:
type: number
description: Timestamp of customer last login.
example: 1720425804
updated_at:
type: number
description: Timestamp of customer last updated date.
example: 1720425804
first_name:
type: string
description: First name of the customer.
example: John
last_name:
type: string
description: Last name of the customer.
example: Doe
email:
type: string
description: E-mail address of the customer.
example: john.doe@test.com
birth_date:
type: string
description: Birth date of the customer.
format: date
example: '1990-01-01'
gender:
$ref: '#/components/schemas/Gender'
language:
type: string
description: Language of the customer.
example: en
nickname:
type: string
description: Nickname of the customer.
example: john.doe
status:
$ref: '#/components/schemas/Status9'
score:
type: number
description: Current score of the customer.
example: 100
spent:
type: number
description: Number of spent points of the customer.
example: 10
reserved:
type: number
description: Number of reserved points of the customer.
example: 20
spendable:
type: number
description: Number of spendable points of the customer.
example: 30
pending:
type: number
description: Number of pending points of the customer.
example: 20
properties:
type: object
description: Additional customer properties.
purchase_total:
type: number
description: Sum of customer's purchase totals.
example: 20
purchase_count:
type: number
description: Count of customer's purchases.
example: 10
purchase_last_date:
type: string
description: Customer's last purchase date.
format: date
example: '2024-01-01T00:00:00.000Z'
description: Customer object
Gender:
title: Gender
enum:
- female
- male
- other
type: string
description: Gender of the customer.
Status9:
title: Status9
enum:
- active
- inactive
- opted_out
- banned
- suspended
type: string
description: Status of the customer.
Optin:
title: Optin
required:
- password
- confirm_password
type: object
properties:
password:
type: string
description: Customer's password.
confirm_password:
type: string
description: Confirm password - should be same as Password above.
first_name:
type: string
description: First name of the customer.
example: John
last_name:
type: string
description: Last name of the customer.
example: Doe
email:
type: string
description: E-mail address of the customer.
example: john.doe@antavo.com
birth_date:
type: string
description: Birth date of the customer.
format: date
example: '1990-01-01'
gender:
$ref: '#/components/schemas/Gender'
language:
type: string
description: Language of the customer.
example: en
phone:
type: string
description: Phone number the customer.
example: 212-555-1234
mobile_phone:
type: string
description: Mobile phone number the customer.
example: 212-555-1234
handler:
type: string
description: Customer's publicly displayed handler (nickname).
example: john.doe
description: Customer opt-in properties
PrizeWheelsOptions_ind:
type: object
properties:
_actions:
type: object
properties:
claim:
type: object
description: Endpoint to claim the associated reward.
required:
- method
- url
properties:
method:
type: string
example: POST
url:
type: string
format: uri
example: /customers/280e674c-c4ea-4a30-987a-d9267d1a5018/rewards/63dcb791eb80ef351838fdfb/claim
enter:
type: object
description: Endpoint to spin the wheel again.
required:
- method
- url
properties:
method:
type: string
example: POST
url:
type: string
format: uri
example: /customers/280e674c-c4ea-4a30-987a-d9267d1a5018/prize-wheels/63fdccaca88ac11c347af899
win_text:
type: string
description: Text to display after the customer has landed on this slice.
weight:
type: number
description: Percentage chance to land on this slice.
id:
type: string
description: ID of the slice.
label:
type: string
description: Name of the slice.
type:
type: string
enum:
- reward
- points
- empty
transrequest:
title: Transaction Request
type: object
properties:
id:
type: string
description: The target transaction IDs. The keyword is commonly used with the `in` operator
example: null
status:
type: string
description: The status of the target transactions.
limit:
type: number
description: Limits the number of transactions to be returned in one response. Other values
are accessible by pagination made accessible via the offset.
default: 100
offset:
type: number
description: Offsets the starting number of transactions to return. This is used in pagination
in conjunction with the limit query.
default: 0
Login:
title: Login
type: object
properties:
username:
type: string
description: Customer's username.
example: john.doe
password:
type: string
description: Customer's password.
PasswordResponse:
title: PasswordResponse
type: object
properties:
token:
$ref: '#/components/schemas/token'
description: This describes the structure returned if an error occurred.
token:
title: token
type: string
description: Token needed for [password reset](https://developers.antavo.com/reference/post_customers-password-reset).
example: ZTM4Mjk4YTk5ZTkyZTg5NWE5N2UzNWViNjlhNGYyZDMxZmZkNGU1M2ExOGNmZTNiOWE3Y2YzZmE2ZTMyNjdiOQ.eyJjdXN0b21lciI6Im5vdF9hX3ZhbGlkX2N1c3RvbWVyIiwiZXhwaXJlc19hdCI6ImxvbmdfYWdvIn0
PasswordRequest:
title: PasswordRequest
type: object
properties:
username:
type: string
description: Customer's username.
example: john.doe
url:
type: string
description: URL which will be extended with password reset token.
example: https://loyalty.{environment}.antavo.com/{workspace_id}/customers/280e674c-c4ea-4a30-987a-d9267d1a5018
PasswordReset:
title: PasswordReset
type: object
properties:
token:
type: string
description: Password reset token obtained from [password request](https://developers.antavo.com/reference/post_customers-password-request).
example: null
password:
type: string
description: Password
confirm_password:
type: string
description: Confirm password - should be same as Password above.
security:
- api_key: []
tags:
- name: Challenges
description: Endpoints provided by the _Challenges_ module
- name: Contests
description: Endpoints provided by the _Contests Lite_ module
- name: Activities
description: This endpoint collects and aggregates all activities, provided by all modules
- name: Offers
description: Endpoints provided by the _Offers_ module
- name: Profiling
description: Endpoints provided by the _Gamified Profiling_ module
- name: Quizzes
description: Endpoints provided by the _Quizzes_ module
- name: Rewards
description: Endpoints provided by the _Rewards_ module
- name: Coupons
description: Endpoints provided by the _Coupons_ module
- name: Data extensions
description: Endpoints for probing data extensions
- name: History
description: Endpoints providing information regarding the customers interactions with the loyalty cloud
- name: Transactions
description: Endpoints providing customer information regarding specified transaction ids.
- name: Wallet
description: Endpoints provided by the _Wallet_ module