100 free queries/day. GEO scores for 10,000+ domains — ChatGPT, Perplexity, Claude, Gemini & Grok. Drop it in your dashboard in 5 minutes.
No credit card. No account needed. Just your email.
Start free. Scale when you need to.
6 endpoints. All return JSON with consistent structure.
Enter your API key to view usage stats and manage your account.
Your key is never stored in the browser. It's sent once to verify your identity.
Try the API right here — no key needed. 10 requests per 5 minutes.
// Response will appear here
Want higher limits? Get a free API key for 100 requests/day.
Full documentation: /geo-api/docs
3 lines to get a GEO score. API key goes in the query string or Authorization header.
# Get a GEO score curl "https://traffi.app/api/public/geo/v1/score?domain=notion.so&api_key=YOUR_KEY" # Or use Authorization header curl -H "Authorization: Bearer YOUR_KEY" \ "https://traffi.app/api/public/geo/v1/score?domain=notion.so" # Compare 3 domains curl "https://traffi.app/api/public/geo/v1/compare?domains=notion.so,linear.app,figma.com&api_key=YOUR_KEY"
const API_KEY = 'YOUR_KEY'; const BASE = 'https://traffi.app/api/public/geo/v1'; // Get GEO score for a domain async function getGeoScore(domain) { const res = await fetch(`${BASE}/score?domain=${domain}&api_key=${API_KEY}`); const data = await res.json(); return data; } // Get leaderboard for SaaS vertical async function getLeaderboard() { const res = await fetch(`${BASE}/leaderboard?vertical=SaaS&limit=10&api_key=${API_KEY}`); const data = await res.json(); console.log(data.results); } getGeoScore('notion.so').then(console.log);
import requests API_KEY = 'YOUR_KEY' BASE = 'https://traffi.app/api/public/geo/v1' # Get GEO score resp = requests.get(f'{BASE}/score', params={'domain': 'notion.so', 'api_key': API_KEY}) data = resp.json() print(f"GEO Score: {data['geo_score']} | Rank: #{data['global_rank']}") # Compare competitors resp = requests.get(f'{BASE}/compare', params={ 'domains': 'notion.so,linear.app,figma.com', 'api_key': API_KEY }) comparison = resp.json() print('Leader:', comparison['leader'])
{
"api_version": "v1",
"domain": "notion.so",
"geo_score": 74,
"engines": {
"chatgpt": 82, "perplexity": 71, "claude": 68, "gemini": 73, "grok": 76
},
"vertical": "SaaS",
"global_rank": 142,
"vertical_rank": 23,
"status": "completed",
"last_updated": "2026-04-07T00:00:00.000Z",
"powered_by": "Traffi GEO Index -- traffi.app",
"attribution_required": true,
"attribution_text": "Powered by Traffi GEO -- traffi.app"
}
Pass your API key as a query parameter or in the Authorization header:
# Query parameter ?api_key=tgeo_live_abc123 # Authorization header Authorization: Bearer tgeo_live_abc123
Free and Researcher tiers require attribution in any public-facing UI. Agency and Enterprise may use without attribution.
<!-- Add somewhere visible in your UI --> <a href="https://traffi.app">Powered by Traffi GEO</a>
Full reference docs: traffi.app/geo-api/docs