Visovra API
Documentation
Programmatically trigger GEO analyses, retrieve live GEO Scores, and integrate Visovra's AI Engineering Intelligence into your own tools, dashboards, CI pipelines, and agency workflows.
Authentication
All API requests must include your API key in the Authorization header using Bearer token format. You can find your API key in Account Settings.
Authorization: Bearer viso_xxxxxxxxxxxxxxxxxxxxxxxx
Rate Limits & Plan Limits
API access is gated by plan. Rate limits are enforced per API key per rolling 24-hour window.
| Plan | API Rate Limit | Pages per Audit | Audit Reports | API Access |
|---|---|---|---|---|
| Trial / Standard | PDF + GEO | Site crawl | Standard: 50/mo | — |
| Pro | 500 req/day | 50+ | Unlimited | ✓ |
| Agency | 2,000 req/day | 200 | Unlimited | ✓ |
| Enterprise | Unlimited | 500+ | Unlimited | ✓ |
Endpoints
All endpoints accept and return JSON. Errors are returned with HTTP status codes and a JSON body containing an error message.
/api/v1/auditsStart a new GEO analysis
Enqueues a GEO analysis — live citation checks across ChatGPT, Gemini, Perplexity, Claude, Copilot, DeepSeek and Google AI Overviews, plus the 101-check technical audit. Returns the analysis ID to poll. Alias: POST /api/audit/start.
Request Body
{ "url": "https://example.com" }Response
{ "auditId": "cuid", "status": "pending", "pollUrl": "https://visovra.com/api/v1/audits/cuid" }Example cURL
curl -X POST https://visovra.com/api/v1/audits \
-H "Authorization: Bearer viso_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com"}'/api/v1/audits/:idGet GEO analysis result
Returns GEO Score (0–100), per-platform citation data and technical scores. Alias: GET /api/audit/:id.
Response
{ "auditId": "...", "status": "completed", "scores": { "overall": 78, "geo": 64 } }Example cURL
curl https://visovra.com/api/v1/audits/AUDIT_ID \ -H "Authorization: Bearer viso_YOUR_API_KEY"
/api/v1/auditsList all GEO analyses
Returns analyses for sites in your organisation, newest first. Pagination via ?page=1&limit=20. Alias: GET /api/audit/list.
Response
{ "audits": [{ "id": "...", "url": "...", "status": "completed", "overallScore": 78, "geoScore": 64 }], "page": 1, "limit": 20, "total": 1 }Example cURL
curl "https://visovra.com/api/v1/audits?page=1&limit=20" \ -H "Authorization: Bearer viso_YOUR_API_KEY"
/api/v1/audits/:idDelete an audit
Permanently deletes an audit and its findings. Alias: DELETE /api/audit/:id.
Response
{ "success": true }Example cURL
curl -X DELETE https://visovra.com/api/v1/audits/AUDIT_ID \ -H "Authorization: Bearer viso_YOUR_API_KEY"
Error Codes
Visovra uses standard HTTP status codes. All errors include a JSON body with an error key.
| Status | Meaning | Description |
|---|---|---|
| 200 | OK | Request succeeded. |
| 400 | Bad Request | Invalid parameters or missing required fields. |
| 401 | Unauthorized | Missing or invalid API key. |
| 403 | Forbidden | Your plan does not include API access. |
| 404 | Not Found | The requested resource does not exist. |
| 429 | Too Many Requests | Rate limit exceeded. Retry after the window resets. |
| 500 | Server Error | Something went wrong on our end. Contact support if this persists. |
Ready to integrate?
Get your API key from the settings page. Pro, Agency, and Enterprise plans include full REST API access to GEO analyses, scores, webhooks, and AI Engineering Intelligence data.