Pular para o conteúdo

Desenvolvedores

Reduto Live para desenvolvedores

Leve os dados do seu canal para onde quiser. API aberta, avisos por webhook, conector para assistentes de IA e plugin para o Stream Deck.

Comece em 3 passos

  1. 1No painel, abra API e integrações e crie uma chave. Ela aparece uma vez só: guarde num lugar seguro.
  2. 2Escolha as permissões. Ler os dados públicos vem sempre; cada escrita (momento, enquete, agenda, recado fixado, post no feed) é uma permissão à parte.
  3. 3Chame a API mandando a chave no cabeçalho Authorization.
Endereço basehttps://reduto.live/api
curl https://reduto.live/api/v1/channel \
  -H "Authorization: Bearer rdt_SUA_CHAVE"

Arquivo OpenAPI (para importar no Postman, Insomnia e afins): https://reduto.live/api/v1/openapi.json

O que a API faz

API pública do Reduto Live: leia os dados públicos do seu canal e, com a permissão certa, faça ações na live, na agenda, no chat e no feed da comunidade. Cada espaço cria as próprias chaves no painel.

Experimente aqui

Cole uma chave para chamar as operações de leitura direto desta página. A chave fica só neste navegador (some quando você fecha a aba) e vai só para a API.

Escritas não têm botão aqui: use o seu programa, o Stream Deck ou o conector de IA.

  • GET/v1/channelLer os dados públicos do canal

    Ver o canal

    Nome, endereço e cor do canal, se está ao vivo agora, o título da live, quantas pessoas assistem e quantos seguidores tem.

    Cole uma chave acima para chamar.
  • GET/v1/livesLer os dados públicos do canal

    Listar lives

    As lives mais recentes, com começo, fim e o pico de público.

    Cole uma chave acima para chamar.
  • GET/v1/scheduleLer os dados públicos do canal

    Ver os horários

    Os próximos horários de live marcados pelo criador.

    Cole uma chave acima para chamar.
  • GET/v1/videosLer os dados públicos do canal

    Listar vídeos

    As gravações publicadas no canal, das mais novas para as mais antigas.

    Cole uma chave acima para chamar.
  • GET/v1/clipsLer os dados públicos do canal

    Listar cortes

    Os cortes publicados no canal, com o formato (horizontal ou vertical).

    Cole uma chave acima para chamar.
  • GET/v1/postsLer os dados públicos do canal

    Listar posts

    Os posts publicados no blog do canal (os só para assinantes aparecem sem o texto).

    Cole uma chave acima para chamar.
  • GET/v1/statsLer os dados públicos do canal

    Ver os números públicos

    Seguidores, membros da comunidade, lives e horas no ar nos últimos 30 dias e quantos vídeos, cortes e posts há.

    Cole uma chave acima para chamar.
  • POST/v1/momentsMarcar momento na live

    Marcar momento

    Marca o momento atual da live (vira sugestão de corte quando a gravação ficar pronta). Só funciona com a live no ar.

  • POST/v1/pollsAbrir enquete no chat

    Abrir enquete

    Abre uma enquete na sala principal do chat, com de 2 a 5 opções. O resultado aparece no chat e na tela da live.

  • POST/v1/scheduleCriar e apagar horários da agenda

    Marcar horário

    Põe um horário novo na agenda da live (título, começo com fuso e duração de 15 minutos a 24 horas). O começo precisa ser no futuro, até um ano à frente.

  • DELETE/v1/schedule/{id}Criar e apagar horários da agenda

    Apagar horário

    Tira um horário da agenda da live pelo id (o id vem em "Ver os horários").

  • POST/v1/chat/pinFixar recado no chat

    Fixar recado no chat

    Manda um recado do canal na sala principal do chat e deixa fixado no topo (até 200 letras). Troca o recado fixado antes.

  • DELETE/v1/chat/pinFixar recado no chat

    Tirar recado fixado

    Tira a mensagem fixada no topo da sala principal do chat.

  • POST/v1/feedPostar no feed da comunidade

    Postar no feed

    Publica um post no feed da comunidade em nome do canal: para todos, só membros ou só assinantes.

Limites por plano

Cada espaço tem um limite de chamadas por minuto e por dia, somando a API e o conector de IA. As escritas têm um limite a mais, igual em todos os planos: 10 por minuto e 300 por dia. Passou do limite, a resposta é 429 com o cabeçalho Retry-After.

Grátis30 por minuto2.000 por dia
Criador120 por minuto20.000 por dia
Pro300 por minuto100.000 por dia

Erros

Todo erro volta em JSON com o campo "error": 401 (chave), 403 (permissão), 400 (campos), 404 (não encontrado), 409 (live fora do ar ou chat sem sala) e 429 (limite).

Webhooks

Cadastre um endereço https no painel e escolha os eventos. Cada aviso chega por POST com o corpo em JSON e três cabeçalhos: X-Reduto-Event, X-Reduto-Delivery e X-Reduto-Signature.

Eventos

  • live.startedA live começou
  • live.endedA live terminou
  • tip.createdNovo apoio
  • subscription.createdNova assinatura
  • member.joinedNovo membro na comunidade

Exemplo de corpo

{
  "id": "6f0c7f1e-...",
  "type": "tip.created",
  "createdAt": "2026-11-13T22:15:03.000Z",
  "space": { "id": "...", "slug": "seu-canal" },
  "data": { "name": "Ana", "handle": "ana", "amountCents": 1000, "message": "Boa live!" }
}

Conferir a assinatura

A assinatura é "t=<segundos>,v1=<hmac>". Calcule o HMAC-SHA256 de "t.corpo" com o segredo do webhook e compare com v1. Recuse avisos com mais de 5 minutos.

import { createHmac, timingSafeEqual } from "node:crypto"

function signatureOk(secret, body, header) {
  const parts = Object.fromEntries(header.split(",").map((p) => p.split("=")))
  if (Math.abs(Date.now() / 1000 - Number(parts.t)) > 300) return false
  const expected = createHmac("sha256", secret).update(`${parts.t}.${body}`).digest("hex")
  return timingSafeEqual(Buffer.from(expected), Buffer.from(parts.v1 ?? ""))
}

Se o seu endereço não responder 2xx em 10 segundos, tentamos de novo mais 5 vezes, cada vez mais espaçadas. Depois de 20 entregas seguidas com falha, o webhook desliga sozinho.

Conector para assistentes de IA (MCP)

Ligue o seu canal ao Claude e a outros assistentes que falam MCP. O assistente passa a ver as mesmas informações da API e, se a permissão deixar, faz as ações por você (sempre perguntando antes).

Endereço do conectorhttps://reduto.live/api/mcp

No Claude na web e no aplicativo do celular

Abra Configurações > Conectores > Adicionar conector personalizado, cole o endereço do conector e toque em Conectar. O Reduto abre uma tela para você entrar, escolher o espaço e as permissões. Não precisa de chave.

Com chave (Claude Code e Claude para computador)

No Claude Code (terminal), rode:

claude mcp add --transport http reduto-live https://reduto.live/api/mcp \
  --header "Authorization: Bearer rdt_SUA_CHAVE"

No Claude para computador, abra Configurações > Desenvolvedor > Editar configuração e acrescente:

{
  "mcpServers": {
    "reduto-live": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://reduto.live/api/mcp",
        "--header",
        "Authorization: Bearer rdt_SUA_CHAVE"
      ]
    }
  }
}

Use uma chave só para o assistente. Se quiser que ele só leia, crie a chave sem as permissões de escrita. Para cortar o acesso de um aplicativo conectado, desconecte no painel.

Para quem faz um cliente: o conector segue o protocolo MCP 2026-07-28 (sem initialize; cada pedido traz a versão em _meta e os cabeçalhos MCP-Protocol-Version, Mcp-Method e Mcp-Name; comece por server/discover) e continua aceitando as versões 2025-11-25, 2025-06-18 e 2025-03-26 pelo initialize. No OAuth, o aplicativo entra pelo documento do cliente (client_id em https) ou pelo registro dinâmico; pelo documento, pode se identificar com assinatura (private_key_jwt, chaves públicas em jwks ou jwks_uri) em vez de segredo.

Plugin oficial do Stream Deck

Três botões para a sua mesa: marcar momento, abrir enquete e ver o público ao vivo. Funciona com a chave da API.

Baixe, abra o arquivo com o Stream Deck instalado e arraste os botões do grupo Reduto Live. Em cada botão, cole a chave da API.

Baixar o plugin