API ReferenceapibookingPOST /v1/coaches/{coachId}/bookings

POST /v1/coaches/\{coachId\}/bookings

Service: booking · operationId: (none)

Required scopes

(no scope declared — review service config)

Path parameters

  • coachId (string) required

Request body

{
  "type": "object",
  "properties": {
    "slot_at": {
      "type": "string",
      "format": "date-time"
    },
    "notes": {
      "type": "string"
    }
  },
  "required": [
    "slot_at"
  ]
}

Responses

201 Office-hour booking created

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "office_hour_id": {
      "type": "string"
    },
    "patient_id": {
      "type": "string"
    },
    "slot_at": {
      "type": "string",
      "format": "date-time"
    },
    "duration_minutes": {
      "type": "number"
    },
    "status": {
      "type": "string"
    },
    "notes": {
      "type": [
        "string",
        "null"
      ]
    },
    "created_at": {
      "type": "string"
    }
  },
  "required": [
    "id",
    "office_hour_id",
    "patient_id",
    "slot_at",
    "duration_minutes",
    "status",
    "notes",
    "created_at"
  ]
}

403 Coach is outside the current brand

{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    },
    "message": {
      "type": "string"
    }
  },
  "required": [
    "error",
    "message"
  ]
}

404 Patient or office hour not found

{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    },
    "message": {
      "type": "string"
    }
  },
  "required": [
    "error",
    "message"
  ]
}

409 Office-hour slot unavailable

{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    },
    "message": {
      "type": "string"
    }
  },
  "required": [
    "error",
    "message"
  ]
}

Example

curl -X POST https://booking.platform.loop.health/v1/coaches/{coachId}/bookings \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ ... }'