Axuz Developers

POST /rooms/{id}/token

Assina JWT Jitsi pro caller autenticado.

  • Acesso: Membro da equipe
  • Serviço: https://meet-api.axuz.net

Autenticação aceita

  • sessionCookie — Sessão plena Axuz (cookie de sessão da casa). Sessão restrita é 403 enrollment_required.
  • bearerSession — JWT de acesso da sessão em `Authorization: Bearer`.

Passa por canAccess; sem acesso → 404 idêntico ao de sala inexistente (W-012). moderator=true sse caller é created_by. Loga meet_participants best-effort (falha só WARN, não aborta o mint). JWT válido por 1h (ExpiresAt).

Parâmetros

NomeEmTipoObrigatórioDescrição
idpathstringsim

UUID da meet_room.

Corpo da requisição

Corpo JSON. O schema detalhado deste endpoint ainda não está tipado na spec; veja a descrição da operação.

application/json

NomeTipoObrigatórioDescrição
(corpo)objectnão
{}

Respostas

200

Token assinado.

NomeTipoObrigatórioDescrição
room_slugstringsim
join_urlstring<uri>sim

{MEET_JITSI_EXTERNAL_URL}/{slug}?jwt={jwt} — mount direto no iframe.

jwtstringsim

JWT HS256 RFC 7519 no formato lib-jitsi-meet: claims aud/iss/sub/room/exp/iat/context.user{id,name,email,moderator} + context.features.recording. moderator e recording são strings "true"/"false" (compat prosody antigo).

expires_atstring<date-time>sim

TTL padrão 1h.

guest_idstring<uuid>não

Presente só nas rotas anonymous-token — uuid v4 gerado por token (não persistido em users).

400

Input inválido.

NomeTipoObrigatórioDescrição
errorstringsim

401

Cookie ausente ou inválido.

NomeTipoObrigatórioDescrição
errorstringsim

403

Autenticado mas sem permissão (ACL não passa).

NomeTipoObrigatórioDescrição
errorstringsim

404

Sala inexistente (ou privada, anti-enumeração).

NomeTipoObrigatórioDescrição
errorstringsim

429

Limite de requisições excedido.

NomeTipoObrigatórioDescrição
errorstringsim

500

Erro interno — inclui fail-loud MEET-02 quando membership lookup falha.

NomeTipoObrigatórioDescrição
errorstringsim

Exemplos

O "Try it" está desligado nesta referência. Use os exemplos com a sua credencial de teste.

curl

curl -sS -X POST 'https://meet-api.axuz.net/rooms/ID/token' \
  -H "Authorization: Bearer $AXUZ_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

Node.js

const res = await fetch("https://meet-api.axuz.net/rooms/ID/token", {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.AXUZ_TOKEN}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({}),
});
if (!res.ok) throw new Error(`HTTP ${res.status}: ${await res.text()}`);
console.log(await res.json());

Python

import os
import requests

res = requests.request(
    "POST",
    "https://meet-api.axuz.net/rooms/ID/token",
    headers={
        "Authorization": f"Bearer {os.environ['AXUZ_TOKEN']}",
    },
    json={},
    timeout=30,
)
res.raise_for_status()
print(res.json())