Skip to content

Create Provider Block

Blocks out time for a provider — leave, admin time, or any other reason they are unavailable.

Endpoint

POST /v2/providers/{provider_id}/blocks

Path Parameters

Parameter Type Required Description
provider_id string Yes The treating provider.

Request Body

Parameter Type Required Description
clinic_id string Yes The clinic this record belongs to.
reason string No Free text, not an enum — the vocabulary is open-ended and often clinic-specific.
starts_at string (date-time) Yes
ends_at string (date-time) Yes
recurrence object No Recurrence rule. null for a one-off. See Recurrence.

Recurrence

Parameter Type Required Description
frequency string Yes How often the pattern repeats. One of DAILY, WEEKLY, MONTHLY.
interval integer Yes Repeat every N periods of frequency.
days_of_week array of string Yes Any of MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY.

Request

curl --location '{base_url}/v2/providers/2094/blocks' \
  --header 'Authorization: Bearer JWT_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{
  "clinic_id": "5831",
  "reason": "Annual leave",
  "starts_at": "2026-09-14T16:00:00Z",
  "ends_at": "2026-09-14T17:00:00Z",
  "recurrence": {
    "frequency": "WEEKLY",
    "interval": 1,
    "days_of_week": [
      "MONDAY",
      "TUESDAY"
    ]
  }
}'

Response

Success Response

Code: 201 Created

{
  "id": "6642",
  "provider_id": "2094",
  "clinic_id": "5831",
  "reason": "Annual leave",
  "starts_at": "2026-09-14T16:00:00Z",
  "ends_at": "2026-09-14T17:00:00Z",
  "recurrence": {
    "frequency": "WEEKLY",
    "interval": 1,
    "days_of_week": [
      "MONDAY",
      "TUESDAY"
    ]
  }
}

The Location header carries the URL of the created resource.

Response Fields

Field Type Description
id string The schedule or block id.
provider_id string The treating provider.
clinic_id string The clinic this record belongs to.
reason string or null Free text, not an enum — the vocabulary is open-ended and often clinic-specific.
starts_at string (date-time) or null
ends_at string (date-time) or null
recurrence object or null Recurrence rule. null for a one-off. See Recurrence.

Recurrence

Field Type Description
frequency string How often the pattern repeats. One of DAILY, WEEKLY, MONTHLY.
interval integer Repeat every N periods of frequency.
days_of_week array of string Any of MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY.

Error Response

Code: 400 Bad Request

{
  "code": "bad_request",
  "message": "Validation failed",
  "errors": [
    {
      "field": "patient_id",
      "message": "must be a string"
    }
  ]
}

Every error has the same shape — a machine-readable code, a message, and an errors[] array that's empty when there's nothing field-specific to report. The HTTP status is authoritative.

Status code Meaning
400 Bad Request bad_request The request body or parameters failed validation. errors[] names the offending fields.
401 Unauthorized unauthorized The access token is missing, malformed or expired.
403 Forbidden forbidden The request references a resource outside the token's organisation or clinic scope.
404 Not Found not_found No such resource, or it's outside your scope.
429 Too Many Requests rate_limited Rate limit exceeded. Back off and retry.
500 Internal Server Error internal_error Unexpected server error.
502 Bad Gateway upstream_error Upstream service failed or timed out.