HomeGuidesChangelog
Log In
Guides

Multi-field Inputs

Field-by-field guide to the shared Verify and Signals request schema.

Both POST /verify and POST /signals accept the same MultiFieldReq payload. You may send a single identifier or combine as many as you have—our matching pipeline deduplicates inputs and automatically fans out to the relevant checks.

‼️

Hashing reminder ‼️

When hashing emails always trim, lowercase, and hash with MD5 or SHA-256. We automatically compare hashed and cleartext inputs, so never send both versions of the same value.

Minimum Core Inputs Required

Every request must include at least one of the following identifier bundles:

IdentifierNotes
Name + postal address (name.* and location.*)Must include both objects so we can locate the individual.
Email (email or emails[])Cleartext, MD5 hash, or SHA-256 hash.
Phone (phone or phones[])E.164 recommended.
Social handle/ID (profiles[]/profile)Provide a URL, username, or platform-specific ID.

The more inputs you supply, the higher the match confidence and the richer the downstream Verify/Signals coverage. If you have multiple identifiers, send them all in the same payload.

Core contact identifiers

InputField(s)TypeApplies toUsage & rules
Emailemail, emails[]string / string[]Verify & SignalsAccepts cleartext or MD5/SHA-256 hashes. Provide up to 20 entries per request. Arrays let us return expanded linked identifiers.
Phone Numberphone, phones[]string / string[]Verify & SignalsProvide E.164 formatted numbers (always include the country/region code). Non-E.164 numbers are normalized on a best-effort basis with a US default.
Social Media Handle / IDprofiles[]object[]Verify & SignalsEach object can include service, url, username, userid, followers, following, score, or bio. Use this for social URLs, marketplace handles, or user IDs.
Work Organization / Titleorganization, titlestringVerify & SignalsOptional employer and job title context. Include when you capture business inputs (for example, from work emails or onboarding forms) to improve match precision on professional signals.
Namename.{identifier}object (Name)Verify & SignalsProvide structured names whenever you also send a postal address. A name alone does not return data data unless it is paired with a core identifier or postal address.
Location/Addresslocation.{identifier}object (Location)Verify & SignalsPostal addresses should always be paired with a name object. Include country and countryCode where possible for best match quality.
IP addressipAddressstringVerify & SignalsIPv4 or IPv6 of the current session. Used for geolocation consistency, device reputation, and digital checks.
Birthdaybirthdaystring (ISO-8601 date)Verify & SignalsUse YYYY-MM-DD. Unlocks age-based checks and breach lookups.

Name

FieldDescription
name.givenRequired when providing an address; the first name (ASCII preferred).
name.familyRequired when providing an address; the last name.
name.middleOptional middle name or initial.
name.fullFree-form full name. Provide alongside the structured fields for best matches.

Always include at least given and family when submitting a postal address to avoid ambiguous identity matches.

Location

FieldDescription
location.addressLine1Street number and primary line (required with other address parts).
location.addressLine2Apartment, suite, or secondary line.
location.cityCity or locality.
location.regionFull region or state name.
location.regionCodeRegion abbreviation (e.g., CO, NSW).
location.postalCodePostal or ZIP code.
location.countryFull country name.
location.countryCodeTwo-letter ISO 3166-1 alpha-2 country code.

Pairing a location with a name counts as a person lookup. Providing partial addresses can refine a lookup if provided with another core identifier, but cannot be used to lookup a person alone.

Controls and request-time options

Field(s)TypeApplies toUsage & rules
countries[]string[]SignalsRestrict responses to profiles that include at least one of the supplied ISO 3166-1 alpha-2 country codes. Mutually exclusive with excludedCountries.
excludedCountries[]string[]SignalsReturn 204 No Content if any matched identity belongs to the listed countries. Cannot be combined with countries.

Implementation tips

  1. Prefer arrays. Use the plural form (emails[], phones[], profiles[]) even when you only have a single value today. This keeps your payload backward compatible as you add more signals later.
  2. Normalize before hashing. Lowercase, trim whitespace, and collapse unicode lookalikes to ASCII before hashing or sending cleartext strings.
  3. Send linked attributes together. A name plus postal address and IP address often eliminates false positives and increases Verify's score explainability.
  4. Country filtering is Signals-only. Verify evaluates every identifier globally. Use countries or excludedCountries only when calling POST /signals.

Example payload

The same JSON body works for both /verify and /signals. Mix and match as many identifiers as you have:

{
  "emails": [
    "[email protected]",
    "92d01f8a6c5f6ad97cd9b9b7912ba0e8"
  ],
  "phones": ["+19175550199"],
  "profiles": [
    {
      "service": "twitter",
      "username": "mariatrustywell",
      "url": "https://twitter.com/mariatrustywell"
    }
  ],
  "name": {
    "given": "Maria",
    "family": "Trustwell",
    "full": "Maria A. Trustwell"
  },
  "organization": "Northwind Mutual",
  "title": "VP, Deposit Risk",
  "location": {
    "addressLine1": "19 Highview Blvd",
    "city": "Brookhaven",
    "region": "New York",
    "regionCode": "NY",
    "postalCode": "11719",
    "country": "United States",
    "countryCode": "US"
  },
  "ipAddress": "65.142.71.22",
  "birthday": "1982-07-04"
}