Skip to content

Get the reward

GET
/v1/game-instances/{campaignId}/reward
curl --request GET \
--url https://api.keliplay.com/v1/game-instances/example/reward \
--header 'Authorization: Bearer <token>'

Returns the campaign’s prizes with their stock, and totals across all of them. reward is null when the campaign has no prizes.

Permission: rewards.read.

campaignId
required
string

The campaign’s id.

The reward and its totals.

Media typeapplication/json
object
reward
required
One of:
object
tiers
required
Array<object>

One prize, with its stock.

object
id
required
string
match
required
One of:
object
when
required
Allowed value: everyone
display
required

How the prize is described to the player.

object
title
required
string
>= 1 characters <= 120 characters
description
string
<= 600 characters
termsUrl
string format: uri
<= 2048 characters
codeStrategy
required

Where the prize’s codes come from.

  • pool: codes you upload or generate, each given out up to its issue limit.
  • shared: one code given to everyone who earns the prize.
  • generated: a fresh code made for each player when they earn it.
string
Allowed values: pool shared generated
coupons
required

Codes stored for this prize.

integer
couponsRemaining
required

Codes that can still be given out. Null when a code has no issue limit.

integer | null
granted
required

Coupons given out for this prize.

integer
grantOncePerParticipant
required
boolean
validForSeconds
required
integer | null
page
required
One of:

The page shown after the game. At most 20 blocks, 8 images, videos and animations, 1 video, 2 animations, 2,000 characters of text and 16 KB in all.

object
blocks
required
Array
>= 1 items <= 20 items

A block on the reward page. Any shared block type, plus:

  • outcome: the result of the play. Optional prefix (up to 40 characters).
  • coupon: the player’s coupon. Optional caption (up to 120 characters), copyable (default true) for a copy button, and show: code (the default), name (the coupon’s name) or both. A coupon with no name shows its code. The copy button appears only when the code is shown.

when is one of always (default), win or not_win.

object
id
required
string
>= 1 characters <= 64 characters
type
required
string
text
string
<= 600 characters
align
string
default: center
Allowed values: start center
url

An https URL, or a file from your media library.

string
<= 2048 characters
posterUrl
string
<= 2048 characters
alt
string
<= 120 characters
maxWidth
integer
>= 60 <= 720
autoplay
boolean
loop
boolean
controls
boolean
speed
number
>= 0.25 <= 2
size
string
Allowed values: sm md lg
type
required
string
Allowed values: logo heading text outcome coupon image video lottie spacer divider
when
string
default: always
Allowed values: always win not_win
prefix
string
<= 40 characters
caption
string
<= 120 characters
show

For coupon. What the player sees.

string
default: code
Allowed values: code name both
copyable
boolean
default: true
coupons
required

Coupon codes stored across all prizes.

integer
couponsRemaining
required

Codes that can still be given out.

integer
granted
required

Coupons given out so far.

integer
Example
{
"reward": {
"tiers": [
{
"id": "0192f3a1-0000-7000-8000-000000071001",
"match": {
"when": "won"
},
"display": {
"title": "Free coffee",
"description": "One regular coffee at any store.",
"termsUrl": "https://www.example.com/terms"
},
"codeStrategy": "pool",
"coupons": 500,
"couponsRemaining": 377,
"granted": 123
}
],
"grantOncePerParticipant": true,
"validForSeconds": 2592000,
"page": null
},
"coupons": 500,
"couponsRemaining": 377,
"granted": 123
}

The API key is missing, malformed or revoked.

Media typeapplication/json
object
error
required
object
code
required

Stable and safe to branch on.

  • invalid_request (400): the request is not valid.
  • unauthorized (401): missing, malformed or revoked API key.
  • upgrade_required (402): not in your plan, or a plan limit is reached.
  • forbidden (403): the key lacks a permission, or the action is not allowed.
  • not_found (404): nothing with that id in your account.
  • conflict (409): clashes with the current state.
  • confirmation_required (409): repeat with confirm=true. Folder deletion only.
  • rate_limited (429): wait for Retry-After seconds.
  • internal_error (500) and service_unavailable (503): try again later.
string
Allowed values: invalid_request unauthorized upgrade_required forbidden not_found conflict confirmation_required rate_limited internal_error service_unavailable
message
required

Written for a person. May change; do not parse it.

string
details
One of:
Array<object>
object
path
required

The failing field, dot separated, such as prize.label.

string
message
required
string
Example
{
"error": {
"code": "unauthorized",
"message": "Invalid or revoked API key."
}
}

The API key does not carry the permission this needs, or the request is not allowed.

Media typeapplication/json
object
error
required
object
code
required

Stable and safe to branch on.

  • invalid_request (400): the request is not valid.
  • unauthorized (401): missing, malformed or revoked API key.
  • upgrade_required (402): not in your plan, or a plan limit is reached.
  • forbidden (403): the key lacks a permission, or the action is not allowed.
  • not_found (404): nothing with that id in your account.
  • conflict (409): clashes with the current state.
  • confirmation_required (409): repeat with confirm=true. Folder deletion only.
  • rate_limited (429): wait for Retry-After seconds.
  • internal_error (500) and service_unavailable (503): try again later.
string
Allowed values: invalid_request unauthorized upgrade_required forbidden not_found conflict confirmation_required rate_limited internal_error service_unavailable
message
required

Written for a person. May change; do not parse it.

string
details
One of:
Array<object>
object
path
required

The failing field, dot separated, such as prize.label.

string
message
required
string
Example
{
"error": {
"code": "forbidden",
"message": "Your role does not allow this (draws.run)."
}
}

Nothing with that id exists in your account.

Media typeapplication/json
object
error
required
object
code
required

Stable and safe to branch on.

  • invalid_request (400): the request is not valid.
  • unauthorized (401): missing, malformed or revoked API key.
  • upgrade_required (402): not in your plan, or a plan limit is reached.
  • forbidden (403): the key lacks a permission, or the action is not allowed.
  • not_found (404): nothing with that id in your account.
  • conflict (409): clashes with the current state.
  • confirmation_required (409): repeat with confirm=true. Folder deletion only.
  • rate_limited (429): wait for Retry-After seconds.
  • internal_error (500) and service_unavailable (503): try again later.
string
Allowed values: invalid_request unauthorized upgrade_required forbidden not_found conflict confirmation_required rate_limited internal_error service_unavailable
message
required

Written for a person. May change; do not parse it.

string
details
One of:
Array<object>
object
path
required

The failing field, dot separated, such as prize.label.

string
message
required
string
Example
{
"error": {
"code": "not_found",
"message": "Channel 0192f3a1-0000-7000-8000-00000000c009 not found."
}
}