apyhub
DATA VALIDATION · FINANCE

Identity & Fraud Verification API

What it does

All In One Verification lets you validate multiple data points through a single endpoint. Send one or more fields such as ip, bin, dob, vat, city, iban, name, email, phone, state, street, address, company, country, and postcode, and get back a response envelope with success and code plus the relevant verification blocks.

Use the GET variant for simple query-based checks, or POST the same data in a body object when you want to submit structured payloads from your application. The service is designed for workflows that need more than one validation step at once, such as onboarding, risk screening, payment checks, or address and identity pre-validation.

Because the response schema is an envelope with success and code and additional module blocks, you can integrate it into existing validation pipelines without needing separate calls for each data type. That makes it useful when you want to confirm contact details, tax identifiers, bank details, or location-related inputs before saving a record or continuing a transaction.

▣ ENDPOINT 01 / 02
GET
Verify (All-in-One)
https://api.eu.apyhub.com/quadlem/verify-all-in-one/verify

QUICKSTART

GUIDE

Quickstart

Use the following request to assess an email address and screen an individual against sanctions lists using their name and date of birth.

curl -X GET "https://api.eu.apyhub.com/quadlem/verify-all-in-one/verify?email=user%40example.com&name=John+Doe&dob=1990-01-01" \
  -H "apy-token: $APY_TOKEN"

What you'll get back

A successful request returns the email validation result, sanctions screening outcome, an overall risk assessment, and a recommendation based on the evaluated inputs.

{
  "success": true,
  "code": 200,
  "EMAIL": {
    "email": "[email protected]",
    "valid": true,
    "risk_level": "low"
  },
  "SANCTIONS": {
    "is_match": true,
    "match_status": "match",
    "confidence": 0.91,
    "risk_level": "high"
  },
  "assessment": {
    "risk_score": 0.91,
    "risk_level": "high",
    "recommendation": "reject",
    "summary": "High risk (91/100) because the name matches a sanctioned party.",
    "inputs_evaluated": [
      "email",
      "sanctions"
    ]
  },
  "plan": {
    "current": "ultra",
    "evaluated_features": [
      "email",
      "sanctions"
    ]
  }
}

Note: When additional request fields are provided, the response can also include BIN, IP, PHONE, IBAN, COMPANY, and ADDRESS modules, along with populated correlations to provide a more comprehensive fraud and compliance assessment.

TRY ITLIVE · 50 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.

About this endpoint

What it does

Verifies any mix of signals — BIN, IP, email, phone, IBAN, address, company/VAT, and person name (sanctions) — passed as query parameters, and returns each module's individual result plus a fused, explainable risk assessment. Only the modules for submitted fields are evaluated; correlation fields are null when there isn't enough overlapping data (e.g. no BIN/IP/address given) to compute them.

Query Parameter(s)

AttributeTypeMandatoryDescription
binStringNoBIN value to verify.
ipStringNoIP value to verify.
emailStringNoEmail value to verify.
phoneStringNoPhone value to verify.
ibanStringNoIBAN value to verify.
addressStringNoFree-text address (Ultra+).
streetStringNoStructured address part — alternative to free-text address.
cityStringNoCity value to verify.
stateStringNoState value to verify.
postcodeStringNoPostcode value to verify (alias: zip).
companyStringNoCompany name to verify.
vatStringNoVAT number to verify.
nameStringNoPerson name (sanctions).
dobStringNoDate of birth (YYYY-MM-DD).
countryStringNoCountry value to verify.

Response

AttributeTypeDescription
successBooleanWhether the request succeeded.
codeIntegerNumeric response code.
BIN / IP / EMAIL / PHONE / SANCTIONS / IBAN / COMPANY / ADDRESSObjectPer-signal result, present only for modules with a submitted field.
assessmentObjectFused risk score, recommendation, cross-signal correlations (null where insufficient overlapping signals), and contributing signals.
planObjectCaller's current plan and which features were evaluated.

Query parameters

Name
Type
Description
ipOPTIONAL
string
binOPTIONAL
string
dobOPTIONAL
string
vatOPTIONAL
string
cityOPTIONAL
string
ibanOPTIONAL
string
nameOPTIONAL
string
emailOPTIONAL
string
phoneOPTIONAL
string
stateOPTIONAL
string
streetOPTIONAL
string
addressOPTIONAL
string
companyOPTIONAL
string
countryOPTIONAL
string
postcodeOPTIONAL
string
▣ ENDPOINT 02 / 02
POST
Verify (All-in-One)
https://api.eu.apyhub.com/quadlem/verify-all-in-one

QUICKSTART

GUIDE

Quickstart

Use the following request to perform a fraud and risk assessment using one or more identifiers such as an IP address, email address, phone number, and country.

curl -X POST "https://api.eu.apyhub.com/quadlem/verify-all-in-one" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "ip": "8.8.8.8",
    "email": "[email protected]",
    "phone": "+14155552671",
    "country": "US"
  }'

What you'll get back

A successful request returns individual risk assessments for each submitted identifier, along with an overall fraud evaluation and recommendation.

{
  "success": true,
  "code": 200,
  "IP": {
    "IP": "8.8.8.8",
    "risk_score": 0,
    "risk_level": "low"
  },
  "EMAIL": {
    "email": "[email protected]",
    "valid": false,
    "risk_level": "high"
  },
  "PHONE": {
    "phone": "+14155552671",
    "valid": true,
    "risk_level": "low"
  },
  "assessment": {
    "risk_score": 0.99,
    "risk_level": "high",
    "recommendation": "reject",
    "summary": "High risk (99/100) due to correlated signal mismatches.",
    "correlations": {
      "ip_address_country_match": true
    }
  },
  "plan": {
    "current": "ultra",
    "evaluated_features": [
      "ip",
      "email",
      "phone"
    ]
  }
}

Note: When additional fields are included in the request, the response can also contain enriched modules such as BIN, SANCTIONS, IBAN, COMPANY, and ADDRESS, providing a more comprehensive fraud and identity assessment.

TRY ITLIVE · 50 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.

About this endpoint

What it does

Verifies any mix of signals — BIN, IP, email, phone, IBAN, address, company/VAT, and person name (sanctions) — submitted in a JSON body, and returns each module's individual result plus a fused, explainable risk assessment with cross-signal correlations (e.g. BIN/IP/phone/IBAN/address country agreement, IP-to-address distance).

Request Body

ParameterTypeMandatoryDescription
binStringNoBIN value to verify.
ipStringNoIP value to verify.
emailStringNoEmail value to verify.
phoneStringNoPhone value to verify.
ibanStringNoIBAN value to verify.
addressStringNoFree-text address (Ultra+).
streetStringNoStructured address part — alternative to free-text address.
cityStringNoCity value to verify.
stateStringNoState value to verify.
postcodeStringNoPostcode value to verify (alias: zip).
companyStringNoCompany name to verify.
vatStringNoVAT number to verify.
nameStringNoPerson name (sanctions).
dobStringNoDate of birth (YYYY-MM-DD).
countryStringNoCountry value to verify.

Response

AttributeTypeDescription
successBooleanWhether the request succeeded.
codeIntegerNumeric response code.
BINObjectCard issuer identification and country.
IPObjectGeolocation, proxy/VPN/Tor detection, and risk score.
EMAILObjectDeliverability and risk scoring.
PHONEObjectValidity, line type, and risk scoring.
SANCTIONSObjectWatchlist match status, confidence, and candidate matches.
IBANObjectBank identification, SEPA reachability, compliance, and fraud signals.
COMPANYObjectRegistry/VAT match result.
ADDRESSObjectGeocoding match status, confidence, and resolved address.
assessmentObjectFused risk score, recommendation, cross-signal correlations, and contributing signals.
planObjectCaller's current plan and which features were evaluated.

Body

Name
Type
Description
bodyREQUIRED
object
▣ COMMON ERRORS

Errors any endpoint can return

400bad_request

Required parameter missing or malformed body.

401unauthorized

API key missing, revoked, or not authorized for this service.

429rate_limited

Your plan's per-second rate exceeded. Retry with exponential backoff.

503upstream_busy

Backend temporarily unavailable. Try again in a few seconds.