Morning trend scan
Pull the current public trend list before an editorial or social planning meeting.
X trending API
Fetch current public X trends with rank, volume fields and cursor pagination.
Input: No input required. Returns: a page of results with a cursor for the next, in X's own field names. Price: 1 credit per call; failed reads are free.
GET /v1/x/trending
See it in action
The endpoint can run without a URL. Add optional region parameters only when you need a regional trend list.
Start from a valid shape, then replace the sample value with your public target.
Selected No input required
Open
Use a server-side key and send parameters as query values.
https://api.sourcevine.io/v1/x/trending curl -G 'https://api.sourcevine.io/v1/x/trending' \
-H 'Authorization: Bearer sv_live_...' \
--data-urlencode 'limit=20' const params = new URLSearchParams({
"limit": "20",
});
const res = await fetch('https://api.sourcevine.io/v1/x/trending?' + params, {
headers: { Authorization: 'Bearer sv_live_...' },
});
const body = await res.json();
console.log(body.data); import requests
r = requests.get(
"https://api.sourcevine.io/v1/x/trending",
params={"limit": "20"},
headers={"Authorization": "Bearer sv_live_..."},
)
body = r.json()
print(body["data"]) Every success includes availability, a fetch timestamp and billing context.
Hit Show sample response to see the response.
A real X (Twitter) Trending API response, recorded against the public target above.
Shortened to fit. items 3 of 20. A live call returns all of it.
Shortened to fit. items 3 of 20. A live call returns all of it.
{
"data": {
"items": [
{
"url": "http://twitter.com/search?q=%23GalaxyS25For57999",
"name": "#GalaxyS25For57999",
"rank": 1,
"views": null,
"cached": false,
"trendId": "#GalaxyS25For57999",
"fetchedAt": "2026-10-07T08:17:06Z",
"postCount": null,
"cacheAgeSeconds": null
},
{
"url": "http://twitter.com/search?q=%2325YearsOfSeva",
"name": "#25YearsOfSeva",
"rank": 2,
"views": null,
"cached": false,
"trendId": "#25YearsOfSeva",
"fetchedAt": "2026-10-07T08:17:06Z",
"postCount": null,
"cacheAgeSeconds": null
},
{
"url": "http://twitter.com/search?q=%23Nse_Multi_Bagger_pick",
"name": "#Nse_Multi_Bagger_pick",
"rank": 3,
"views": null,
"cached": false,
"trendId": "#Nse_Multi_Bagger_pick",
"fetchedAt": "2026-10-07T08:17:06Z",
"postCount": null,
"cacheAgeSeconds": null
}
],
"cached": false,
"fetchedAt": null,
"nextCursor": null,
"cacheAgeSeconds": null
},
"success": true,
"available": true
} Ship it anywhere
We build and maintain theseFirst-party surfaces, versioned with the API.
Works anywhere that can make an HTTP requestNo plugin to install, and none to wait for.
Response
Each response includes typed availability, a fetch timestamp, and only the public fields this API promises.
| Field | Type | Meaning |
|---|---|---|
| items | array | Trending public X topics or search words. |
| items[].trendId | string | Sourcevine id for the trend row. |
| items[].name | string | Trend label as the platform publishes it. |
| items[].rank | integer | null | Trend position when reported. |
| items[].postCount | integer | null | Public volume when reported. |
| nextCursor | string | null | Pass as cursor to request the next page. |
| fetchedAt | ISO datetime | When Sourcevine read the public page. |
| sourceTimestamp | ISO datetime | null | The platform timestamp when it is available. |
| cached | boolean | True when this answer repeats an identical request made moments earlier. |
| cacheAgeSeconds | integer | Seconds since the reading was taken. |
Request flow
Call /v1/x/trending directly for a current X list. Optional region parameters stay explicit in the request.
Optional parameters are validated before any fetch.
The public data is read when you call. An identical request moments earlier is answered again, free.
Deleted, private and unsupported resources return explicit statuses, so clients can stop retrying facts about the world.
X names stay intact, so your code reads trendId instead of reverse-engineering a generic schema.
fetchedAtcreditsChargedavailableEvery response carries fetchedAt and the platform timestamp, so you know how old a reading is before you act on it. X (Twitter) Trending API fits recurring trending checks in dashboards, spreadsheets, workflows and agents.
Boundaries
Bios, email addresses, phone numbers, postal addresses and messenger handles are outside the response contract.
Private accounts, restricted content and unavailable resources return typed availability instead of guessed data.
Trend APIs return what the platform publishes now. They do not forecast future rank, reach or revenue.
Use cases
Pull the current public trend list before an editorial or social planning meeting.
Watch for topics that match a brand, competitor or campaign phrase.
Use trend rows as seeds, then inspect matching posts, creators or sounds.
Keep a dated record of what was trending when a report or decision was made.
Pricing
The response and X-Credits-Charged header tell you what
happened, including when it is zero.
Charged1 credit
Not charged0 credits
FAQ
Fetch current public X trends with rank, volume fields and cursor pagination.
A call costs 1 credit, including an empty result. Retrieval failures are not charged.
The request returns available=false with a typed availability status. Not-found and private results are charged like any lookup; unsupported URLs and retrieval failures are not.
No. Bios, emails, phone numbers, postal addresses and private or restricted content are outside the public response contract.
No. Your integration authenticates with a Sourcevine API key. You do not need to supply X credentials or a session.