Skip to main content
On this page

Developer docs

Vaneform API for website data

Read traffic estimates, search data and public domain facts from your own tools. HTTP and MCP use the same bearer key; sign in when you are ready to create one.

API version
v1.2.0
Base URL
/api/v1
Authentication
Bearer
Response format
JSON

What you can read

The API returns the same public data as the site: a cached domain snapshot first, the search footprint when the plan allows it, or a comparison of several domains.

  • Scale · full-site estimate
  • Registry · registration facts
  • Profile · public site, DNS, hosting and TLS facts
  • Popularity · public link and board ranks
  • Search · Pro search footprint for this month

Your first request

This example reads a cached domain snapshot and returns the data currently available.

  1. 01

    Get a key

    Sign in, open the API console and create or reveal a vf_live_ key. Keep it on your server or in an environment variable.

  2. 02

    Call an endpoint

    Start with a domain snapshot. It reads the cache and tells you when a family is missing.

  3. 03

    Read the response

    Keep as_of, confidence and estimate with every number. A missing field stays missing.

curl -sS "https://vaneform.com/api/v1/domains/example.com?include=scale,registry" \
  -H "Authorization: Bearer $VANEFORM_API_KEY"

Authorization: Bearer $VANEFORM_API_KEY · Use the header above and keep the key out of URLs, logs and browser code.

Endpoints

GET/api/v1/domains/{domain}

Domain snapshot

Read the cached scale, registry, profile and popularity families for one domain.

ParameterDescription
domainRequiredDomain such as google.com.
includeOptionalComma-separated families: scale, registry, profile, popularity and optional search. Default: scale,registry,profile,popularity.
GET/api/v1/keyword

Keyword brief

Read US/English search demand and Google results. Pro-only; a cache miss uses the search grant.

ParameterDescription
qRequiredKeyword such as ai or website traffic checker.
GET/api/v1/bulk

Bulk comparison

Compare several domains side by side. Each domain uses one daily lookup.

ParameterDescription
qRequiredComma-separated domains, for example google.com,apple.com.
GET/api/v1/tld

Extension comparison

Compare the same registrable name across extensions. The default is com, ai and io.

ParameterDescription
qRequiredRegistrable base name such as google.
sOptionalOptional comma-separated suffixes.
GET/api/v1/account

Account usage

Read the plan and remaining allowances before a batch. This request does not use a lookup.

Domain family shortcuts`/api/v1/domains/{domain}/scale`, `/registry`, `/profile`, `/popularity` and `/search` return a DomainResource with one family. Search is Pro-only.

What comes back

Responses use product field names rather than vendor names. Estimates keep their date and confidence; missing families stay explicit.

JSON
{
  "domain": "example.com",
  "status": "ready",
  "refresh_policy": "cache_only",
  "scale": {
    "status": "ready",
    "estimate": "site",
    "visits": 7560000,
    "visits_mom_change_pct": 15.06,
    "as_of": "2026-08-31",
    "confidence": "medium"
  },
  "report_url": "https://vaneform.com/e/example-com"
}
readyready · usable data is present
partialpartial · some families or fields are present
missingmissing · this cache has no snapshot
errorerror · the family could not be read

Usage and limits

Website lookups and MCP calls use the same account allowances. Check /api/v1/account before a batch and use the UTC reset time in the response.

Guest website lookupNo API key; website lookup only
Signed-in Free30 daily domain lookups3 domains per bulk/TLD request0 Pro search-footprint pulls per day
Pro300 daily domain lookups30 domains per bulk/TLD request30 Pro search-footprint pulls per day
unpaid pace5 requests per 5 minutes; one request at a time The same domain is not charged again within 24 hours for the same account.

Error codes

Every error has the same envelope: code, message, status, request_id and docs_url. Keep request_id in logs when you need support.

HTTPcodeDescription
400invalid_requestThe request shape or parameter is invalid.
400invalid_domainThe domain is missing or is not a public registrable domain.
401unauthorizedThe Authorization bearer key is missing or malformed.
401invalid_api_keyThe bearer key is invalid or revoked.
429lookup_limit_exceededThe account has used its daily lookup allowance.
429lookup_rate_exceededThe request pace or concurrency limit was reached.
403search_requires_proThe search include requires a Pro plan.
403pro_requiredThis endpoint is available with Pro.
404not_foundThe API route does not exist.
405method_not_allowedThis HTTP method is not supported here.
500internal_errorThe server could not complete the request.

For 429 responses, wait for Retry-After. Back off instead of retrying in a tight loop.

For 5xx responses, retry with bounded exponential backoff and keep the request id.

Connect MCP or use SKILL.md

MCP exposes the same lookup and comparison tools. SKILL.md says when to use each tool and how to read the fields.

MCP connection

Use the Streamable HTTP endpoint with the same bearer key. Pick a client configuration and paste it into Cursor, Claude or Codex.

https://vaneform.com/mcp
{
  "mcpServers": {
    "vaneform": {
      "url": "https://vaneform.com/mcp",
      "headers": {
        "Authorization": "Bearer vf_live_…"
      }
    }
  }
}