Phone

Checking a number
before you send an OTP

Flag destination bursts and risky OTP attempts before you pay for another SMS.

Decision trace

Example · before an OTP sendDestination burst
  1. Input signalsSixth distinct number in one hour sharing a country and the first four national digits.
  2. Reason idsprefix_burst
  3. Decisionblock
  4. SendYour backend does not send the OTP

How it works

  1. Check each attempt

    Call once immediately before a proposed send, with a canonical E.164 number.

  2. Read the decision

    Get allow, challenge or block with all matching reasons. Block takes precedence.

  3. Keep provider controls

    Run this alongside tools such as Twilio Verify Fraud Guard, which it replaces none of.

API

Call from your backend. Supply the end-user IP from a trusted integration.

POST https://nolgard.com/v1/sms-check
Content-Type: application/json

{
  "secret": "SITE_SECRET",
  "phone": "+14155550100",
  "accountId": "user_42",
  "ip": "203.0.113.4",
  "action": "signup"
}

// Example response: prefix burst
{
  "decision": "block",
  "reasons": ["prefix_burst"],
  "country": "US"
}

Limits