Skip to main content

Loyalty Core Platform API (2.0)

Download OpenAPI specification:Download

Coupon Books

Get all the coupon books for the current organization

Authorizations:
bearer
query Parameters
page
number >= 0
Example: page=0

The page number for pagination

limit
number [ 1 .. 25 ]
Example: limit=10

The limit of items to return per page

order
string

Order of columns in result in the format 'column,asc|desc?'. Samples: ?order=col1 or ?order=col1,asc

search
string

Filter by full text search

tags
string
status
string
Enum: "draft" "published" "disabled" "archived"

The status of the coupon book

locale
string

Translation locale requested for the coupon

audiences
string
loyaltyProgramKey
string
externalId
string

Responses

Request samples


curl -X 'GET' \
  'https://api.sandbox.qurable.io/v2/coupon-books?page=0&limit=10' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer {YOUR_TOKEN}'

Response samples

Content type
application/json
{
  • "totalCount": 0,
  • "page": 0,
  • "limit": 0,
  • "results": [
    ]
}

Creates a new coupon book

Authorizations:
bearer
Request Body schema: application/json
required
externalId
string
rankingIndex
number
audienceKeys
Array of strings
name
required
string
description
string
subtitle
string
pictureUrl
string
detailPictureUrl
string
customAttributes
object
condition
object
type
required
string
discountAmount
number
discountType
string
tags
Array of strings
publishingStatus
required
string
Enum: "archived" "draft" "disabled" "published"
validFromDate
string <date-time>
validToDate
string <date-time>
maxAssignedPerMember
number
maxAssignedPerCoupon
number
maxCouponCount
number
defaultLocale
string
assignmentRequiredPoints
number
usageRequiredPoints
number
contentSchemaId
number
contentSchemaVersionId
number
locale
string

Locale

content
object

Content of the coupon book

isDefaultLocale
boolean

Is the locale default

requiredPointsConfig
required
object (RequiredPointsConfig)
tiers
Array of numbers

Tiers

loyaltyProgramKey
string

Responses

Request samples

Content type
application/json
{
  • "externalId": "string",
  • "rankingIndex": 0,
  • "audienceKeys": [
    ],
  • "name": "string",
  • "description": "string",
  • "subtitle": "string",
  • "pictureUrl": "string",
  • "detailPictureUrl": "string",
  • "customAttributes": { },
  • "condition": { },
  • "type": "string",
  • "discountAmount": 0,
  • "discountType": "string",
  • "tags": [
    ],
  • "publishingStatus": "archived",
  • "validFromDate": "2019-08-24T14:15:22Z",
  • "validToDate": "2019-08-24T14:15:22Z",
  • "maxAssignedPerMember": 0,
  • "maxAssignedPerCoupon": 0,
  • "maxCouponCount": 0,
  • "defaultLocale": "string",
  • "assignmentRequiredPoints": 0,
  • "usageRequiredPoints": 0,
  • "contentSchemaId": 0,
  • "contentSchemaVersionId": 0,
  • "locale": "string",
  • "content": { },
  • "isDefaultLocale": true,
  • "requiredPointsConfig": { },
  • "tiers": [
    ],
  • "loyaltyProgramKey": "string"
}

Response samples

Content type
application/json
{
  • "couponBook": {
    }
}

Get an existing coupon book details

Authorizations:
bearer
path Parameters
couponBookKey
required
string
query Parameters
locale
string

Translation locale requested for the coupon

Responses

Request samples


curl -X 'GET' \
  'https://api.sandbox.qurable.io/v2/coupon-books/{couponBookKey}' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer {YOUR_TOKEN}'

Response samples

Content type
application/json
{
  • "couponBook": {
    }
}

Updates a coupon book

Authorizations:
bearer
path Parameters
couponBookKey
required
string
Request Body schema: application/json
required
externalId
string
rankingIndex
number
audienceKeys
Array of strings
description
string
subtitle
string
pictureUrl
string
detailPictureUrl
string
customAttributes
object
condition
object
discountAmount
number
discountType
string
tags
Array of strings
validFromDate
string <date-time>
validToDate
string <date-time>
maxAssignedPerMember
number
maxAssignedPerCoupon
number
maxCouponCount
number
defaultLocale
string
assignmentRequiredPoints
number
usageRequiredPoints
number
contentSchemaId
number
contentSchemaVersionId
number
locale
string

Locale

content
object

Content of the coupon book

isDefaultLocale
boolean

Is the locale default

requiredPointsConfig
required
object (RequiredPointsConfig)
publishingStatus
string

The status of the coupon book

name
string

The name of the coupon book

extraFields
object

content extra fields

tiers
Array of numbers

Tiers

loyaltyProgramKey
string

Responses

Request samples

Content type
application/json
{
  • "externalId": "string",
  • "rankingIndex": 0,
  • "audienceKeys": [
    ],
  • "description": "string",
  • "subtitle": "string",
  • "pictureUrl": "string",
  • "detailPictureUrl": "string",
  • "customAttributes": { },
  • "condition": { },
  • "discountAmount": 0,
  • "discountType": "string",
  • "tags": [
    ],
  • "validFromDate": "2019-08-24T14:15:22Z",
  • "validToDate": "2019-08-24T14:15:22Z",
  • "maxAssignedPerMember": 0,
  • "maxAssignedPerCoupon": 0,
  • "maxCouponCount": 0,
  • "defaultLocale": "string",
  • "assignmentRequiredPoints": 0,
  • "usageRequiredPoints": 0,
  • "contentSchemaId": 0,
  • "contentSchemaVersionId": 0,
  • "locale": "string",
  • "content": { },
  • "isDefaultLocale": true,
  • "requiredPointsConfig": { },
  • "publishingStatus": "string",
  • "name": "string",
  • "extraFields": { },
  • "tiers": [
    ],
  • "loyaltyProgramKey": "string"
}

Response samples

Content type
application/json
{
  • "couponBook": {
    }
}

Updates the status of a coupon book

Authorizations:
bearer
path Parameters
couponBookKey
required
string
Request Body schema: application/json
required
publishingStatus
required
string
Enum: "draft" "published" "disabled" "archived"

Status of the coupon book

Responses

Request samples

Content type
application/json
{
  • "publishingStatus": "draft"
}

Response samples

Content type
application/json
{
  • "couponBook": {
    }
}

Members Coupon Books

Get all the coupon books from a member

Authorizations:
bearer
path Parameters
loyaltyMemberId
required
string
query Parameters
page
number >= 0
Example: page=0

The page number for pagination

limit
number [ 1 .. 25 ]
Example: limit=10

The limit of items to return per page

order
string

Order of columns in result in the format 'column,asc|desc?'. Samples: ?order=col1 or ?order=col1,asc

tags
string
validFromDate
string <date-time>
validToDate
string <date-time>
locale
string

Translation locale requested for the coupon

couponBookKey
string
withStockOnly
boolean
externalId
string

Responses

Request samples


curl -X 'GET' \
  'https://api.sandbox.qurable.io/v2/members/{loyaltyMemberId}/coupon-books?page=0&limit=10' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer {YOUR_TOKEN}'

Response samples

Content type
application/json
{
  • "totalCount": 0,
  • "page": 0,
  • "limit": 0,
  • "results": [
    ]
}

Use a coupon from the coupon-book

Authorizations:
bearer
path Parameters
loyaltyMemberId
required
string
couponBookKey
required
string
Request Body schema: application/json
required
systemUniqueKey
string

System Unique Key by Organization ID

code
string

Code to be used

pendingCaptureLedgerTransactionId
string

Ledger transaction ID

usageData
object
autoAssign
boolean

Responses

Request samples

Content type
application/json
{
  • "systemUniqueKey": "string",
  • "code": "string",
  • "pendingCaptureLedgerTransactionId": "1234",
  • "usageData": { },
  • "autoAssign": true
}

Response samples

Content type
application/json
{
  • "couponUsage": {
    }
}

Assign a coupon from the coupon-book

Authorizations:
bearer
path Parameters
loyaltyMemberId
required
string
couponBookKey
required
string
Request Body schema: application/json
required
amount
object
Default: 1

Amount to be assigned for each code

pendingCaptureLedgerTransactionId
string

Ledger transaction ID

systemUniqueKey
string
code
string
couponData
object
usageData
object
expiresAt
string <date-time>

Responses

Request samples

Content type
application/json
{
  • "amount": 1,
  • "pendingCaptureLedgerTransactionId": "1234",
  • "systemUniqueKey": "string",
  • "code": "string",
  • "couponData": { },
  • "usageData": { },
  • "expiresAt": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "couponUsage": {
    }
}

Get all the coupons from a member

Authorizations:
bearer
path Parameters
loyaltyMemberId
required
string
query Parameters
page
number >= 0
Example: page=0

The page number for pagination

limit
number [ 1 .. 25 ]
Example: limit=10

The limit of items to return per page

order
string

Order of columns in result in the format 'column,asc|desc?'. Samples: ?order=col1 or ?order=col1,asc

notUsedOnly
boolean
couponBookTags
string
couponCode
string
couponBookKey
string

Responses

Request samples


curl -X 'GET' \
  'https://api.sandbox.qurable.io/v2/members/{loyaltyMemberId}/coupons?page=0&limit=10' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer {YOUR_TOKEN}'

Response samples

Content type
application/json
{
  • "totalCount": 0,
  • "page": 0,
  • "limit": 0,
  • "results": [
    ]
}

Get all the coupon usages from a member

Authorizations:
bearer
path Parameters
loyaltyMemberId
required
string
query Parameters
page
number >= 0
Example: page=0

The page number for pagination

limit
number [ 1 .. 25 ]
Example: limit=10

The limit of items to return per page

order
string

Order of columns in result in the format 'column,asc|desc?'. Samples: ?order=col1 or ?order=col1,asc

fromCreatedAt
string <date-time>

Filter coupon usages created from this date

toCreatedAt
string <date-time>

Filter coupon usages created up to this date

couponBookKey
string

Responses

Request samples


curl -X 'GET' \
  'https://api.sandbox.qurable.io/v2/members/CL-RUT-90892932/coupon-usages?page=0&limit=10&couponBookKey={couponBookKey}' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer {YOUR_TOKEN}'

Response samples

Content type
application/json
{
  • "totalCount": 0,
  • "page": 0,
  • "limit": 0,
  • "results": [
    ]
}

Coupons

Get all coupons

Authorizations:
bearer
query Parameters
page
number >= 0
Example: page=0

The page number for pagination

limit
number [ 1 .. 25 ]
Example: limit=10

The limit of items to return per page

code
string
couponBookKey
string
loyaltyMemberId
string
expired
boolean

Responses

Request samples


curl -X 'GET' \
  'https://api.sandbox.qurable.io/v2/coupons?code={code}?page=0&limit=10' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer {YOUR_TOKEN}'

Response samples

Content type
application/json
{
  • "totalCount": 0,
  • "page": 0,
  • "limit": 0,
  • "results": [
    ]
}

Members

Gets organization's members details

Authorizations:
bearer
query Parameters
page
number >= 0
Example: page=0

The page number for pagination

limit
number [ 1 .. 25 ]
Example: limit=10

The limit of items to return per page

order
string

Order of columns in result in the format 'column,asc|desc?'. Samples: ?order=col1 or ?order=col1,asc

email
string

Filter by email

loyaltyMemberId
string

Filter by loyalty member id

fromCreatedAt
string <date-time>

Filter members created from this date

toCreatedAt
string <date-time>

Filter members created up to this date

Responses

Response samples

Content type
application/json
{
  • "results": [
    ],
  • "total": 100,
  • "page": 1,
  • "limit": 10
}

Creates a new member in the current organization

Authorizations:
bearer
Request Body schema: application/json
required
loyaltyMemberId
required
string

Loyalty Member Id within Organization and Loyalty Program

publicLoyaltyMemberId
string

Optional Public Loyalty Member Id within Organization and Loyalty Program

object

Member's Profile Info.

active
boolean

Member's Active Status.

customAttributes
object

Custom dynamic attributes for organization member.

memberType
string

Type of the member.

referralCode
string

An Optional Referral Code

Responses

Request samples

Content type
application/json
{
  • "loyaltyMemberId": "11111-11111",
  • "publicLoyaltyMemberId": "11111-11111",
  • "profile": {
    },
  • "active": true,
  • "customAttributes": {
    },
  • "memberType": "organization",
  • "referralCode": "ref-24fAdsa"
}

Response samples

Content type
application/json
{
  • "loyaltyMember": {
    }
}

Gets organization's Loyalty Member details

Authorizations:
bearer
path Parameters
loyaltyMemberId
required
string

Responses

Response samples

Content type
application/json
{
  • "loyaltyMember": {
    }
}

Updates a member in the current organization

Authorizations:
bearer
path Parameters
loyaltyMemberId
required
string
Request Body schema: application/json
required
loyaltyMemberId
string

Loyalty Member Id within Organization and Loyalty Program

publicLoyaltyMemberId
string

Optional Public Loyalty Member Id within Organization and Loyalty Program

object

Member's Profile Info.

active
boolean

Member's Active Status.

customAttributes
object

Custom dynamic attributes for organization member.

memberType
string

Type of the member.

updateReason
string

Reason for updating the member

Responses

Request samples

Content type
application/json
{
  • "loyaltyMemberId": "11111-11111",
  • "publicLoyaltyMemberId": "11111-11111",
  • "profile": {
    },
  • "active": true,
  • "customAttributes": {
    },
  • "memberType": "organization",
  • "updateReason": "Updated member profile information"
}

Response samples

Content type
application/json
{
  • "loyaltyMember": {
    }
}

Check matching audiences for a member

Authorizations:
bearer
path Parameters
loyaltyMemberId
required
string
Request Body schema: application/json
required
audienceIds
required
Array of numbers

Responses

Request samples

Content type
application/json
{
  • "audienceIds": [
    ]
}

Response samples

Content type
application/json
{
  • "audienceIds": [
    ]
}

Get all matching audiences for a member

Authorizations:
bearer
path Parameters
loyaltyMemberId
required
string

Responses

Response samples

Content type
application/json
{
  • "audienceKeys": [
    ]
}

Check members existence

Authorizations:
bearer
Request Body schema: application/json
required
loyaltyMemberIds
required
Array of strings

List of loyaltyMemberId

Responses

Request samples

Content type
application/json
{
  • "loyaltyMemberIds": [
    ]
}

Response samples

Content type
application/json
{
  • "loyaltyMembers": [
    ]
}

Gets events for a loyalty member

Authorizations:
bearer
path Parameters
loyaltyMemberId
required
string
query Parameters
page
number >= 0
Example: page=0

The page number for pagination

limit
number [ 1 .. 25 ]
Example: limit=10

The limit of items to return per page

order
string

Order of columns in result in the format 'column,asc|desc?'. Samples: ?order=col1 or ?order=col1,asc

fromCreatedAt
string <date-time>

Filter events created from this date

toCreatedAt
string <date-time>

Filter events created up to this date

eventType
string
Enum: "member-purchase-order-created" "member-purchase-order-confirmed" "member-purchase-order-cancelled" "member-purchase-order-returned" "member-purchase-order-partially-returned" "member-created" "member-updated" "member-tier-set" "member-tier-removed" "member-profile-deactivated" "member-generic-event" "benefit-used" "coupon-code-assigned" "coupon-code-used" "badge-minted" "mission-status-updated" "ledger-transaction-created"

Filter events by type

status
string
Enum: "pending" "running" "failed" "success"

Filter events by status

Responses

Response samples

Content type
application/json
{
  • "totalCount": 0,
  • "page": 0,
  • "limit": 0,
  • "results": [
    ]
}

Gets transactions for a loyalty member

Authorizations:
bearer
path Parameters
loyaltyMemberId
required
string
query Parameters
page
number >= 0
Example: page=0

The page number for pagination

limit
number [ 1 .. 25 ]
Example: limit=10

The limit of items to return per page

order
string

Order of columns in result in the format 'column,asc|desc?'. Samples: ?order=col1 or ?order=col1,asc

fromExternalEventDate
string <date-time>

Optional Reference From Event Date

toExternalEventDate
string <date-time>

Optional Reference To Event Date

ledgerAccountKey
string

Optional Ledger Account Key

systemUniqueKey
string

Optional System Unique Key for tracking

tags
string

Responses

Response samples

Content type
application/json
{
  • "totalCount": 0,
  • "page": 0,
  • "limit": 0,
  • "results": [
    ]
}

Events

Track loyalty events

Track loyalty events

Authorizations:
bearer
Request Body schema: application/json
required
required
Array of objects (TrackOrganizationLoyaltyEventDto)

Array of loyalty events to track

campaignKeys
Array of strings

Array of campaign keys to filter campaigns for evaluation

dryRun
boolean

If true, the events will be processed but no actual changes will be made

Responses

Request samples

Content type
application/json
{
  • "events": [
    ],
  • "campaignKeys": [
    ],
  • "dryRun": false
}

Response samples

Content type
application/json
{
  • "results": [
    ],
  • "dryRun": false
}

Loyalty Points

Mint loyalty points to default account

Authorizations:
bearer
path Parameters
loyaltyMemberId
required
string
Request Body schema: application/json
required
amount
required
number >= 1

The amount of points to mint

systemUniqueKey
string <= 255 characters

The system unique key for the loyalty program

externalEventDate
string <date-time>

The date of the external event

description
string <= 255 characters

The description of the external event

tags
Array of strings

Optional tags for the event

Responses

Request samples

Content type
application/json
{
  • "amount": 1,
  • "systemUniqueKey": "string",
  • "externalEventDate": "2019-08-24T14:15:22Z",
  • "description": "string",
  • "tags": [
    ]
}

Response samples

Content type
application/json
{
  • "result": {
    }
}

Burn loyalty points to default account

Burn loyalty points to default account.

Authorizations:
bearer
path Parameters
loyaltyMemberId
required
string
Request Body schema: application/json
required
amount
required
number >= 1

The amount of points to mint

systemUniqueKey
string <= 255 characters

The system unique key for the loyalty program

externalEventDate
string <date-time>

The date of the external event

description
string <= 255 characters

The description of the external event

tags
Array of strings

Optional tags for the event

captureMethod
string
Enum: "manual" "auto"

The capture method: manual or auto. Default is auto

Responses

Request samples

Content type
application/json
{
  • "amount": 1,
  • "systemUniqueKey": "string",
  • "externalEventDate": "2019-08-24T14:15:22Z",
  • "description": "string",
  • "tags": [
    ],
  • "captureMethod": "auto"
}

Response samples

Content type
application/json
{
  • "result": {
    }
}

Capture loyalty points from default account.

Capture loyalty points from default account. Points must have been burned with captureMethod = manual

Authorizations:
bearer
Request Body schema: application/json
required
required
Array of objects (TransactionCaptureDto)

The transactions to capture

Array
captureAmount
number >= 1

The amount of points to capture

ledgerTransactionId
required
string <= 255 characters

The ledger transaction id to capture

Responses

Request samples

Content type
application/json
{
  • "transactions": [
    ]
}

Response samples

Content type
application/json
{
  • "ok": true
}

Revert loyalty points from default account.

Revert loyalty points from default account. Can only revert debit transactions and batch is processed as an atomic set.

Authorizations:
bearer
Request Body schema: application/json
required
required
Array of objects (RevertLoyaltyPointsDto)

The transactions to revert

Array
ledgerTransactionId
required
string <= 255 characters

The ledger transaction id to revert

systemUniqueKey
string <= 255 characters

The system unique key for the loyalty program

externalEventDate
string <date-time>

The date of the external event

description
string <= 255 characters

The description of the external event

tags
Array of strings

Optional tags for the event

Responses

Request samples

Content type
application/json
{
  • "transactions": [
    ]
}

Response samples

Content type
application/json
{
  • "results": [
    ]
}

List Member's Transactions

Get all member transactions

Authorizations:
bearer
path Parameters
loyaltyMemberId
required
string
query Parameters
page
number >= 0
Example: page=0

The page number for pagination

limit
number [ 1 .. 25 ]
Example: limit=10

The limit of items to return per page

order
string

Order of columns in result in the format 'column,asc|desc?'. Samples: ?order=col1 or ?order=col1,asc

fromDate
string <date-time>

Optional Reference From Event Date

toDate
string <date-time>

Optional Reference To Event Date

Responses

Request samples


curl -X 'GET' \
  'https://api.sandbox.qurable.io/v2/members/{loyaltyMemberId}/points/txs?page=0&limit=10' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer {YOUR_TOKEN}'

Response samples

Content type
application/json
{
  • "totalCount": 0,
  • "page": 0,
  • "limit": 0,
  • "results": [
    ]
}

Referral Programs

Get a referral program by key

Authorizations:
bearer
path Parameters
referralProgramKey
required
string

Responses

Response samples

Content type
application/json
{
  • "referralProgram": {
    }
}

Create a new referral code

Create a new referral code for a given loyalty member

Authorizations:
bearer
path Parameters
referralProgramKey
required
string
Request Body schema: application/json
required
codes
required
Array of strings[ items <= 255 characters ]

The codes to be created

loyaltyMemberId
required
string <= 255 characters

The loyalty member to be associated with the code

Responses

Request samples

Content type
application/json
{
  • "codes": [
    ],
  • "loyaltyMemberId": "string"
}

Response samples

Content type
application/json
{
  • "codes": [
    ]
}

Missions

Get organization's missions

Authorizations:
bearer
query Parameters
page
number >= 0
Example: page=0

The page number for pagination

limit
number [ 1 .. 25 ]
Example: limit=10

The limit of items to return per page

order
string

Order of columns in result in the format 'column,asc|desc?'. Samples: ?order=col1 or ?order=col1,asc

type
string
codes
string
tags
string
loyaltyProgramKey
string

Responses

Request samples


curl -X 'GET' \
  'https://api.sandbox.qurable.io/v2/missions?page=0&limit=10' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer {YOUR_TOKEN}'

Response samples

Content type
application/json
{
  • "totalCount": 0,
  • "page": 0,
  • "limit": 0,
  • "results": [
    ]
}

Create a new mission

Authorizations:
bearer
Request Body schema: application/json
required
name
required
string
shortDescription
string
description
string
pictureUrl
string
customAttributes
object
type
string
tags
Array of strings
code
required
string
active
boolean
validFrom
string <date-time>
validTo
string <date-time>
repetitionPeriod
string
periodLimit
number
pointsAccrual
number
eventType
required
string
Enum: "member-purchase-order-created" "member-purchase-order-confirmed" "member-purchase-order-cancelled" "member-purchase-order-returned" "member-purchase-order-partially-returned" "member-created" "member-updated" "member-tier-set" "member-tier-removed" "member-profile-deactivated" "member-generic-event" "benefit-used" "coupon-code-assigned" "coupon-code-used" "badge-minted" "mission-status-updated" "ledger-transaction-created"

Event Type to match

maxRepetitions
required
number >= 1

Max number of repetitions

goalCount
required
number >= 1

Goal count

loyaltyProgramKey
required
string
ledgerKey
string
ledgerAccountKey
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "shortDescription": "string",
  • "description": "string",
  • "pictureUrl": "string",
  • "customAttributes": { },
  • "type": "string",
  • "tags": [
    ],
  • "code": "string",
  • "active": true,
  • "validFrom": "2019-08-24T14:15:22Z",
  • "validTo": "2019-08-24T14:15:22Z",
  • "repetitionPeriod": "string",
  • "periodLimit": 0,
  • "pointsAccrual": 0,
  • "eventType": "member-purchase-order-confirmed",
  • "maxRepetitions": 10,
  • "goalCount": 3,
  • "loyaltyProgramKey": "string",
  • "ledgerKey": "string",
  • "ledgerAccountKey": "string"
}

Response samples

Content type
application/json
{
  • "mission": {
    }
}

Get a mission by key

Authorizations:
bearer
path Parameters
missionKey
required
string

Responses

Request samples


curl -X 'GET' \
  'https://api.sandbox.qurable.io/v2/missions/{missionKey}' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer {YOUR_TOKEN}'

Response samples

Content type
application/json
{
  • "mission": {
    }
}

Get member's missions

Authorizations:
bearer
path Parameters
loyaltyMemberId
required
string
query Parameters
page
number >= 0
Example: page=0

The page number for pagination

limit
number [ 1 .. 25 ]
Example: limit=10

The limit of items to return per page

order
string

Order of columns in result in the format 'column,asc|desc?'. Samples: ?order=col1 or ?order=col1,asc

type
string
codes
string
tags
string
minTimesAchieved
number >= 0

Min number of times it has been achieved

minCounterCount
number >= 0

Min number of times the event has been triggered

available
boolean

Filter available missions

inProgress
boolean

If member started the mission but has not achieved it yet (even if she completed it in the past)

active
boolean

Filter missions with active status

validFrom
string <date-time>

Filter missions with valid from date

validTo
string <date-time>

Filter missions with valid to date

missionKey
string
loyaltyProgramKey
string

Responses

Request samples


curl -X 'GET' \
  'https://api.sandbox.qurable.io/v2/members/{loyaltyMemberId}/missions?page=0&limit=10' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer {YOUR_TOKEN}'

Response samples

Content type
application/json
{
  • "totalCount": 0,
  • "page": 0,
  • "limit": 0,
  • "results": [
    ]
}

Campaigns

Get organization's campaigns

Authorizations:
bearer
query Parameters
page
number >= 0
Example: page=0

The page number for pagination

limit
number [ 1 .. 25 ]
Example: limit=10

The limit of items to return per page

order
string

Order of columns in result in the format 'column,asc|desc?'. Samples: ?order=col1 or ?order=col1,asc

type
string
codes
string
tags
string
loyaltyProgramKey
string

Responses

Request samples


      'https://api.sandbox.qurable.io/v2/campaigns?page=0&limit=10' \
      -H 'accept: application/json' \
      -H 'Authorization: Bearer {YOUR_TOKEN}'

Response samples

Content type
application/json
{
  • "totalCount": 0,
  • "page": 0,
  • "limit": 0,
  • "results": [
    ]
}

Create a new campaign

Authorizations:
bearer
Request Body schema: application/json
required
name
required
string
description
string
pictureUrl
string
customAttributes
object
smartRewards
object
type
string
tags
Array of strings
enabledTopics
Array of strings
code
required
string
active
boolean
audienceKeys
Array of strings
pointsMonthlyLimitPerMember
number
allowPartialApplicationOnLimit
boolean
daysOfWeek
Array of strings
locationCodes
Array of strings
eventType
string
minSpendValue
number
loyaltyTierKeys
Array of strings
validFrom
string <date-time>
validTo
string <date-time>
loyaltyProgramKey
string
Array of objects (CreateActionDto)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "pictureUrl": "string",
  • "customAttributes": { },
  • "smartRewards": { },
  • "type": "string",
  • "tags": [
    ],
  • "enabledTopics": [
    ],
  • "code": "string",
  • "active": true,
  • "audienceKeys": [
    ],
  • "pointsMonthlyLimitPerMember": 0,
  • "allowPartialApplicationOnLimit": true,
  • "daysOfWeek": [
    ],
  • "locationCodes": [
    ],
  • "eventType": "string",
  • "minSpendValue": 0,
  • "loyaltyTierKeys": [
    ],
  • "validFrom": "2019-08-24T14:15:22Z",
  • "validTo": "2019-08-24T14:15:22Z",
  • "loyaltyProgramKey": "string",
  • "actions": [
    ]
}

Response samples

Content type
application/json
{
  • "campaign": {
    }
}

Get a campaign by key

Authorizations:
bearer
path Parameters
campaignKey
required
string

Responses

Request samples


        curl -X 'GET' \
        'https://api.sandbox.qurable.io/v2/campaigns/{campaignKey}' \
        -H 'accept: application/json' \
        -H 'Authorization: Bearer {YOUR_TOKEN}'

Response samples

Content type
application/json
{
  • "campaign": {
    }
}

Update an existing campaign

Authorizations:
bearer
path Parameters
campaignKey
required
string
Request Body schema: application/json
required
name
required
string
description
string
pictureUrl
string
customAttributes
object
smartRewards
object
type
string
tags
Array of strings
enabledTopics
Array of strings
code
required
string
active
boolean
audienceKeys
Array of strings
pointsMonthlyLimitPerMember
number
allowPartialApplicationOnLimit
boolean
daysOfWeek
Array of strings
locationCodes
Array of strings
eventType
string
minSpendValue
number
loyaltyTierKeys
Array of strings
validFrom
string <date-time>
validTo
string <date-time>
Array of objects (UpdateActionWithKeyDtoV2)
loyaltyProgramKey
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "pictureUrl": "string",
  • "customAttributes": { },
  • "smartRewards": { },
  • "type": "string",
  • "tags": [
    ],
  • "enabledTopics": [
    ],
  • "code": "string",
  • "active": true,
  • "audienceKeys": [
    ],
  • "pointsMonthlyLimitPerMember": 0,
  • "allowPartialApplicationOnLimit": true,
  • "daysOfWeek": [
    ],
  • "locationCodes": [
    ],
  • "eventType": "string",
  • "minSpendValue": 0,
  • "loyaltyTierKeys": [
    ],
  • "validFrom": "2019-08-24T14:15:22Z",
  • "validTo": "2019-08-24T14:15:22Z",
  • "actions": [
    ],
  • "loyaltyProgramKey": "string"
}

Response samples

Content type
application/json
{
  • "campaign": {
    }
}

Actions

Get all actions for a campaign

Authorizations:
bearer
path Parameters
campaignKey
required
string
query Parameters
page
number >= 0
Example: page=0

The page number for pagination

limit
number [ 1 .. 25 ]
Example: limit=10

The limit of items to return per page

order
string

Order of columns in result in the format 'column,asc|desc?'. Samples: ?order=col1 or ?order=col1,asc

status
string
Enum: "disabled" "running" "draft"

The status of the action

campaignKey
string

Responses

Request samples

curl -X GET "https://api.qurable.com/v2/campaigns/{campaignKey}/actions" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"

Response samples

Content type
application/json
{
  • "totalCount": 0,
  • "page": 0,
  • "limit": 0,
  • "results": [
    ]
}

Create a new action

Authorizations:
bearer
path Parameters
campaignKey
required
string
Request Body schema: application/json
required
actionIndex
number
abortEvaluationIfFalse
boolean
abortEvaluationOnError
boolean
name
required
string
rules
object
effects
required
object
status
required
string
Enum: "disabled" "running" "draft"

Responses

Request samples

Content type
application/json
{
  • "actionIndex": 0,
  • "abortEvaluationIfFalse": true,
  • "abortEvaluationOnError": true,
  • "name": "string",
  • "rules": { },
  • "effects": { },
  • "status": "disabled"
}

Response samples

Content type
application/json
{
  • "action": {
    }
}

Get a specific action by key

Authorizations:
bearer
path Parameters
campaignKey
required
string
actionKey
required
string

Responses

Request samples

curl -X GET "https://api.qurable.com/v2/campaigns/{campaignKey}/actions/{actionKey}" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"

Response samples

Content type
application/json
{
  • "action": {
    }
}

Update an existing action

Authorizations:
bearer
path Parameters
campaignKey
required
string
actionKey
required
string
Request Body schema: application/json
required
actionIndex
number
abortEvaluationIfFalse
boolean
abortEvaluationOnError
boolean
name
required
string
rules
object
effects
required
object
status
required
string
Enum: "disabled" "running" "draft"

Responses

Request samples

Content type
application/json
{
  • "actionIndex": 0,
  • "abortEvaluationIfFalse": true,
  • "abortEvaluationOnError": true,
  • "name": "string",
  • "rules": { },
  • "effects": { },
  • "status": "disabled"
}

Response samples

Content type
application/json
{
  • "action": {
    }
}

Action Matchers

Get organization's action matchers

Authorizations:
bearer
query Parameters
type
string
Value: "item-matcher"
page
number
Default: 0
limit
number
Default: 10

Responses

Request samples


      curl -X 'GET' \
      'https://api.sandbox.qurable.io/v2/action-matchers?page=0&limit=10' \
      -H 'accept: application/json' \
      -H 'Authorization: Bearer {YOUR_TOKEN}'

Response samples

Content type
application/json
{
  • "matchers": [
    ],
  • "totalCount": 0,
  • "page": 0,
  • "limit": 0
}

Create a new action matcher

Authorizations:
bearer
Request Body schema: application/json
required
name
required
string <= 255 characters

The name of the action matcher

type
required
string
Value: "item-matcher"

The type of the action matcher

matcher
required
object

The matcher configuration

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "type": "item-matcher",
  • "matcher": { }
}

Response samples

Content type
application/json
{
  • "matcher": {
    }
}

Get an action matcher by key

Authorizations:
bearer
path Parameters
matcherKey
required
string

Responses

Request samples


        curl -X 'GET' \
        'https://api.sandbox.qurable.io/v2/action-matchers/{matcherKey}' \
        -H 'accept: application/json' \
        -H 'Authorization: Bearer {YOUR_TOKEN}'

Response samples

Content type
application/json
{
  • "matcher": {
    }
}

Update an existing action matcher

Authorizations:
bearer
path Parameters
matcherKey
required
string
Request Body schema: application/json
required
name
string <= 255 characters

The name of the action matcher

type
string
Value: "item-matcher"

The type of the action matcher

matcher
object

The matcher configuration

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "type": "item-matcher",
  • "matcher": { }
}

Response samples

Content type
application/json
{
  • "matcher": {
    }
}

Smart Campaigns

Get Smart Campaign Conditions with pagination and filtering

Authorizations:
bearer

Responses

Request samples

curl -X 'GET' \
        'https://api.sandbox.qurable.io/v2/smart-campaigns/conditions?page=1&limit=10&category=Member&search=tier' \
        -H 'accept: application/json' \
        -H 'Authorization: Bearer {YOUR_TOKEN}'

Response samples

Content type
application/json
{
  • "results": [
    ]
}

Get Smart Campaign Effects with pagination and filtering

Authorizations:
bearer

Responses

Request samples

curl -X 'GET' \
        'https://api.sandbox.qurable.io/v2/smart-campaigns/effects?page=1&limit=10&category=Rewards&search=points' \
        -H 'accept: application/json' \
        -H 'Authorization: Bearer {YOUR_TOKEN}'

Response samples

Content type
application/json
{
  • "results": [
    ]
}

Create a new smart campaign

Authorizations:
bearer
Request Body schema: application/json
required
name
required
string
description
string
pictureUrl
string
customAttributes
object
smartRewards
object
type
string
tags
Array of strings
enabledTopics
Array of strings
code
required
string
active
boolean
audienceKeys
Array of strings
pointsMonthlyLimitPerMember
number
allowPartialApplicationOnLimit
boolean
daysOfWeek
Array of strings[ items [ 1 .. 7 ] ]

Days of week when campaign is active (1=Monday, 7=Sunday)

locationCodes
Array of strings

Location codes where campaign is active

eventType
string
minSpendValue
number
loyaltyTierKeys
Array of strings
validFrom
string <date-time>
validTo
string <date-time>
required
Array of objects (RewardConfigurationDto)

Array of reward configurations

loyaltyProgramKey
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "pictureUrl": "string",
  • "customAttributes": { },
  • "smartRewards": { },
  • "type": "string",
  • "tags": [
    ],
  • "enabledTopics": [
    ],
  • "code": "string",
  • "active": true,
  • "audienceKeys": [
    ],
  • "pointsMonthlyLimitPerMember": 0,
  • "allowPartialApplicationOnLimit": true,
  • "daysOfWeek": [
    ],
  • "locationCodes": [
    ],
  • "eventType": "string",
  • "minSpendValue": 0,
  • "loyaltyTierKeys": [
    ],
  • "validFrom": "2019-08-24T14:15:22Z",
  • "validTo": "2019-08-24T14:15:22Z",
  • "rewards": [
    ],
  • "loyaltyProgramKey": "string"
}

Response samples

Content type
application/json
{
  • "campaign": {
    }
}

Get a smart campaign by key

Authorizations:
bearer
path Parameters
campaignKey
required
string

Responses

Request samples

curl -X 'GET' \
        'https://api.sandbox.qurable.io/v2/smart-campaigns/{campaignKey}' \
        -H 'accept: application/json' \
        -H 'Authorization: Bearer {YOUR_TOKEN}'

Response samples

Content type
application/json
{
  • "campaign": {
    }
}

Update an existing smart campaign

Authorizations:
bearer
path Parameters
campaignKey
required
string
Request Body schema: application/json
required
name
required
string
description
string
pictureUrl
string
customAttributes
object
smartRewards
object
type
string
tags
Array of strings
enabledTopics
Array of strings
code
required
string
active
boolean
audienceKeys
Array of strings
pointsMonthlyLimitPerMember
number
allowPartialApplicationOnLimit
boolean
daysOfWeek
Array of strings[ items [ 1 .. 7 ] ]

Days of week when campaign is active (1=Monday, 7=Sunday)

locationCodes
Array of strings

Location codes where campaign is active

eventType
string
minSpendValue
number
loyaltyTierKeys
Array of strings
validFrom
string <date-time>
validTo
string <date-time>
required
Array of objects (RewardConfigurationDto)

Array of reward configurations

loyaltyProgramKey
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "pictureUrl": "string",
  • "customAttributes": { },
  • "smartRewards": { },
  • "type": "string",
  • "tags": [
    ],
  • "enabledTopics": [
    ],
  • "code": "string",
  • "active": true,
  • "audienceKeys": [
    ],
  • "pointsMonthlyLimitPerMember": 0,
  • "allowPartialApplicationOnLimit": true,
  • "daysOfWeek": [
    ],
  • "locationCodes": [
    ],
  • "eventType": "string",
  • "minSpendValue": 0,
  • "loyaltyTierKeys": [
    ],
  • "validFrom": "2019-08-24T14:15:22Z",
  • "validTo": "2019-08-24T14:15:22Z",
  • "rewards": [
    ],
  • "loyaltyProgramKey": "string"
}

Response samples

Content type
application/json
{
  • "campaign": {
    }
}

Segment Management

Create a new segment

Creates a new segment with an automatically linked list-matcher audience. The segment defines membership refresh schedules and configuration.

Authorizations:
bearer
Request Body schema: application/json
required
name
required
string [ 1 .. 255 ] characters

Name of the segment

description
string <= 1000 characters

Description of the segment

refreshType
string (SegmentRefreshType)
Default: "once"
Enum: "once" "daily" "weekly" "monthly"

The refresh type determines membership TTL. ONCE: never expires, DAILY: 24h, WEEKLY: 7d, MONTHLY: 30d

isActive
boolean
Default: true

Indicates if the segment is active and can be used for targeting

tags
string

Tags associated with the segment

definition
object

DSL-based audience definition for complex segmentation queries

Responses

Request samples

Content type
application/json
{
  • "name": "VIP Customers",
  • "description": "High-value customers with over $1000 in purchases",
  • "refreshType": "once",
  • "isActive": true,
  • "tags": "VIP,High-value",
  • "definition": {
    }
}

Response samples

Content type
application/json
{
  • "segment": {
    }
}

Get all segments for the organization

Retrieves a paginated list of segments with support for filtering by active status and searching by name/description.

Authorizations:
bearer
query Parameters
page
number >= 0
Example: page=0

The page number for pagination

limit
number [ 1 .. 25 ]
Example: limit=10

The limit of items to return per page

order
string

Order of columns in result in the format 'column,asc|desc?'. Samples: ?order=col1 or ?order=col1,asc

isActive
boolean
Example: isActive=true

Filter by segment active status

search
string
Example: search=VIP

Search segments by name or description

tags
string
Example: tags=VIP,High-value

Filter segments that contain any of the provided tags

Responses

Response samples

Content type
application/json
{
  • "totalCount": 0,
  • "page": 0,
  • "limit": 0,
  • "results": [
    ]
}

Get a segment by key

Authorizations:
bearer
path Parameters
segmentKey
required
string

Segment key

Responses

Response samples

Content type
application/json
{
  • "segment": {
    }
}

Update a segment

Updates segment properties. Changes to name and description are automatically synchronized to the linked audience.

Authorizations:
bearer
path Parameters
segmentKey
required
string
Example: seg_01H9X8Y7Z6P5Q4R3S2T1V0W9

Unique segment identifier

Request Body schema: application/json
required
version
number >= 1

Segment version number for optimistic locking

Responses

Request samples

Content type
application/json
{
  • "version": 2
}

Response samples

Content type
application/json
{
  • "segment": {
    }
}

Audience List

Get a set of members from an audience with pagination support

Authorizations:
bearer
path Parameters
audienceKey
required
string

Audience key

query Parameters
limit
number [ 1 .. 1000 ]
Default: 100
Example: limit=100

Maximum number of members to return (1-1000)

lastEvaluatedKey
string
Example: lastEvaluatedKey=eyJtZW1iZXJJZCI6MTIzLCJhdWRpZW5jZUtleSI6ImF1ZF8wMUFSWjNOREVLVFNWNFJSRkZRNjlHNUZBViJ9

Pagination token from previous response to get next page of results (base64 encoded)

Responses

Response samples

Content type
application/json
{
  • "members": [
    ],
  • "lastEvaluatedKey": "eyJtZW1iZXJJZCI6MTIzLCJhdWRpZW5jZUtleSI6ImF1ZF8wMUFSWjNOREVLVFNWNFJSRkZRNjlHNUZBViJ9",
  • "count": 100
}

Add and remove multiple members to a persisted audience

Authorizations:
bearer
path Parameters
audienceKey
required
string

Audience key

Request Body schema: application/json
required
addLoyaltyMemberIds
Array of strings <= 1000 items

Array of loyalty member IDs to add to the audience

removeLoyaltyMemberIds
Array of strings <= 1000 items

Array of loyalty member IDs to remove from the audience

Responses

Request samples

Content type
application/json
{
  • "addLoyaltyMemberIds": [
    ],
  • "removeLoyaltyMemberIds": [
    ]
}

Response samples

Content type
application/json
{
  • "added": [
    ],
  • "removed": [
    ]
}

Audiences

Get organization's audiences

Authorizations:
bearer
query Parameters
page
number >= 0
Example: page=0

The page number for pagination

limit
number [ 1 .. 25 ]
Example: limit=10

The limit of items to return per page

order
string

Order of columns in result in the format 'column,asc|desc?'. Samples: ?order=col1 or ?order=col1,asc

matcherType
string
Enum: "attribute-matcher" "list-matcher" "null-matcher"

Filter by matcher type

search
string
Example: search=VIP customers

Search audiences by name or description

Responses

Request samples


      curl -X 'GET' \
      'https://api.sandbox.qurable.io/v2/audiences?page=0&limit=10' \
      -H 'accept: application/json' \
      -H 'Authorization: Bearer {YOUR_TOKEN}'

Response samples

Content type
application/json
{
  • "totalCount": 0,
  • "page": 0,
  • "limit": 0,
  • "results": [
    ]
}

Create a new audience

Authorizations:
bearer
Request Body schema: application/json
required
active
required
boolean
name
required
string
description
string
matcherType
required
string
Enum: "attribute-matcher" "list-matcher" "null-matcher"
matcher
object
segmentKey
string
refreshedAt
string <date-time>
memberCount
number

Responses

Request samples

Content type
application/json
{
  • "active": true,
  • "name": "string",
  • "description": "string",
  • "matcherType": "attribute-matcher",
  • "matcher": { },
  • "segmentKey": "string",
  • "refreshedAt": "2019-08-24T14:15:22Z",
  • "memberCount": 0
}

Response samples

Content type
application/json
{
  • "audience": {
    }
}

Get an audience by key

Authorizations:
bearer
path Parameters
audienceKey
required
string

Responses

Request samples


        curl -X 'GET' \
        'https://api.sandbox.qurable.io/v2/audiences/{audienceKey}' \
        -H 'accept: application/json' \
        -H 'Authorization: Bearer {YOUR_TOKEN}'

Response samples

Content type
application/json
{
  • "audience": {
    }
}

Update an existing audience

Authorizations:
bearer
path Parameters
audienceKey
required
string
Request Body schema: application/json
required
active
boolean
name
string
description
string
matcherType
string
Enum: "attribute-matcher" "list-matcher" "null-matcher"
matcher
object
segmentKey
string
refreshedAt
string <date-time>
memberCount
number

Responses

Request samples

Content type
application/json
{
  • "active": true,
  • "name": "string",
  • "description": "string",
  • "matcherType": "attribute-matcher",
  • "matcher": { },
  • "segmentKey": "string",
  • "refreshedAt": "2019-08-24T14:15:22Z",
  • "memberCount": 0
}

Response samples

Content type
application/json
{
  • "audience": {
    }
}

Segment Definitions

Get the semantic data model

Returns the semantic data model definition including available facts, dimensions, and their attributes. This model can be used to construct segment definitions.

Authorizations:
bearer

Responses

Response samples

Content type
application/json
{
  • "model": {
    }
}

Estimate member count for a segment definition

Estimates the number of members that would match the given segment definition. Also returns the total organization member count and the percentage of members that match.

Authorizations:
bearer
Request Body schema: application/json
required
definition
required
object

DSL-based audience definition to estimate member count

Responses

Request samples

Content type
application/json
{
  • "definition": {
    }
}

Response samples

Content type
application/json
{
  • "estimation": {
    }
}

Get available values for a dimension

Returns paginated and searchable values for a specific dimension within the organization context. Supported dimensions: memberGender, memberType, memberTag, tier, purchaseLocation, purchaseTag. Supports pagination (page, limit) and case-insensitive search by name.

Authorizations:
bearer
path Parameters
dimensionKey
required
string
query Parameters
page
number >= 1
Default: 1
Example: page=1

Page number (1-indexed)

limit
number [ 1 .. 1000 ]
Default: 100
Example: limit=100

Items per page

search
string
Example: search=gold

Search term for dimension value names (case-insensitive)

Responses

Response samples

Content type
application/json
{
  • "dimensionValues": {
    }
}

Ledgers

Gets a single Ledger for the current organization.

Authorizations:
bearer
path Parameters
ledgerKey
required
string
header Parameters
X-Q-Forwarded-Org
string

Organization Key

X-Q-Forwarded-User
string

User Key

Responses

Response samples

Content type
application/json
{
  • "ledger": {
    }
}

Updates a single Ledger in the current organization.

Authorizations:
bearer
path Parameters
ledgerKey
required
string
header Parameters
X-Q-Forwarded-Org
string

Organization Key

X-Q-Forwarded-User
string

User Key

Request Body schema: application/json
required
name
required
string
description
string

Responses

Request samples

Content type
application/json
{
  • "name": "Main Loyalty Program Ledger",
  • "description": "This is the main Loyalty Program Ledger"
}

Response samples

Content type
application/json
{
  • "ledger": {
    }
}

Gets all Ledgers for the current organization.

Authorizations:
bearer
query Parameters
page
number >= 0

The page number for pagination

limit
number [ 1 .. 25 ]
Example: limit=10

The limit of items to return per page

order
string

Order of columns in result in the format 'column,asc|desc?'. Samples: ?order=col1 or ?order=col1,asc

header Parameters
X-Q-Forwarded-Org
string

Organization Key

X-Q-Forwarded-User
string

User Key

Responses

Response samples

Content type
application/json
{
  • "totalCount": 0,
  • "page": 0,
  • "limit": 0,
  • "results": [
    ]
}

Creates a single Ledger in the current organization.

Authorizations:
bearer
header Parameters
X-Q-Forwarded-Org
string

Organization Key

X-Q-Forwarded-User
string

User Key

Request Body schema: application/json
required
name
required
string
description
string

Responses

Request samples

Content type
application/json
{
  • "name": "Main Loyalty Program Ledger",
  • "description": "This is the main Loyalty Program Ledger"
}

Response samples

Content type
application/json
{
  • "ledger": {
    }
}

Ledger Accounts

Gets all Ledger's Accounts

Authorizations:
bearer
path Parameters
ledgerKey
required
string
query Parameters
page
number >= 0

The page number for pagination

limit
number [ 1 .. 25 ]
Example: limit=10

The limit of items to return per page

order
string

Order of columns in result in the format 'column,asc|desc?'. Samples: ?order=col1 or ?order=col1,asc

header Parameters
X-Q-Forwarded-Org
string

Organization Key

X-Q-Forwarded-User
string

User Key

Responses

Response samples

Content type
application/json
{
  • "totalCount": 0,
  • "page": 0,
  • "limit": 0,
  • "results": [
    ]
}