API Documentation
Pull trend data straight into your own tools, spreadsheets or store. Available on the Professional and Enterprise plans.
Die API-Referenz ist nur auf Englisch verfügbar.
Getting a key
- Subscribe to Professional or Enterprise on the plans page.
- Open your profile and create an API key.
- Copy it immediately — we store only a hash, so it is shown exactly once.
Keep keys secret. A key carries your full account access. Never put one in frontend JavaScript, a mobile app, or a public repository. Revoke a leaked key from your profile — it stops working on the next request.
Authentication
Send your key in the X-API-Key header on every request.
curl -H "X-API-Key: tvx_live_YOUR_KEY" \
"https://trendvixo.com/api/v1/trends?page_size=20&sort_by=score"Base URL
https://trendvixo.com/api/v1All responses are JSON. All timestamps are UTC, ISO 8601.
Endpoints
| Method | Path | Description |
|---|---|---|
| GET | /trends | List trending items. Supports category, platform, search, min_score, sort_by, direction, page, page_size. |
| GET | /trends/{id} | One item with its score history. |
| GET | /trends/summary | Headline counts and the current top movers. |
| GET | /trends/categories | Categories with item counts and average score. |
| GET | /trends/platforms | Data sources and when each last ran. |
| GET | /trends/export | CSV export. Paid plans only. |
| GET | /analytics | Your own API usage. Does not count against your quota. |
| GET | /subscriptions/usage | Current quota consumption and plan limits. |
Examples
Python
import requests
response = requests.get(
"https://trendvixo.com/api/v1/trends",
headers={"X-API-Key": "tvx_live_YOUR_KEY"},
params={"page_size": 50, "sort_by": "score", "category": "Electronics"},
)
data = response.json()
for item in data["items"]:
print(item["name"], item["score"], item["trend_direction"])JavaScript
const res = await fetch(
"https://trendvixo.com/api/v1/trends?page_size=50&sort_by=score",
{ headers: { "X-API-Key": "tvx_live_YOUR_KEY" } }
);
const { items, total } = await res.json();Google Sheets
Use the CSV export endpoint with IMPORTDATA, or download it from the Trends page and import the file.
Response shape
{
"items": [
{
"id": "…",
"name": "wireless earbuds",
"category": "Electronics",
"score": 78.4,
"trend_direction": "up",
"change": 24.1,
"sparkline": [61.0, 64.2, 66.8, 70.1, 74.9, 78.4],
"velocity": 312.5,
"confidence": 0.82,
"sentiment_score": 0.61,
"source": "Google Trends US",
"url": "https://…",
"collected_at": "2026-07-30T14:00:00",
"locked_fields": []
}
],
"total": 250,
"page": 1,
"page_size": 50,
"plan": "Professional",
"truncated": false
}locked_fields lists any fields blanked out because your plan does not include them. On Professional and Enterprise it is empty.
Limits and errors
API calls count against the same monthly allowance as the dashboard. Check what is left with GET /subscriptions/usage.
| Status | Meaning |
|---|---|
401 | Missing, invalid or revoked API key |
402 | Feature not included in your plan |
404 | Not found |
429 | Monthly quota used up, or requests too fast |
5xx | Our problem — retry with backoff |
A 429 includes Retry-After and, for quota exhaustion, the reset date. Back off rather than retrying in a tight loop.
Fair use
You may cache our data and display individual data points in your own product with attribution. You may not republish the dataset in bulk or resell it as a competing feed — see the Terms of Service.