All API requests require an API key. Generate your key from the Settings → API Keys section of your dashboard. Include it in every request header:
Authorization: Bearer YOUR_API_KEY
API keys are tied to your Elite subscription. Rate limit: 1,000 requests per day.
Returns the latest sentiment score for a given asset.
Parameters:
Response:
{
"symbol": "NVDA",
"score": 82,
"label": "BULLISH",
"confidence": "high",
"velocity": 4.5,
"mention_count": 23,
"news_score": 85,
"social_score": 74,
"bullish_count": 18,
"bearish_count": 3,
"neutral_count": 2,
"signal_type": "NORMAL",
"summary": "NVDA sentiment is strongly bullish...",
"score_change": +7,
"previous_score": 75,
"source_breakdown": {
"finnhub": 8,
"reddit": 5,
"stocktwits": 6,
"alphavantage": 2,
"google_news": 2
},
"updated_at": "2026-03-22T13:00:00Z"
}
Returns the latest sentiment scores for all 72+ assets. Optionally filter by type.
Returns historical sentiment scores for an asset over a time period.
Returns top 10 assets ranked by momentum (velocity + change + mention volume).
Elite plan: 1,000 requests per day. Rate limit headers are included in every response:
X-RateLimit-Remaining: 847 X-RateLimit-Reset: 2026-03-23T00:00:00Z
401 — Invalid or missing API key 403 — API access requires Elite plan 404 — Symbol not found 429 — Rate limit exceeded 500 — Internal server error
import requests
headers = {"Authorization": "Bearer YOUR_API_KEY"}
r = requests.get("https://nexamarkets.ai/api/v1/sentiment?symbol=NVDA", headers=headers)
data = r.json()
print(f"{data['symbol']}: {data['score']}/100 ({data['label']})")
print(f"Velocity: {data['velocity']} | Mentions: {data['mention_count']}")
const res = await fetch('https://nexamarkets.ai/api/v1/sentiment?symbol=BTC', {
headers: { 'Authorization': 'Bearer YOUR_API_KEY' }
});
const data = await res.json();
console.log(`${data.symbol}: ${data.score}/100 (${data.label})`);
Need API access?
The API is available on the Elite plan ($99/mo). Generate your key in Dashboard → Settings → API Keys.
Upgrade to Elite →