Pardon our mess These API docs are a work in progress. Endpoints, examples, and behavior may change as we continue to develop the Partner API v2.

Partner API

Create appointment or block

POST /api/v2/appointments - Creates an appointment (requires contact_uuid) or a blocked time (appointment_type=block). Omit agent_uuid (or pass all) on blocks for an agency-wide busy period. Times are wall-clock in timezone.

POST/api/v2/appointments

Creates an appointment (requires contact_uuid) or a blocked time (appointment_type=block). Omit agent_uuid (or pass all) on blocks for an agency-wide busy period. Times are wall-clock in timezone.

Required scope: appointments (or *).

JSON body

NameRequiredDescription
start_timeYesStart (YYYY-MM-DD HH:MM:SS wall clock, or ISO)
end_timeYesEnd (must be after start_time)
timezoneNoIANA timezone (default America/New_York)
appointment_typeNo`appointment` (default) or `block`
titleNoTitle (defaults to Appointment / Blocked)
notesNoOptional notes
agent_uuidNoAssigned agent; omit/`all`/`*` for agency-wide blocks
contact_uuidNoRequired for appointments; ignored for blocks
curl -s -X POST -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "appointment_type": "block",
  "title": "Team offsite",
  "start_time": "2026-07-24 09:00:00",
  "end_time": "2026-07-24 17:00:00",
  "timezone": "America/New_York",
  "agent_uuid": "all"
}' \
  "https://benefitpath.com/api/v2/appointments"
{
  "success": true,
  "appointment": {
    "appointment_uuid": "c0a80101-0000-4000-8000-000000000002",
    "agent_uuid": null,
    "contact_uuid": null,
    "title": "Team offsite",
    "start_time": "2026-07-24 09:00:00",
    "end_time": "2026-07-24 17:00:00",
    "timezone": "America/New_York",
    "appointment_type": "block",
    "status": "confirmed"
  }
}

See Errors for the standard error envelope and rate limits.