Felo API PlatformFelo API Platform

Felo APIs

X Search API

Wyszukuj użytkowników X, tweety, osie czasu i odpowiedzi oraz pobieraj metadane paginacji.

POST/v2/x/tweet/search

Uwierzytelnianie

Bearer API key

Typ zawartości

application/json

Uwagi o limitach

1 request per 10 seconds, 3 per minute, 10 per 10 minutes.

API wyszukiwania X zapewnia dostęp do danych z X (Twitter), w tym profili użytkowników, wyszukiwania tweetów, tweetów użytkownika i odpowiedzi na tweety.

Uwierzytelnianie

Wszystkie żądania wymagają klucza API w nagłówku Authorization:

Authorization: Bearer YOUR_API_KEY

Użycie z agentami AI

Zainstaluj kompletny pakiet felo-ai, aby dać agentowi X Search i każdy inny dostępny Felo Skill. Instalator dynamicznie wykrywa każdy katalog pakietu zawierający SKILL.md, zamiast utrzymywać stałą listę Skills. Zainstaluj wszystkie wykryte Skills w Codex ~/.codex/skills, Claude Code ~/.claude/skills, OpenClaw ~/.agents/skills lub Hermes Agent ~/.hermes/skills. Instrukcje instalacji, klucza API i weryfikacji dla poszczególnych platform znajdziesz w podręczniku konfiguracji agenta AI.


1. Pobieranie informacji o użytkowniku

Zbiorczo pobieraj profile użytkowników X według nazwy użytkownika.

Endpoint

POST https://openapi.felo.ai/v2/x/user/info

Treść żądania

ParametrTypWymaganyOpis
usernamesarray of stringsTakLista nazw użytkowników X do wyszukania

Przykład

curl -X POST 'https://openapi.felo.ai/v2/x/user/info' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "usernames": ["elonmusk", "OpenAI"]
  }'

Odpowiedź sukcesu (200)

{
  "status": "ok",
  "message": null,
  "data": {
    "total": 2,
    "users": [
      {
        "user_id": "44196397",
        "username": "elonmusk",
        "display_name": "Elon Musk",
        "description": "...",
        "followers_count": 100000000,
        "following_count": 500,
        "tweet_count": 30000,
        "verified": true,
        "blue_verified": true,
        "profile_image_url": "https://pbs.twimg.com/...",
        "created_at": "2009-06-02T00:00:00Z",
        "location": "Mars"
      }
    ]
  }
}

Pola obiektu użytkownika

PoleTypOpis
user_idstringIdentyfikator użytkownika X
usernamestringNazwa użytkownika X (bez @)
display_namestringNazwa wyświetlana
descriptionstringBiogram użytkownika
followers_countintegerLiczba obserwujących
following_countintegerLiczba obserwowanych
tweet_countintegerŁączna liczba tweetów
verifiedbooleanCzy konto jest zweryfikowane
blue_verifiedbooleanCzy konto ma weryfikację Blue
verified_typestringTyp weryfikacji
profile_image_urlstringAdres URL zdjęcia profilowego
cover_image_urlstringAdres URL zdjęcia w tle
created_atstringCzas utworzenia konta
locationstringLokalizacja użytkownika
urlstringAdres URL witryny użytkownika
protectedbooleanCzy konto jest chronione
favorites_countintegerLiczba polubień
media_countintegerLiczba postów multimedialnych
can_dmbooleanCzy wiadomości prywatne są otwarte
is_automatedbooleanCzy konto jest zautomatyzowane
pinned_tweet_idsarray of stringsIdentyfikatory przypiętych tweetów

2. Wyszukiwanie użytkowników

Wyszukuj użytkowników X według słowa kluczowego.

Endpoint

POST https://openapi.felo.ai/v2/x/user/search

Treść żądania

ParametrTypWymaganyOpis
querystringTakSłowo kluczowe wyszukiwania
cursorstringNieKursor paginacji z poprzedniej odpowiedzi

Przykład

curl -X POST 'https://openapi.felo.ai/v2/x/user/search' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "query": "artificial intelligence"
  }'

Odpowiedź sukcesu (200)

{
  "status": "ok",
  "message": null,
  "data": {
    "total": 50,
    "has_next": true,
    "next_cursor": "cursor_abc123",
    "users": [
      {
        "user_id": "...",
        "username": "...",
        "display_name": "..."
      }
    ]
  }
}

Pola odpowiedzi

PoleTypOpis
totalintegerŁączna liczba wyników
has_nextbooleanCzy dostępne są kolejne wyniki
next_cursorstringKursor następnej strony
usersarrayLista obiektów użytkowników (zobacz sekcję 1)

3. Pobieranie tweetów użytkownika

Pobieraj tweety konkretnego użytkownika X.

Endpoint

POST https://openapi.felo.ai/v2/x/user/tweets

Treść żądania

ParametrTypWymaganyOpis
x_user_idstringNieIdentyfikator użytkownika X (podaj x_user_id lub username)
usernamestringNieNazwa użytkownika X (podaj x_user_id lub username)
limitintegerNieLiczba tweetów do zwrócenia
cursorstringNieKursor paginacji
include_repliesbooleanNieCzy uwzględnić odpowiedzi

Przykład

curl -X POST 'https://openapi.felo.ai/v2/x/user/tweets' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "username": "elonmusk",
    "limit": 20
  }'

Odpowiedź sukcesu (200)

{
  "status": "ok",
  "message": null,
  "data": {
    "total": 20,
    "has_next": true,
    "next_cursor": "cursor_def456",
    "tweets": [
      {
        "id": "1234567890",
        "content": "Tweet content here...",
        "author": { "user_id": "...", "username": "elonmusk" },
        "created_at": "2026-03-09T12:00:00Z",
        "metrics": {
          "retweet_count": 1000,
          "favorite_count": 5000,
          "reply_count": 200,
          "quote_count": 100,
          "view_count": 500000,
          "bookmark_count": 50
        },
        "hashtags": ["AI"],
        "mentions": ["OpenAI"],
        "url": "https://x.com/elonmusk/status/1234567890",
        "lang": "en"
      }
    ]
  }
}

Pola obiektu tweeta

PoleTypOpis
idstringIdentyfikator tweeta
contentstringTreść tekstowa tweeta
authorobjectObiekt autora (zobacz sekcję 1)
created_atstringCzas utworzenia tweeta
metricsobjectMetryki zaangażowania (zobacz poniżej)
repliesarrayTweety będące odpowiedziami (jeśli dostępne)
conversation_idstringIdentyfikator wątku konwersacji
media_urlsarrayDołączone multimedia
hashtagsarray of stringsHashtagi w tweecie
mentionsarray of stringsWspomniane nazwy użytkowników
urlsarray of stringsAdresy URL w tweecie
urlstringBezpośredni link do tweeta
sourcestringŹródło tweeta (np. "Twitter Web App")
langstringKod języka tweeta
is_replybooleanCzy to odpowiedź
in_reply_to_idstringIdentyfikator tweeta, na który odpowiadano
in_reply_to_user_idstringIdentyfikator użytkownika tweeta, na który odpowiadano
in_reply_to_usernamestringNazwa użytkownika tweeta, na który odpowiadano
quoted_tweetobjectObiekt cytowanego tweeta (rekurencyjny)
retweeted_tweetobjectObiekt podanego dalej tweeta (rekurencyjny)
is_limited_replybooleanCzy odpowiedzi są ograniczone

Pola obiektu metryk

PoleTypOpis
retweet_countintegerLiczba podań dalej
favorite_countintegerLiczba polubień
reply_countintegerLiczba odpowiedzi
quote_countintegerLiczba cytowań
view_countintegerLiczba wyświetleń
bookmark_countintegerLiczba zapisanych zakładek

4. Wyszukiwanie tweetów

Wyszukuj tweety X według słowa kluczowego z obsługą zaawansowanych zapytań.

Endpoint

POST https://openapi.felo.ai/v2/x/tweet/search

Treść żądania

ParametrTypWymaganyOpis
querystringTakZapytanie wyszukiwania (obsługuje zaawansowaną składnię wyszukiwania)
query_typestringNieFiltr typu zapytania
since_timeintegerNieFiltr czasu początkowego (znacznik czasu Unix w sekundach)
until_timeintegerNieFiltr czasu końcowego (znacznik czasu Unix w sekundach)
limitintegerNieLiczba tweetów do zwrócenia
cursorstringNieKursor paginacji

Przykład

curl -X POST 'https://openapi.felo.ai/v2/x/tweet/search' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "query": "artificial intelligence",
    "limit": 20
  }'

Odpowiedź sukcesu (200)

{
  "status": "ok",
  "message": null,
  "data": {
    "total": 20,
    "has_next": true,
    "next_cursor": "cursor_ghi789",
    "tweets": [
      {
        "id": "...",
        "content": "...",
        "author": { "user_id": "...", "username": "..." },
        "created_at": "2026-03-09T12:00:00Z",
        "metrics": { "retweet_count": 100, "favorite_count": 500 }
      }
    ]
  }
}

Pola odpowiedzi

PoleTypOpis
totalintegerŁączna liczba wyników
has_nextbooleanCzy dostępne są kolejne wyniki
next_cursorstringKursor następnej strony
tweetsarrayLista obiektów tweetów (zobacz sekcję 3)

5. Pobieranie odpowiedzi na tweety

Pobieraj odpowiedzi na konkretne tweety.

Endpoint

POST https://openapi.felo.ai/v2/x/tweet/replies

Treść żądania

ParametrTypWymaganyOpis
tweet_idsarray of stringsTakIdentyfikatory tweetów, dla których pobrać odpowiedzi
cursorstringNieKursor paginacji
since_timeintegerNieFiltr czasu początkowego (znacznik czasu Unix)
until_timeintegerNieFiltr czasu końcowego (znacznik czasu Unix)

Przykład

curl -X POST 'https://openapi.felo.ai/v2/x/tweet/replies' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "tweet_ids": ["1234567890"]
  }'

Odpowiedź sukcesu (200)

{
  "status": "ok",
  "message": null,
  "data": {
    "results": [
      {
        "tweet_id": "1234567890",
        "total": 10,
        "has_next": true,
        "next_cursor": "cursor_jkl012",
        "replies": [
          {
            "id": "...",
            "content": "Great tweet!",
            "author": { "user_id": "...", "username": "..." },
            "created_at": "2026-03-09T12:30:00Z"
          }
        ]
      }
    ]
  }
}

Pola odpowiedzi

PoleTypOpis
resultsarrayLista obiektów wyników odpowiedzi
results[].tweet_idstringIdentyfikator oryginalnego tweeta
results[].totalintegerŁączna liczba odpowiedzi
results[].has_nextbooleanCzy dostępne są kolejne odpowiedzi
results[].next_cursorstringKursor następnej strony
results[].repliesarrayLista obiektów tweetów będących odpowiedziami (zobacz sekcję 3)

Kody błędów

KodStatus HTTPOpis
UNAUTHORIZED401Klucz API jest nieprawidłowy lub unieważniony
X_SEARCH_FAILED400/500Niepowodzenie żądania wyszukiwania X (sprawdź parametry lub błąd podrzędny)
RATE_LIMIT_EXCEEDED429Zbyt wiele żądań, ponów po krótkiej chwili
insufficient_credits402Niewystarczające kredyty do zrealizowania żądania

Kredyty i limity szybkości

Koszty kredytów

Każde wywołanie API odejmuje kredyty na podstawie liczby zwróconych wyników:

EndpointKoszt w kredytach
POST /x/user/info1 kredyt za każdego zwróconego użytkownika
POST /x/user/search1 kredyt za każdego zwróconego użytkownika
POST /x/user/tweets1 kredyt za każdego zwróconego tweeta
POST /x/tweet/search1 kredyt za każdego zwróconego tweeta
POST /x/tweet/replies1 kredyt za każdą zwróconą odpowiedź

Kredyty są odejmowane po zakończeniu żądania, na podstawie rzeczywistej liczby wyników. Jeśli żądanie zwróci 0 wyników, kredyty nie są odejmowane.

Wymagane minimalne saldo: Twoje konto musi mieć co najmniej 10 kredytów, aby wykonać jakiekolwiek żądanie do API X. Żądania z mniejszą liczbą niż 10 kredytów zostaną odrzucone z HTTP 402.

Limity szybkości

Limity szybkości są egzekwowane zgodnie z bieżącymi zasadami usługi API i konta. Przy ograniczeniu szybkości API zwraca HTTP 429. Nagłówek Retry-After wskazuje sugerowany czas oczekiwania w sekundach. Do obsługi limitów szybkości używaj najnowszej dokumentacji usługi i rzeczywistych odpowiedzi API; korzystanie z platformy nie wymaga subskrypcji.