> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dojah.io/llms.txt
> Use this file to discover all available pages before exploring further.

# User Screening

> Screen a user by name, date of birth, email, phone and IP against AML, phone, email and IP-risk signals before onboarding.

<div className="dj-endpoint">
  <span className={`dj-method dj-method-get`}>GET</span>
  <code>/api/v1/fraud/user</code>
</div>

Screen a prospective user in one call — name, date of birth, email, phone and IP are checked against AML watchlists and phone, email and IP-risk signals, returning a single overall risk score.

## Headers

| Header          | Required | Description                                         |
| --------------- | -------- | --------------------------------------------------- |
| `Authorization` | Yes      | Your app's secret key, sent as-is — *not* `Bearer`. |
| `AppId`         | Yes      | The App ID from your dashboard.                     |

## Query parameters

| Parameter       | Type   | Required | Description                                         |
| --------------- | ------ | -------- | --------------------------------------------------- |
| `first_name`    | string | Yes      | The user's first name.                              |
| `last_name`     | string | Yes      | The user's last name.                               |
| `middle_name`   | string | No       | The user's middle name.                             |
| `date_of_birth` | string | Yes      | Date of birth, `YYYY-MM-DD`.                        |
| `email`         | string | No       | The user's email address — adds email-risk signals. |
| `phone`         | string | No       | The user's phone number — adds phone-risk signals.  |
| `ip_address`    | string | No       | The user's IP address — adds IP-risk signals.       |

## Response

Returns an `entity` with an `overall_risk_score` plus the underlying `phone_check_result`, `aml_screening_result`, `email_check_result` and `ip_check_result` breakdowns, and a request `uuid`. Any signal you don’t pass a parameter for is omitted.

## Errors

| Code  | Meaning                                                                                       |
| ----- | --------------------------------------------------------------------------------------------- |
| `400` | Bad request — a required parameter is missing or malformed.                                   |
| `401` | Unauthorized — check your key and `AppId` (no `Bearer` prefix).                               |
| `402` | Insufficient wallet balance. [Fund your wallet](/api-reference/core-concepts/wallet-billing). |
| `404` | No record found for the supplied identifier.                                                  |
| `429` | Too many requests — back off and retry.                                                       |

<RequestExample>
  ```bash cURL theme={null}
  curl --request GET \
    "https://api.dojah.io/api/v1/fraud/user?first_name=John&last_name=Doe&middle_name=Asake&date_of_birth=1990-01-01&email=test%40example.com&phone=16502969060&ip_address=2.58.56.101" \
    -H "Authorization: {{secret_key}}" \
    -H "AppId: {{app_id}}"
  ```

  ```js Node.js theme={null}
  const params = new URLSearchParams({
    "first_name": "John",
    "last_name": "Doe",
    "middle_name": "Asake",
    "date_of_birth": "1990-01-01",
    "email": "test@example.com",
    "phone": "16502969060",
    "ip_address": "2.58.56.101",
  });

  const url = "https://api.dojah.io/api/v1/fraud/user?" + params;
  const res = await fetch(url, {
    headers: {
      Authorization: process.env.DOJAH_SECRET_KEY,
      AppId: process.env.DOJAH_APP_ID,
    },
  });
  const data = await res.json();
  ```

  ```python Python theme={null}
  import os, requests

  res = requests.get(
      "https://api.dojah.io/api/v1/fraud/user",
      headers={
          "Authorization": os.environ["DOJAH_SECRET_KEY"],
          "AppId": os.environ["DOJAH_APP_ID"],
      },
      params={
          "first_name": "John",
          "last_name": "Doe",
          "middle_name": "Asake",
          "date_of_birth": "1990-01-01",
          "email": "test@example.com",
          "phone": "16502969060",
          "ip_address": "2.58.56.101",
      },
  )
  data = res.json()
  ```
</RequestExample>

<ResponseExample>
  ```json GET /api/v1/fraud/user theme={null}
  {
    "entity": {
      "overall_risk_score": 80,
      "phone_check_result": {
        "account_details_registered": [
          "skype",
          "angelist",
          "instagram"
        ],
        "carrier": "T-MOBILE USA, INC",
        "country": "US",
        "disposable": false,
        "flags": [],
        "number": 16502969060,
        "score": 4,
        "type": "mobile",
        "valid": true
      },
      "aml_screening_result": [
        {
          "match_type": "Individual",
          "name": "John Asake Doe",
          "nameMatchScore": 80,
          "profileId": "WC2095906"
        }
      ],
      "email_check_result": {
        "account_details_registered": [
          "skype",
          "angelist",
          "instagram"
        ],
        "breach_details": {
          "first_breach": null,
          "haveibeenpwned_listed": false,
          "number_of_breaches": 0
        },
        "domain_details": {
          "accept_all": false,
          "created": "2004-09-27 18:06:20",
          "custom": true,
          "disposable": false,
          "dmarc_enforced": false,
          "domain": "example.com",
          "expires": "2023-09-27 18:06:20",
          "free": false,
          "registered": true,
          "registered_to": "NameFind LLC",
          "registrar_name": "GoDaddy.com, LLC",
          "spf_strict": false,
          "suspicious_tld": false,
          "tld": ".com",
          "updated": "2022-08-16 04:46:10",
          "valid_mx": false,
          "website_exists": true
        },
        "deliverable": false,
        "email": "test@example.com",
        "score": 4,
        "type": "mobile",
        "valid": true
      },
      "ip_check_result": {
        "ip": "2.58.56.101",
        "blacklists": {
          "detections": 11,
          "engines_count": 85,
          "detection_rate": "13%"
        },
        "ip_details": {
          "reverse_dns": "powered.by.rdp.sh",
          "continent_code": "EU",
          "continent_name": "Europe",
          "country_code": "DE",
          "country_name": "Germany",
          "country_currency": "EUR",
          "country_calling_code": "49",
          "region_name": "Hamburg",
          "city_name": "Hamburg",
          "latitude": 53.575321197509766,
          "longitude": 10.015339851379395,
          "isp": "1337 Services GmbH",
          "asn": "AS210558"
        },
        "anonymity": {
          "is_proxy": false,
          "is_webproxy": false,
          "is_vpn": false,
          "is_hosting": false,
          "is_tor": true
        },
        "risk_score": {
          "result": 100
        }
      }
    },
    "uuid": "41f963a5-3d6b-41ec-aac8-bbc5247a4966"
  }
  ```
</ResponseExample>
