JSON over HTTPS. Bearer auth. Free tier. CC-BY-4.0 data license. Every endpoint is cached at the edge for <100ms global latency.
Use either header. Keys begin with gei_.
# Recommended curl https://globalemotionsindex.com/api/v1/public/global \ -H 'Authorization: Bearer gei_live_xxxxxxxxxxxx' # Alternative curl https://globalemotionsindex.com/api/v1/public/global \ -H 'X-API-Key: gei_live_xxxxxxxxxxxx'
Returns the current global snapshot: total submissions, country count, emotional index, positivity score, stress score, dominant emotion.
curl /api/v1/public/global -H 'Authorization: Bearer YOUR_KEY'
List of all countries with scorecards. Returns ISO codes, name, total submissions, all five scores, and deltas (24h / 7d / 30d).
Countries sorted by a metric of your choice, with minimum-sample filtering.
Holt-Winters forecast for 24h / 7d / 30d horizons. Returns point estimate + 80% and 95% prediction intervals.
Daily submission counts per emotion for the requested country and window (7–365 days).
Public CSV/JSON exports. Aggregate-only, no key required. Suitable for academic citation under CC-BY-4.0.
curl -s https://globalemotionsindex.com/api/v1/public/rankings?metric=stress_score \ -H 'Authorization: Bearer YOUR_KEY' | jq
const r = await fetch(
'https://globalemotionsindex.com/api/v1/public/global',
{ headers: { 'Authorization': 'Bearer ' + KEY } }
);
const data = await r.json();
import requests
r = requests.get(
'https://globalemotionsindex.com/api/v1/public/global',
headers={'Authorization': f'Bearer {KEY}'}
)
data = r.json()
For learning, side projects, academic use.
For products, dashboards, journalism.
For high-volume integrations and research.
{
"request": {
"endpoint": "./api/v1/public/global",
"tier": "free"
},
"quota": {
"remaining_per_minute": 58,
"remaining_per_day": 994
},
"data": {
"total_submissions": 1043217,
"total_countries": 174,
"emotional_index": 58.4,
"positivity_score": 61.2,
"stress_score": 28.7,
"dominant_emotion": "calm"
}
}