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

# Use IPQS in Deepline

> Use IPQS for fraud and abuse screening after ordinary email or phone validation: disposable addresses, honeypots, spam traps, recent abuse, fraud score,.

[Human guide: work with your agent →](https://deepline.com/docs/human/providers/ipqs/guide.md)
Inspect one IPQS action before starting provider-backed work. Your first result is a verified input and output contract.

## Provider-specific requirements

### Phone validation: use Trestle instead

**For phone validation, use `trestle_phone_validation` first, not IPQS.**

Trestle returns `activity_score` (0–100) which tells you whether a line is active or disconnected — IPQS phone validation does not. Activity score is the most useful signal for filtering stale numbers before cold outreach.

| Scenario | Use |
| - | - |
| Validate a phone after enrichment | `trestle_phone_validation` |
| Verify phone belongs to a specific person (name match) | `trestle_real_contact` |
| IPQS phone validate | Last resort only — no activity score |

### Email validation: use LeadMagic instead

**Do not use `ipqs_email_verify` or `ipqs_batch_email_verify` for outbound email validation.**

IPQS returns separate `valid` and `catch_all` fields. A `valid: true` result with `catch_all: true` does not confirm that the individual mailbox exists, so Deepline marks it `valid_catch_all` with `verified: false`. Use `leadmagic_email_validation` as the primary outbound validation gate — it returns a structured `email_status` (`valid` / `catch_all` / `invalid`) and is inexpensive per call.

Priority for email validation: `leadmagic_email_validation` → `zerobounce_validate` → IPQS (last resort).

### What IPQS is good for

* Fraud scoring: `fraud_score` on email or phone
* Disposable/honeypot detection: `disposable`, `honeypot` fields
* Spam trap detection on email
* DNC status on phone (use `trestle_phone_validation` for line type + activity though)

## Find an applicable action

Confirm your effective workspace, then search the live catalog:

```bash theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
deepline auth status --json
deepline search "IPQS" --type tools --json
```

Search returns candidates. Check the returned provider and operation rather than selecting a similar title automatically.

## Inspect the selected contract

Replace `<returned-tool-id>` with the identifier returned by discovery:

```bash theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
deepline describe <returned-tool-id> --json
```

These commands do not execute the selected provider action. Read its required inputs, supported access mode, pricing unit, outputs, and limits.

A connection does not establish that every action supports BYOK. Follow the provider-specific requirements above and the live action contract.

## Prepare one reviewed input

Use one authorized record that matches the inspected schema. Preserve its source identity and define the result you will accept.

Open the action reference for its payload and response shape. Provider-backed execution can incur usage or external effects.

For reusable logic, follow [Write Plays](https://deepline.com/docs/sdk-v2/plays.md). For direct-call recovery, use [Tool execution recovery](https://deepline.com/docs/sdk-v2/tool-execution-recovery.md).

> [!TIP]
>
> Continue only when the workspace, provider, required fields, acceptance rule, and applicable price are understood. Keep unavailable access separate from no-result evidence.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.