# List an event's shifts

Returns the shifts belonging to one event, with the demand figures for each and
what the caller is allowed to do with it.
A shift is a block of time on an event that people are rostered onto. `min_demand`
and `max_demand` are how many people it needs and how many it can take,
`leader_demand` how many of those places are for leaders. The rows carry those
figures and the shift's own settings; they carry nobody's name. To see who is on a
shift, read its assignments.
The response is only wrapped in a paginated envelope when a `page` parameter is
sent. Without one, every match comes back as a flat array. The envelope carries no
`total` and no `last_page` - page until `next_page_url` is null rather than
counting pages up front.
**This listing can be read without signing in**, and it is the only endpoint in
this group that can. Without a token it returns the published, public shifts of a
public, published event and nothing else; a signed-in caller who cannot read
shifts gets the same narrowing.

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

## Path parameters:

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

## Query parameters:

  - `applied` (boolean)
    Keep only shifts the signed-in person has applied for.

  - `accepted` (boolean)
    Keep only shifts the signed-in person holds a place on.

  - `leader` (boolean)
    Keep only shifts the signed-in person leads.

  - `notOnShift` (boolean)
    Keep only shifts the signed-in person is not already
on. Named in camelCase because that is what the endpoint reads.

  - `noLinkedShifts` (boolean)
    Keep only shifts that do not belong to a linked
series. Named in camelCase because that is what the endpoint reads.

  - `eventEoi` (boolean)
    Keep only shifts on events the signed-in person has
registered interest in. Named in camelCase because that is what the endpoint reads.

  - `intentToSwap` (boolean)
    Work out each shift's `permissions.apply` as though
the person were swapping out of a shift they already hold, rather than taking an
extra one. Named in camelCase because that is what the endpoint reads.

  - `currentId` (integer)
    The shift being swapped out of, used with
`intentToSwap`. Named in camelCase because that is what the endpoint reads.

  - `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` (array)

  - `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)

