Quick Start
Analyze any URL in under a minute.
- 1
Get your API key
Sign up at octo-boost.com — new accounts get 100 free credits, no card required.
- 2
Run your first analysis
curl -X POST https://octo-boost.com/api/seo/analyze/batch \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"urls": ["https://example.com"]}' - 3
Read the compact result
The response is LLM-friendly — scores, flags, and fix suggestions, not raw HTML. A full audit fits in a few hundred tokens.
Authentication
All endpoints except GET /api/seo/analyzers require an API key.
Pass your API key as a Bearer token in the Authorization header:
Authorization: Bearer YOUR_API_KEYErrors: 401 — invalid or missing key · 402 — insufficient credits · 429 — rate limit exceeded
Rate limit: 60 requests / 60s per API key
Endpoints
| Endpoint | Method | Auth | Cost |
|---|---|---|---|
| /api/seo/analyze/batch | POST | Required | 3 credits / URL |
| /api/seo/scan/domain | POST | Required | 1 credit / scan |
| /api/seo/analyzers | GET | Optional | Free |
| /api/reports | GET | Required | Free |
/api/seo/analyze/batch3 credits per URLAnalyze up to 20 URLs concurrently. Only successful analyses are charged.
Request body
{
"urls": [
"https://example.com",
"https://example.com/about",
"https://example.com/pricing"
]
}Response shape
{
"results": [
{
"url": "https://example.com",
"analyzedAt": "2025-01-15T12:00:00.000Z",
"score": 82,
"scores": { "seo": 90, "geo": 74, "accessibility": 88, "performance": 70 },
"geoScore": {
"score": 74,
"subMetrics": {
"technicalAccess": 0.9,
"contentStructure": 0.7,
"entityClarity": 0.65,
"authoritySignals": 0.6
},
"citationLikelihood": 0.68,
"ragReadiness": 0.72,
"whyThisMattersForAgents": "Content structure is the weakest signal — AI agents struggle to extract key entities.",
"llmAssessment": "Good technical access, but entity clarity and authority signals need improvement."
},
"issues": [
{
"key": "meta-description",
"level": "warning",
"summary": "Meta description is too short (42 chars)",
"fix": "Expand to 120–160 characters"
},
{
"key": "alt-tags",
"level": "error",
"summary": "3 images are missing alt text",
"count": 3,
"examples": [
{ "where": "<img src=\"/hero.jpg\">" },
{ "where": "<img src=\"/team.png\">" }
],
"fix": "Add descriptive alt attributes to all img elements"
}
],
"passed": ["title-tag", "canonical", "robots-txt", "schema-markup", "open-graph"]
},
{
"url": "https://example.com/about",
"analyzedAt": "2025-01-15T12:00:00.000Z",
"error": "Page returned HTTP 404 (Not Found)"
}
],
"total_urls": 3,
"successful": 2,
"failed": 1,
"total_cost": 6,
"remaining_credits": 94
}/api/seo/scan/domain1 credit / scanCrawl a domain and return a list of SEO-relevant URLs — useful before running a batch analysis.
Request body
{
"domain": "example.com",
"maxPages": 20,
"excludePatterns": ["/blog/*"],
"respectRobotsTxt": true,
"defaultLanguageOnly": true
}Response shape
{
"success": true,
"message": "Found 120 URLs, filtered to 48 SEO-relevant pages",
"data": {
"urls": ["https://example.com", "https://example.com/about", "..."],
"totalFound": 120
},
"cost": 1,
"remaining_credits": 99
}/api/seo/analyzersFreeList all available analyzers and their categories. Pass your API key to see your custom weights.
Example
curl https://octo-boost.com/api/seo/analyzers \
-H "Authorization: Bearer YOUR_API_KEY"Response shape
{
"analyzers": [
{ "key": "title-tag", "categories": ["seo"], "weight": 1 },
{ "key": "meta-description", "categories": ["seo"], "weight": 1 },
{ "key": "schema-markup", "categories": ["geo", "seo"], "weight": 1.5 }
],
"categories": ["seo", "geo", "accessibility", "performance", "ux"]
}/api/reportsFreeRetrieve your analysis history. Returns the latest report per URL. Supports filtering.
Query params
| Param | Description |
|---|---|
| url | Filter by URL substring |
| category | Filter results by category (e.g. seo, geo) |
| analyzer | Filter results by analyzer key |
Response shape
{
"reports": [
{
"id": "clx1234...",
"url": "https://example.com",
"analyzedAt": "2025-01-15T12:00:00.000Z",
"statusCode": 200,
"score": { "overall": 82, "seo": 90, "geo": 74 },
"geoScore": { "overall": 74 },
"passing": ["title-tag", "canonical", "robots-txt"],
"todos": [
{ "key": "meta-description", "level": "warning", "summary": "...", "fixes": [...] }
]
}
]
}MCP Server
Use OctoBoost directly inside AI agents and MCP clients like Claude Desktop or Cursor — no code required.
The octoboost-mcp-server package exposes three tools to any MCP-compatible client: list_analyzers, analyze, and scan_domain.
{
"mcpServers": {
"octoboost-seo": {
"command": "npx",
"args": ["-y", "octoboost-mcp-server"],
"env": {
"OCTOBOOST_API_KEY": "YOUR_API_KEY"
}
}
}
}Config file locations:
- Claude Desktop:
~/Library/Application Support/Claude/claude_desktop_config.json - Cursor:
~/.cursor/mcp.json - VS Code (Copilot):
.vscode/mcp.json
Available tools
list_analyzersList all available analyzers and categories. Good first call to verify connectivity.
analyzeRun a full SEO/GEO/accessibility audit on a URL. Returns compact, LLM-friendly results.
scan_domainCrawl a domain and return SEO-relevant URLs. Use before batch analyzing a whole site.