# Felo X vyhledávání příspěvků

POST /api/v1/data/x/tweet/search

Zvolte operaci pro data, která potřebujete. Všech pět koncových bodů používá POST a vrací JSON v kořeni, bez společného obalu `data`.

Všechny příklady používají `FELO_API_KEY` z [přehledu](https://openapi.felo.ai/cs/docs/data-api/guides/felo-overview.md). Volání používají **zůstatek platformy**, nikoli Felo Pro credits. Příklady odpovědí jsou ilustrativní; živý obsah a volitelná pole se liší.





## 4. Vyhledávání příspěvků

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

| Pole | Typ | Povinné | Význam |
|---|---|---|---|
| `query` | string | Ano | Vyhledávací text, 1–1 000 znaků |
| `query_type` | string | Ne | `Latest` (výchozí) nebo `Top` |
| `limit` | integer | Ne | 1–1 000; současná implementace používá alespoň 20, výchozí 20 |
| `cursor` | string | Ne | Stránkovací kurzor, až 4 000 znaků |
| `since_time` | integer or string | Ne | Začátek; pro jednoznačnou číselnou hodnotu použijte Unix sekundy |
| `until_time` | integer or string | Ne | Konec; použijte Unix sekundy, nikoli milisekundy |

```bash
curl -sS --request POST "https://openapi.felo.ai/api/v1/data/x/tweet/search" \
  -H "Authorization: Bearer $FELO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query":"retrieval augmented generation","query_type":"Latest","limit":20}'
```

Odpověď obsahuje `tweets`, `total`, `has_next` a `next_cursor`. Objekty příspěvků zahrnují `id`, `content`, `author`, `created_at` a `metrics`; odpovědi a citované/retweetované příspěvky mohou být zanořené. Považujte ID za řetězce.

### Limity počtu výsledků

`limit` je cíl, nikoli záruka. Současná implementace používá cíl alespoň 20: cíl 20 načte jednu upstream stránku; větší cíle automaticky načtou až 50 stránek. Před každou stránkou se kontroluje uplynulý čas a jakmile překročí 60 sekund, žádné další stránky se nenačítají. Právě probíhající upstream požadavek může stále trvat, takže to není celkový HTTP timeout.

Sběr se také zastaví, když je dosaženo cíle, upstream nemá další stránku, stránka je prázdná nebo chybí cursor. Pokud vrátíte méně než `limit` příspěvků, neznamená to, že požadavek selhal nebo že byl načten každý odpovídající příspěvek. Před pokračováním zkontrolujte `has_next` a `next_cursor`.

```json
{
  "tweets": [{
    "id":"example-post-id",
    "content":"Example post content",
    "author":{"user_id":"example-user-id","username":"example","display_name":"Example"},
    "created_at":"2026-11-01T00:00:00Z",
    "metrics":{},
    "replies":[]
  }],
  "total":1,
  "has_next":false,
  "next_cursor":null
}
```



## Stránkování a řízení nákladů

`total` počítá odpovídající pole v aktuální odpovědi: příspěvky na nejvyšší úrovni pro dotazy na příspěvky nebo odpovědi uvnitř každé položky výsledku pro dotazy na odpovědi. Není to globální počet shod, úplný počet odpovědí na příspěvek ani konečný zpoplatněný počet.

1. Odešlete první požadavek bez `cursor`.
2. Přečtěte `has_next` a `next_cursor` z odpovědi. U odpovědí je čtěte v každé položce výsledku.
3. Pokud existuje další stránka a cursor není prázdný, odešlete jej beze změny se stejným dotazem. U dávky odpovědí pokračujte u každého příspěvku samostatně.
4. Zastavte se, když není další stránka, když se cursor opakuje nebo když je dosažen váš vlastní limit stránek či utrácení.

Metadata stránkování odrážejí poslední upstream odpověď; vrácený soubor může být zkrácen na limit výsledků. Ani `has_next=false` není zárukou, že byla načtena veškerá historie X nebo všechny odpovědi. Zobrazte skutečný vrácený počet místo označení omezené sady výsledků jako všech dostupných dat.

Každá úspěšná stránka může být zpoplatněna. Těchto pět operací je účtováno podle vrácených výsledků, nikoli paušálním poplatkem za požadavek. Zanořené odpovědi a další vrácené záznamy mohou ovlivnit zpoplatněný počet; náklady neodhadujte pouze podle délky pole na nejvyšší úrovni. Zkontrolujte [aktuální ceny](https://openapi.felo.ai/api/v1/data/prices) a využití v konzoli. Úplná pole objektů jsou ve [schématu OpenAPI](https://openapi.felo.ai/api/v1/data/openapi.json).
