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
Free has no API access — API keys require Pro Lite or above. Limits reset monthly on your billing date.
| Feature | Free | Pro Lite | Pro | Business |
|---|---|---|---|---|
| Domains | 1 | 2 | 5 | Unlimited |
| URL submissions / mo | 200 | 1,000 | 5,000 | Unlimited |
| SEO audits / mo | 5 | 20 | 50 | Unlimited runs |
| Free-model page scores / mo | 100 | 500 | 1,500 | 3,000 |
| Paid-model page scores / mo | — | 35 | 100 | 350 |
| Audit history | 7 days | 30 days | 90 days | 1 year |
| API access | — | |||
| API keys | — | 1 | 2 | 10 |
| Webhook alerts | — | |||
| AI Visibility Monitor | — | — | ||
| 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",
"verificationToken": "seoventra-verify-9f2c0d41b7e84a6d8c5e1f3a7b2d9046",
"verificationMethod": "dns_txt",
"instructions": {
"type": "DNS TXT Record",
"name": "@",
"value": "seoventra-verify-9f2c0d41b7e84a6d8c5e1f3a7b2d9046",
"instruction": "Add a TXT record to your DNS with name \"@\" and value \"seoventra-verify-9f2c0d41b7e84a6d8c5e1f3a7b2d9046\""
}
}
}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
Abridged response for GET /audits/:auditId. issueStats has one row per severity and category, and aiScore holds the most recent AI score row for the domain.
{
"success": true,
"data": {
"id": "audit_abc",
"domain_id": "dom_abc123",
"status": "completed",
"urls_crawled": 148,
"issues_found": 39,
"seo_score": 74,
"speed_score": 71,
"health_score": 72,
"started_at": "2026-05-23 10:00:12",
"completed_at": "2026-05-23 10:04:33",
"issueStats": [
{ "severity": "critical", "category": "meta", "count": 3 },
{ "severity": "warning", "category": "og", "count": 12 }
],
"progress": { "totalPages": 148, "aiPagesScored": 20, "aiPagesPerAudit": 20 }
}
}AI scores API
Example: latest visibility snapshot
{
"success": true,
"data": {
"snapshot_date": "2026-09-19",
"visibility_score": 40,
"total_queries": 10,
"total_mentions": 4,
"gemini_mentions": 2,
"groq_mentions": 2,
"chatgpt_mentions": 0,
"claude_mentions": 0,
"perplexity_mentions": 0,
"gemini_sentiment": 50,
"query_results": [
{ "query": "best SEO audit tools", "engine": "gemini", "mentioned": true, "sentiment": 0.5, "excerpt": "..." }
]
}
}Webhooks
Configure a webhook endpoint in Settings → Alerts using the "webhook" channel. Alert rules deliver a single POST request with a JSON body to your URL when the rule fires.
Alert rules currently fire for three events: indexing_failed, url_blocked and audit_score_drop. The subject begins with a short status symbol. Example payload for audit_score_drop:
{
"subject": "SEO score dropped — example.com",
"body": "SEO score for example.com dropped from 82 to 71.\n\nThis may indicate new issues. Run a new audit to see details.\n\nDashboard: https://app.seoventra.com/dashboard/audits",
"source": "seoventra",
"timestamp": "2026-09-06T12:00:00.000Z"
}Content-Type: application/json, and a non-2xx or failed response is not retried. If your endpoint needs to verify the sender, restrict it to Cloudflare's egress IP ranges, or treat inbound alert payloads as untrusted input and validate the shape rather than the origin.Error codes
{ "success": false, "error": "Human-readable message", "code": "MACHINE_CODE" }Billing & plans
Manage your subscription from Settings → Billing. Payments via Razorpay.
- 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.