Создайте комнату
Создайте комнату с дополнительными предварительно загруженными палубами и личными приглашениями.
/api/v1/roomsЗаголовки
Authorizationнеобходимый- Ключ Bearer API. См. аутентификация.
Content-Typeнеобходимыйapplication/jsonIdempotency-Keyнеобходимый- Уникальный для каждого творения; 1-128 видимых символов ASCII.
тело
Отправьте {} за комнату по умолчанию. Максимум 160 КиБ; никаких неизвестных полей.
displaySpectatorLinkboolean · необязательный- Установите ложное, чтобы скрыть зрителю ссылку от игроков. API по-прежнему возвращает ссылку.
playersobject[] · необязательный- До четырех личных приглашений. Каждый пункт содержит:
externalIdstring · необходимый- Идентификатор игрока: 1-128 символов; уникальный в этом запросе.
deckobject · необязательный- Палуба, назначенная для личной связи этого игрока.
deckliststring · необходимый- Смс на палубе для предварительной загрузки до 32 киб.
bracketinteger · необязательный- 1-5. храниться без дисплея.
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
}
}
]
}'Ответ
playerInviteUrlделиться- Любой, у кого есть ссылка, может присоединиться к доступному месту.
players[].joinUrlличный- Отправляйте на соответствующие
externalId. Загружает назначенную палубу; без бронирования места или проверки личности. spectatorLinkstring- Всегда возвращался к абоненту API. Любой, у кого есть эта ссылка, может смотреть. Когда displaySpectatorLink ложно, игроки не могут получить ссылку из приложения.
activationExpiresAtДата ISO- Первый игрок должен присоединиться в течение 24 часов. Активные игры продолжаются в течение этого срока.
{
"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=…"
}
]
}Ссылка на ошибку Статусы, коды и пример JSON
| статус | Код/действие |
|---|---|
| 400 | invalid_requestПроверьте JSON, поля и необходимые заголовки. |
| 401 | unauthorizedИспользуйте активный ключ API. |
| 403 | forbiddenУчетная запись отключена или номера: создайте недостающее разрешение. |
| 409 | idempotency_conflictИспользуйте новый ключ для другого контента. |
| 410 | room_goneКомната истекла или была удалена. Создайте новую. |
| 413 | body_too_largeУменьшите запрос до 160 КБ или меньше. |
| 415 | unsupported_media_typeОтправьте Content-Type: application/json. |
| 429 | rate_limitedПодождите Retry-After секунд. |
| 503 | service_unavailableПовторите с тем же Idempotency-Key. |
{
"error": {
"code": "idempotency_conflict",
"message": "This Idempotency-Key was already used with different content."
}
}