notify_patient to false if you want to suppress this notification.
Request
POSThttps://api.bydoctor.com.br/v1/appointments
Content-Type: application/json
string
required
The UUID of an existing patient in your clinic. You can find patient UUIDs via the Patients API.
string
required
The UUID of the professional who will conduct the appointment.
string
required
The appointment start time as an ISO 8601 UTC timestamp. Example:
2025-07-15T14:00:00Z.string
required
The appointment end time as an ISO 8601 UTC timestamp. Must be strictly after
starts_at.string
default:"presencial"
The appointment modality. Accepted values:
presencial (in-person) or teleconsulta (video call). When teleconsulta is set, a teleconsult_url is automatically generated and returned in the response.string
Free-text notes visible to clinic staff. Not shared with the patient.
boolean
default:true
When
true, ByDoctor sends a WhatsApp confirmation message to the patient’s registered phone number immediately after the appointment is created. This field is write-only and is not returned in responses.Response Fields
string
Unique identifier for the newly created appointment (UUID).
string
The ID of the clinic that owns this appointment.
string
The ID of the patient linked to this appointment.
string
The ID of the professional assigned to this appointment.
string
Appointment start time in ISO 8601 UTC format.
string
Appointment end time in ISO 8601 UTC format.
string
Appointment type:
presencial or teleconsulta.string
Initial status of the appointment. Always
scheduled on creation.string
Notes attached to the appointment.
null if not provided.string
Initial payment status. Always
pending on creation.string
Auto-generated video room URL. Present only when
type is teleconsulta. null for presencial appointments.string
Timestamp when the appointment was created (ISO 8601 UTC).
string
Timestamp of the last update. Equal to
created_at on a fresh record.If the requested time slot is already occupied by another appointment for the same professional, the API returns a 409 Conflict error. Fetch the professional’s schedule first to identify available windows before attempting to create.
Example Request
Example Response (201 Created)
Error Responses
400 Bad Request — One or more required fields are missing or malformed.ends_at is before or equal to starts_at).