> ## Documentation Index
> Fetch the complete documentation index at: https://docs.series.hr/llms.txt
> Use this file to discover all available pages before exploring further.

# Menu Items

> List all F&B menu items with optional filters

List every menu item for the workspace F\&B module. Each item includes its parent category as an embedded field. Optionally filter by category or availability.

Items can be organized in a parent/sub-item hierarchy. A parent item (e.g. "Flavored Black Tea") can have sub-items (e.g. "Honey Black Tea", "Lychee Black Tea"). Sub-items have a `ParentItemId` referencing their parent, and parent items include a `SubItems` array in the response.

## Request

```bash theme={null}
curl -X GET "https://api.series.hr/fnb/menu-items?categoryId=cat-1&available=true" \
  -H "apikey: YOUR_API_KEY"
```

## Parameters

<ParamField query="categoryId" type="string">
  Filter by menu category ID.
</ParamField>

<ParamField query="available" type="string">
  Filter by availability: `true` for available items only, `false` for unavailable items only.
</ParamField>

## Response

<ResponseField status={200} name="200">
  ```json theme={null}
  {
    "success": true,
    "data": {
      "WorkspaceId": "a7d5339a-5531-4336-99c6-6f3249c9ac20",
      "WorkspaceName": "Café Series",
      "MenuItems": [
        {
          "Id": "item-1",
          "Name": "Espresso",
          "CategoryId": "cat-1",
          "Description": "Double-shot espresso",
          "Price": 25,
          "Available": true,
          "GamepassId": null,
          "Category": {
            "Id": "cat-1",
            "Name": "Hot Drinks",
            "Description": "Coffee, tea, and more"
          }
        },
        {
          "Id": "item-2",
          "Name": "Flavored Black Tea",
          "CategoryId": "cat-1",
          "Description": "House-brewed daily from the highest-quality tea leaves",
          "Price": 15,
          "Available": true,
          "GamepassId": null,
          "Category": {
            "Id": "cat-1",
            "Name": "Hot Drinks",
            "Description": "Coffee, tea, and more"
          },
          "SubItems": [
            {
              "Id": "item-2a",
              "Name": "Honey Black Tea",
              "CategoryId": "cat-1",
              "Description": "Hand-shaken with honey, smooth and lightly sweet",
              "Price": 15,
              "Available": true,
              "GamepassId": null,
              "ParentItemId": "item-2"
            },
            {
              "Id": "item-2b",
              "Name": "Lychee Black Tea",
              "CategoryId": "cat-1",
              "Description": "Hand-shaken with lychee flavor",
              "Price": 15,
              "Available": true,
              "GamepassId": null,
              "ParentItemId": "item-2"
            }
          ]
        }
      ],
      "TotalItems": 3
    }
  }
  ```
</ResponseField>

### Fields

| Field          | Type    | Description                                                                 |
| -------------- | ------- | --------------------------------------------------------------------------- |
| `Id`           | string  | Unique item identifier                                                      |
| `Name`         | string  | Item display name                                                           |
| `CategoryId`   | string  | Parent category ID                                                          |
| `Description`  | string? | Optional description                                                        |
| `Price`        | number  | Item price                                                                  |
| `Available`    | boolean | Whether the item is currently available                                     |
| `GamepassId`   | number? | Optional Roblox gamepass ID required to order                               |
| `ParentItemId` | string? | If this is a sub-item, the ID of its parent item                            |
| `Category`     | object  | Embedded category details                                                   |
| `SubItems`     | array?  | Array of child sub-items (only present on parent items that have sub-items) |

## Status Codes

* `200`: Menu items returned successfully
* `401`: API key is required or invalid
* `403`: F\&B module is disabled or workspace access is denied


## OpenAPI

````yaml GET /fnb/menu-items
openapi: 3.0.0
info:
  title: Series API
  version: 1.0.0
  description: >-
    Series API — a free REST API by Sailboat Games, LLC that lets Roblox
    communities programmatically manage workspaces, staff, sessions, time-off
    and activity data.
  contact:
    name: Sailboat Games, LLC.
    email: admin@sailboatgames.com
servers:
  - url: https://api.series.hr
    description: Production API
security:
  - ApiKeyAuth: []
paths:
  /fnb/menu-items:
    get:
      tags:
        - Food & Beverage
      summary: List menu items
      description: >-
        List all menu items with optional filters for category and availability.
        Each item includes its category as an embedded field. Parent items
        include a SubItems array containing their child items. Sub-items have a
        ParentItemId referencing their parent.
      parameters:
        - name: categoryId
          in: query
          required: false
          schema:
            type: string
          description: Filter by menu category ID
        - name: available
          in: query
          required: false
          schema:
            type: string
            enum:
              - 'true'
              - 'false'
          description: Filter by availability
      responses:
        '200':
          description: >-
            Menu items list. Each item includes Id, Name, CategoryId,
            Description, Price, Available, GamepassId, ParentItemId (if
            sub-item), Category (embedded), and SubItems (array of child items,
            if any).
        '401':
          description: API key is required
        '403':
          description: F&B module disabled or access denied
      security:
        - ApiKeyAuth: []
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: apikey
      description: >-
        Pass your API key in the `apikey` header. Alternatively, the `x-api-key`
        header is also accepted.

````