Skip to main content
GET
/
x
/
trends
Get X trends
curl --request GET \
  --url https://xquik.com/api/v1/x/trends \
  --header 'x-api-key: <api-key>'
import requests

url = "https://xquik.com/api/v1/x/trends"

headers = {"x-api-key": "<api-key>"}

response = requests.get(url, headers=headers)

print(response.text)
const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};

fetch('https://xquik.com/api/v1/x/trends', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://xquik.com/api/v1/x/trends"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("x-api-key", "<api-key>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(string(body))

}
3 credits per call · All plans from $0.00012/credit
curl -G https://xquik.com/api/v1/x/trends \
  --data-urlencode "woeid=23424977" \
  --data-urlencode "count=10" \
  -H "x-api-key: xq_YOUR_KEY_HERE" | jq
const params = new URLSearchParams({ woeid: "23424977", count: "10" });
const response = await fetch(`https://xquik.com/api/v1/x/trends?${params}`, {
  headers: { "x-api-key": "xq_YOUR_KEY_HERE" },
});
const data = await response.json();
const detectedAt = new Date().toISOString();
const trendRows = data.trends.map((trend) => ({
  trend_name: trend.name,
  rank: trend.rank ?? null,
  description: trend.description ?? null,
  search_query: trend.query ?? trend.name,
  region_woeid: data.woeid,
  returned_count: data.count,
  detected_at: detectedAt,
}));

for (const row of trendRows) {
  process.stdout.write(`${JSON.stringify(row)}\n`);
}
from datetime import datetime, timezone
import json
import requests

response = requests.get(
    "https://xquik.com/api/v1/x/trends",
    params={"woeid": 23424977, "count": 10},
    headers={"x-api-key": "xq_YOUR_KEY_HERE"},
)
data = response.json()
detected_at = datetime.now(timezone.utc).isoformat().replace("+00:00", "Z")
trend_rows = [
    {
        "trend_name": trend["name"],
        "rank": trend.get("rank"),
        "description": trend.get("description"),
        "search_query": trend.get("query", trend["name"]),
        "region_woeid": data["woeid"],
        "returned_count": data["count"],
        "detected_at": detected_at,
    }
    for trend in data["trends"]
]
for row in trend_rows:
    print(json.dumps(row))
Use GET /x/trends when a workflow needs ranked regional topics for content planning, monitor seeding, search jobs, or alert routing. The examples write one JSON line per trend. Store trend_name, rank, description, search_query, region_woeid, returned_count, and your own detected_at timestamp, then pass search_query to Search Tweets when a job needs matching tweets.

Query parameters

woeid
integer
Positive Where On Earth ID for the region. Invalid or nonpositive values fall back to 1 (worldwide). See Trends guide for common regions.
count
integer
Number of trends to return. Default 30, max 50. Invalid or below-minimum values fall back to 30.

Headers

x-api-key
string
required
Your API key. Session cookie authentication is also supported.

Response

Array of trending topics.
count
number
Number of trends returned.
woeid
number
WOEID used for the request.
{
  "trends": [
    {
      "name": "#AI",
      "rank": 1,
      "description": "Trending in Technology",
      "query": "%23AI"
    }
  ],
  "count": 1,
  "woeid": 23424977
}
This endpoint returns trends directly from X. For broader Radar topic discovery, use List Radar Items.
Next steps: Search Tweets to find tweets about a trending topic.
Last modified on June 15, 2026