# List reservation services

> Returns what one agent takes reservations for — its services, with the duration, party range, approval rule and the questions guests are asked — so a reservation’s `service_id` and `answers` can be read against them.

Source: https://www.hey.support/docs/api/reservations/list-reservation-services

---

<ApiEndpoint method="GET" path="/reservation-services" />

Active services in the venue’s own order; pass `include_inactive=true` for the archived ones too.

## Query parameters

<TypeTable
  type={{
  "chatbot_id": { type: "string", description: "Sqid-encoded chatbot id. Required — services belong to one agent.", required: true },
  "include_inactive": { type: "boolean", description: "Also return services the venue has switched off.", required: false }
}}
/>

## Response `200`

Returns a `data` array with a `pagination` object. Each item:

<TypeTable
  type={{
  "id": { type: "integer", description: "The numeric id a reservation’s `service_id` names.", required: true },
  "chatbot_id": { type: "string", description: "", required: true },
  "name": { type: "string", description: "", required: true },
  "description": { type: "string", description: "", required: false },
  "kind": { type: "\"appointment\" | \"table\" | \"request\"", description: "An appointment with a staff member, a table in an area, or a request the team answers by hand.", required: true },
  "duration_mins": { type: "integer", description: "", required: true },
  "price_cents": { type: "integer", description: "Display only — no payment is taken.", required: false },
  "currency": { type: "string", description: "", required: false },
  "min_party": { type: "integer", description: "", required: true },
  "max_party": { type: "integer", description: "", required: true },
  "oversize_becomes_request": { type: "boolean", description: "Whether a party over `max_party` is taken as a request for the team to approve rather than refused.", required: false },
  "min_notice_mins": { type: "integer", description: "", required: false },
  "max_advance_days": { type: "integer", description: "", required: false },
  "approval": { type: "\"auto\" | \"manual\"", description: "`manual` services land as requests until the team approves them.", required: true },
  "questions": { type: "object[]", description: "The questions the guest is asked when booking; a reservation’s `answers` are keyed by their ids.", required: true },
  "resource_ids": { type: "integer[]", description: "The staff members or areas this service can be booked on; null means any of the matching kind.", required: false },
  "active": { type: "boolean", description: "", required: true },
  "position": { type: "integer", description: "", required: true }
}}
/>

### Errors

* `400` — chatbot\_id is required
* `401` — Missing or invalid API key
* `404` — Chatbot not found
* `429` — Rate limit exceeded

Every error shares [one envelope](/docs/api/errors).

## Example

```bash
curl https://www.hey.support/api/v1/reservation-services \
  -H 'Authorization: Bearer hs_live_…'
```
