# Deploid Enrich: agent integration

Work email enrichment for AI agents. Operated by Deploid.now, Singapore.
Support and privacy: hello@deploid.now.
Current mode: pilot. Limited pilot, not an uptime or turnaround guarantee.

## When to use

Fill a missing work-email field for a known professional in a permitted CRM workflow, or try a fallback lookup when your existing data provider has no usable result. Not bulk prospecting, personal-email discovery, phone lookup, or automated outreach. Verification is not consent to contact or a guarantee of inbox delivery.

## Price and prerequisites

- 0.15 native USDC per DELIVERABLE work email on Base (eip155:8453).
- Receiving address: 0xb0f3fee52a72e351c7f50406f83fa3f40c26e2c8.
- No merchant account, API key, or supplier subscription required by the buyer.
- You need a compatible x402 v2 EVM wallet signer, funded with native USDC on Base, and permission from its owner to spend. Never send a wallet private key or seed phrase to us.
- Authorize once; settlement occurs only after an eligible result. No match, rejected-quality results and supplier failures do not initiate settlement.
- A 202 acknowledgement is not a payment receipt. payment_pending with charged:null is unresolved: do not sign again.
- Polling is free. Pilot caps: at most 3 new jobs per payer per rolling 24 hours and one active job per payer; global capacity is also limited. A 429 requires backoff, not a new authorization.

## Free inspection (no payment and no supplier lookup)

```sh
curl -i -X POST https://enrich.deploid.now/v1/work-email \
  -H 'Content-Type: application/json' \
  -d '{"first_name":"Example","last_name":"Person","domain":"example.com"}'
```

Expect HTTP 402 and PAYMENT-REQUIRED. This example is deliberately fictional; it does not demonstrate a successful lookup. Inputs: linkedin_url, OR first_name + last_name + domain/company_name. Schema: https://enrich.deploid.now/openapi.json.

## TypeScript / Node integration

Download and review the self-contained ESM helper at https://enrich.deploid.now/client/deploid-client.mjs (Node 22+). This is a downloadable helper, not a published npm package or MCP server. It uses the official x402 client internally. You provide the wallet signer and durable secret storage.

```js
import { DeploidClient } from './deploid-client.mjs';

const merchant = new DeploidClient({
  origin: 'https://enrich.deploid.now',
  network: 'eip155:8453',
  payTo: '0xb0f3fee52a72e351c7f50406f83fa3f40c26e2c8',
  maxMicroUSDC: '150000',
});

// Integration sketch: signer, contactInput, workflowId and secureStore
// belong to your agent. Lock each workflow across concurrent workers.
let prepared = await secureStore.loadPrepared(workflowId);
if (!prepared) {
  prepared = await merchant.prepare(contactInput, signer); // Authorizes real USDC.
  await secureStore.savePrepared(workflowId, prepared); // Commit BEFORE submit.
}
const { handle } = await merchant.submit(prepared);
await secureStore.saveJob(workflowId, handle);

// Schedule later, respecting Retry-After; this method never signs or pays.
const next = await merchant.status(handle);
if (next.status.status === 'completed') {
  // Result is in next.status.result; never log the contact or token.
}
```

The helper pins the HTTPS origin, network, native USDC asset, receiving address, maximum price and authorization window. Review the downloaded code before use. Do not import executable code from a mutable URL at runtime.

## Retry and result contract

1. Securely persist the prepared body, PAYMENT-SIGNATURE and Idempotency-Key before submission. If submit times out, retry the SAME object. Do not call prepare again. Use a per-workflow lock or atomic create-if-absent storage to prevent two workers signing for one lookup.
2. Save job_id, access_token, status_url and expires_at. GET status_url with Authorization: Bearer access_token; never put the token in a URL. Poll after 10 seconds or the returned Retry-After.
3. pending: keep polling. payment_pending: charge outcome unresolved; retain the job and contact support if it persists. completed: charged:true with result and payment receipt. no_match, supplier_failed, payment_failed or expired with charged:false: terminal without settlement.
4. A 410 ends the 72-hour retrieval window, not proof that no payment occurred. Store legitimately needed results securely within that window. Never log payment signatures, job capabilities or contact results.
5. For an uncertain job, contact support with job ID and transaction hash only. Do not submit wallet secrets, signed authorizations or access tokens.

## Workflow recipes

CRM completion: when a user-approved business record lacks a work email, look up that one professional, wait for completed, then update only the missing field and retain verification provenance. Do not overwrite a known verified address automatically.

Fallback enrichment: if an existing provider returned no usable email, request one result here. Stop after the permitted lookup; do not run an unbounded provider/payment loop. FullEnrich is our upstream, so this is not an independent fallback from another FullEnrich reseller.

Research handoff: add a work-email field to a user-approved professional research record. Return uncertainty honestly; do not turn an unavailable email into a guessed address or automatically send outreach.

## References

- Human home: https://enrich.deploid.now/
- OpenAPI: https://enrich.deploid.now/openapi.json
- Discovery manifest: https://enrich.deploid.now/.well-known/x402
- Status: https://enrich.deploid.now/health
- Policies: https://enrich.deploid.now/policies

Base is the only currently supported production chain. No Binance, Coinbase or FullEnrich endorsement is implied. Data source: FullEnrich.
