Access consumer sentiment signals, trading recommendations, and alternative data through our REST API.
https://reviewsignal.ai/api
All API requests require a JWT token in the Authorization header:
Authorization: Bearer YOUR_JWT_TOKEN
Get your token by logging in via POST /api/auth/login with your email and password. Tokens expire after 24 hours — use POST /api/auth/refresh to renew.
import requests # 1. Login to get JWT token auth = requests.post("https://reviewsignal.ai/api/auth/login", json={ "email": "you@company.com", "password": "your_password" }) token = auth.json()["token"] headers = {"Authorization": f"Bearer {token}"} # 2. Get trading signals signals = requests.get( "https://reviewsignal.ai/api/dashboard/signals", headers=headers ).json() for s in signals["signals"][:5]: print(f"{s['chain']:20} {s['signal']:6} confidence={s['confidence']:.0%}") # 3. Get sentiment overview overview = requests.get( "https://reviewsignal.ai/api/dashboard/overview", headers=headers ).json() print(f"Tracking {overview['total_locations']} locations, {overview['total_reviews']} reviews")
# Login curl -X POST https://reviewsignal.ai/api/auth/login \ -H "Content-Type: application/json" \ -d '{"email":"you@company.com","password":"your_password"}' # Get trading signals (replace TOKEN) curl https://reviewsignal.ai/api/dashboard/signals \ -H "Authorization: Bearer TOKEN"
| Feature | Trial | Signal (€299) | Starter (€999) | Pro (€2,500) | Enterprise (€5,000) |
|---|---|---|---|---|---|
| API calls / month | 100 | 1,000 | 5,000 | 25,000 | Unlimited |
| Chains tracked | 5 | 10 | 30 | 100 | Unlimited |
| Trading signals | ✕ | ✓ | ✓ | ✓ | ✓ |
| Sentiment forecast | ✕ | ✕ | ✓ | ✓ | ✓ |
| Competitive analysis | ✕ | ✕ | ✓ | ✓ | ✓ |
| Echo Engine | ✕ | ✕ | ✕ | ✓ | ✓ |
| Backtest track record | ✕ | ✕ | ✕ | ✓ | ✓ |
| SSO / SAML | ✕ | ✕ | ✕ | ✕ | ✓ |
| Alert rules | 2 | 5 | 10 | 25 | Unlimited |
{
"signals": [
{
"chain": "Starbucks",
"signal": "BUY",
"confidence": 0.82,
"sentiment_score": 0.64,
"sentiment_delta_7d": 0.08,
"review_count": 12847,
"locations_tracked": 2891,
"engine": "echo_v3"
}
],
"generated_at": "2026-03-18T12:00:00Z",
"total_chains": 238
}
| Code | Meaning | Action |
|---|---|---|
| 401 | Unauthorized | Token missing or expired. Re-login or refresh. |
| 403 | Forbidden | Your tier doesn't include this feature. Upgrade at /dashboard/billing.html |
| 429 | Rate Limited | Too many requests. Wait and retry with exponential backoff. |
| 500 | Server Error | Contact team@reviewsignal.ai with the request details. |
Our team is here to help you integrate ReviewSignal data into your workflow.