# Felo X Wyszukiwanie postów

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

Wybierz operację dla danych, których potrzebujesz. Wszystkie pięć punktów końcowych używa POST i zwraca JSON w korzeniu, bez wspólnego opakowania `data`.

Wszystkie przykłady używają `FELO_API_KEY` z [przeglądu](https://openapi.felo.ai/pl/docs/data-api/guides/felo-overview.md). Wywołania korzystają z **salda platformy**, a nie z kredytów Felo Pro. Przykłady odpowiedzi mają charakter poglądowy; rzeczywista treść i opcjonalne pola mogą się różnić.





## 4. Wyszukaj posty

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

| Pole | Typ | Wymagane | Znaczenie |
|---|---|---|---|
| `query` | string | Tak | Tekst wyszukiwania, 1–1 000 znaków |
| `query_type` | string | Nie | `Latest` (domyślnie) lub `Top` |
| `limit` | integer | Nie | 1–1 000; bieżąca implementacja używa co najmniej 20, z domyślną wartością 20 |
| `cursor` | string | Nie | Kursor stronicowania, do 4 000 znaków |
| `since_time` | integer or string | Nie | Czas początkowy; użyj sekund Unix dla jednoznacznej wartości liczbowej |
| `until_time` | integer or string | Nie | Czas końcowy; użyj sekund Unix, nie milisekund |

```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}'
```

Odpowiedź zawiera `tweets`, `total`, `has_next` i `next_cursor`. Obiekty postów zawierają `id`, `content`, `author`, `created_at` i `metrics`; odpowiedzi oraz cytowane/przekazane dalej posty mogą być zagnieżdżone. Traktuj identyfikatory jako ciągi znaków.

### Limity liczby wyników

`limit` jest celem, a nie gwarancją. Bieżąca implementacja używa celu co najmniej 20: cel 20 odczytuje jedną nadrzędną stronę; większe cele automatycznie pobierają do 50 stron. Upływ czasu jest sprawdzany przed każdą stroną i nie są pobierane dalsze strony po przekroczeniu 60 sekund. Trwające żądanie do źródła nadrzędnego nadal może zająć czas, więc nie jest to ogólny limit czasu HTTP.

Zbieranie zatrzymuje się również, gdy osiągnięto cel, nadrzędne źródło nie ma następnej strony, strona jest pusta lub kursor jest brakujący. Zwrócenie mniejszej liczby niż `limit` postów nie oznacza, że żądanie się nie powiodło lub że każdy pasujący post został pobrany. Sprawdź `has_next` i `next_cursor` przed kontynuacją.

```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
}
```



## Stronicowanie i kontrola kosztów

`total` zlicza odpowiednią tablicę w bieżącej odpowiedzi: posty najwyższego poziomu dla zapytań o posty albo odpowiedzi w każdym wpisie wyniku dla zapytań o odpowiedzi. Nie jest to globalna liczba dopasowań, pełna liczba odpowiedzi posta ani końcowa liczba rozliczeniowa.

1. Wyślij pierwsze żądanie bez `cursor`.
2. Odczytaj `has_next` i `next_cursor` z odpowiedzi. W przypadku odpowiedzi odczytuj je w każdym wpisie wyniku.
3. Jeśli istnieje kolejna strona, a kursor nie jest pusty, wyślij go bez zmian z tym samym zapytaniem. W przypadku partii odpowiedzi kontynuuj każdy post osobno.
4. Zatrzymaj się, gdy nie ma następnej strony, gdy kursor się powtarza lub gdy osiągnięto własny limit strony albo wydatków.

Metadane stronicowania odzwierciedlają ostatnią odpowiedź nadrzędną; zwrócony zbiór może zostać obcięty przez limit wyników. Nawet `has_next=false` nie gwarantuje, że cała historia X lub wszystkie odpowiedzi zostały pobrane. Wyświetlaj rzeczywistą liczbę zwróconych elementów zamiast oznaczać ograniczony zbiór jako wszystkie dostępne dane.

Każda udana strona może generować opłatę. Te pięć operacji jest rozliczanych według zwróconych wyników, a nie według stałej opłaty za żądanie. Zagnieżdżone odpowiedzi i inne zwrócone rekordy mogą wpływać na liczbę rozliczanych wyników; nie szacuj kosztu wyłącznie na podstawie długości tablicy najwyższego poziomu. Sprawdź [bieżące ceny](https://openapi.felo.ai/api/v1/data/prices) i użycie w konsoli. Pełne pola obiektów znajdują się w [schemacie OpenAPI](https://openapi.felo.ai/api/v1/data/openapi.json).
