Why Use the GEO-Score API?
While the GEO-Score dashboard is powerful for manual analysis, the API unlocks automation at scale. Integrate GEO analysis directly into your content management system, CI/CD pipeline, or custom reporting tools to monitor AI search visibility across your entire website automatically.
Whether you're a solo developer automating your own workflow or an agency managing hundreds of client sites, the API gives you programmatic access to every feature available in the dashboard and more.
API Overview
The GEO-Score API follows RESTful conventions with JSON request and response bodies. All endpoints require authentication via API key and return consistent response structures.
Base URL
https://api.bloffee.com/v1Response Format
All API responses follow a consistent JSON structure with status codes and nested data objects:
{
"status": "success",
"data": {
"url": "https://example.com/page",
"geoScore": 85,
"factors": {...}
}
}Authentication
Every API request must include your API key in the Authorization header. API keys are scoped to your account and can be managed from your dashboard settings.
Getting Your API Key
Navigate to Dashboard > Settings > API Keys to generate a new key. You can create multiple keys with different permissions for different integrations. Each key can be revoked individually without affecting others.
Authorization: Bearer YOUR_API_KEY_HEREUsing Your API Key
Include your API key as a Bearer token in the Authorization header of every request:
curl -X GET \
https://api.bloffee.com/v1/urls \
-H "Authorization: Bearer YOUR_API_KEY"Available Endpoints
The GEO-Score API provides endpoints for submitting URLs for analysis, retrieving results, triggering re-analyses, and comparing multiple URLs. Here is a summary of all available endpoints:
GET/urls
Retrieve a paginated list of all analyzed URLs in your account.
GET https://api.bloffee.com/v1/urls?page=1&limit=50GET/urls/:id
Get the full analysis results for a specific URL by its unique ID.
GET https://api.bloffee.com/v1/urls/abc123POST/urls
Submit a new URL for GEO analysis. Returns the analysis ID for polling results.
POST https://api.bloffee.com/v1/urlsPUT/urls/:id/refresh
Trigger a fresh re-analysis of a previously analyzed URL.
PUT https://api.bloffee.com/v1/urls/abc123/refreshGET/compare
Compare GEO scores and factor breakdowns across multiple URLs side by side.
GET https://api.bloffee.com/v1/compare?urls=id1,id2,id3Code Examples
Get started quickly with these ready-to-use code examples in popular programming languages. Copy, paste, and customize for your specific use case.
JavaScript (Node.js)
const fetch = require('node-fetch');
const analyzeURL = async (url) => {
const response = await fetch('https://api.bloffee.com/v1/urls', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({ url })
});
const data = await response.json();
console.log('GEO Score:', data.data.geoScore);
return data;
};
analyzeURL('https://example.com/my-page');Python
import requests
def analyze_url(url):
headers = {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
}
response = requests.post(
'https://api.bloffee.com/v1/urls',
headers=headers,
json={'url': url}
)
data = response.json()
print(f"GEO Score: {data['data']['geoScore']}")
return data
analyze_url('https://example.com/my-page')PHP
<?php
$url = 'https://example.com/my-page';
$data = array('url' => $url);
$options = array(
'http' => array(
'header' => "Authorization: Bearer YOUR_API_KEY
" .
"Content-Type: application/json
",
'method' => 'POST',
'content' => json_encode($data)
)
);
$context = stream_context_create($options);
$result = file_get_contents(
'https://api.bloffee.com/v1/urls',
false,
$context
);
$response = json_decode($result, true);
echo "GEO Score: " . $response['data']['geoScore'];
?>Webhooks
Webhooks allow GEO-Score to push real-time notifications to your server whenever important events occur. Instead of polling the API for updates, configure a webhook URL and receive instant callbacks.
Setting Up Webhooks
Configure your webhook endpoint in Dashboard > Settings > Webhooks. You can select which events trigger notifications and set a custom signing secret for payload verification.
- analysis.complete Fired when a URL analysis finishes processing and results are available.
- score.changed Fired when a re-analyzed URL shows a significant GEO Score change (delta > 5 points).
- report.generated Fired when a scheduled or on-demand report is ready for download.
- url.added Fired when a new URL is added to your account for tracking.
Example Webhook Payload
{
"event": "analysis.complete",
"timestamp": "2025-01-10T12:00:00Z",
"data": {
"url_id": "abc123",
"url": "https://example.com/page",
"geoScore": 85,
"previousScore": 78,
"factors": {
"readability": 90,
"comprehensiveness": 82,
"aiOptimization": 85
}
}
}Automation Ideas
- β’Automatically analyze every new blog post published in your CMS before it goes live
- β’Set up Slack notifications when any tracked URL drops below a GEO Score threshold
- β’Generate weekly PDF reports and email them to your clients or stakeholders
- β’Build a custom dashboard that combines GEO Score data with your analytics platform
- β’Trigger re-analysis after content updates to measure the impact of your optimizations
- β’Create a pre-publish checklist that requires a minimum GEO Score before content goes live
Third-Party Integrations
GEO-Score integrates with popular tools and platforms to fit seamlessly into your existing workflow. Use our native integrations or build your own using the API.
Zapier
Connect GEO-Score to 5,000+ apps. Trigger Zaps on analysis completion, score changes, or new URLs added to your account.
WordPress
Install the GEO-Score plugin to analyze pages directly from the WordPress editor. See real-time GEO scores as you write and publish.
Slack
Receive instant Slack notifications for score changes, completed analyses, and weekly summary reports in your chosen channel.
Google Sheets
Automatically sync GEO Score data to Google Sheets for custom reporting, trend analysis, and easy sharing with your team.
HubSpot
Enrich your HubSpot content strategy with GEO Score data. Track AI visibility alongside your existing marketing metrics.
Google Analytics
Correlate GEO Score improvements with organic traffic changes. See how AI search optimization impacts your real-world traffic.
Rate Limits
API rate limits are based on your subscription plan. Requests exceeding your rate limit will receive a 429 response with a Retry-After header indicating when you can resume.
Starter
100
requests per hour
Pro
1,000
requests per hour
Enterprise
Custom
contact us for limits
Rate limits reset on a rolling one-hour window. Burst requests up to 2x your hourly limit are allowed for short periods. Contact support if you need higher limits.
Next Steps
Ready to get started? Generate your API key from the dashboard settings page and try the code examples above. Our API documentation includes detailed request and response schemas for every endpoint.
For advanced use cases, explore our webhook system to build event-driven integrations. Use the POST /urls endpoint to submit pages for analysis and the GET /urls/:id endpoint to retrieve detailed results.