curl \
-H "Authorization: Bearer API_KEY" \
-H "x-twitter-oauth1-api-key: YOUR_TWITTER_API_KEY" \
-H "x-twitter-oauth1-api-secret: YOUR_TWITTER_API_SECRET" \
-X GET "https://api.ayrshare.com/api/listen/keyword?query=ayrshare%20OR%20%23socialmedia&platform=twitter&limit=15"
const API_KEY = "API_KEY";
fetch(
"https://api.ayrshare.com/api/listen/keyword?query=ayrshare%20OR%20%23socialmedia&platform=twitter&limit=15",
{
method: "GET",
headers: {
Authorization: `Bearer ${API_KEY}`,
"x-twitter-oauth1-api-key": "YOUR_TWITTER_API_KEY",
"x-twitter-oauth1-api-secret": "YOUR_TWITTER_API_SECRET"
}
}
)
.then((res) => res.json())
.then((json) => console.log(json))
.catch(console.error);
import requests
headers = {
'Authorization': 'Bearer API_KEY',
'x-twitter-oauth1-api-key': 'YOUR_TWITTER_API_KEY',
'x-twitter-oauth1-api-secret': 'YOUR_TWITTER_API_SECRET'
}
params = {
'query': 'ayrshare OR #socialmedia',
'platform': 'twitter',
'limit': 15
}
r = requests.get('https://api.ayrshare.com/api/listen/keyword', headers=headers, params=params)
print(r.json())
{
"status": "success",
"platform": "twitter",
"query": "ayrshare OR #socialmedia",
"tweets": [
{
"id": "1234567890",
"text": "Just discovered @ayrshare for managing social media APIs!",
"createdAt": "2026-03-22T14:30:00.000Z",
"user": {
"id": "987654321",
"name": "Jane Doe",
"screenName": "janedoe",
"profileImageUrl": "https://pbs.twimg.com/profile_images/..."
},
"metrics": {
"retweetCount": 5,
"favoriteCount": 12
},
"entities": {
"hashtags": ["socialmedia"],
"mentions": ["ayrshare"],
"urls": []
},
"inReplyToStatusId": null,
"isRetweet": false,
"lang": "en"
}
],
"meta": {
"pagination": {
"hasMore": true,
"next": "b26v89c19zqg8o3fpds7h...",
"limit": 15
}
}
}
{
"status": "error",
"code": 101,
"message": "Missing or incorrect parameters. Please verify with the docs.",
"details": "The 'query' parameter is required."
}
{
"status": "error",
"code": 401,
"message": "Unauthorized. BYOK keys for X/Twitter are required.",
"details": "Please set up your X/Twitter API keys. See https://docs.ayrshare.com/dashboard/connect-social-accounts/x-twitter-byo-keys"
}
{
"status": "error",
"code": 429,
"message": "Rate limit exceeded. Daily limit of 25 keyword search calls reached.",
"details": "Please try again tomorrow or contact support for higher limits."
}
Keyword
Пошук твітів за ключовим словом
Пошук у X/Twitter твітів, що відповідають ключовим словам або хештегам
GET
/
listen
/
keyword
curl \
-H "Authorization: Bearer API_KEY" \
-H "x-twitter-oauth1-api-key: YOUR_TWITTER_API_KEY" \
-H "x-twitter-oauth1-api-secret: YOUR_TWITTER_API_SECRET" \
-X GET "https://api.ayrshare.com/api/listen/keyword?query=ayrshare%20OR%20%23socialmedia&platform=twitter&limit=15"
const API_KEY = "API_KEY";
fetch(
"https://api.ayrshare.com/api/listen/keyword?query=ayrshare%20OR%20%23socialmedia&platform=twitter&limit=15",
{
method: "GET",
headers: {
Authorization: `Bearer ${API_KEY}`,
"x-twitter-oauth1-api-key": "YOUR_TWITTER_API_KEY",
"x-twitter-oauth1-api-secret": "YOUR_TWITTER_API_SECRET"
}
}
)
.then((res) => res.json())
.then((json) => console.log(json))
.catch(console.error);
import requests
headers = {
'Authorization': 'Bearer API_KEY',
'x-twitter-oauth1-api-key': 'YOUR_TWITTER_API_KEY',
'x-twitter-oauth1-api-secret': 'YOUR_TWITTER_API_SECRET'
}
params = {
'query': 'ayrshare OR #socialmedia',
'platform': 'twitter',
'limit': 15
}
r = requests.get('https://api.ayrshare.com/api/listen/keyword', headers=headers, params=params)
print(r.json())
{
"status": "success",
"platform": "twitter",
"query": "ayrshare OR #socialmedia",
"tweets": [
{
"id": "1234567890",
"text": "Just discovered @ayrshare for managing social media APIs!",
"createdAt": "2026-03-22T14:30:00.000Z",
"user": {
"id": "987654321",
"name": "Jane Doe",
"screenName": "janedoe",
"profileImageUrl": "https://pbs.twimg.com/profile_images/..."
},
"metrics": {
"retweetCount": 5,
"favoriteCount": 12
},
"entities": {
"hashtags": ["socialmedia"],
"mentions": ["ayrshare"],
"urls": []
},
"inReplyToStatusId": null,
"isRetweet": false,
"lang": "en"
}
],
"meta": {
"pagination": {
"hasMore": true,
"next": "b26v89c19zqg8o3fpds7h...",
"limit": 15
}
}
}
{
"status": "error",
"code": 101,
"message": "Missing or incorrect parameters. Please verify with the docs.",
"details": "The 'query' parameter is required."
}
{
"status": "error",
"code": 401,
"message": "Unauthorized. BYOK keys for X/Twitter are required.",
"details": "Please set up your X/Twitter API keys. See https://docs.ayrshare.com/dashboard/connect-social-accounts/x-twitter-byo-keys"
}
{
"status": "error",
"code": 429,
"message": "Rate limit exceeded. Daily limit of 25 keyword search calls reached.",
"details": "Please try again tomorrow or contact support for higher limits."
}
Пошук у X/Twitter твітів, що відповідають ключовим словам, хештегам та розширеним операторам пошуку. Повертає нормалізовані дані твітів, включно з інформацією про користувача, метриками залученості та сутностями.
Цей ендпоінт потребує Bring Your Own Keys (BYOK) для X/Twitter.
Важливі обмеження
- Доступні лише твіти за останні ~7 днів (обмеження X API).
- Стандартний денний ліміт — 25 викликів.
- Потрібні BYOK-ключі для X/Twitter.
Параметри заголовка
Параметри запиту
string
обов'язково
Пошуковий запит за ключовим словом. Підтримує оператори пошуку X/Twitter (див. таблицю нижче).Приклади:
ayrshare, #socialmedia, ayrshare OR #socialmedia, from:ayrshare.string
обов'язково
Має бути
twitter.integer
за замовчуванням:15
Максимальна кількість твітів для повернення. Має бути в діапазоні від 10 до 100.
string
Повертає твіти з ID, більшим (новішим) за це значення. Корисно для отримання лише нових твітів після попереднього запиту.
string
Повертає твіти з ID, меншим (старішим) за це значення. Корисно для пагінації назад через результати.
string
Токен пагінації з
meta.pagination.next попередньої відповіді. Використовуйте його для отримання наступної сторінки результатів.Оператори пошуку
Параметрquery підтримує такі оператори пошуку X/Twitter:
| Оператор | Опис | Приклад |
|---|---|---|
AND | Обидва терміни мають з’являтися (стандартна поведінка) | social AND media |
OR | Має з’являтися будь-який термін | ayrshare OR socialmedia |
from: | Твіти від конкретного користувача | from:ayrshare |
to: | Твіти, спрямовані до конкретного користувача | to:ayrshare |
# | Відповідність хештегу | #socialmedia |
@ | Відповідність згадці | @ayrshare |
- | Виключити термін | social -spam |
lang: | Фільтрувати за мовою | ayrshare lang:en |
filter: | Фільтрувати за типом контенту | ayrshare filter:links |
url: | Відповідність URL | url:ayrshare.com |
curl \
-H "Authorization: Bearer API_KEY" \
-H "x-twitter-oauth1-api-key: YOUR_TWITTER_API_KEY" \
-H "x-twitter-oauth1-api-secret: YOUR_TWITTER_API_SECRET" \
-X GET "https://api.ayrshare.com/api/listen/keyword?query=ayrshare%20OR%20%23socialmedia&platform=twitter&limit=15"
const API_KEY = "API_KEY";
fetch(
"https://api.ayrshare.com/api/listen/keyword?query=ayrshare%20OR%20%23socialmedia&platform=twitter&limit=15",
{
method: "GET",
headers: {
Authorization: `Bearer ${API_KEY}`,
"x-twitter-oauth1-api-key": "YOUR_TWITTER_API_KEY",
"x-twitter-oauth1-api-secret": "YOUR_TWITTER_API_SECRET"
}
}
)
.then((res) => res.json())
.then((json) => console.log(json))
.catch(console.error);
import requests
headers = {
'Authorization': 'Bearer API_KEY',
'x-twitter-oauth1-api-key': 'YOUR_TWITTER_API_KEY',
'x-twitter-oauth1-api-secret': 'YOUR_TWITTER_API_SECRET'
}
params = {
'query': 'ayrshare OR #socialmedia',
'platform': 'twitter',
'limit': 15
}
r = requests.get('https://api.ayrshare.com/api/listen/keyword', headers=headers, params=params)
print(r.json())
{
"status": "success",
"platform": "twitter",
"query": "ayrshare OR #socialmedia",
"tweets": [
{
"id": "1234567890",
"text": "Just discovered @ayrshare for managing social media APIs!",
"createdAt": "2026-03-22T14:30:00.000Z",
"user": {
"id": "987654321",
"name": "Jane Doe",
"screenName": "janedoe",
"profileImageUrl": "https://pbs.twimg.com/profile_images/..."
},
"metrics": {
"retweetCount": 5,
"favoriteCount": 12
},
"entities": {
"hashtags": ["socialmedia"],
"mentions": ["ayrshare"],
"urls": []
},
"inReplyToStatusId": null,
"isRetweet": false,
"lang": "en"
}
],
"meta": {
"pagination": {
"hasMore": true,
"next": "b26v89c19zqg8o3fpds7h...",
"limit": 15
}
}
}
{
"status": "error",
"code": 101,
"message": "Missing or incorrect parameters. Please verify with the docs.",
"details": "The 'query' parameter is required."
}
{
"status": "error",
"code": 401,
"message": "Unauthorized. BYOK keys for X/Twitter are required.",
"details": "Please set up your X/Twitter API keys. See https://docs.ayrshare.com/dashboard/connect-social-accounts/x-twitter-byo-keys"
}
{
"status": "error",
"code": 429,
"message": "Rate limit exceeded. Daily limit of 25 keyword search calls reached.",
"details": "Please try again tomorrow or contact support for higher limits."
}
⌘I
