API Reference
← Voltar

API Reference

Documentação completa da API REST do BBrain — para integrações com WhatsApp, Make, Zapier e automações personalizadas.

Autenticação

O BBrain usa autenticação via Bearer Token. Primeiro faça login para obter o token, depois envie-o em todas as requisições protegidas.

POST /api/auth/login Obter token

Corpo da requisição:

{
  "username": "seu_usuario",
  "password": "sua_senha"
}

Resposta de sucesso (200):

{
  "token": "a3f8b2c1d4e5...",
  "username": "seu_usuario"
}
🔑 Todos os endpoints protegidos exigem o header: Authorization: Bearer <token>. O token expira à meia-noite (UTC).

Endpoints

GET /api/ideas Listar ideias

Retorna todas as ideias do usuário, ordenadas por data de criação (mais recentes primeiro).

curl -X GET https://bbrainapp.you/api/ideas \
  -H "Authorization: Bearer SEU_TOKEN"
const res = await fetch('/api/ideas', {
  headers: { 'Authorization': `Bearer ${token}` }
});
const ideas = await res.json();
import requests

res = requests.get(
  'https://bbrainapp.you/api/ideas',
  headers={'Authorization': f'Bearer {token}'}
)
ideas = res.json()
POST /api/ideas Criar ideia

Corpo da requisição:

{
  "text": "Adicionar integração com WhatsApp",
  "source": "api"
}
curl -X POST https://bbrainapp.you/api/ideas \
  -H "Authorization: Bearer SEU_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"text":"Minha ideia","source":"api"}'
const res = await fetch('/api/ideas', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${token}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    text: 'Minha ideia',
    source: 'api'
  })
});
res = requests.post(
  'https://bbrainapp.you/api/ideas',
  headers={'Authorization': f'Bearer {token}'},
  json={'text': 'Minha ideia', 'source': 'api'}
)
GET /api/sessions Listar sessões

Retorna todas as sessões de trabalho registradas, ordenadas por data.

curl -X GET https://bbrainapp.you/api/sessions \
  -H "Authorization: Bearer SEU_TOKEN"
POST /api/sessions Criar sessão

Corpo da requisição:

{
  "location": "Casa",
  "initial_thoughts": "Hoje vou focar no onboarding"
}
curl -X POST https://bbrainapp.you/api/sessions \
  -H "Authorization: Bearer SEU_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"location":"Casa","initial_thoughts":"Foco no produto"}'
PATCH /api/ideas/:id Atualizar status / fase

Atualiza campos de uma ideia. Campos permitidos: status, tags, evaluation, roadmap_phase, connections.

curl -X PATCH https://bbrainapp.you/api/ideas/20260320-ABC12 \
  -H "Authorization: Bearer SEU_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"status":"no_roadmap","roadmap_phase":"backlog"}'
DELETE /api/ideas/:id Remover ideia

Remove a ideia permanentemente do banco de dados.

curl -X DELETE https://bbrainapp.you/api/ideas/20260320-ABC12 \
  -H "Authorization: Bearer SEU_TOKEN"
GET /api/settings Configurações do usuário

Retorna as configurações salvas: plano, frequência de lembretes, horário e canais.

curl https://bbrainapp.you/api/settings \
  -H "Authorization: Bearer SEU_TOKEN"

# Resposta
{
  "settings": {
    "plan": "free",
    "reminder_frequency": "monthly",
    "reminder_time": "08:00",
    "reminder_channels": "email"
  }
}
POST /api/settings Salvar configurações

Salva configurações de lembretes e plano. Persiste na aba Config do Google Sheets.

curl -X POST https://bbrainapp.you/api/settings \
  -H "Authorization: Bearer SEU_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"reminder_frequency":"every2days","reminder_time":"09:00","reminder_channels":"email,whatsapp"}'
GET /api/report/monthly Relatório mensal

Retorna dados agregados do mês especificado. Parâmetro: ?month=YYYY-MM (padrão: mês atual).

curl "https://bbrainapp.you/api/report/monthly?month=2026-03" \
  -H "Authorization: Bearer SEU_TOKEN"

# Resposta
{
  "month": "2026-03",
  "ideas_count": 24,
  "sessions_count": 8,
  "roadmap_count": 5,
  "total_duration": 640,
  "best_day": { "date": "2026-03-14", "count": 7 },
  "ideas": [...],
  "sessions": [...]
}
POST /api/auth/change-password Trocar senha

Troca a senha do usuário autenticado. Exigido quando force_password_change: true no login. Salva o novo hash na aba Config do Sheets.

curl -X POST https://bbrainapp.you/api/auth/change-password \
  -H "Authorization: Bearer SEU_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"password":"nova_senha_segura"}'
GET /api/version Healthcheck

Sem autenticação necessária. Use para verificar se o servidor está rodando.

curl https://bbrainapp.you/api/version

# Resposta
{ "version": "1.0.0", "updated_at": "2026-03-20" }

Rate limits

Limite atual Sem limite definido (uso pessoal)
Limite futuro 60 requisições/minuto para planos pagos
Header de resposta X-RateLimit-Remaining (implementado futuramente)

Integrações sugeridas

A API foi projetada para uso pessoal e automações. Casos de uso comuns:

# WhatsApp Bot (via Make/Zapier)
# Mensagem no WhatsApp → POST /api/ideas

# Atalho iOS Shortcuts
# Siri + atalho → captura por voz → POST /api/ideas

# Make / Zapier
# Formulário → nova ideia no BBrain → notificação

# Script diário
# GET /api/sessions → relatório semanal em PDF