Quizzes e voucher relâmpago
Cria, abre e fecha quizzes durante a live e revela o voucher relâmpago.
Criar quiz
Prepara um quiz para a sessão: pergunta, de 2 a 4 alternativas, qual é a correta e o prêmio. O quiz nasce em draft, invisível aos espectadores, até você abri-lo com open. A resposta correta nunca é enviada aos espectadores enquanto o quiz está aberto.
/api/v1/admin/live-sessions/{id}/quizzesAdminCria uma pergunta de múltipla escolha em rascunho
Rota ligada ao módulo live-commerce: com o módulo desligado a resposta é 403. Exige token de administrador.
Parâmetros de caminho
iduuidobrigatórioCorpo da requisição
questionstringobrigatóriooptionsarrayobrigatóriocorrect_indexintegerobrigatóriooptions, começando em 0.reward_typestringpadrão: pointspointsvoucherpoints.reward_pointsintegerreward_type é points).reward_voucherobjectreward_type é voucher: voucher_type, value e valid_days do voucher emitido para cada premiado.reward_first_kintegerExemplo de requisição (Criar quiz)
curl -X POST "$BASE_URL/api/v1/admin/live-sessions/7ec34d19-64f7-4d36-92eb-dbb217448af7/quizzes" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"question": "Qual cor da camiseta em destaque?",
"options": [
"Azul",
"Verde"
],
"correct_index": 0,
"reward_type": "points",
"reward_points": 10
}'Resposta (Criar quiz)
{
"id": "ecc3e7ba-d655-4955-abf8-39081e5a0ffd",
"session_id": "7ec34d19-64f7-4d36-92eb-dbb217448af7",
"question": "Qual cor da camiseta em destaque?",
"options": [
"Azul",
"Verde"
],
"reward_type": "points",
"reward_points": 10,
"reward_first_k": 0,
"status": "draft"
}Campos da resposta
iduuidopen e close).session_iduuidquestionstringoptionsarraycorrect_indexintegerreward_typestringpoints ou voucher.reward_pointsintegerreward_first_kintegerstatusstringdraft, open ou closed.opens_atstringcloses_atstringErros (Criar quiz)
| Status | Quando | Exemplo de corpo |
|---|---|---|
| 401 | Token ausente, inválido ou expirado. | {"error":"invalid or expired token"} |
| 403 | O token não é de um administrador. | {"error":"insufficient permissions"} |
| 403 | Módulo live-commerce desligado. | {"error":"module_disabled","module":"live-commerce"} |
| 404 | Gamificação indisponível. | {"error":"gamification not available"} |
| 400 | Corpo inválido. | {"error":"invalid request body","detail":"..."} |
| 500 | Pergunta vazia, menos de 2 ou mais de 4 alternativas, ou correct_index fora do intervalo. A plataforma responde 500 em vez de 400; leia o detail. | {"error":"gamification error","detail":"quiz needs a question and 2-4 options"} |
Abrir quiz
Abre um quiz em draft por uma duração: os espectadores veem a pergunta e as alternativas (sem a resposta certa) e cada um pode responder uma única vez. O quiz fecha sozinho para novas respostas ao fim do prazo, mas o prêmio só é pago quando você chama close.
/api/v1/admin/live-sessions/{id}/quizzes/{quizId}/openAdminLibera o quiz para os espectadores responderem
Rota ligada ao módulo live-commerce: com o módulo desligado a resposta é 403. Exige token de administrador.
Parâmetros de caminho
iduuidobrigatórioquizIduuidobrigatórioCorpo da requisição
duration_secondsintegerpadrão: 60Exemplo de requisição (Abrir quiz)
curl -X POST "$BASE_URL/api/v1/admin/live-sessions/7ec34d19-64f7-4d36-92eb-dbb217448af7/quizzes/ecc3e7ba-d655-4955-abf8-39081e5a0ffd/open" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"duration_seconds": 30
}'Resposta (Abrir quiz)
{
"message": "quiz opened"
}Erros (Abrir quiz)
| Status | Quando | Exemplo de corpo |
|---|---|---|
| 401 | Token ausente, inválido ou expirado. | {"error":"invalid or expired token"} |
| 403 | O token não é de um administrador. | {"error":"insufficient permissions"} |
| 403 | Módulo live-commerce desligado. | {"error":"module_disabled","module":"live-commerce"} |
| 500 | O quiz não existe nesta sessão ou não está em draft (por exemplo já foi aberto). A plataforma responde 500 em vez de 409. | {"error":"gamification error","detail":"quiz not found or not draft"} |
Fechar quiz e pagar prêmios
Fecha o quiz, revela a resposta certa aos espectadores e paga os prêmios: com points, os pontos vão para todos que acertaram; com voucher, um voucher vai para os reward_first_k primeiros que acertaram, na ordem das respostas. Não precisa de corpo.
/api/v1/admin/live-sessions/{id}/quizzes/{quizId}/closeAdminEncerra o quiz e paga os prêmios
Rota ligada ao módulo live-commerce: com o módulo desligado a resposta é 403. Exige token de administrador.
Parâmetros de caminho
iduuidobrigatórioquizIduuidobrigatórioExemplo de requisição (Fechar quiz)
curl -X POST "$BASE_URL/api/v1/admin/live-sessions/7ec34d19-64f7-4d36-92eb-dbb217448af7/quizzes/ecc3e7ba-d655-4955-abf8-39081e5a0ffd/close" \
-H "Authorization: Bearer $TOKEN"Resposta (Fechar quiz)
{
"message": "quiz closed"
}Erros (Fechar quiz)
| Status | Quando | Exemplo de corpo |
|---|---|---|
| 401 | Token ausente, inválido ou expirado. | {"error":"invalid or expired token"} |
| 403 | O token não é de um administrador. | {"error":"insufficient permissions"} |
| 403 | Módulo live-commerce desligado. | {"error":"module_disabled","module":"live-commerce"} |
| 500 | O quiz não existe nesta sessão ou já foi fechado. | {"error":"gamification error","detail":"quiz not found or already closed"} |
Revelar voucher relâmpago
Marca o voucher relâmpago como revelado e avisa os espectadores em tempo real. A partir daí, quem já assistiu flash_unlock_after_seconds pode resgatá-lo. Exige que flash_voucher_id tenha sido configurado. Não precisa de corpo.
/api/v1/admin/live-sessions/{id}/flash-voucher/revealAdminLibera o voucher relâmpago configurado para a sessão
Rota ligada ao módulo live-commerce: com o módulo desligado a resposta é 403. Exige token de administrador.
Parâmetros de caminho
iduuidobrigatórioExemplo de requisição (Revelar voucher)
curl -X POST "$BASE_URL/api/v1/admin/live-sessions/7ec34d19-64f7-4d36-92eb-dbb217448af7/flash-voucher/reveal" \
-H "Authorization: Bearer $TOKEN"Resposta (Revelar voucher)
{
"message": "flash voucher revealed"
}Erros (Revelar voucher)
| Status | Quando | Exemplo de corpo |
|---|---|---|
| 401 | Token ausente, inválido ou expirado. | {"error":"invalid or expired token"} |
| 403 | O token não é de um administrador. | {"error":"insufficient permissions"} |
| 403 | Módulo live-commerce desligado. | {"error":"module_disabled","module":"live-commerce"} |
| 500 | Não há voucher relâmpago configurado na sessão. A plataforma responde 500 em vez de 409. | {"error":"gamification error","detail":"no flash voucher configured"} |