Desenvolvedores

A mesma API que move o dashboard.

Tudo o que aparece no painel vem destes endpoints — não há camada especial. Autenticação JWT, respostas JSON com paginação, filtros por subsistema, fonte e período. Rode a sua base inteira de prospects pelo simulador, por código.

Fundamentos

Três regras, sem letra miúda

AUTENTICAÇÃO

JWT via login

Faça POST /api/v1/auth/login com e-mail e senha e receba um token JWT, válido por 24 horas (configurável). Envie-o em Authorization: Bearer em todas as chamadas. Só os endpoints de health dispensam token.

FORMATO

JSON paginado

Endpoints de listagem aceitam page e per_page (máximo 100 registros por página) e filtros por subsistema, fonte, concessionária e janela de datas conforme o recurso.

LIMITE

120 req/min por IP

Acima de 120 requisições por minuto por endereço IP a API responde HTTP 429. Precisa de mais? Os planos Pro e Enterprise preveem volume maior, combinado em contrato.

Começando

Login, token, primeira consulta

O fluxo completo em três comandos — exatamente como está na documentação do repositório.

terminal — fluxo de autenticação
# 1. Login: troque e-mail e senha por um token JWT
$ TOKEN=$(curl -s -X POST https://api.centelha.tech/api/v1/auth/login \
    -H 'Content-Type: application/json' \
    -d '{"email":"voce@empresa.com","password":"SUA_SENHA"}' \
    | jq -r '.token')

# 2. Requisição autenticada: estatísticas de PLD do Sudeste/Centro-Oeste
$ curl -s "https://api.centelha.tech/api/v1/prices/pld/summary?subsystem=SE" \
    -H "Authorization: Bearer $TOKEN"

# 3. Quem sou eu? (valida o token)
$ curl -s https://api.centelha.tech/api/v1/auth/me \
    -H "Authorization: Bearer $TOKEN"
O token expira em 24 h por padrão; repita o login para renovar. Credenciais são entregues no onboarding do piloto ou do contrato.
Referência

Endpoints disponíveis

Base: https://api.centelha.tech. Salvo indicação, todos exigem o header Authorization: Bearer.

Listagens aceitam page / per_page (máx. 100). Parâmetros principais indicados na descrição.
Método Endpoint Descrição
POST/api/v1/auth/loginLogin (e-mail + senha), retorna JWT — sem auth
GET/api/v1/auth/meUsuário autenticado atual
GET/api/v1/healthHealth check com ping ao banco — sem auth
GET/api/v1/prices/pldPLD por subsistema (subsystem, date_from, date_to)
GET/api/v1/prices/pld/dailyAgregados diários de PLD
GET/api/v1/prices/pld/weeklyAgregados semanais de PLD
GET/api/v1/prices/pld/summaryEstatísticas de PLD: média, percentis, volatilidade
GET/api/v1/generationGeração do ONS por fonte e subsistema
GET/api/v1/generation/dailyAgregados diários de geração
GET/api/v1/reservoirsCadastro de reservatórios
GET/api/v1/reservoirs/levelsNíveis (reservoir_id, subsystem, janela de datas)
GET/api/v1/concessionsConcessões de distribuição
GET/api/v1/concessions/:idDetalhe de uma concessão
GET/api/v1/concessions/:id/healthScore de saúde da concessão (DEC/FEC, pressão de GD)
GET/api/v1/tariffs/:concession_idTarifas (consumer_class, subgroup)
GET/api/v1/tariffs/compareComparação tarifária (concession_ids=1,2,3, consumer_class)
GET/api/v1/dg/municipalitiesInteligência de GD por município
GET/api/v1/dg/municipalities/:idInteligência de GD de um município
GET/api/v1/dg/opportunitiesMaiores oportunidades de mercado de GD
GET/api/v1/dg/paybackPayback solar (municipality_id, system_size_kwp, opcionais consumer_class, cost_per_wp)
GET/api/v1/migration/calculateMigração ACL (demand_kw, consumption_kwh, concession_id, opcionais voltage_level, migration_fee_brl, management_monthly_brl)
GET/api/v1/plantsUsinas SIGA (fuel_type, status, municipality_id)
Caso de uso

Simulação em escala, não conta a conta

O mesmo simulador da tela do dashboard responde por API. Uma comercializadora roda a carteira inteira de prospects pelo /api/v1/migration/calculate e ranqueia por economia anual; um integrador chama o /api/v1/dg/payback com o município e a potência de cada proposta — com a tarifa local homologada, não com média nacional.

A resposta ao lado é ilustrativa no formato real do endpoint. Os valores dependem do município, da tarifa vigente e das premissas informadas.

payback por API — resposta ilustrativa
$ curl -s -H "Authorization: Bearer $TOKEN" \
  "https://api.centelha.tech/api/v1/dg/payback?municipality_id=3550308&system_size_kwp=5"

{
  "system_cost_brl": 14000.0,
  "annual_generation_kwh": 7000.0,
  "simple_payback_years": 4.9,
  "irr": 0.19,
  "tusd_fio_b_annual_cost": 735.0,
  "fio_b_rs_per_kwh": 0.25,
  "self_consumption_share": 0.3,
  "availability_cost_annual_brl": 840.0,
  "total_25yr_savings": 61584.0
}
Mesmos campos e mesma matemática do exemplo aberto na página de simuladores.
Transparência: a API entrega JSON; não há exportação em PDF/CSV nem webhooks de alerta — está no roadmap declarado. O acesso é provisionado pela equipe (sem cadastro self-service), porque billing e multi-tenancy ainda não foram construídos.

Quer um token para testar contra a fonte oficial?

No piloto de 30 dias você recebe credenciais de API e dashboard e pode auditar cada série e cada cálculo.