Skip to content

Get a game

GET
/v1/games/{slug}
curl --request GET \
--url https://api.keliplay.com/v1/games/example

Returns one game from the catalogue. No API key is needed.

slug
required
string

The game’s slug, such as spin-wheel.

The game.

Media typeapplication/json
object
game
required
object
id
required
string
slug
required

Use it as gameSlug when creating a campaign.

string
category
required
string
Allowed values: chance quiz skill prediction
name
required
string
description
string | null
artworkUrl
string | null
configSchema
required

A JSON Schema for the game’s config. The Games section explains each field.

object
labelKeys
required

The player-facing labels you can override in theme.labels.

Array<object>
object
key
required
string
fallback
required

The text shown when you set no label.

string
description
string
defaultWinnerAlgorithm
required

How winners are picked from eligible entries. Defaults to the game’s defaultWinnerAlgorithm.

  • random_uniform: every entry has the same chance.
  • random_weighted: chance follows each entry’s weight.
  • score_highest: highest scores win.
string
Allowed values: random_uniform random_weighted score_highest
createdAt
required
string format: date-time
Examples
Examplegame

A game response

{
"game": {
"id": "0192f3a1-0000-7000-8000-0000000a9001",
"slug": "spin-wheel",
"category": "chance",
"name": "Spin the Wheel",
"description": "A prize wheel. Each segment can carry a prize.",
"artworkUrl": "https://cdn.example.com/games/spin-wheel.png",
"configSchema": {
"type": "object"
},
"labelKeys": [
{
"key": "loading",
"fallback": "Loading",
"description": "Shown while the game loads."
}
],
"defaultWinnerAlgorithm": "random_weighted",
"createdAt": "2026-01-01T00:00:00.000Z"
}
}

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."
}
}