Quickstart

Integrating Gemifier is two jobs. You set things up in the dashboard, and your backend tells Gemifier when a player does something. Everything else is dashboard work, so a campaign changes without you shipping anything.

Create a project

A project comes with two environments, Sandbox and Live. Its language, time zone and currency are set here and cannot be changed afterwards.

Create a key for Sandbox

Open API keys in the dashboard and create one. It is shown once, when you create it.

gem_sbox_7c1f2a9d4b6e8035a1c7e2f409b6d813

You can tell which environment a key belongs to by the start of it: gem_sbox_ for Sandbox, gem_live_ for Live. That is what decides where a call lands, not anything you send.

Work in Sandbox while you build. Nothing there reaches a real player.

Put the key on your backend

There is no SDK yet, so calls go out through whatever HTTP client your backend already uses. Keep the key in your server's configuration and send it as a bearer token.

A key is a server secret. One key can give a player points and take them away, so it never belongs in a browser, an app or a game client.

Define an event and send it

Open Events in the dashboard and add one. Copy its key, and send that key whenever the thing happens.

A player finished a lesson
curl -X POST https://api.gemifier.io/v1/events \
  -H "Authorization: Bearer $GEMIFIER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "events": [
      {
        "playerId": "player-42",
        "event": "lesson_completed",
        "occurredAt": "2026-09-24T18:03:00Z"
      }
    ]
  }'

That is the whole integration. The same call carries every event you ever define.

Build the rest in the dashboard

Missions, streaks, leaderboards, points and the shop all read the events you are now sending. None of it needs another line of code.

Next

On this page