Spectrium Hub API
API REST para integração de profissionais de saúde, clínicas e escolas com o ecossistema Spectrium Hub. Acesse dados de famílias conectadas, gerencie assinaturas e automatize fluxos de pagamento.
Autenticação JWT
Obtenha um token com email e senha. Todos os endpoints exigem Authorization: Bearer.
Conexões
Profissionais solicitam acesso às famílias. Dados só são acessíveis após conexão ativa e aceita.
Pagamentos
Gere links de checkout via Mercado Pago ou Asaas. Suporte a cartão, PIX e boleto.
Rate Limiting
60 requisições por minuto por IP. Respostas 429 indicam limite atingido — aguarde 60s.
Como autenticar
Todas as requisições (exceto /auth/token) exigem um JWT válido no header:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
Fluxo de autenticação
Obtenha o token com POST /v1/auth/token e inclua-o nas próximas chamadas. Tokens expiram em 1 hora — use /v1/auth/refresh para renovar sem pedir a senha novamente.
curl -X POST https://api.spectriumhub.com.br/v1/auth/token \
-H "Content-Type: application/json" \
-d '{"email": "voce@exemplo.com", "password": "sua_senha"}'
Exemplo completo: listar pacientes
Sequência para um profissional autenticado listar suas famílias conectadas:
import httpx
BASE = "https://api.spectriumhub.com.br/v1"
# 1. Autenticar
resp = httpx.post(f"{BASE}/auth/token", json={
"email": "terapeuta@clinica.com",
"password": "sua_senha"
})
token = resp.json()["access_token"]
headers = {"Authorization": f"Bearer {token}"}
# 2. Ver meu perfil
perfil = httpx.get(f"{BASE}/professionals/me", headers=headers).json()
print(f"Profissional: {perfil['full_name']}")
# 3. Listar famílias conectadas
pacientes = httpx.get(f"{BASE}/professionals/me/patients", headers=headers).json()
for p in pacientes:
print(f" Família: {p['family_id']}")
Autentica com email e senha. Retorna JWT para uso nos demais endpoints.
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"token_type": "bearer",
"expires_in": 3600,
"refresh_token": "v1.Mf3..."
}
Renova o JWT usando o refresh_token sem precisar informar a senha novamente.
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"token_type": "bearer",
"expires_in": 3600,
"refresh_token": "v1.new..."
}
Retorna o perfil completo do profissional autenticado.
{
"id": "uuid",
"user_id": "uuid",
"full_name": "Dra. Maria Silva",
"specialty": "Fonoaudiologia",
"crp_crfa_crm": "CRFa 1234/SP",
"bio": "Especialista em comunicação infantil...",
"city": "São Paulo",
"state": "SP",
"accepts_online": true,
"profile_photo_url": "https://...",
"org_id": null
}
Retorna todas as famílias com conexão ativa para o profissional autenticado.
[
{
"id": "uuid",
"family_id": "uuid",
"professional_id": "uuid",
"status": "active",
"created_at": "2026-01-15T10:00:00Z",
"families": {
"id": "uuid",
"name": "Família Santos"
}
}
]
Retorna conexões em qualquer status. Use o parâmetro status_filter para filtrar.
active | pending_family | pending_pro | rejected | revoked
Envia uma solicitação de conexão para uma família. O status inicial é pending_family — a família precisa aceitar.
{
"id": "uuid",
"professional_id": "uuid",
"family_id": "uuid",
"status": "pending_family",
"created_at": "2026-04-03T14:00:00Z",
"updated_at": null
}
Aceita, rejeita ou revoga uma conexão.
active | rejected | revoked
Requer conexão ativa com a família. Retorna membros com status active.
[
{
"id": "uuid",
"user_id": "uuid",
"family_id": "uuid",
"role": "owner",
"status": "active"
}
]
Requer conexão ativa. Retorna crianças cadastradas na família com seus perfis e condições.
[
{
"id": "uuid",
"family_id": "uuid",
"full_name": "Lucas Santos",
"birthdate": "2018-05-12",
"conditions": ["TEA", "TDAH"],
"notes": "Acompanhamento fonoaudiológico em andamento"
}
]
Requer conexão ativa. Retorna prescrições e registros médicos em ordem decrescente de data.
Requer conexão ativa. Retorna documentos armazenados no cofre da família.
Retorna a assinatura ativa do usuário autenticado (familiar ou profissional).
{
"id": "uuid",
"plan": "essencial",
"billing_period": "monthly",
"status": "active",
"payment_provider": "mercadopago",
"current_period_end": "2026-05-03T00:00:00Z",
"cancel_at_period_end": false
}
Gera a URL de pagamento. Redirecione o usuário para checkout_url para concluir.
essencial | familia | pro | premium
mercadopago | asaas
monthly (padrão) | quarterly | semiannual | annual
family (padrão) | professional | organization
{
"checkout_url": "https://www.mercadopago.com.br/subscriptions/checkout?preapproval_plan_id=..."
}