> ## Documentation Index
> Fetch the complete documentation index at: https://docs-staging.blumint.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Before you start

To get set up, fill in the [game partner setup form](https://staging.blumint.io/contact/game-partner). It asks how your game runs matches and identifies its players, so BluMint can set up your integration, and BluMint reviews your answers and replies with your staging API key.

* **Your API keys.** You get one API key for each environment, staging and production, and each is bound to your game. Send it as the `X-Api-Key` header on every call you make to BluMint. A key works only for your game and only on its own environment, so a staging key answers `401` on production.
* **Start on staging.** Build and test on staging, at `https://staging.blumint.io`, where every account is a test or dummy account. Production is `https://app.blumint.com`. Every path in this guide is relative to the environment you call, for example `https://staging.blumint.io/api/tournaments/match/submit` on staging, and each environment keeps its own registered URLs, so register them on each. Once your integration works on staging, ask BluMint for your production key.

The form asks for:

* **Your game and your service.** The game's title, the name players see for your service, and whether you make the game or run matches for a game someone else makes.
* **How players join a lobby.** A link they open, a lobby code they type, or your own game client automatically putting them into the lobby without them having to click through an in-game menu. A join page of your own is optional: choose a link only if you host one, a web page or a link that opens your game client, and paste an example join link from staging and one from production. For your own client, paste an example of the watch-only link (`spectateUrl`) the host opens to follow a match. BluMint takes the hostnames from your examples and matches them exactly, so `www.play.yourgame.example` and `play.yourgame.example` are different hostnames, and a link on any other hostname fails the create ([Answer the create](https://docs-staging.blumint.com/guide/create-a-lobby.md#create-answer)).
* **How your server runs a match.** A best-of series in one lobby, or single game sessions, with the range of teams per match and players per team your server runs. A best-of series always has two teams. Choose it only if your server can resume a series from a starting score, because a new lobby for an interrupted match carries the game sessions each team already won (`startingWins`). A host can't set up a tournament of your game outside the ranges you give.
* **Spectators.** Optionally, whether your lobbies admit spectators. If they do, give the most your game lets watch one match, or say that any number can watch. A create can still list more spectators than your lobby admits, so admit them in list order until your lobby is full ([Create a lobby](https://docs-staging.blumint.com/guide/create-a-lobby.md)).
* **The match settings hosts can choose.** Optionally, the settings of your game a host should be able to configure for a match, such as the map, the game mode or a time limit, with a link to any API or JSON spec that defines them. BluMint sends the host's choices with every create ([Match settings](https://docs-staging.blumint.com/guide/create-a-lobby.md#match-settings)).
* **How BluMint identifies your players.** By authentication methods both BluMint and your game share (e.g. Google, Steam, Discord, Epic, etc.) or by your own player ids. Each player links one of those accounts on BluMint before they can join your game's tournaments, and BluMint then sends you that account id in requests to your callbacks, or in the case you want BluMint to send your own player ids in those callbacks, you host a lookup URL that turns a linked account's id into your player id, and a player can register only once your lookup finds them ([Player lookup](https://docs-staging.blumint.com/guide/player-lookup.md)). The form also asks for your connect page on staging and on production: the page where a player connects the account they linked on BluMint to your game, so your lookup in that environment finds them. An integration that identifies players by their linked accounts needs no connect page. One that identifies them by your own ids needs one, because BluMint links it whenever your lookup can't find a player, at registration and before a create.
* **A technical contact.** The email BluMint replies to with your staging key and writes to about your integration.

The form never asks for an API key, a callback URL, or a secret: you register your callback URLs yourself once you have a key ([Register your callbacks](https://docs-staging.blumint.com/guide/register-your-callbacks.md)). To change an answer later, ask through the [contact form](https://staging.blumint.io/contact).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.