# Ответы на посты Felo X

POST /api/v1/data/x/tweet/replies

Выберите операцию для нужных вам данных. Все пять конечных точек используют POST и возвращают JSON в корне, без общего обертки `data`.

Во всех примерах используется `FELO_API_KEY` из [обзора](https://openapi.felo.ai/ru/docs/data-api/guides/felo-overview.md). Вызовы используют **баланс платформы**, а не кредиты Felo Pro. Примеры ответов носят иллюстративный характер; фактический контент и необязательные поля могут отличаться.





## 5. Читать ответы

`POST /api/v1/data/x/tweet/replies`

| Поле | Тип | Обязательно | Значение |
|---|---|---|---|
| `tweet_ids` | string or string array | Да | Один ID поста или пакет до 20 ID |
| `cursor` | string | Нет | До 4,000 символов; используйте с одним ID поста |
| `since_time` | integer | Нет | Время начала в Unix-секундах |
| `until_time` | integer | Нет | Время окончания в Unix-секундах |

Замените заполнитель на реальный ID поста:

```bash
curl -sS --request POST "https://openapi.felo.ai/api/v1/data/x/tweet/replies" \
  -H "Authorization: Bearer $FELO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"tweet_ids":["POST_ID"]}'
```

В отличие от ленты и поиска постов, ответы сгруппированы под `results`. У каждой записи есть собственное состояние пагинации:

```json
{"results":[{"tweet_id":"POST_ID","replies":[],"total":0,"has_next":false,"next_cursor":null}]}
```

### Ограничения ответов на один запрос

Каждый запрос читает одну вышестоящую страницу ответов для каждого `tweet_id` и сохраняет не более 100 ответов; он не выбирает автоматически все страницы ответов. В пакете до 20 ID ограничение в 100 ответов применяется отдельно к каждой записи `results`. Фактическое количество может быть меньше.

Поле `total` каждой записи — это число ответов, возвращенных в этой записи, а не полный счет ответов на пост. Чтобы продолжить, используйте `next_cursor` этой записи и отправляйте в следующем запросе только один ID поста. Параметра `limit` для увеличения верхнего предела на один запрос нет.



## Пагинация и контроль затрат

`total` считает соответствующий массив в текущем ответе: посты верхнего уровня для запросов постов или ответы внутри каждой записи результата для запросов ответов. Это не глобальное число совпадений, не полный счет ответов на пост и не итоговое число для биллинга.

1. Отправьте первый запрос без `cursor`.
2. Прочитайте `has_next` и `next_cursor` из ответа. Для ответов читайте их в каждой записи результата.
3. Если существует следующая страница и курсор непуст, отправьте его без изменений с тем же запросом. Для пакета ответов продолжайте по каждому посту отдельно.
4. Остановитесь, когда следующей страницы нет, курсор повторяется или достигнут ваш собственный предел страниц либо расходов.

Метаданные пагинации отражают последний ответ вышестоящего источника; возвращенная коллекция может быть усечена из-за ограничения по результатам. Даже `has_next=false` не гарантирует, что вся история X или все ответы были получены. Отображайте фактически возвращенное количество вместо того, чтобы помечать ограниченный набор результатов как все доступные данные.

За каждую успешную страницу может взиматься плата. Эти пять операций тарифицируются по возвращенным результатам, а не по фиксированной плате за запрос. Вложенные ответы и другие возвращенные записи могут влиять на число подлежащих оплате результатов; не оценивайте стоимость только по длине верхнеуровневого массива. Проверьте [текущие цены](https://openapi.felo.ai/api/v1/data/prices) и использование в консоли. Полные поля объектов находятся в [схеме OpenAPI](https://openapi.felo.ai/api/v1/data/openapi.json).
