API
Three on-ramps. One scored report.
Ounie accounts hit the REST endpoint with a bearer token. AI assistants connect over a native MCP server and get a tool surface. One-off scripts skip the account and pay per probe via x402 in USDC. All three run the same audit and return the same shape: a 0–100 visibility score, the probe × model matrix, share of voice, the technical GEO checklist, and prioritized recommendations.
POST
/api/auditauth: Bearer or cookie
Run a GEO audit
Synchronous (~30–60s). Crawls the page, probes the AI model panel with buyer-intent prompts, scores everything, and returns the full report. Reserves credits up front and settles on completed probes.
Request
{
"url": "https://acme.com",
"brand": "Acme", // the name to detect in AI answers
"topic": "project management software",
"probe_count": 6, // 3–20, default 6
"prompts": [ ... ], // optional custom buyer prompts (one probe each)
"competitors": ["Asana", "Linear"] // optional, tracked for share of voice
}Response
{
"ok": true,
"audit_id": "a1b2c3d4-...",
"credits_reserved": 24,
"credits_spent": 24,
"score": 72,
"report": { /* full report — see the schema panel */ }
}GET
/api/jobs/{id}auth: Bearer or cookie
Fetch an audit
Returns a stored audit row and its full report by id, including the probe × model matrix, share of voice, technical checks, and recommendations.
Response
{
"audit": {
"id": "a1b2c3d4-...", "url": "https://acme.com", "brand": "Acme",
"status": "succeeded", "score": 72,
"report": { ... }, "credits_spent": 24, ...
}
}GET
/api/jobs/{id}/export?format=csv|jsonauth: Bearer or cookie
Export the matrix
Streams the probe × model matrix. CSV is spreadsheet-ready; JSON returns the full normalized report.
POST
/api/x402/auditauth: none · x402
Pay-per-call (agents)
No account, no API key. Returns 402 with payment terms; sign and retry with the X-Payment header ($0.048 per probe, USDC on Base). Synchronous — returns the full report.
Request
{
"url": "https://acme.com",
"brand": "Acme",
"topic": "project management software",
"probe_count": 6
}Response
// 402 Payment Required (initial)
{ "x402Version": 1, "accepts": [{ "scheme":"exact", "network":"eip155:8453", "maxAmountRequired": "288000", ... }] }
// 200 OK (after a settled X-Payment header)
{ "ok": true, "score": 72, "report": { ... }, "payment": { "tx_hash": "0x..." } }HTTP
/api/mcpMCP · Streamable HTTP + SSE
Model Context Protocol server
Drop the GEO Radar tool surface into any MCP host — Cursor, Claude desktop, ChatGPT custom GPTs, the Ounie AI Team, or the AI SDK. Seven tools: run_geo_audit, get_audit, export_audit, list_audits, get_credit_balance, get_pricing, whoami. Auth: a Bearer API key minted at /dashboard/api-keys, your ounie.com master key (ounie_live_…), or the key on ?api_key= for hosts that can't set headers. Calls draw your Ounie credits; reserve-before-run refuses with a 402 and a top-up link when the balance is short, so an agent can never overdraw.
Request
// .cursor/mcp.json (Cursor / any Streamable HTTP host)
{
"mcpServers": {
"geo-radar": {
"url": "https://geo.ounie.com/api/mcp",
"headers": { "Authorization": "Bearer geo_live_..." }
}
}
}
// Or the header-less connect string:
// https://geo.ounie.com/api/mcp?api_key=geo_live_...Response
// Tool call: run_geo_audit
{
"url": "https://acme.com",
"brand": "Acme",
"topic": "project management software",
"probe_count": 6
}
→ { "ok": true, "audit_id": "...", "credits_spent": 24, "score": 72,
"share_of_voice": [...], "failing_checks": [...], "recommendations": [...] }MCP tools
Everything an agent needs to audit and report.
run_geo_auditRun an audit (url, brand, topic, probe_count, prompts, competitors). Charged per completed probe.get_auditFetch a stored audit's full report by id.export_auditExport the probe × model matrix as summary, csv, or json.list_auditsList recent audits on the account.get_credit_balanceSpendable Ounie credits + approximate probes remaining.get_pricingCredit and x402 pricing. No auth required.whoamiThe authenticated key's owner metadata.// One request. Synchronous — the full report comes back.
const res = await fetch("https://geo.ounie.com/api/audit", {
method: "POST",
headers: {
"Authorization": "Bearer ${GEO_API_KEY}",
"Content-Type": "application/json",
},
body: JSON.stringify({
url: "https://acme.com",
brand: "Acme",
topic: "project management software",
probe_count: 6,
competitors: ["Asana", "Linear"],
}),
});
const { score, credits_spent, report } = await res.json();
// → score: 0–100, report.probes[] = the probe × model matrixReport schema
What every audit returns.
{
"url": "https://acme.com",
"brand": "Acme",
"topic": "project management software",
"panel": ["GPT-4o mini", "Gemini", "Claude"],
"score": 72, // 0–100 blended visibility
"awarenessScore": 0.83, // do models name you (0–1)
"probes": [{
"prompt": "best pm tool for agencies?",
"mentionRate": 0.67,
"bestRank": 2,
"results": [
{ "model": "GPT-4o mini", "mentioned": true,
"rank": 2, "competitors": ["Asana"] }
]
}],
"shareOfVoice": [
{ "name": "Acme", "mentions": 4, "isYou": true }
],
"technical": {
"score": 0.6,
"checks": [{ "id": "schema", "label": "schema.org",
"pass": false, "detail": "..." }]
},
"recommendations": ["Add an FAQPage block ...", "..."],
"generatedAt": "2026-07-13T..."
}Notes
- · Pricing: 4 credits per probe (default 6 = 24 cr ≈ $0.24)
- · Probes per audit: 3–20
- · x402: $0.048 per probe, USDC on Base (eip155:8453)
- · Concurrency: up to 5 running audits per account