---
title: "List all practitioner rotas"
method: GET
path: "/shop/practitioner-rotas"
tags: ["PractitionerRotas"]
---

# List all practitioner rotas

`GET /shop/practitioner-rotas`

Returns a paginated list of every `PractitionerRota` the caller
is authorised to see, across all practitioners. Useful for
schedule management UIs that need to show a unified rota view.
Use the nested `/shop/practitioners/{practitionerId}/rotas`
endpoint when you already know the practitioner and want to
avoid the extra filtering.

## Query parameters

- `page` integer
- `per_page` integer

## Response `200`

A paginated list of `PractitionerRota` objects across all practitioners the caller can see.

- object
  - `data` PractitionerRota[], required
    - `id` string, object-id, required — The ID of the rota.
    - `practitioner_id` string, object-id, required — The ID of the practitioner this rota belongs to.
    - `start_date` string, date-time, nullable, required — The date from which this rota is active.
    - `end_date` string, date-time, nullable, required — The date on which this rota ends. Null indicates an open-ended rota.
    - `scheduling_week_interval` integer, required — The number of weeks in the rolling schedule cycle (e.g. 2 for a fortnightly rota).
    - `availability_rules` PractitionerRotaAvailabilityRule[], required — The availability rules that define when the practitioner is available within the rota cycle.
      - `week_num` integer, required — The week number within the rota cycle that this rule applies to (1-indexed).
      - `weekday` 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday' | 'sunday', required — The day of the week this rule applies to.
      - `time_from` string, required — The start time of the availability window in HH:MM format.
      - `time_to` string, required — The end time of the availability window in HH:MM format.
      - `offerings` OfferingIdentifier[] — The offerings the practitioner is assigned to during this window. An empty array means the practitioner is not linked to specific offerings for this window.
        - `offering_id` string, mongo-id, required — The ID of the offering.
        - `offering_name` string, required — The name of the offering.
        - `offering_type` 'appointment' | 'appointment_enquiry' | 'area_booking' | 'course' | 'hotel_room_reservation' | 'membership' | 'package' | 'product' | 'session' | 'table_reservation' | 'voucher', required — Discriminator describing what kind of sellable item an `Offering` represents. The value determines which downstream schema (`Appointment`, `Session`, `Package`, etc.) the offering's `offering_id` resolves against, and which checkout/booking flow applies.
  - `meta` PaginationMeta, required — Counts and positional information for the current page of a list response. Use `current_page` and `last_page` to drive pagination UI, `total` for result counts, and `per_page` to confirm the page size the server actually applied (which may differ from the requested value when capped).
    - `from` integer, required — The item number from which this results set starts from
    - `to` integer, required — The item number from which this results set ends at
    - `total` integer, required — The total number of results
    - `current_page` integer, required — The current page number
    - `last_page` integer, required — The page number of the last result set
    - `per_page` integer, required — The number of results per page
    - `path` string, required — The path of this api request
  - `links` PaginationLinks, required — Hypermedia navigation links for paging through a list response. Each property is a fully-qualified URL that preserves the original query string (filters, sort, page size) and only swaps the `page` parameter. `next` and `prev` are `null` at the ends of the result set; `first` and `last` are always present.
    - `first` string, required — The url of the first page for the paginated results set
    - `next` string, nullable, required — The url of the next page for the paginated results set
    - `prev` string, nullable, required — The url of the previous page for the paginated results set
    - `last` string, required — The url of the last page for the paginated results set

## Other responses

- `401` — The user is unauthenticated
- `403` — The authenticated user does not have permission.

---

[API](https://skmtc.dev/try/apis/trybe-api.md) · [All operations](https://skmtc.dev/try/apis/trybe-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/try/trybe-api/revisions/f37f92702da5/schema)
