API REST
Integre o PalcoTimer com seus sistemas usando nossa API REST.
Introdução
A API REST do PalcoTimer permite criar, ler, atualizar e deletar recursos programaticamente. A URL base da API é:
https://app.palcotimer.com/api/v1Todas as respostas são em JSON. Para ambientes de desenvolvimento, use
Autenticação
A maioria dos endpoints requer autenticação via Bearer Token. Inclua o token no header de cada requisição:
Authorization: Bearer seu_token_aquiObtenha seu token fazendo login na plataforma. O token é retornado no endpoint de login e armazenado automaticamente pelo frontend.
Alguns endpoints públicos (como GET de salas por short_code) não requerem autenticação.
Salas (Rooms)
Listar suas salas
GET /auth/rooms
# Resposta
[
{
"id": "uuid",
"short_code": "ABC123",
"name": "Minha Sala",
"created_at": "2024-01-01T00:00:00Z",
"updated_at": "2024-01-01T00:00:00Z"
}
]Criar sala
POST /rooms
Content-Type: application/json
{
"name": "Nome da Sala"
}
# Resposta
{
"id": "uuid",
"short_code": "ABC123"
}Obter sala por ID ou short_code
GET /rooms/{roomId}
# Resposta
{
"id": "uuid",
"short_code": "ABC123",
"name": "Minha Sala",
"settings": {...},
"created_at": "2024-01-01T00:00:00Z"
}Atualizar sala
PUT /rooms/{roomId}
Content-Type: application/json
{
"name": "Novo Nome",
"settings": {
"color_normal": "#22c55e",
"color_yellow": "#eab308",
"color_red": "#ef4444"
}
}Timers
Listar timers de uma sala
GET /rooms/{roomId}/timers
# Resposta
[
{
"id": "uuid",
"room_id": "uuid",
"position": 0,
"name": "Abertura",
"speaker": "João Silva",
"duration_ms": 300000,
"appearance": "COUNTDOWN",
"wrap_yellow_ms": 120000,
"wrap_red_ms": 30000
}
]Criar timer
POST /rooms/{roomId}/timers
Content-Type: application/json
{
"name": "Palestra 1",
"speaker": "Maria Santos",
"duration_ms": 600000,
"appearance": "COUNTDOWN",
"wrap_yellow_ms": 120000,
"wrap_red_ms": 30000
}Atualizar timer
PUT /rooms/{roomId}/timers/{timerId}
Content-Type: application/json
{
"name": "Novo Nome",
"duration_ms": 900000
}Deletar timer
DELETE /rooms/{roomId}/timers/{timerId}Mensagens
Listar mensagens
GET /rooms/{roomId}/messages
# Resposta
[
{
"id": "uuid",
"text": "Faltam 5 minutos",
"color": "yellow",
"bold": true,
"visible": false
}
]Criar mensagem
POST /rooms/{roomId}/messages
Content-Type: application/json
{
"text": "Finalize agora",
"color": "red",
"bold": true,
"uppercase": true
}Mostrar/Esconder mensagem
PUT /rooms/{roomId}/messages/{messageId}
Content-Type: application/json
{
"visible": true
}Controle de Playback
Para controlar a reprodução dos timers (play, pause, stop, etc.), use a conexão WebSocket. Veja a documentação de
Em breve
Estamos desenvolvendo endpoints HTTP para controle simplificado, ideais para integrações com Stream Deck e sistemas externos. Em breve estará disponível.
Códigos de Erro
| Código | Descrição |
|---|---|
| 400 | Requisição inválida |
| 401 | Não autenticado |
| 403 | Sem permissão |
| 404 | Recurso não encontrado |
| 409 | Conflito (ex: limite de salas atingido) |
| 500 | Erro interno do servidor |