[ 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 + Content Fixes $0.99 USDC (80% launch discount, Base network via x402)
Format — JSON in, JSON out
Audit Flow (4 Steps)
Always start with detect — it returns keywords, features, and suggested prompts that generate 50+ extra queries. Skipping it means a weaker audit.
Step 1: Auto-Detect Brand (required — ~50s)
curl -X POST https://xanlens.com/api/v1/audit/detect \
-H "Content-Type: application/json" \
-d '{"website": "stripe.com"}'
// Response (pass ALL fields to Step 2):
{
"brand": "Stripe",
"industry": "payment processing",
"competitors": ["PayPal", "Square", "Adyen"],
"keywords": ["online payments", "payment gateway", ...],
"features": ["Developer-first API", "Global coverage", ...],
"suggestedPrompts": ["best payment API for startups", ...]
}Step 2: Submit Audit (pass all detect fields)
curl -X POST https://xanlens.com/api/v1/audit \
-H "Content-Type: application/json" \
-d '{
"website": "https://stripe.com",
"brand": "Stripe",
"industry": "payment processing",
"competitors": ["PayPal", "Square"],
"keywords": ["online payments", "payment gateway"],
"features": ["Developer-first API"],
"suggestedPrompts": ["best payment API for startups"],
"coupon": "GEO-XXXX-XXXX"
}'
// Response:
{
"status": "ready",
"job_id": "abc-123",
"detect_quality": "full",
"total": 132,
"execute_url": "/api/v1/audit/execute",
"poll_url": "/api/v1/audit/status?jobId=abc-123"
}
// If detect_quality is "partial" or "failed" — call detect separately first~132 prompts when detect data is complete. Fewer if keywords/features are missing.
Step 3: Execute + Poll
curl -X POST https://xanlens.com/api/v1/audit/execute \
-H "Content-Type: application/json" \
-d '{"jobId": "abc-123"}'
// Response:
{"ok": true, "total": 132, "dispatched": 132}
// 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/status?jobId=abc-123"
// Returns: Complete audit report with scores, engines breakdown,
// blind spots, citations, competitor analysis, and recommendationscurl -X POST "https://xanlens.com/api/v1/audit/share-verify" \
-H "Content-Type: application/json" \
-d '{"jobId": "abc-123", "tweetUrl": "https://x.com/user/status/123"}'
// Returns: Verification status and discount code for next auditcurl "https://xanlens.com/api/v1/audit/fixes?jobId=abc-123"
// Returns: Generated GEO content including blog posts, FAQ schema,
// JSON-LD markup, llms.txt, and seed citations for improvementcurl -X POST https://xanlens.com/api/v1/audit/detect \
-H "Content-Type: application/json" \
-d '{"website": "stripe.com"}'
// Returns: Detected brand name, industry, and competitor list
// for use in audit requestsPro Audit + Content Fixes — $0.99
- ✓ All active AI engines (Gemini, Grok, DeepSeek — more coming online)
- ✓ ~132 prompts across category, discovery, and competitor queries
- ✓ SEO vs GEO comparison
- ✓ Technical health (Lighthouse + AI crawler check)
- ✓ Authority source mapping
- ✓ Search demand signals
- ✓ Persona analysis + content AI-friendliness
- ✓ Competitor ranking
- ✓ Trend tracking
- ✓ AI-generated content fixes (approve/reject/edit from dashboard)
- ✓ Generated content + seed citations
Pay with USDC on Base (x402), card at xanlens.com/dashboard, or coupon code.
Quick Start
import requests, time
BASE = "https://xanlens.com/api/v1"
# Step 1: Detect brand (required — ~50s)
detected = requests.post(f"{BASE}/audit/detect", json={"website": "acme.com"}).json()
# Step 2: Submit audit with all detect fields + coupon
audit = requests.post(f"{BASE}/audit", json={**detected, "coupon": "GEO-XXXX-XXXX"}).json()
job_id = audit["job_id"]
# Step 3: Execute (fires all prompts server-side)
requests.post(f"{BASE}/audit/execute", json={"jobId": job_id})
# Step 4: Poll for results
while True:
result = requests.get(f"{BASE}/audit/status?jobId={job_id}").json()
if result["status"] == "complete":
break
print(f"Progress: {result['done']}/{result['total']}")
time.sleep(15)
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));
// Step 1: Detect
const detected = await fetch(`${BASE}/audit/detect`, {
method: "POST", headers: {"Content-Type": "application/json"},
body: JSON.stringify({website: "acme.com"})
}).then(r => r.json());
// Step 2: Submit with all detect fields
const audit = await fetch(`${BASE}/audit`, {
method: "POST", headers: {"Content-Type": "application/json"},
body: JSON.stringify({...detected, coupon: "GEO-XXXX-XXXX"})
}).then(r => r.json());
// Step 3: Execute
await fetch(`${BASE}/audit/execute`, {
method: "POST", headers: {"Content-Type": "application/json"},
body: JSON.stringify({jobId: audit.job_id})
});
// Step 4: Poll
let result;
do {
await delay(15000);
result = await fetch(`${BASE}/audit/status?jobId=${audit.job_id}`).then(r => r.json());
} while (result.status !== "complete");
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 + Content Fixes $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
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-geoCompatible with OpenClaw, Claude Desktop, Cursor, and any MCP-compatible framework. The skill gives your agent the full GEO audit playbook — run audits, interpret results, draft fixes, and push content.
VIEW ON CLAWHUB ↗