Documentação da API

Bem-vindo à documentação oficial da API da Pesquisa Eleitoral 2026. Esta API RESTful fornece acesso completo aos dados de pesquisas, entrevistas e relatórios.

📋 Guia Rápido

  • Base URL: https://api.pesquisa.devloopz.com.br
  • Versão: 1.0.0
  • Autenticação: JWT Bearer Token
  • Content-Type: application/json
  • Encoding: UTF-8
Base URL: https://api.pesquisa.devloopz.com.br

Características

  • ✅ Autenticação com JWT
  • ✅ CORS habilitado
  • ✅ Rate limiting (100 req/min)
  • ✅ HTTPS/SSL obrigatório
  • ✅ Versionamento de API

Autenticação

Todos os endpoints (exceto health) requerem autenticação via JWT Bearer Token.

Login

POST /auth/login

Parâmetros

email string
Email do usuário (obrigatório)
senha string
Senha do usuário (obrigatório)

Exemplo de Requisição

curl -X POST https://api.pesquisa.devloopz.com.br/auth/login \
  -H "Content-Type: application/json" \
  -d '{
    "email": "admin@pesquisa2026.com.br",
    "senha": "admin123"
  }'

Resposta de Sucesso (200)

200 OK
{
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  "usuario": {
    "id": 1,
    "nome": "Administrador",
    "email": "admin@pesquisa2026.com.br",
    "role": "admin"
  }
}

Usando o Token

Adicione o token retornado em todas as requisições subsequentes:

curl -H "Authorization: Bearer seu_token_aqui" \
  https://api.pesquisa.devloopz.com.br/pesquisas
💡 Dica: Tokens JWT expiram em 24 horas. Guarde o token em localStorage (frontend) ou em sessão segura (backend).

Endpoints Principais

Health Check

GET /health Público

Verifica se a API está disponível (não requer autenticação)

curl https://api.pesquisa.devloopz.com.br/health
200 OK
{
  "status": "online",
  "versao": "1.0.0",
  "timestamp": "2026-06-05T14:30:00.000Z"
}

Pesquisas

GET /pesquisas JWT Requerido

Listar todas as pesquisas

curl -H "Authorization: Bearer token" \
  https://api.pesquisa.devloopz.com.br/pesquisas
POST /pesquisas JWT Requerido

Criar nova pesquisa

Parâmetros

titulo string
Título da pesquisa (obrigatório)
objetivo string
Objetivo da pesquisa (opcional)
tipo enum
Tipo: "interna" ou "publica" (padrão: "interna")

Entrevistas

POST /coleta/entrevistas JWT Requerido

Criar nova entrevista

Exemplo

{
  "uuid": "550e8400-e29b-41d4-a716-446655440000",
  "pesquisaId": 1,
  "municipioId": 1,
  "bairroId": 5,
  "latitude": -15.7932,
  "longitude": -48.1471,
  "dataHoraInicio": "2026-06-05T10:30:00.000Z"
}

Dashboard

GET /dashboard/stats JWT Requerido

Obter estatísticas do dashboard

200 OK
{
  "totalPesquisas": 5,
  "totalEntrevistas": 1234,
  "entrevistasHoje": 45,
  "taxaSincronizacao": 98.5,
  "usuariosAtivos": 12
}

Códigos de Erro

Código Significado
200 OK - Requisição bem-sucedida
201 Created - Recurso criado
400 Bad Request - Dados inválidos
401 Unauthorized - Token inválido/expirado
403 Forbidden - Sem permissão
404 Not Found - Recurso não encontrado
500 Internal Server Error - Erro do servidor

Rate Limiting

A API implementa rate limiting para evitar abuso:

  • 100 requisições por minuto (por IP)
  • 10 requisições por segundo para endpoints críticos

Quando você exceder o limite, receberá:

HTTP/1.1 429 Too Many Requests
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1717593120

{
  "error": "Limite de requisições excedido. Tente novamente em 60 segundos."
}

Suporte

Para dúvidas ou problemas, entre em contato:
Email: support@pesquisa.devloopz.com.br

Volte para o Portal Principal ou acesse os Relatórios