Introduction
SEOVentra is a full-stack SEO operations platform for developers, agencies, and growth teams. It combines URL indexing automation, technical site audits, AI discoverability scoring, and analytics β all in a single workspace running on Cloudflare's global edge.
Quick start
Get your first URL indexed in under 5 minutes.
How it works
SEOVentra runs entirely on Cloudflare's edge network β no traditional servers. Here's how the stack fits together:
Plans & limits
All plans include full API access. Limits reset monthly on your billing date.
| Feature | Free | Pro | Business |
|---|---|---|---|
| Domains | 3 | 25 | Unlimited |
| URL submissions / mo | 500 | 5,000 | 50,000 |
| URL inspections / mo | 50 | 500 | 5,000 |
| SEO audits / mo | 5 | 50 | 500 |
| AI visibility scores / mo | 10 | 500 | 5,000 |
| Indexing history | 7 days | 12 months | 24 months |
| API access | β | β | β |
| Webhook alerts | β | β | β |
| Priority support | β | β | β |
Websites & verification
Before indexing or auditing, you must verify domain ownership. This links the domain to your organisation and enables GSC integration, IndexNow key generation, and crawling.
Verification methods
Domain statuses
- pending β domain added, awaiting verification
- verified β ownership confirmed, all features active
- failed β check failed; fix your DNS/tag and retry
URL indexing
The indexing engine submits URLs to search engines and tracks status over time through a job queue with automatic retries and exponential backoff.
Providers
Uses Google Search Console URL Inspection API. Requires GSC to be connected. Accurate but rate-limited by Google (~200 req/day per property).
Pings Bing, Yandex, Seznam, and api.indexnow.org in parallel. No user setup needed. Fast, free, no hard limits.
Job statuses
Sitemap management
When you add a sitemap, SEOVentra submits it to both Google Search Console and all IndexNow-compatible engines simultaneously β no separate steps needed.
- Add a sitemap URL in Indexing β Sitemaps. Bing, Yandex, and api.indexnow.org are pinged immediately.
- If GSC is connected, the sitemap is submitted to your GSC property in the same operation.
- Submission results are recorded per-endpoint so you can see which engines accepted it.
- Sitemaps can be removed at any time. Removal from SEOVentra does not delete from search engines.
URL lifecycle
The URL Lifecycle tab visualises the full state history of each URL from first submission to indexing. Click any URL to see every status transition, the provider used, and failure explanations with actionable fixes.
URLs don't always progress linearly β some skip directly to indexed, others stall at crawled. The lifecycle tracker shows exactly where each URL is stuck and why, with per-status fix recommendations.
SEO audits
The audit engine crawls your verified domain and produces a comprehensive technical SEO report with an overall score, six category sub-scores, a prioritised issue list, and AI-generated fix recommendations.
Score dimensions
Issue severity levels
AI visibility scoring
AI Visibility measures how likely your content is to be cited by AI-powered search engines β ChatGPT, Google AI Overviews, Perplexity, Claude, Bing Copilot, and You.com.
Scoring dimensions
Analytics & metrics
The Analytics page shows indexing velocity, URL status snapshots, quota usage, and monthly activity trends β all derived from server-side event logs with no client-side trackers.
- Indexing velocity β daily indexed URL count for the last 14 days. Red bars = β₯5% drop (regression alert).
- Regression detection β flags days where indexed count dropped by 5%+ and shows absolute URLs lost.
- URL status snapshot β current distribution of all URL statuses for a domain.
- Monthly quota usage β progress bars for URL submissions, audits, and AI scores vs plan limit.
- Monthly activity chart β stacked bars of all platform events grouped by month.
- Metrics snapshots stored up to 90 days for trend analysis.
Google Search Console
GSC integration enables URL inspection and sitemap submission to Google. It is optional but required for Google-specific indexing features.
Connecting GSC
From the Indexing page header, click "Connect GSC". You'll be redirected to Google's OAuth consent screen. We request two scopes only:
- webmasters.readonly β to inspect URL indexing status
- webmasters β to submit URLs and sitemaps
- We do NOT access search performance data, keyword rankings, clicks, or impressions
Token security
OAuth tokens are encrypted with AES-256 before storage. They are decrypted only at API call time and are never logged or exposed in plaintext. Revoke access any time from Google Account settings or from the SEOVentra dashboard β tokens are deleted immediately on revocation.
IndexNow & Bing
IndexNow is a free, open protocol supported by Bing, Yandex, and others. SEOVentra uses it automatically β no Bing account or API key required from you.
Your IndexNow key
Every verified domain gets a unique IndexNow key derived from its verification token via a one-way hash. The key is stable and available in Indexing β Indexing Key.
{your-key}.txt β this lets Bing independently verify domain ownership.Submission endpoints
On every URL and sitemap submission, SEOVentra pings all four endpoints in parallel:
- www.bing.com/indexnow
- api.indexnow.org/indexnow
- yandex.com/indexnow
- search.seznam.cz/indexnow
Alerts & webhooks
Configure alerts in Settings β Alerts. Each rule pairs an event type with a delivery channel.
Event types
- indexing_failed β a job reached max retries
- indexing_success β a URL confirmed indexed
- audit_complete β audit finished
- domain_verified β domain passed verification
- quota_warning β 80% of a monthly limit reached
- regression_detected β indexed count dropped β₯5%
Channels
Webhook payload
{
"event": "indexing_failed",
"org_id": "org_abc123",
"domain": "example.com",
"url": "https://example.com/page",
"data": {
"job_id": "job_xyz",
"attempts": 5,
"last_error": "GSC inspection returned no result"
},
"timestamp": "2026-05-23T10:30:00Z"
}API β Authentication
The SEOVentra REST API uses bearer token authentication. Generate keys from Settings β API Keys.
curl https://api.seoventra.com/api/v1/orgs \
-H "Authorization: Bearer sv_live_your_api_key_here" \
-H "Content-Type: application/json"Key scopes
- read β GET endpoints only; cannot create, update, or delete
- write β full access to all org endpoints
- admin β write + admin panel endpoints (internal use)
Base URL
https://api.seoventra.comAll endpoints are prefixed with /api/v1. All requests and responses use JSON.
Domains API
Example: add a domain
curl -X POST https://api.seoventra.com/api/v1/orgs/org_abc/domains \
-H "Authorization: Bearer sv_live_xxx" \
-H "Content-Type: application/json" \
-d '{
"domain": "example.com",
"projectId": "proj_xyz",
"verificationMethod": "dns_txt"
}'{
"success": true,
"data": {
"id": "dom_abc123",
"domain": "example.com",
"status": "pending",
"instructions": {
"type": "dns_txt",
"name": "@",
"value": "seoventra-verify=abc123def456"
}
}
}Indexing API
Example: submit URLs
curl -X POST https://api.seoventra.com/api/v1/orgs/org_abc/indexing/submit \
-H "Authorization: Bearer sv_live_xxx" \
-H "Content-Type: application/json" \
-d '{
"domainId": "dom_abc123",
"provider": "indexnow",
"priority": 8,
"urls": [
"https://example.com/new-post",
"https://example.com/updated-page"
]
}'{
"success": true,
"data": { "queued": 2, "skipped": 0, "skippedUrls": [] }
}Audits API
Response structure
{
"id": "audit_abc",
"domain": "example.com",
"status": "complete",
"overall_score": 74,
"scores": {
"technical": 82, "on_page": 68,
"performance": 71, "structured_data": 55,
"accessibility": 88, "mobile": 79
},
"issue_counts": { "critical": 3, "warning": 12, "info": 24 },
"pages_crawled": 148,
"completed_at": "2026-05-23T10:04:33Z"
}AI scores API
{
"url": "https://example.com/blog/post",
"overall": 67, "geo": 71, "aeo": 63, "eeat": 58,
"engines": {
"chatgpt": { "score": 72, "status": "cited" },
"google_aio": { "score": 68, "status": "cited" },
"perplexity": { "score": 65, "status": "cited" },
"claude": { "score": 61, "status": "maybe" },
"bing_copilot":{ "score": 55, "status": "maybe" },
"you": { "score": 44, "status": "missed" }
},
"suggestions": [
"Add an author bio with credentials",
"Include publication and last-updated dates",
"Add FAQ schema markup"
]
}Webhooks
Configure webhook endpoints in Settings β Alerts using the "webhook" channel. Every delivery includes an X-SEOVentra-Signature header for verification.
Verifying signatures
import crypto from 'crypto';
function verifyWebhook(body: string, signature: string, secret: string): boolean {
const expected = crypto
.createHmac('sha256', secret)
.update(body)
.digest('hex');
return crypto.timingSafeEqual(
Buffer.from(expected), Buffer.from(signature)
);
}
app.post('/webhook', (req, res) => {
const sig = req.headers['x-seoventra-signature'] as string;
if (!verifyWebhook(req.rawBody, sig, process.env.WEBHOOK_SECRET!)) {
return res.status(401).send('Invalid signature');
}
const event = JSON.parse(req.rawBody);
// process event...
res.status(200).send('OK');
});Error codes
{ "success": false, "error": "Human-readable message", "code": "MACHINE_CODE" }Billing & plans
Manage your subscription from Settings β Billing. Payments via Razorpay (India) or Stripe (international).
- Upgrade takes effect immediately with prorated billing.
- Downgrade takes effect at end of current billing period.
- Cancellation keeps account active until period end.
- Usage limits reset on your billing date, not the calendar month.
API keys
Create and manage API keys from Settings β API Keys. Keys are shown only once β store them securely in an environment variable. Revoke compromised keys immediately.
Alert rules
Create rules in Settings β Alerts. Each rule pairs an event type with a channel. Use the "Test" button to verify delivery before relying on it. Rules can be disabled without deletion.
Admin panel
The Admin page at /dashboard/admin is restricted to users with the admin role. It provides platform-wide oversight tools.
- Overview β total users, organisations, domains, and indexing jobs across the platform
- Organisations β all orgs with plan tier, domain count, and plan override capability
- Users β all users with email, org membership, and join date
- Plan override β change any org's plan tier instantly for manual upgrades, trials, and refunds