GET Listar Agendamentos
Retorna a lista de agendamentos com filtros opcionais.
Autenticação necessária
Esta rota requer o header Authorization: Bearer {accessToken}
Endpoint
GET https://api-dev.imagemais.com.br/api/appointments
Parâmetros de Query
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
date | string | ✅ | Data dos agendamentos no formato YYYY-MM-DD |
patientName | string | ❌ | Filtrar pelo nome do paciente |
status | string | ❌ | Filtrar pelo status. Valores: Agendado, Confirmado, Check-in, Em atendimento, Cancelado, Finalizado, Faltou |
doctorId | number | ❌ | Filtrar pelo ID do médico |
Requisição
curl -X 'GET' \
'https://api-dev.imagemais.com.br/api/appointments?date=2026-05-11' \
-H 'accept: application/json' \
-H 'Authorization: Bearer {accessToken}'
Respostas
201 Sucesso
Retorna um array de agendamentos dentro da propriedade data.
{
"data": [
{
"id": 11,
"date": "2024-01-15T00:00:00.000Z",
"startTime": "09:00",
"endTime": "09:05",
"notes": "Observações sobre o agendamento",
"accountId": 1,
"createdAt": "2025-12-02T18:21:29.276Z",
"updatedAt": "2025-12-02T18:21:29.276Z",
"deletedAt": null,
"doctor": {
"id": 1,
"name": "Dr Victor",
"startTime": "08:00",
"endTime": "18:00",
"intervalMinutes": 5,
"workingDays": ["seg", "ter", "qua", "qui", "sex", "sáb"]
},
"patient": {
"id": 9253,
"name": "João Silva",
"dateBirth": "1990-01-01T00:00:00.000Z",
"contact": {
"phone": "(81) 99999-9999"
}
},
"status": {
"id": 1,
"name": "Agendado",
"color": "#ffc107"
},
"appointmentProcedures": {
"price": "0",
"discountsAppointmentProcedures": [],
"procedure": {
"id": 1,
"name": "string",
"price": "0"
}
}
}
]
}
Estrutura do objeto de retorno
Agendamento
| Campo | Tipo | Descrição |
|---|---|---|
id | number | Identificador único do agendamento |
date | string | Data do agendamento (ISO 8601) |
startTime | string | Horário de início no formato HH:mm |
endTime | string | Horário de término no formato HH:mm |
notes | string | Observações do agendamento |
accountId | number | ID da conta associada |
createdAt | string | Data de criação do registro |
updatedAt | string | Data da última atualização |
deletedAt | string | null | Data de exclusão (soft delete) |
doctor
| Campo | Tipo | Descrição |
|---|---|---|
id | number | ID do médico |
name | string | Nome do médico |
startTime | string | Início da jornada de trabalho |
endTime | string | Fim da jornada de trabalho |
intervalMinutes | number | Duração em minutos de cada slot |
workingDays | string[] | Dias de trabalho |
patient
| Campo | Tipo | Descrição |
|---|---|---|
id | number | ID do paciente |
name | string | Nome do paciente |
dateBirth | string | Data de nascimento (ISO 8601) |
contact.phone | string | Telefone de contato |
status
| Campo | Tipo | Descrição |
|---|---|---|
id | number | ID do status |
name | string | Nome do status |
color | string | Cor em hexadecimal para exibição |
appointmentProcedures
| Campo | Tipo | Descrição |
|---|---|---|
price | string | Preço final após descontos |
procedure.id | number | ID do procedimento |
procedure.name | string | Nome do procedimento |
procedure.price | string | Preço original do procedimento |
discountsAppointmentProcedures | array | Lista de descontos aplicados (veja abaixo) |
201 Sucesso — com descontos aplicados
Quando o agendamento possui descontos, o array discountsAppointmentProcedures é preenchido.
{
"appointmentProcedures": {
"price": "100",
"discountsAppointmentProcedures": [
{
"discountId": 3,
"value": "10",
"discount": {
"id": 3,
"name": "Desconto nos procedimentos",
"fixed": "10",
"percentage": null,
"expirationDate": null
}
}
],
"procedure": {
"id": 3699,
"name": "Ultrassom: Tireoide",
"price": "100"
}
}
}
discountsAppointmentProcedures
| Campo | Tipo | Descrição |
|---|---|---|
discountId | number | ID do desconto aplicado |
value | string | Valor do desconto aplicado |
discount.name | string | Nome do desconto |
discount.fixed | string | null | Valor fixo de desconto |
discount.percentage | string | null | Percentual de desconto |
discount.expirationDate | string | null | Data de expiração do desconto |
500 Erro interno
{
"statusCode": 500,
"message": "Internal server error"
}