# Felo Дописи користувача X

POST /api/v1/data/x/user/tweets

Оберіть операцію для потрібних вам даних. Усі п’ять кінцевих точок використовують POST і повертають JSON у корені, без спільної оболонки `data`.

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





## 3. Отримати стрічку користувача

`POST /api/v1/data/x/user/tweets`

| Поле | Тип | Обов’язкове | Значення |
|---|---|---|---|
| `username` | string | Потрібен один ідентифікатор | Хендл користувача, до 100 символів |
| `x_user_id` | string | Потрібен один ідентифікатор | ID користувача, до 100 символів; має пріоритет над `username` |
| `limit` | integer | Ні | 1–1,000; поточна реалізація використовує щонайменше 20, за замовчуванням 20 |
| `cursor` | string | Ні | Курсор пагінації, до 4,000 символів |
| `include_replies` | boolean | Ні | Включати вкладені відповіді; за замовчуванням `false` |

```bash
curl -sS --request POST "https://openapi.felo.ai/api/v1/data/x/user/tweets" \
  -H "Authorization: Bearer $FELO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"username":"OpenAI","limit":20,"include_replies":false}'
```

Відповідь містить `tweets`, `total`, `has_next` і `next_cursor`. Встановлення `limit` нижче 20 не гарантує менше повернутих елементів або менший рахунок. Уключення відповідей може додати повернуті дані та результати, що підлягають оплаті.

### Ліміти результатів і вкладених відповідей

`limit` — це цільова кількість постів верхнього рівня для цього запиту, а не гарантована кількість результатів. Поточна реалізація використовує ціль не менше 20: ціль 20 читає одну вхідну сторінку; більші цілі автоматично отримують до 50 сторінок. Перед кожною сторінкою перевіряється минулий час, і отримання наступних сторінок зупиняється, щойно він перевищує 60 секунд. Ця перевірка не гарантує, що весь HTTP-запит завершиться менш ніж за 60 секунд.

Збір також зупиняється, коли досягнуто цілі, на вхідному джерелі немає наступної сторінки, сторінка порожня або курсор відсутній. Успішна відповідь, таким чином, може містити менше постів, ніж `limit`. Використовуйте `has_next` і `next_cursor`, щоб продовжити, коли вони доступні.

При `include_replies=true` кожен повернутий пост отримує до 5 додаткових сторінок і не більше 100 вкладених відповідей. Збір може зупинитися раніше, якщо немає наступної сторінки, сторінка порожня або курсор не може просунутися далі. Ці вкладені відповіді не входять до верхньорівневого `limit` і `total`, але можуть додавати результати, що підлягають оплаті.

Вкладені `replies` не є повним архівом відповідей і не надають окремого курсора продовження для цього додаткового збору. Щоб виконувати пагінацію відповідей окремо, використовуйте операцію читання відповідей і її повернений курсор. Не повторно використовуйте курсор верхньорівневого поста для відповідей.



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

`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).
