# landing.demos.getPageList

URL: https://chugunov.pro/api-bitrix24/landing/demos/landing-demos-get-page-list/
Проверено на Битрикс24 REST API, обновлено 11.09.2026 (ревизия источника fb39d6c).
Источник: официальная документация Битрикс24 (bitrix-tools/b24-rest-docs, лицензия MIT, © Bitrix). Справочник независимый, официальной документацией не является.

Получить список шаблонов для создания страниц
Scope: `landing`
Кто может выполнять метод: пользователь с правом Просмотр в разделе Сайты

## Описание

Метод `landing.demos.getPageList` получает список файловых демо-шаблонов страниц.

## Параметры

- `type` `string` — необязательный. Тип шаблона.
  Возможные значения:
  - `page` — шаблоны для страниц
  - `store` — шаблоны для магазинов
  - `knowledge` — шаблоны для баз знаний
  - `group` — шаблоны для групп
  - `mainpage` — шаблоны для главных страниц
- `filter` `object` — необязательный. Объект формата:
  ```
  {
      field_1: value_1,
      field_2: value_2,
      ...,
      field_n: value_n
  }
  ```
  где:
  - `field_n` — поле фильтра
  - `value_n` — значение фильтра
  Фильтрация применяется к полям верхнего уровня объекта шаблона.
  Фильтровать можно по полям из раздела [Тип шаблона страницы](#page-template). Вложенные поля (например, `DATA.*`) в фильтре не учитываются

## Ответ

HTTP-статус: 200

```json
{
    "result": {
        "empty": {
            "ID": "empty",
            "XML_ID": "empty",
            "TYPE": ["PAGE", "KNOWLEDGE", "GROUP", "MAINPAGE"],
            "TITLE": "Пустая страница",
            "ACTIVE": true,
            "PUBLICATION": false,
            "LOCK_DELETE": false,
            "AVAILABLE": true,
            "SINGLETON": false,
            "SECTION": [],
            "DESCRIPTION": "Создайте собственный сайт с чистого листа и привлекайте клиентов!",
            "PREVIEW": "//bitrix24.ru/bitrix/components/bitrix/landing.demo/data/page/empty/preview.jpg",
            "PREVIEW2X": "//bitrix24.ru/bitrix/components/bitrix/landing.demo/data/page/empty/preview@2x.jpg",
            "PREVIEW3X": "//bitrix24.ru/bitrix/components/bitrix/landing.demo/data/page/empty/preview@3x.jpg",
            "APP_CODE": "",
            "REST": 0,
            "DATA": {
                "name": "Пустая страница",
                "active": true,
                "type": ["PAGE", "KNOWLEDGE", "GROUP", "MAINPAGE"],
                "items": [],
                "version": 1,
                "old_id": 402,
                "encoded": true,
                "charset": "UTF-8"
            }
        },
        "search-result": {
            "ID": "search-result",
            "XML_ID": "search-result",
            "TYPE": ["PAGE", "KNOWLEDGE", "GROUP"],
            "TITLE": "Результаты поиска",
            "ACTIVE": false,
            "PUBLICATION": true,
            "SECTION": ["dynamic"],
            "DATA": {
                "code": "search-result",
                "section": ["dynamic"],
                "publication": true,
                "layout": [],
                "items": {
                    "#block3430": {
                        "code": "59.1.search"
                    }
                },
                "encoded": true,
                "charset": "UTF-8"
            }
        }
    },
    "time": {
        "start": 1774625365,
        "finish": 1774625365.92986,
        "duration": 0.9298601150512695,
        "processing": 0,
        "date_start": "2026-03-27T18:29:25+03:00",
        "date_finish": "2026-03-27T18:29:25+03:00",
        "operating_reset_at": 1774625965,
        "operating": 0
    }
}
```

### Возвращаемые данные

- `result` `object`. Карта демо-шаблонов страниц в формате:
  ```
  {
      "template_code": page_template
  }
  ```
  где:
  - `template_code` — код шаблона
  - `page_template` — объект шаблона страницы [подробнее](#page-template)
  Если подходящих шаблонов нет, метод возвращает пустой массив `result: []` без ошибки.
  Состав полей шаблонов может отличаться и зависит от конкретного шаблона
- `time` `time`. Информация о времени выполнения запроса

## Ошибки

HTTP-статус: 400

```json
{
    "error": "ERROR_ARGUMENT",
    "error_description": "The value of an argument 'filter' has an invalid type",
    "argument": "filter"
}
```

- `ERROR_ARGUMENT` — The value of an argument 'filter' has an invalid type. Параметр `filter` передан в неверном типе
- `MISSING_PARAMS` — Недостаточно параметров вызова. Не передан обязательный параметр `type`
- `ACCESS_DENIED` — Недостаточно прав. Пользователь не прошел общие проверки доступа модуля Landing
- `TYPE_ERROR` — Ошибка типа данных. Вызов метода с некорректным типом параметров
- `SYSTEM_ERROR` — Внутренняя ошибка. Ошибка при выполнении метода на стороне сервера

## Примеры запроса

### cURL (Webhook)

```bash
curl -X POST \
  -H "Content-Type: application/json" \
  -d '{
    "type": "page",
    "filter": {
      "TYPE": "PAGE"
    }
  }' \
  "https://**put.your-domain-here**/rest/**user_id**/**webhook_code**/landing.demos.getPageList.json"
```

### cURL (OAuth)

```bash
curl -X POST \
  -H "Content-Type: application/json" \
  -d '{
    "type": "page",
    "filter": {
      "TYPE": "PAGE"
    },
    "auth": "**put_access_token_here**"
  }' \
  "https://**put.your-domain-here**/rest/landing.demos.getPageList.json"
```

### JS (TS)

```ts
// This snippet is an ES module: top-level await requires type="module" or a bundler.
// $b24 is an already-initialized SDK instance (see the SDK "Get started" guide).
import { Text } from '@bitrix24/b24jssdk'
import type { B24Frame } from '@bitrix24/b24jssdk'

declare const $b24: B24Frame

// Shape of the payload returned in result (match the "response handling" section of the page)
type PageTemplatesResult = Record<string, PageTemplate>

type PageTemplate = {
  ID: string
  XML_ID: string
  TYPE: string[] | string
  TITLE: string
  ACTIVE: boolean
  PUBLICATION: boolean
  LOCK_DELETE: boolean
  AVAILABLE: boolean
  SINGLETON: boolean
  SECTION: string[]
  DESCRIPTION: string
  PREVIEW: string
  PREVIEW2X: string
  PREVIEW3X: string
  APP_CODE: string
  REST: number
  DATA: object
}

try {
  const response = await $b24.actions.v2.call.make<PageTemplatesResult>({
    method: 'landing.demos.getPageList',
    params: {
      type: 'page',
      filter: {
        TYPE: 'PAGE',
      },
    },
    requestId: Text.getUuidRfc4122()
  })

  // The payload is available only on a successful response
  if (!response.isSuccess) {
    console.error(response.getErrorMessages().join('; '))
  } else {
    const result = response.getData()!.result
    console.info('Page templates:', Object.keys(result).length, result)
  }
} catch (error) {
  // Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
  console.error(error)
}
```

### JS (UMD)

```html
<!-- Load the SDK (UMD build); it is exposed as the global B24Js -->
<script src="https://unpkg.com/@bitrix24/b24jssdk@1/dist/umd/index.min.js"></script>
<script>
  async function getPageList() {
    try {
      // Initialize the SDK inside a Bitrix24 frame
      const $b24 = await B24Js.initializeB24Frame()

      const response = await $b24.actions.v2.call.make({
        method: 'landing.demos.getPageList',
        params: {
          type: 'page',
          filter: {
            TYPE: 'PAGE',
          },
        },
        requestId: B24Js.Text.getUuidRfc4122()
      })

      // The payload is available only on a successful response
      if (!response.isSuccess) {
        console.error(response.getErrorMessages().join('; '))
        return
      }

      const result = response.getData().result
      console.info('Page templates:', Object.keys(result).length, result)
    } catch (error) {
      // Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
      console.error(error)
    }
  }

  document.addEventListener('DOMContentLoaded', getPageList)
</script>
```

### Python

```python
from b24pysdk.errors import BitrixAPIError, BitrixSDKException

try:
    bitrix_response = client.landing.demos.get_page_list(
        type="page",
        filter={
            "TYPE": "PAGE",
        },
    ).response
    result = bitrix_response.result
    print(result)
except BitrixAPIError as error:
    print(
        "Ошибка Bitrix API",
        f"error: {error.error}",
        f"error_description: {error.error_description}",
        sep="\n",
    )
except BitrixSDKException as error:
    print(f"Ошибка Bitrix SDK: {error.message}")
except Exception as error:
    print(f"Непредвиденная ошибка: {error}")
```

### PHP

```php
try {
    $response = $b24Service
        ->core
        ->call(
            'landing.demos.getPageList',
            [
                'type' => 'page',
                'filter' => [
                    'TYPE' => 'PAGE',
                ],
            ]
        );

    $result = $response
        ->getResponseData()
        ->getResult();

    echo 'Success: ' . print_r($result, true);
} catch (Throwable $e) {
    error_log($e->getMessage());
    echo 'Error getting page demo list: ' . $e->getMessage();
}
```

### BX24.js

```js
BX24.callMethod(
    'landing.demos.getPageList',
    {
        type: 'page',
        filter: {
            TYPE: 'PAGE'
        }
    },
    function(result)
    {
        if (result.error())
        {
            console.error(result.error());
        }
        else
        {
            console.info(result.data());
        }
    }
);
```

### PHP CRest

```php
require_once('crest.php');

$result = CRest::call(
    'landing.demos.getPageList',
    [
        'type' => 'page',
        'filter' => [
            'TYPE' => 'PAGE',
        ],
    ]
);

echo '<pre>';
print_r($result);
echo '</pre>';
```

### Go

```go
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "landing.demos.getPageList", b24.Params{
	"type": "page",
	"filter": b24.Params{
		"TYPE": "PAGE",
	},
})
if err != nil {
	return fmt.Errorf("landing.demos.getPageList: %w", err)
}

keys, ok := b24.Keys(res.Result)
if !ok {
	return fmt.Errorf("ожидался объект в ответе")
}
fmt.Println("полей в ответе:", len(keys))
```

Оригинал в официальной документации: https://apidocs.bitrix24.ru/api-reference/landing/demos/landing-demos-get-page-list.html
