Créer une chambre
Créez une salle avec des ponts préchargés en option et des invitations personnelles.
/api/v1/roomsEn-têtes
Authorizationrequis- Clé API au porteur. Voir authentification.
Content-Typerequisapplication/jsonIdempotency-Keyrequis- Unique par création; 1–128 caractères ASCII visibles.
Corps
Envoyer {} pour une pièce par défaut. Maximum 160 KiB; pas de champs inconnus.
displaySpectatorLinkboolean · facultatif- Par défaut à true. Définissez false pour masquer le lien de spectateur des joueurs. L'API retourne toujours le lien.
playersobject[] · facultatif- Jusqu'à quatre invitations personnelles. Chaque article contient:
externalIdstring · requis- Votre identifiant de lecteur. 1–128 caractères; unique dans cette requête.
deckobject · facultatif- Deck assigné à ce joueur est un lien personnel.
deckliststring · requis- Texte de pont à précharger. Jusqu'à 32 KiB.
bracketinteger · facultatif- 1–5. Stocké sans affichage.
curl https://drawspell.space/api/v1/rooms \
-H "Authorization: Bearer $DRAWSPELL_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: match-123" \
--data '{
"displaySpectatorLink": false,
"players": [
{
"externalId": "player-1",
"deck": {
"decklist": "1 Sol Ring\n1 Command Tower",
"bracket": 3
}
}
]
}'Réponse
playerInviteUrlpartagé- N'importe qui avec le lien peut rejoindre un siège disponible.
players[].joinUrlpersonnel- Envoyer à la
externalIdcorrespondante. Charge leur pont assigné; pas de réservation de siège ou de vérification d'identité. spectatorLinkstring- Toujours retourné à l'appelant API. Quiconque avec ce lien peut regarder. Lorsque displaySpectatorLink est faux, les joueurs ne peuvent pas récupérer le lien de l'application.
activationExpiresAtDate ISO- Le premier joueur doit se joindre dans les 24 heures. Les jeux actifs continuent après cette date limite.
{
"roomId": "abc123",
"displaySpectatorLink": false,
"spectatorLink": "https://drawspell.space/rooms/abc123?st=…",
"activationExpiresAt": "2026-10-10T18:00:00.000Z",
"playerInviteUrl": "https://drawspell.space/rooms/abc123?gt=…",
"players": [
{
"externalId": "player-1",
"joinUrl": "https://drawspell.space/rooms/abc123?invite=…"
}
]
}Référence d'erreur Statuts, codes et exemple JSON
| État | Code / action |
|---|---|
| 400 | invalid_requestVérifiez JSON, les champs et les en-têtes requis. |
| 401 | unauthorizedUtilisez une clé API active. |
| 403 | forbiddenCompte désactivé ou chambres: créer la permission manquante. |
| 409 | idempotency_conflictUtilisez une nouvelle clé pour différents contenus. |
| 410 | room_goneLa chambre a expiré ou a été supprimée. Créez une nouvelle chambre. |
| 413 | body_too_largeRéduire la demande à 160 KiB ou moins. |
| 415 | unsupported_media_typeEnvoyez Content-Type: application/json. |
| 429 | rate_limitedAttendez Retry-After secondes. |
| 503 | service_unavailableRéessayez avec le même Idempotency-Key. |
{
"error": {
"code": "idempotency_conflict",
"message": "This Idempotency-Key was already used with different content."
}
}