Felo APIs
X Search API
Doorzoek X-gebruikers, tweets, tijdlijnen en antwoorden met pagineringsmetadata.
/v2/x/tweet/searchAuthenticatie
Bearer API key
Inhoudstype
application/json
Toelichting op limieten
1 request per 10 seconds, 3 per minute, 10 per 10 minutes.
De X Search API geeft toegang tot gegevens van X (Twitter), waaronder gebruikersprofielen, het zoeken in tweets, tweets van gebruikers en reacties op tweets.
Authenticatie
Alle verzoeken vereisen een API-sleutel in de Authorization-header:
Authorization: Bearer YOUR_API_KEYGebruik met AI-agents
Installeer het volledige pakket felo-ai om een agent X Search en alle andere beschikbare Felo Skills te geven. Het installatieprogramma ontdekt dynamisch elke pakketmap die SKILL.md bevat, in plaats van een vaste Skills-lijst aan te houden. Installeer alle gevonden Skills in Codex ~/.codex/skills, Claude Code ~/.claude/skills, OpenClaw ~/.agents/skills of Hermes Agent ~/.hermes/skills. Zie de handleiding voor handmatige AI-agentconfiguratie voor installatie, API-sleutel en verificatie per platform.
1. Gebruikersinformatie ophalen
Haal X-gebruikersprofielen in bulk op via gebruikersnaam.
Endpoint
POST https://openapi.felo.ai/v2/x/user/infoVerzoekbody
| Parameter | Type | Verplicht | Beschrijving |
|---|---|---|---|
usernames | array van strings | Ja | Lijst met X-gebruikersnamen om op te zoeken |
Voorbeeld
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"]
}'Succesrespons (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"
}
]
}
}Velden van het gebruikersobject
| Veld | Type | Beschrijving |
|---|---|---|
user_id | string | X-gebruikers-ID |
username | string | X-gebruikersnaam (zonder @) |
display_name | string | Weergavenaam |
description | string | Bio van de gebruiker |
followers_count | integer | Aantal volgers |
following_count | integer | Aantal accounts dat de gebruiker volgt |
tweet_count | integer | Totaal aantal tweets |
verified | boolean | Of het account geverifieerd is |
blue_verified | boolean | Of het account Blue-verificatie heeft |
verified_type | string | Type verificatie |
profile_image_url | string | URL van de profielfoto |
cover_image_url | string | URL van de omslagafbeelding |
created_at | string | Tijdstip waarop het account is aangemaakt |
location | string | Locatie van de gebruiker |
url | string | URL van de website van de gebruiker |
protected | boolean | Of het account beschermd is |
favorites_count | integer | Aantal likes |
media_count | integer | Aantal mediaposts |
can_dm | boolean | Of DM openstaat |
is_automated | boolean | Of het account geautomatiseerd is |
pinned_tweet_ids | array van strings | ID's van vastgezette tweets |
2. Gebruikers zoeken
Zoek X-gebruikers op trefwoord.
Endpoint
POST https://openapi.felo.ai/v2/x/user/searchVerzoekbody
| Parameter | Type | Verplicht | Beschrijving |
|---|---|---|---|
query | string | Ja | Zoekwoord |
cursor | string | Nee | Pagineringscursor uit de vorige respons |
Voorbeeld
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"
}'Succesrespons (200)
{
"status": "ok",
"message": null,
"data": {
"total": 50,
"has_next": true,
"next_cursor": "cursor_abc123",
"users": [
{
"user_id": "...",
"username": "...",
"display_name": "..."
}
]
}
}Responsvelden
| Veld | Type | Beschrijving |
|---|---|---|
total | integer | Totaal aantal resultaten |
has_next | boolean | Of er meer resultaten beschikbaar zijn |
next_cursor | string | Cursor voor de volgende pagina |
users | array | Lijst met gebruikersobjecten (zie sectie 1) |
3. Tweets van een gebruiker ophalen
Haal tweets op van een specifieke X-gebruiker.
Endpoint
POST https://openapi.felo.ai/v2/x/user/tweetsVerzoekbody
| Parameter | Type | Verplicht | Beschrijving |
|---|---|---|---|
x_user_id | string | Nee | X-gebruikers-ID (geef x_user_id of username op) |
username | string | Nee | X-gebruikersnaam (geef x_user_id of username op) |
limit | integer | Nee | Aantal tweets om te retourneren |
cursor | string | Nee | Pagineringscursor |
include_replies | boolean | Nee | Of reacties moeten worden meegenomen |
Voorbeeld
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
}'Succesrespons (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"
}
]
}
}Velden van het tweetobject
| Veld | Type | Beschrijving |
|---|---|---|
id | string | Tweet-ID |
content | string | Tekstinhoud van de tweet |
author | object | Gebruikersobject van de auteur (zie sectie 1) |
created_at | string | Tijdstip waarop de tweet is gemaakt |
metrics | object | Interactiecijfers (zie hieronder) |
replies | array | Reactietweets (indien beschikbaar) |
conversation_id | string | ID van de gespreksthread |
media_urls | array | Bijgevoegde media |
hashtags | array van strings | Hashtags in de tweet |
mentions | array van strings | Vermelde gebruikersnamen |
urls | array van strings | URL's in de tweet |
url | string | Permalink naar de tweet |
source | string | Bron van de tweet (bijvoorbeeld "Twitter Web App") |
lang | string | Taalcode van de tweet |
is_reply | boolean | Of dit een reactie is |
in_reply_to_id | string | ID van de tweet waarop wordt gereageerd |
in_reply_to_user_id | string | Gebruikers-ID van de tweet waarop wordt gereageerd |
in_reply_to_username | string | Gebruikersnaam van de tweet waarop wordt gereageerd |
quoted_tweet | object | Geciteerd tweetobject (recursief) |
retweeted_tweet | object | Geretweet tweetobject (recursief) |
is_limited_reply | boolean | Of reacties beperkt zijn |
Velden van het metrics-object
| Veld | Type | Beschrijving |
|---|---|---|
retweet_count | integer | Aantal retweets |
favorite_count | integer | Aantal likes |
reply_count | integer | Aantal reacties |
quote_count | integer | Aantal quotes |
view_count | integer | Aantal weergaven |
bookmark_count | integer | Aantal bookmarks |
4. Tweets zoeken
Zoek X-tweets op trefwoord met ondersteuning voor geavanceerde query's.
Endpoint
POST https://openapi.felo.ai/v2/x/tweet/searchVerzoekbody
| Parameter | Type | Verplicht | Beschrijving |
|---|---|---|---|
query | string | Ja | Zoekopdracht (ondersteunt geavanceerde zoeksyntaxis) |
query_type | string | Nee | Filter op querytype |
since_time | integer | Nee | Filter op starttijd (Unix-tijdstempel in seconden) |
until_time | integer | Nee | Filter op eindtijd (Unix-tijdstempel in seconden) |
limit | integer | Nee | Aantal tweets om te retourneren |
cursor | string | Nee | Pagineringscursor |
Voorbeeld
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
}'Succesrespons (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 }
}
]
}
}Responsvelden
| Veld | Type | Beschrijving |
|---|---|---|
total | integer | Totaal aantal resultaten |
has_next | boolean | Of er meer resultaten beschikbaar zijn |
next_cursor | string | Cursor voor de volgende pagina |
tweets | array | Lijst met tweetobjecten (zie sectie 3) |
5. Reacties op tweets ophalen
Haal reacties op specifieke tweets op.
Endpoint
POST https://openapi.felo.ai/v2/x/tweet/repliesVerzoekbody
| Parameter | Type | Verplicht | Beschrijving |
|---|---|---|---|
tweet_ids | array van strings | Ja | Tweet-ID('s) waarvoor je reacties wilt ophalen |
cursor | string | Nee | Pagineringscursor |
since_time | integer | Nee | Filter op starttijd (Unix-tijdstempel) |
until_time | integer | Nee | Filter op eindtijd (Unix-tijdstempel) |
Voorbeeld
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"]
}'Succesrespons (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"
}
]
}
]
}
}Responsvelden
| Veld | Type | Beschrijving |
|---|---|---|
results | array | Lijst met resultaatobjecten voor reacties |
results[].tweet_id | string | ID van de oorspronkelijke tweet |
results[].total | integer | Totaal aantal reacties |
results[].has_next | boolean | Of er meer reacties beschikbaar zijn |
results[].next_cursor | string | Cursor voor de volgende pagina |
results[].replies | array | Lijst met reactietweetobjecten (zie sectie 3) |
Foutcodes
| Code | HTTP-status | Beschrijving |
|---|---|---|
UNAUTHORIZED | 401 | API-sleutel is ongeldig of ingetrokken |
X_SEARCH_FAILED | 400/500 | Het X-zoekverzoek is mislukt (controleer de parameters of de fout downstream) |
RATE_LIMIT_EXCEEDED | 429 | Te veel verzoeken; probeer het na korte tijd opnieuw |
insufficient_credits | 402 | Onvoldoende service-tegoed om het verzoek te voltooien |
Service-tegoed en rate limiting
Kosten in service-tegoed
Elke API-aanroep trekt service-tegoed af op basis van het aantal geretourneerde resultaten:
| Endpoint | Kosten in service-tegoed |
|---|---|
POST /x/user/info | 1 service-tegoed per geretourneerde gebruiker |
POST /x/user/search | 1 service-tegoed per geretourneerde gebruiker |
POST /x/user/tweets | 1 service-tegoed per geretourneerde tweet |
POST /x/tweet/search | 1 service-tegoed per geretourneerde tweet |
POST /x/tweet/replies | 1 service-tegoed per geretourneerde reactie |
Service-tegoed wordt na afronding van het verzoek afgetrokken, op basis van het werkelijke aantal resultaten. Als een verzoek 0 resultaten oplevert, wordt er geen service-tegoed afgetrokken.
Minimaal saldo: je account moet minstens 10 service-tegoed hebben om een X API-verzoek te kunnen doen. Verzoeken met minder dan 10 service-tegoed worden geweigerd met HTTP 402.
Rate limiting
Rate limits worden toegepast volgens het actuele beleid van de API-dienst en je account. Bij rate limiting retourneert de API HTTP 429. De Retry-After-header geeft de aanbevolen wachttijd in seconden. Gebruik de meest recente servicedocumentatie en de werkelijke API-responsen om met rate limits om te gaan; een abonnement is niet nodig om het platform te gebruiken.