---
metadata:
  - name: generator
    content: Diplodoc Platform v5.50.6
alternate:
  - https://yandex.ru/dev/direct/doc/en/best-practice/get.md
  - https://yandex.ru/dev/direct/doc/ru/best-practice/get.md
sourcePath: ru/dg/best-practice/get.md
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.ru/dev/direct/doc/ru/llms.txt

# Получение данных: метод get

## Получение только запрашиваемых данных {#field-names}

При вызове метода _get_ необходимо в массиве `FieldNames` явно перечислить те параметры, которые требуется получить.

 ## Пример

Если в запросе указано

```javascript translate=no
"FieldNames": ["Id","Name","Status"]
```

будут получены идентификаторы, имена и статусы объектов.

Если требуется получить параметр, значение которого не задано, метод _get_ возвращает в этом параметре значение null, см. раздел [Значение null (nil)](https://yandex.ru/dev/direct/doc/ru/best-practice/nillable.md).


## Критерии отбора {#criteria}

Для отбора объектов в методе _get_ предназначена входная структура `SelectionCriteria`. Состав критериев различен для разных сервисов и приведен в описании метода _get_ для каждого сервиса.

Каждый критерий работает как оператор IN в SQL. Если задано несколько критериев, они объединяются по условию AND: будут получены объекты, отвечающие одновременно всем критериям. Если не найдено ни одного объекта, соответствующего критериям, возвращается пустая структура.


{% note info %}

Метод _get_ игнорирует идентификаторы несуществующих, удаленных и не принадлежащих пользователю объектов, никаких ошибок и предупреждений для них не выдает.

{% endnote %}


 ## Пример

Если в запросе заданы критерии

```javascript translate=no
"SelectionCriteria": {
   "CampaignIds": [1234567,1234589,1234777],
   "Statuses": ["PREACCEPTED","ACCEPTED"]
}
```

будут получены объекты со статусом `PREACCEPTED` или `ACCEPTED`, которые относятся к кампании 1234567, 1234589 или 1234777. Аналогично SQL-оператору `SELECT ... WHERE CampaignId IN (1234567,1234589,1234777) AND Status IN ("PREACCEPTED","ACCEPTED")`.


## Постраничная выборка {#page}

Метод _get_ возвращает не более 10 000 объектов за один запрос. Постраничное получение данных можно организовать с помощью структуры

```javascript translate=no
"Page": { /* LimitOffset */
   "Limit": (long),
   "Offset": (long)
}
```

#|
||
**Параметр**
|
**Тип**
|
**Описание**
|
**Обязательный**
||

||
**Структура LimitOffset**
| >
| >
||
||
`Limit`
|
long
|
Количество возвращаемых объектов (размер страницы). От 0 до 10 000. Если не указано, используется ограничение 10 000.
|
Нет
||
||
`Offset`
|
long
|
Количество объектов, которое должно быть пропущено при выборке. Если не указано, подразумевается 0.
|
Нет
||
|#

 ## Пример 1

Если задано:

```javascript translate=no
"Page": { /* LimitOffset */
   "Limit": 200,
   "Offset": 600
}
```

будут возвращены объекты с 601-го по 800-й.

### Как определить, все ли объекты получены? {#page}

Если возвращенная страница — не последняя (в выборке остались еще объекты), то метод `get` возвращает поле `LimitedBy` — порядковый номер последнего возвращенного объекта. Чтобы получить следующую страницу, полученное значение `LimitedBy` нужно указать в качестве `Offset` при следующем вызове метода `get` с тем же `SelectionCriteria`.

## Пример 2

Если в примере 1 ответ метода `get` не содержит параметра `LimitedBy`, то эта страница — последняя в выборке.

Если ответ содержит параметр `LimitedBy` со значением 800, в следующем запросе необходимо указать

```javascript translate=no
"Page": { /* LimitOffset */
   "Limit": 200,
   "Offset": 800
}
```

## Пример 3

Если в запросе не было структуры `Page`, а ответ содержит параметр `LimitedBy` со значением 10 000, значит, в выборке более 10 000 объектов и была возвращена только первая страница. Для получения следующей страницы в следующем запросе необходимо указать

```javascript translate=no
"Page": { /* LimitOffset */
   "Offset": 10000
}
```

Параметр `Limit` указывать необязательно: по умолчанию используется ограничение 10 000.

