Quick Start Guide

Go from zero to protected in four steps. This guide walks you through creating an account, getting your API key, and integrating VerifyWall into your application.

1

Create an Account

Sign up for a VerifyWall account. Both plans include a 7-day free trial with full access to all features. A credit card is required — you won't be charged until the trial ends.

2

Get Your API Key

Navigate to API Keys in your dashboard and generate a new API key. Copy the key — you will need it for all API requests.

vw_sk_abc123def456ghi789...

Store your API key securely. Use environment variables — never commit keys to version control.

3

Make Your First Request

Use your API key to make a test request. Send an email, IP address, or domain — you get back a risk score with reasons for every flag.

curl "https://verifywall.com/api/v1/[email protected]" \
  -H "Authorization: Bearer vw_sk_your_key"
{
  "data": {
    "id": "a1b2c3...",
    "type": "checks",
    "attributes": {
      "subject": "[email protected]",
      "subject_type": "email",
      "risk_score": 12,
      "risk_level": "low",
      "reasons": [],
      "details": {}
    }
  }
}

A risk_level of "low" means the subject passed all checks. See the risk scoring reference for details.

4

Integrate with Your Framework

Add VerifyWall to your signup flow. Block or flag high-risk users before they enter your system.

Laravel

// app/Http/Controllers/RegisterController.php
use Illuminate\Http\Request;

public function store(Request $request)
{
    $request->validate([
        'email' => 'required|email',
        'password' => 'required|min:8',
    ]);

    // Check risk with VerifyWall
    $response = Http::withToken(config('services.verifywall.key'))
        ->get('https://verifywall.com/api/v1/check', [
            'q' => $request->email,
        ]);

    $risk = $response->json('data.attributes');

    if ($risk['risk_level'] === 'high') {
        return back()->withErrors([
            'email' => 'Registration blocked. Please contact support.',
        ]);
    }

    // Proceed with registration...
    $user = User::create([
        'email' => $request->email,
        'password' => Hash::make($request->password),
        'risk_score' => $risk['risk_score'],
    ]);

    return redirect()->route('dashboard');
}

Express.js

// routes/auth.js
import express from 'express';

const router = express.Router();

router.post('/register', async (req, res) => {
  const { email, password } = req.body;

  // Check risk with VerifyWall
  const url = new URL('https://verifywall.com/api/v1/check');
  url.searchParams.set('q', email);

  const response = await fetch(url, {
    headers: {
      'Authorization': `Bearer ${process.env.VERIFYWALL_API_KEY}`,
    },
  });

  const { data } = await response.json();

  if (data.attributes.risk_level === 'high') {
    return res.status(403).json({
      error: 'Registration blocked.',
    });
  }

  // Proceed with registration...
  const user = await User.create({
    email,
    password: await hash(password),
    riskScore: data.attributes.risk_score,
  });

  res.json({ user });
});

Django

# views.py
import requests
from django.conf import settings
from django.http import JsonResponse

def register(request):
    email = request.POST.get("email")
    password = request.POST.get("password")

    # Check risk with VerifyWall
    response = requests.get(
        "https://verifywall.com/api/v1/check",
        headers={
            "Authorization": f"Bearer {settings.VERIFYWALL_API_KEY}",
        },
        params={"q": email},
    )

    data = response.json()["data"]["attributes"]

    if data["risk_level"] == "high":
        return JsonResponse(
            {"error": "Registration blocked."},
            status=403,
        )

    # Proceed with registration...
    user = User.objects.create_user(
        email=email,
        password=password,
    )

    return JsonResponse({"user": user.id})

What's next?