Quickstart

Your first smtpRS email validation request.

Use Paravane's smtpRS email validation and risk scoring API to analyze a single email address. Create an account, generate an API key, and call the analysis endpoint.

1. Get access.

  1. Create a Paravane Labs account from the signup page.
  2. Verify your email address.
  3. Wait for review if your account is not automatically approved.
  4. Sign in and open the API keys page.
  5. Create a key and copy it immediately. Raw API keys are only shown once.

2. Send a request.

The official Python SDK is the recommended integration for Python 3.8 or newer. It handles authentication, request serialization, typed responses, and structured errors.

Install the Python SDK
python -m pip install --upgrade paravane
Set your API key
export PARAVANE_API_KEY="pvn_live_..."

On Windows PowerShell:

$env:PARAVANE_API_KEY = "pvn_live_..."
Python SDK
from paravane import ParavaneClient

client = ParavaneClient()
result = client.smtprs.analyze("alice@example.com")

print(result.decision)
print(result.overall_risk)
print(result.credits_charged)
Python name, API spelling.The SDK method is analyze(...). The HTTP endpoint remains POST /v1/analyse.

Calling the REST API directly is also supported:

POSThttps://api.paravane.io/v1/analyse
curl
curl -X POST https://api.paravane.io/v1/analyse \
  -H "Content-Type: application/json" \
  -H "X-API-Key: pvn_live_your_key_here" \
  -d '{"email":"alice@example.com"}'

3. Read the result.

The default analysis profile is quick. The most useful fields are decision, overall_risk, analysis_profile, credits_charged, reasons, and usage.

Example summary response
{
  "email": "alice@example.com",
  "overall_risk": 2,
  "decision": "allow",
  "tier": "BASIC",
  "analysis_profile": "quick",
  "credit_cost": 1,
  "credits_charged": 1,
  "response_profile": "summary",
  "reasons": [],
  "usage": {
    "limit": 10000,
    "used": 19,
    "remaining": 9981,
    "window": "calendar_month_utc"
  }
}

The SDK returns a typed SmtpRsAnalysis. Use result.to_dict() when you need the complete original API payload, including fields introduced before a new SDK release.

Next steps.