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

# Phone Risk API

> Risk-score a phone number without sending an OTP. Carrier, line type, porting, disposable-number, and fraud signals in one server-to-server call.

Use `POST /v3/phone/risk/` when you need phone intelligence before, instead of, or outside an OTP flow.

It does not send a code to the user. It creates a standalone API request, enriches the phone number, applies your phone-risk rules, and returns the same normalized phone block used by Phone Verification.

## Request

```bash theme={null}
curl -X POST "https://verification.didit.me/v3/phone/risk/" \
  -H "x-api-key: <api_key>" \
  -H "Content-Type: application/json" \
  -d '{
    "phone_number": "+14155552671",
    "country_code": "US",
    "vendor_data": "lead-123",
    "metadata": { "source": "signup_prescreen" }
  }'
```

| Field          | Type   | Required | Description                                                |
| -------------- | ------ | -------- | ---------------------------------------------------------- |
| `phone_number` | string | Yes      | Phone number in E.164 format.                              |
| `country_code` | string | No       | ISO 3166-1 alpha-2 or alpha-3 country hint for enrichment. |
| `signals`      | object | No       | Optional phone signals you already collected.              |
| `vendor_data`  | string | No       | Your stable reference for this request.                    |
| `metadata`     | object | No       | Your non-sensitive request metadata.                       |

## Response

```json theme={null}
{
  "request_id": "4fd09d2e-9bc9-4c4e-9c46-7f625ac0ab62",
  "status": "Approved",
  "phone": {
    "phone_number": "+14155552671",
    "country_code": "US",
    "carrier_name": "Example Mobile",
    "line_type": "mobile",
    "is_ported": false,
    "is_temporary": false,
    "enrichment": {
      "score": 3.0,
      "phone_type_risk": "Low",
      "phone_trust_index": 97,
      "is_disposable": false
    }
  },
  "vendor_data": "lead-123",
  "metadata": { "source": "signup_prescreen" }
}
```

## Billing and providers

Phone Risk API calls use `phone_risk_api` pricing, which is lower than full Phone Verification because no OTP is sent. Didit first uses the managed phone intelligence provider. If that provider is unavailable or returns no enrichment, Didit can fall back to IPQualityScore through the same normalized phone-enrichment interface.

Sandbox mode returns deterministic mock risk data and never spends managed provider credentials.
