LIVEContinuously measuring AI visibility across 6 enginesMethodology →
REST API v1

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.

Base URL: https://visovra.com
Get API Key →OpenAPI spec →

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.

Request header
Authorization: Bearer viso_xxxxxxxxxxxxxxxxxxxxxxxx
⚠️ Keep your API key secret. Never expose it in client-side JavaScript or public repositories. Use environment variables to store it securely.

Rate Limits & Plan Limits

API access is gated by plan. Rate limits are enforced per API key per rolling 24-hour window.

Trial / Standard
API Rate Limit
PDF + GEO
Pages per Audit
Site crawl
Audit Reports
Standard: 50/mo
API Access
Pro
API Rate Limit
500 req/day
Pages per Audit
50+
Audit Reports
Unlimited
API Access
Agency
API Rate Limit
2,000 req/day
Pages per Audit
200
Audit Reports
Unlimited
API Access
Enterprise
API Rate Limit
Unlimited
Pages per Audit
500+
Audit Reports
Unlimited
API Access

Endpoints

All endpoints accept and return JSON. Errors are returned with HTTP status codes and a JSON body containing an error message.

POST🔑 Auth required/api/v1/audits

Start 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

shell
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"}'
GET🔑 Auth required/api/v1/audits/:id

Get 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

shell
curl https://visovra.com/api/v1/audits/AUDIT_ID \
  -H "Authorization: Bearer viso_YOUR_API_KEY"
GET🔑 Auth required/api/v1/audits

List 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

shell
curl "https://visovra.com/api/v1/audits?page=1&limit=20" \
  -H "Authorization: Bearer viso_YOUR_API_KEY"
DELETE🔑 Auth required/api/v1/audits/:id

Delete an audit

Permanently deletes an audit and its findings. Alias: DELETE /api/audit/:id.

Response

{ "success": true }

Example cURL

shell
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.

StatusMeaningDescription
200OKRequest succeeded.
400Bad RequestInvalid parameters or missing required fields.
401UnauthorizedMissing or invalid API key.
403ForbiddenYour plan does not include API access.
404Not FoundThe requested resource does not exist.
429Too Many RequestsRate limit exceeded. Retry after the window resets.
500Server ErrorSomething 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.