Documentação da API

API REST para integrar o Acelerator Clinic com seus sistemas, n8n, WhatsApp e automações.

Autenticação

Todas as requisições devem incluir o header Authorization com sua chave de API.

GET /api/v1/appointments
Authorization: Bearer ak_live_xxxxxxxxxxxxxxxxxxxx
Content-Type: application/json

Obtenha sua chave em Configurações → Integrações → Chave de API.

Agendamentos
GET
/api/v1/appointments

Lista todos os agendamentos. Suporta filtros por data, profissional e status.

// Query Parameters
?date=2024-03-25
&professional_id=prof-1
&status=scheduled

// Response 200
{
  "data": [
    {
      "id": "apt-1",
      "patient_id": "pat-1",
      "professional_id": "prof-1",
      "date": "2024-03-25",
      "start_time": "08:00",
      "end_time": "08:30",
      "status": "confirmed",
      "type": "existing_patient"
    }
  ],
  "total": 1
}
POST
/api/v1/appointments

Cria um novo agendamento.

// Request Body
{
  "patient_id": "pat-1",
  "professional_id": "prof-1",
  "date": "2024-03-26",
  "start_time": "09:00",
  "end_time": "09:30",
  "type": "new_patient",
  "notes": "Primeira consulta"
}

// Response 201
{
  "id": "apt-new",
  "status": "scheduled",
  ...
}
PATCH
/api/v1/appointments/:id/status

Atualiza o status de um agendamento.

// Request Body
{
  "status": "confirmed" | "cancelled" | "completed" | "no_show"
}

// Response 200
{ "id": "apt-1", "status": "confirmed" }
Profissionais
GET
/api/v1/professionals

Lista profissionais ativos com horários de trabalho.

// Response 200
{
  "data": [
    {
      "id": "prof-1",
      "name": "Dra. Maria Silva",
      "specialty": "Cardiologia",
      "crm": "CRM/SP 123456",
      "working_hours": { "start": "08:00", "end": "17:00" },
      "working_days": [1, 2, 3, 4, 5],
      "consultation_duration": 30,
      "active": true
    }
  ]
}
GET
/api/v1/professionals/:id/availability

Retorna os slots disponíveis para agendamento de um profissional em uma data.

// Query: ?date=2024-03-26
// Response 200
{
  "slots": ["08:00", "08:35", "09:10", "09:45", "10:20", ...]
}
Pacientes
GET
/api/v1/patients

Lista pacientes. Suporta busca por nome, CPF ou WhatsApp.

// Query: ?search=carlos
// Response 200
{
  "data": [
    {
      "id": "pat-1",
      "name": "Carlos Oliveira",
      "whatsapp": "11988880001",
      "cpf": "123.456.789-00"
    }
  ]
}
POST
/api/v1/patients

Cadastra um novo paciente.

// Request Body
{
  "name": "Novo Paciente",
  "whatsapp": "11999990000",
  "cpf": "000.111.222-33",
  "birth_date": "1990-01-15",
  "email": "paciente@email.com"
}
Webhooks

Configure webhooks em Configurações → Integrações para receber notificações em tempo real.

Eventos disponíveis

appointment.created

Novo agendamento criado

appointment.confirmed

Agendamento confirmado

appointment.cancelled

Agendamento cancelado

appointment.completed

Atendimento concluído

patient.created

Novo paciente cadastrado

patient.updated

Dados do paciente atualizados

Payload de exemplo

// POST para sua URL configurada
{
  "event": "appointment.created",
  "timestamp": "2024-03-25T14:30:00Z",
  "data": {
    "id": "apt-new",
    "patient": {
      "id": "pat-1",
      "name": "Carlos Oliveira",
      "whatsapp": "11988880001"
    },
    "professional": {
      "id": "prof-1",
      "name": "Dra. Maria Silva"
    },
    "date": "2024-03-26",
    "start_time": "09:00",
    "status": "scheduled"
  }
}
Limites e Informações

Rate Limit

100 requisições por minuto por chave de API.

Formato

Todas as respostas são em JSON com UTF-8.

Erros

Códigos HTTP padrão: 400, 401, 404, 422, 429, 500.

Suporte

suporte@acelerator.com.br