AEO Audit API for Developers
Run AI citation audits programmatically. One endpoint, structured JSON, actionable fixes. The only self-serve AEO API under $100/mo. No sales call. No enterprise gate.
curl -X POST https://webmole.ai/api/v1/audit \
-H "Authorization: Bearer wbm_your_api_key" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com"}'
# → {"score": 73, "factors": [...], "fixSuggestions": [...]}100 requests/day on Starter · Bearer token auth · JSON responses · Resets midnight UTC
How it works
Get an API key
Sign up and go to Dashboard → Settings → API Keys. Click Generate API Key. Keys start with wbm_ and are scoped to your account.
Authorization: Bearer wbm_your_api_key_here
POST your URL
Send a POST request to /api/v1/audit with a JSON body. That is the entire API surface — one endpoint, one required field.
curl -X POST https://webmole.ai/api/v1/audit \
-H "Authorization: Bearer wbm_your_api_key" \
-H "Content-Type: application/json" \
-d '{"url": "https://yoursite.com/page"}'Read structured JSON back
The response includes a 0–100 score, per-category breakdown, per-factor pass/fail results, and fix suggestions with copy-pasteable code blocks.
const data = await res.json()
console.log(data.score) // 73
console.log(data.fixSuggestions) // [{factorId, instruction, codeBlock}]Full response example
One payload. Score, per-factor breakdown, and prioritised fix suggestions — including the code to paste.
{
"url": "https://example.com",
"score": 73,
"categories": {
"answerReadiness": 80,
"structure": 65,
"authoritySignals": 70,
"technicalGEO": 75
},
"factors": [
{
"id": 1,
"name": "Structured Data (JSON-LD)",
"score": 15,
"max": 15,
"status": "pass",
"details": "Valid JSON-LD found with @type Organization"
},
{
"id": 2,
"name": "Meta Description",
"score": 0,
"max": 8,
"status": "fail",
"details": "No meta description found"
}
],
"fixSuggestions": [
{
"factorId": 2,
"factorName": "Meta Description",
"impact": "High",
"instruction": "Add a concise meta description (120-160 chars).",
"codeBlock": "<meta name=\"description\" content=\"Your page summary.\" />"
}
],
"scannedAt": "2026-03-17T12:00:00.000Z",
"rateLimit": {
"remaining": 99,
"limit": 100,
"resetAt": "2026-03-18T00:00:00.000Z"
}
}The only self-serve AEO API at this price
Every other AEO tool either has no API, gates it behind enterprise pricing, or requires a sales call. WebMole gives you API access from $29/mo, no negotiation required.
| Tool | API access | Entry price |
|---|---|---|
| WebMole | Self-serve, immediate | $29/mo |
| Otterly | No API | $29/mo |
| Peec | Enterprise beta only | €499+/mo |
| Profound | Sales call required | Custom |
| Cairrot | Self-serve (freemium) | Freemium |
Rate limits
Per API key per calendar day (UTC). Usage is returned in every response under rateLimit.remaining.
| Plan | Requests / day | Price |
|---|---|---|
| Starter | 100 / day | $29/mo |
| Pro | 500 / day | $49/mo |
| Agency | 2,000 / day | $99/mo |
Need more? Compare plans or contact us for custom volume.
Use cases
CI/CD integration
Gate deploys on AEO score. If your page drops below 60 after a content change, the pipeline fails before it ships.
# .github/workflows/aeo-check.yml
- name: Check AEO score
run: |
SCORE=$(curl -s -X POST https://webmole.ai/api/v1/audit \
-H "Authorization: Bearer $WBM_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"$DEPLOY_URL"}' | jq '.score')
[ "$SCORE" -ge 60 ] || exit 1Agency dashboards
Monitor 50 client domains from one API key. Pull scores nightly, store in your own DB, surface in your client-facing dashboard.
// Audit all client domains
const domains = ['client-a.com', 'client-b.com', 'client-c.com']
const results = await Promise.all(
domains.map(url =>
fetch('https://webmole.ai/api/v1/audit', {
method: 'POST',
headers: { 'Authorization': `Bearer ${apiKey}` },
body: JSON.stringify({ url: `https://${url}` }),
}).then(r => r.json())
)
)Custom tooling
Build your own AEO monitoring on top of WebMole's data layer. Webhooks, alerts, custom scoring — you own the logic.
import requests
# Weekly audit + alert if score drops
def audit_and_alert(url, threshold=65):
r = requests.post(
'https://webmole.ai/api/v1/audit',
headers={'Authorization': f'Bearer {API_KEY}'},
json={'url': url},
)
data = r.json()
if data['score'] < threshold:
send_slack_alert(url, data['score'])Prefer the command line?
The WebMole CLI wraps the API for one-off audits and continuous monitoring. No boilerplate required.
npm install -g @webmole/cli
# Run a one-off audit webmole audit https://example.com --json # Watch a URL and alert when score drops webmole watch https://example.com --interval 6h # Fail if score is below threshold (useful in CI) webmole audit https://example.com --threshold 70
Full CLI docs in the quickstart guide.
Common questions
What is the WebMole API?
The WebMole API lets you run AEO (Answer Engine Optimisation) audits programmatically. POST a URL, get back a structured JSON report with a 0–100 score, 12-factor analysis, and fix suggestions including JSON-LD code blocks.
How do I authenticate with the API?
Use Bearer token authentication. Add an Authorization header to every request: Authorization: Bearer wbm_your_api_key. Generate your key from Dashboard → Settings → API Keys. Keys start with wbm_ and are scoped to your account.
What does the API return?
The API returns a JSON object with a numeric score (0–100), category scores (answerReadiness, structure, authoritySignals, technicalGEO), per-factor results with score/max/status, and fixSuggestions with instruction and optional codeBlock for each failing factor.
Can I use the WebMole API in CI/CD pipelines?
Yes. The API returns an HTTP 200 with structured JSON. You can script it to fail deploys when score drops below a threshold. The quickstart guide at /guides/aeo-api-quickstart has a ready-to-use GitHub Actions YAML example.
What's the rate limit?
Starter: 100 requests/day. Pro: 500 requests/day. Agency: 2,000 requests/day. Limits reset at midnight UTC. Current usage is returned in every response under rateLimit.remaining. Free accounts cannot access the API — upgrade to Starter.
Start building with WebMole
Starter plan: 100 audits/day from $29/month. API key ready in 60 seconds.