[ API ]
API & Agent Integration
GEO audits for your apps, tools, and AI agents. REST API + MCP server.
Overview
Base URL — https://xanlens.com/api/v1
Authentication — None required. Payment via x402.
Payment — Pro Audit + GEO Skill $0.99 USDC (80% launch discount, Base network via x402)
Format — JSON in, JSON out
Audit Flow (3 Steps)
XanLens uses a multi-step audit flow. The client controls the pace of prompt firing to stay within rate limits.
Step 1: Auto-Detect Brand
curl -X POST https://xanlens.com/api/v1/audit/detect \
-H "Content-Type: application/json" \
-d '{"website": "stripe.com"}'
// Response:
{
"brand": "Stripe",
"industry": "payment processing",
"competitors": ["PayPal", "Square", "Adyen"],
"website": "https://stripe.com"
}Step 2: Get Audit Plan
curl -X POST https://xanlens.com/api/v1/audit \
-H "Content-Type: application/json" \
-d '{
"brand": "Stripe",
"industry": "payment processing",
"competitors": ["PayPal", "Square"],
"website": "https://stripe.com"
}'
// Response:
{
"status": "ready",
"job_id": "abc-123",
"plan": [
{"engine": "gemini", "prompt": "What is Stripe?", "promptIndex": 0},
{"engine": "gpt4o", "prompt": "Best payment tools", "promptIndex": 1}
// ... more prompts
],
"total": 80,
"prompt_url": "/api/v1/audit/prompt",
"poll_url": "/api/v1/audit/status?jobId=abc-123"
}Free tier (X-Source: website header): 20 prompts on Gemini. Pro/API: 80+ prompts across all 7 engines with category, discovery, and competitor queries.
Step 3: Fire Prompts + Poll Status
curl -X POST https://xanlens.com/api/v1/audit/prompt \
-H "Content-Type: application/json" \
-d '{"jobId": "abc-123", "engine": "gemini", "prompt": "What is Stripe?", "promptIndex": 0}'
// Response:
{"ok": true, "engine": "gemini", "promptIndex": 0, "hasResponse": true, "done": 1}
// After all prompts fired:
curl "https://xanlens.com/api/v1/audit/status?jobId=abc-123"
// Returns full audit report with scores, engines, blind spots, citations, etc.Additional Endpoints
curl "https://xanlens.com/api/v1/audit/technical?url=https://stripe.com&brand=Stripe&industry=payments"
// Returns: robots.txt analysis (13 AI crawlers), llms.txt check,
// Lighthouse scores, social proof (Wikipedia/Crunchbase/GitHub/LinkedIn),
// Google Autocomplete demand signalscurl "https://xanlens.com/api/v1/audit/aio?url=https://stripe.com"
// Returns: AIO score, 7 category breakdowns (structured data, schema,
// page structure, navigation, content balance, metadata, AI crawlers),
// schemas found, recommendationscurl "https://xanlens.com/api/v1/audit/seo-score?brand=Stripe&industry=payments&website=stripe.com"
// Returns: Traditional search visibility score (via Tavily),
// brand mentions in search results, top 3 ranking check.
// Compare with GEO score to show the gap.curl "https://xanlens.com/api/v1/audit/content-optimizer?url=https://stripe.com"
// Returns: Content AI-friendliness score, headings/FAQ/schema/
// citation-worthiness/entity-density subscores, recommendations.
// How well your content is structured for AI extraction.Free vs Pro vs GEO Skill
| Feature | Free | Pro ($0.99) | Pro + GEO Skill ($0.99) |
|---|---|---|---|
| AI Engines | Gemini | All 7 | All 7 |
| Prompts tested | ~23 | ~119 | ~119 |
| SEO vs GEO comparison | ✓ | ✓ | ✓ |
| Technical health (Lighthouse) | ✓ | ✓ | ✓ |
| AI crawler check | ✓ | ✓ | ✓ |
| Authority sources | ✓ | ✓ | ✓ |
| Search demand signals | ✓ | ✓ | ✓ |
| Persona analysis | — | ✓ | ✓ |
| Content AI-friendliness | — | ✓ | ✓ |
| Competitor ranking | — | ✓ | ✓ |
| Trend tracking | — | ✓ | ✓ |
| Search volume per prompt | — | — | ✓ |
| Generated content | — | — | ✓ |
| Seed citations | — | — | ✓ |
Quick Start
import requests, time
BASE = "https://xanlens.com/api/v1"
# Detect brand
brand_info = requests.post(f"{BASE}/audit/detect", json={"website": "acme.com"}).json()
# Get plan
plan = requests.post(f"{BASE}/audit", json=brand_info).json()
# Fire prompts
for task in plan["plan"]:
requests.post(f"{BASE}/audit/prompt", json={"jobId": plan["job_id"], **task})
time.sleep(7) # Rate limit: ~10 RPM for free tier
# Get results
result = requests.get(f"{BASE}/audit/status?jobId={plan['job_id']}").json()
print(f"GEO Score: {result['overall_score']}/100 ({result['grade']})")const BASE = "https://xanlens.com/api/v1";
const delay = ms => new Promise(r => setTimeout(r, ms));
const brand = await fetch(`${BASE}/audit/detect`, {
method: "POST", headers: {"Content-Type": "application/json"},
body: JSON.stringify({website: "acme.com"})
}).then(r => r.json());
const plan = await fetch(`${BASE}/audit`, {
method: "POST", headers: {"Content-Type": "application/json"},
body: JSON.stringify(brand)
}).then(r => r.json());
for (const task of plan.plan) {
await fetch(`${BASE}/audit/prompt`, {
method: "POST", headers: {"Content-Type": "application/json"},
body: JSON.stringify({jobId: plan.job_id, ...task})
});
await delay(7000);
}
const result = await fetch(`${BASE}/audit/status?jobId=${plan.job_id}`).then(r => r.json());
console.log(`GEO Score: ${result.overall_score}/100 (${result.grade})`);x402 Payment Protocol
XanLens uses x402 for machine-native payments. No API keys. No accounts. Pro Audit + GEO Skill $0.99 USDC on Base (80% launch discount).
Flow:
1. Send request without X-Source: website header (triggers paid tier)
2. Server returns 402 with payment details if free limit exceeded
3. Agent sends USDC on Base network
4. Retry with transaction hash — server verifies and returns data
Wallet:
0xB33FF8b810670dFe8117E5936a1d5581A05f350D (Base · USDC)
MCP Server (AI Agents)
For AI agents using Model Context Protocol, XanLens is available as a native tool. Your agent can call GEO audits without leaving its workflow.
Install:
openclaw skills install xanlens-auditCompatible with OpenClaw, Claude Desktop, Cursor, and any MCP-compatible framework. The agent gets a xanlens_audit tool that accepts brand, website, and industry parameters.