Axuz Developers

POST /rooms/{id}/token

Assina JWT Jitsi pro caller autenticado.

  • Access: Team member
  • Service: https://meet-api.axuz.net

Accepted authentication

  • 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).

Parameters

NameInTypeRequiredDescription
idpathstringyes

UUID da meet_room.

Request body

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

application/json

NameTypeRequiredDescription
(corpo)objectno
{}

Responses

200

Token assinado.

NameTypeRequiredDescription
room_slugstringyes
join_urlstring<uri>yes

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

jwtstringyes

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>yes

TTL padrão 1h.

guest_idstring<uuid>no

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

400

Input inválido.

NameTypeRequiredDescription
errorstringyes

401

Cookie ausente ou inválido.

NameTypeRequiredDescription
errorstringyes

403

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

NameTypeRequiredDescription
errorstringyes

404

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

NameTypeRequiredDescription
errorstringyes

429

Limite de requisições excedido.

NameTypeRequiredDescription
errorstringyes

500

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

NameTypeRequiredDescription
errorstringyes

Examples

"Try it" is turned off in this reference. Use the examples with your test credential.

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())