REST API to add domains, run audits, submit URLs for indexing, and read AI visibility and ranking data — from any stack.
// Start an audit on a verified domain, then poll until it finishes.
// orgId: GET /api/v1/orgs | domainId: GET /api/v1/orgs/:orgId/domains
const API = 'https://api.seoventra.com/api/v1';
const headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer sv_live_xxxxxxxxxxxx'
};
// Returns 202 right away; the audit runs in the background
const start = await fetch(API + '/orgs/' + orgId + '/audits', {
method: 'POST',
headers,
body: JSON.stringify({ domainId })
});
const { data: { auditId } } = await start.json();
// Every successful call counts toward your monthly quota, so poll sparingly
const poll = setInterval(async () => {
const res = await fetch(API + '/orgs/' + orgId + '/audits/' + auditId, { headers });
const { data } = await res.json();
if (data.status === 'completed') {
clearInterval(poll);
console.log('SEO score:', data.seo_score);
console.log('Issues found:', data.issues_found);
} else if (data.status === 'failed') {
clearInterval(poll);
console.error(data.error_message);
}
}, 15000);/api/v1/orgs/:orgId/domains/api/v1/orgs/:orgId/domains/api/v1/orgs/:orgId/domains/:domainId/verify/api/v1/orgs/:orgId/audits/api/v1/orgs/:orgId/audits/:auditId/api/v1/orgs/:orgId/audits/:auditId/issues/api/v1/orgs/:orgId/indexing/submit/api/v1/orgs/:orgId/indexing/stats/api/v1/orgs/:orgId/domains/:domainId/ai-monitor/latest/api/v1/orgs/:orgId/rank-tracking/summaryCreate multiple keys per workspace, up to the limit on your plan. Pick a read, write or admin scope for each key, and revoke any key instantly.
Every successful call counts against your monthly plan quota. Over the limit, the API returns HTTP 402 with used, limit and plan in the response. The dashboard shows when each key was last used.
Audits run on a background queue. Start one, get an auditId back immediately, then poll for the status and results.
Get notified by email, Discord, Telegram or webhook when indexing fails, a URL is blocked, or an audit SEO score drops.
Send your key as an Authorization: Bearer header over HTTPS. Read keys can only make GET requests; anything outside a key scope returns HTTP 403 with code INSUFFICIENT_SCOPE.
Request bodies and parameters for domains, indexing and audits are in the docs.
API access is included on Pro Lite and above. Create your key in the dashboard — no waitlist, no approval required.