# List the shifts in a series

Returns the shifts that belong to one shift link, a page at a time. This is
how you see what a repeating shift actually turned into: every occurrence the series
generated, each a full shift with its own times, demand figures, location and statuses.
Each row carries a `relations.pivot` object holding the two ids that join the shift to the
series. Rows are the same shape the event's shift listing returns, so anything you can do
with a shift from there you can do with one from here.
The rows describe the shifts, not the people on them - demand appears as counts, and who
holds a place is read through the shift user endpoints.

Endpoint: GET /api/v2/event/{event_id}/shift/link/{link_id}/shift
Version: 2.0.0
Security: default

## Path parameters:

  - `event_id` (integer, required)
    The ID of the event.

  - `link_id` (integer, required)
    The ID of the shift link.

## Query parameters:

  - `per_page` (integer)
    The number of results to return per page. The higher the number the longer the request may take.
It is highly recommended to use this to avoid timeouts as your data grows.
Used in conjunction with the `page` parameter to paginate results.

  - `page` (integer)
    The page of results to return. Used in conjunction with the `per_page` parameter to paginate
results. If not specified, defaults to 1.
The response's next_page_url will be null if there are no
more pages.

  - `filter` (array)
    A filter to apply to the results. Declared as an array of objects, where each object
contains an attr (attribute code), operator and value key. Examples:

?filter[0]['attr']=name&filter[0][operator]=like&filter[0][value]=luke 

?filter[0]['attr']=id&filter[0][operator]=>&filter[0][value]=265 

See the filters documentation for more details on how to use this.

  - `sort_by` (string)
    The field to sort the results by. No ordering is applied unless you specify one, so
row order is not guaranteed. Always send it when paging through a list, otherwise
records can repeat or be missed between pages.
Example: id

  - `sort_order` (string)
    The direction to sort the results by. Can be 'asc' or 'desc', default is 'asc'.

  - `_locale` (string)
    The locale to use for the response. This primarily affects the results of the `nice` field, which
contain human-readable labels and terms, as well as locale-specific date formats.,

  - `extras` (array)
    A list of extras to include in the response. These are objects or arrays that are not part of
the model's primary attributes, such as stats and counts.
For fast responses, avoid requesting them if you don't need them.

  - `with` (array)
    A list of relations to include in the response. May be single records or collections.
It is often more efficient to retrieve this way, to avoid follow-up API calls.

## Header parameters:

  - `Rosterfy-Platform` (string)

## Response 200 fields (application/json):

  - `current_page` (integer)

  - `data` (array)

  - `data.object` (object)

  - `data.object.id` (integer)

  - `data.object.event_id` (integer)

  - `data.object.event_shift_type_id` (string | null)

  - `data.object.event_shift_template_id` (string | null)

  - `data.object.journey_id` (string | null)

  - `data.object.min_demand` (integer)

  - `data.object.max_demand` (integer)

  - `data.object.leader_demand` (integer)

  - `data.object.start_timestamp` (string)

  - `data.object.end_timestamp` (string)

  - `data.object.timezone` (string)

  - `data.object.no_shift_time` (integer)

  - `data.object.apps_open_timestamp` (string | null)

  - `data.object.apps_close_timestamp` (string | null)

  - `data.object.headcount_location_venue_id` (string | null)

  - `data.object.shift_confirmed_status_default` (integer)

  - `data.object.shift_rejected_status_default` (integer)

  - `data.object.journey_complete_status` (string | null)

  - `data.object.shift_can_withdraw_default` (integer)

  - `data.object.shift_can_confirm` (integer)

  - `data.object.shift_can_confirm_limit` (integer)

  - `data.object.shift_can_withdraw_limit` (integer)

  - `data.object.shift_checked_in_status_default` (integer)

  - `data.object.shift_checked_out_status_default` (integer)

  - `data.object.certificate_id` (string | null)

  - `data.object.shift_application_form_id` (string | null)

  - `data.object.allow_application_form_resubmit` (integer)

  - `data.object.shift_checkin_form_id` (string | null)

  - `data.object.shift_attended_form_id` (string | null)

  - `data.object.shift_checkout_form_id` (string | null)

  - `data.object.shift_precheckin_form_id` (string | null)

  - `data.object.shift_withdraw_form_id` (string | null)

  - `data.object.training_ids` (string | null)

  - `data.object.visibility_show_groups` (array)

  - `data.object.visibility_hide_groups` (array)

  - `data.object.visibility_show_roleoffer` (array)

  - `data.object.role_offer_id` (string | null)

  - `data.object.role_offer_address` (integer)

  - `data.object.checkin_visible_attributes` (array)

  - `data.object.shift_enable_waitlist_default` (integer)

  - `data.object.max_waitlist` (integer)

  - `data.object.group_booking_ttl` (string | null)

  - `data.object.max_group_demand` (string | null)

  - `data.object.max_group_size` (string | null)

  - `data.object.reserved_expiry` (string | null)

  - `data.object.minimum_dob` (string | null)

  - `data.object.minimum_age` (string | null)

  - `data.object.maximum_dob` (string | null)

  - `data.object.maximum_age` (string | null)

  - `data.object.self_checkin` (integer)

  - `data.object.self_checkin_open` (integer)

  - `data.object.self_checkin_close` (integer)

  - `data.object.self_checkout_close` (integer)

  - `data.object.checkin_close` (integer)

  - `data.object.shift_precheckin_open` (integer)

  - `data.object.break` (integer)

  - `data.object.post_feedback_form` (string | null)

  - `data.object.shift_leader_feedback_form_id` (string | null)

  - `data.object.is_virtual` (integer)

  - `data.object.geofence_checkin_limit` (string | null)

  - `data.object.tax` (string | null)

  - `data.object.price_excluding_tax` (integer)

  - `data.object.tax_percentage` (string | null)

  - `data.object.publish` (integer)

  - `data.object.public` (integer)

  - `data.object.sort_order` (integer)

  - `data.object.is_cancelled` (integer)

  - `data.object.deleted_at` (string | null)

  - `data.object.is_erased` (integer)

  - `data.object.is_draft` (boolean)

  - `data.object.created_at` (string)

  - `data.object.updated_at` (string)

  - `data.object.deleted_by` (string | null)

  - `data.object.address` (object)

  - `data.object.address.iso` (string)

  - `data.object.address.region_code` (string)

  - `data.object.address.coordinates` (object)

  - `data.object.address.coordinates.latitude` (string)

  - `data.object.address.coordinates.longitude` (string)

  - `data.object.address.street_address_1` (string)

  - `data.object.address.street_address_2` (string | null)

  - `data.object.address.street_address_3` (string | null)

  - `data.object.address.city` (string)

  - `data.object.address.postcode` (string)

  - `data.object.address.region` (string)

  - `data.object.address.country` (string)

  - `data.object.address.latitude` (string)

  - `data.object.address.longitude` (string)

  - `data.nice` (object)

  - `data.nice.rrn` (string)

  - `data.nice.address` (string)

  - `data.nice.address_oneline` (string)

  - `data.nice.address.country` (string)

  - `data.nice.address.country:raw` (string)

  - `data.nice.address.city` (string)

  - `data.nice.address.region` (string)

  - `data.nice.address.region:raw` (string)

  - `data.nice.address.postcode` (string)

  - `data.nice.address.street_address_1` (string)

  - `data.nice.address.street_address_2` (string)

  - `data.nice.address.street_address_3` (string)

  - `data.nice.address.latitude` (string)

  - `data.nice.address.longitude` (string)

  - `data.nice.created_at` (string)

  - `data.nice.created_at__date` (string)

  - `data.nice.created_at__time` (string)

  - `data.nice.created_at__offset` (string)

  - `data.nice.created_at__offset_minutes` (integer)

  - `data.nice.created_at__dayofweek` (string)

  - `data.nice.end_timestamp` (string)

  - `data.nice.end_timestamp__date` (string)

  - `data.nice.end_timestamp__time` (string)

  - `data.nice.end_timestamp__offset` (string)

  - `data.nice.end_timestamp__offset_minutes` (integer)

  - `data.nice.end_timestamp__dayofweek` (string)

  - `data.nice.event_shift_template_id` (string | null)

  - `data.nice.event_shift_template_id:value` (string | null)

  - `data.nice.event_shift_template_id:array` (string | null)

  - `data.nice.event_shift_type_id` (string | null)

  - `data.nice.event_shift_type_id:value` (string | null)

  - `data.nice.event_shift_type_id:array` (string | null)

  - `data.nice.headcount_location_venue_id` (string | null)

  - `data.nice.headcount_location_venue_id:value` (string | null)

  - `data.nice.headcount_location_venue_id:array` (string | null)

  - `data.nice.is_virtual` (string)

  - `data.nice.minimum_age` (string)

  - `data.nice.name` (string)

  - `data.nice.no_shift_time` (string)

  - `data.nice.post_feedback_form` (string | null)

  - `data.nice.post_feedback_form:value` (string | null)

  - `data.nice.post_feedback_form:array` (string | null)

  - `data.nice.public` (string)

  - `data.nice.publish` (string)

  - `data.nice.role_offer_address` (string)

  - `data.nice.role_offer_id` (string | null)

  - `data.nice.role_offer_id:value` (string | null)

  - `data.nice.role_offer_id:array` (string | null)

  - `data.nice.self_checkin` (string)

  - `data.nice.shift_application_form_id` (string | null)

  - `data.nice.shift_application_form_id:value` (string | null)

  - `data.nice.shift_application_form_id:array` (string | null)

  - `data.nice.shift_attended_form_id` (string | null)

  - `data.nice.shift_attended_form_id:value` (string | null)

  - `data.nice.shift_attended_form_id:array` (string | null)

  - `data.nice.shift_checkin_form_id` (string | null)

  - `data.nice.shift_checkin_form_id:value` (string | null)

  - `data.nice.shift_checkin_form_id:array` (string | null)

  - `data.nice.shift_checkout_form_id` (string | null)

  - `data.nice.shift_checkout_form_id:value` (string | null)

  - `data.nice.shift_checkout_form_id:array` (string | null)

  - `data.nice.shift_precheckin_form_id` (string | null)

  - `data.nice.shift_precheckin_form_id:value` (string | null)

  - `data.nice.shift_precheckin_form_id:array` (string | null)

  - `data.nice.shift_withdraw_form_id` (string | null)

  - `data.nice.shift_withdraw_form_id:value` (string | null)

  - `data.nice.shift_withdraw_form_id:array` (string | null)

  - `data.nice.start_timestamp` (string)

  - `data.nice.start_timestamp__date` (string)

  - `data.nice.start_timestamp__time` (string)

  - `data.nice.start_timestamp__offset` (string)

  - `data.nice.start_timestamp__offset_minutes` (integer)

  - `data.nice.start_timestamp__dayofweek` (string)

  - `data.nice.updated_at` (string)

  - `data.nice.updated_at__date` (string)

  - `data.nice.updated_at__time` (string)

  - `data.nice.updated_at__offset` (string)

  - `data.nice.updated_at__offset_minutes` (integer)

  - `data.nice.updated_at__dayofweek` (string)

  - `data.nice.visibility_hide_groups` (string)

  - `data.nice.visibility_show_groups` (string)

  - `data.nice.visibility_show_roleoffer` (string)

  - `data.nice.info` (string)

  - `data.nice.event_shift_link_id` (integer)

  - `data.nice.event_shift_link_repeat` (integer)

  - `data.nice.event_shift_link_name` (string)

  - `data.nice.shift_status_default_id` (integer)

  - `data.nice.length` (integer)

  - `data.nice.account_id` (integer)

  - `data.nice.account_url` (string)

  - `data.nice.is_any_leader` (boolean)

  - `data.nice.post_shift_feedback_form_completed_at` (string)

  - `data.nice.pre_checkin_form_completed_at` (string)

  - `data.nice.event_name` (string | null)

  - `data.relations` (object)

  - `data.relations.pivot` (object)

  - `data.relations.pivot.event_shift_link_id` (integer)

  - `data.relations.pivot.event_shift_id` (integer)

  - `data.permissions` (object)

  - `data.permissions.read` (boolean)

  - `data.permissions.update` (boolean)

  - `data.permissions.delete` (boolean)

  - `data.permissions.apply` (boolean)

  - `data.permissions.apply_error` (string)

  - `data.permissions.apply_error_code` (string)

  - `data.permissions.is_unavailable` (boolean)

  - `data.permissions.confirm` (boolean)

  - `data.permissions.reject` (boolean)

  - `data.permissions.selfCheckin` (boolean)

  - `data.permissions.selfCheckout` (boolean)

  - `data.permissions.submitAttendedForm` (boolean)

  - `data.permissions.precheckin` (boolean)

  - `data.permissions.applyWaitlist` (boolean)

  - `data.attributes` (array)

  - `first_page_url` (string)

  - `from` (integer)

  - `next_page_url` (string)

  - `path` (string)

  - `per_page` (integer)

  - `prev_page_url` (string | null)

  - `to` (integer)

