Signup check

Every signalin one answer.

A disposable email and an address that does not exist are not two lookups for you to correlate yourself. They are one answer, with the per-signal detail underneath.

POST /v1/signup

Request

curl https://api.webkitapi.dev/v1/signup \
  -H "Authorization: Bearer $WEBKIT_KEY" \
  -d '{
        "email": "someone@mailinator.com",
        "address": {"line": "3 Rue de Rivoli, 75004 Paris"}
      }'

Response

{
  "verdict": "risky",
  "reasons": ["email.disposable_domain"],
  "signals": {
    "email":   { "verdict": "risky" },
    "address": { "verdict": "deliverable" }
  }
}

The combination

The worst of its parts, never an average.

Averaging would let a flawless address launder a disposable email, which is exactly the pattern this endpoint exists to catch.

  • The detail stays availableIf you weigh the signals differently, everything you need to decide for yourself is right there.
  • A corrected address counts as riskyIt becomes deliverable once the correction is applied, and you are the one who has to apply it.
  • Billed as the sum of its partsChoosing the combined call over two separate requests is never a financial decision.
  • No competitor offers itThat is the reason the two are bundled, not a selling point added afterwards.

Questions

Including the awkward answers.

What does a combined call cost?
One email call plus one address call, taken from the matching quotas. No more and no less than the two separate requests.
Can I send only the email?
Yes. Every field is optional as long as one of them is present. A free trial often has only an email, a checkout has both.
Do you block the signup for me?
No. We return a verdict and its reasons. Refusing a signup is a business policy, and it belongs to you.