> Portal Navigation:
> 
> - Append `.md` to any URL under `https://dev.wix.com/docs/` to get its markdown version.
> - Pages are either content pages (article or reference text) or menu pages (a list of links to child pages).
> - To get a menu page, truncate any URL to a parent path and append `.md` (e.g. `https://dev.wix.com/docs/sdk.md`, `https://dev.wix.com/docs/sdk/core-modules.md`).
> - Top-level index of all portals: https://dev.wix.com/docs/llms.txt
> - Full concatenated docs: https://dev.wix.com/docs/llms-full.txt

# listSections

# Package: @wix/restaurants

# Namespace: sections

# Method link: https://dev.wix.com/docs/api-reference/business-solutions/restaurants/menus/sections/list-sections.md

## Permission Scopes:
Manage Restaurants - all permissions: SCOPE.RESTAURANTS.MEGA-SCOPES

## Introduction

> **Note:** The Section API only works with the Wix Restaurants Menus app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new).

Retrieves a list of up to 500 sections.

---

## JavaScript SDK

### Schema

```
 Method: wixClientAdmin.restaurants.sections.listSections(options)
 Description: > **Note:** The Section API only works with the Wix Restaurants Menus app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new).  Retrieves a list of up to 500 sections.
 Method parameters:
   param name: options | type: ListSectionsOptions  none  
        - name: sectionIds | type: array<string> | description: Section GUIDs.  | validation: maxItems 500, format GUID
        - name: paging | type: CursorPaging | description: The metadata of the paginated results.  
           - name: limit | type: integer | description: Number of items to load.  | validation: minimum 0, maximum 500, format int32
           - name: cursor | type: string | description: Pointer to the next or previous page in the list of results.  You can get the relevant cursor token from the `pagingMetadata` object in the previous call's response. Not relevant for the first request.  
        - name: onlyVisible | type: boolean | description: Whether to return only sections that are visible to site visitors.  
 Return type: PROMISE<ListSectionsResponse>
  - name: sections | type: array<Section> | description: Retrieved sections.  
     - name: _id | type: string | description: Section GUID.  | read-only: true | validation: format GUID
     - name: revision | type: string | description: Revision number, which increments by 1 each time the section is updated. To prevent conflicting changes, the current revision must be passed when updating the section. Ignored when creating a section.  | read-only: true | validation: format int64
     - name: _createdDate | type: Date | description: Date and time the section was created.  | read-only: true 
     - name: _updatedDate | type: Date | description: Date and time the section was updated.  | read-only: true 
     - name: name | type: string | description: Section name.  | validation: minLength 1, maxLength 500
     - name: description | type: string | description: Section description.  | validation: maxLength 1500
     - name: image | type: string | description: Main section image.  
     - name: additionalImages | type: array<string> | description: Additional section images.  | validation: maxItems 100
     - name: itemIds | type: array<string> | description: Item GUIDs.  | validation: maxItems 300, format GUID
     - name: extendedFields | type: ExtendedFields | description: Extended fields.  
        - name: namespaces | type: object | description: Extended field data. Each key corresponds to the namespace of the app that created the extended fields. The value of each key is structured according to the schema defined when the extended fields were configured.  You can only access fields for which you have the appropriate permissions.  Learn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields.md).  | validation: format map
     - name: visible | type: boolean | description: Whether the section is visible in the menu for site visitors.  
     - name: businessLocationId | type: string | description: GUID of the business location ([SDK](https://dev.wix.com/docs/sdk/backend-modules/restaurants/wix-restaurants-new/about-business-locations.md) | [REST](https://dev.wix.com/docs/rest/business-solutions/restaurants/wix-restaurants-new/about-business-locations.md)) where this section is available.  | read-only: true | validation: format GUID
  - name: pagingMetadata | type: CursorPagingMetadata | description: The metadata of the paginated results.  
     - name: count | type: integer | description: Number of items returned in the response.  | validation: format int32
     - name: cursors | type: Cursors | description: Offset that was requested.  
        - name: next | type: string | description: Cursor pointing to next page in the list of results.  
        - name: prev | type: string | description: Cursor pointing to previous page in the list of results.  
     - name: hasNext | type: boolean | description: Indicates if there are more results after the current page. If `true`, another page of results can be retrieved. If `false`, this is the last page.  


```

### Examples

### listSections
```javascript
// @title List Sections
import { sections } from "@wix/restaurants";

async function listSections() {
  const response = await sections.listSections();

  /* Promise resolves to:
   * {
   *   "sections": [
   *     { "id": "70f12b79-...", "name": "Drinks" },
   *     { "id": "9ea7135d-...", "name": "Mains" },
   *     { "id": "a1e247ea-...", "name": "Appetizers" }
   *   ],
   *   "pagingMetadata": { "count": 4, "hasNext": false }
   * }
   */
}

```

### listSections (self-hosted)
Self-hosted SDK calls require you to [create a client](https://dev.wix.com/docs/sdk/articles/work-with-the-sdk/about-the-wix-client.md).

```javascript
import { createClient } from '@wix/sdk';
import { sections } from '@wix/restaurants';
// Import the auth strategy for the relevant access type
// Import the relevant host module if needed

const myWixClient = createClient ({
  modules: { sections },
  // Include the auth strategy and host as relevant
});


async function listSections(options) {
  const response = await myWixClient.sections.listSections(options);
};
```

---