Asynchronous delivery for resilient workflows

Submit a request once—we fetch the data and push the result to your webhook when it's ready. Best for high volume, queue-based pipelines, and uptime-sensitive automations.

  • No blocking, no polling — avoid retry storms and tight loops.
  • Workflow resilience — results arrive when ready, even under load.
  • Built for volume — ideal for batch jobs and background enrichment.
  • Traceable delivery — job IDs + status events for full observability.

Request data now Receive it when it’s ready

Use asynchronous jobs to reduce coupling with real-time latency and keep pipelines stable at scale.

1curl -X POST "https://api.reversecontact.com/v1/jobs/enrich" \
2  -H "Authorization: Bearer $RC_API_KEY" \
3  -H "Content-Type: application/json" \
4  -d '{
5    "input": { "type": "person_email", "value": "jane.doe@company.com" },
6    "include": ["person", "company"],
7    "callback_url": "https://hooks.yourapp.com/reversecontact",
8    "idempotency_key": "enrich_20260215_0001"
9  }'
1import requests
2
3payload = {
4  "input": {"type": "person_email", "value": "jane.doe@company.com"},
5  "include": ["person", "company"],
6  "callback_url": "https://hooks.yourapp.com/reversecontact",
7  "idempotency_key": "enrich_20260215_0001"
8}
9
10r = requests.post(
11  "https://api.reversecontact.com/v1/jobs/enrich",
12  json=payload,
13  headers={"Authorization": f"Bearer {RC_API_KEY}"},
14  timeout=30
15)
16print(r.json())
1const res = await fetch("https://api.reversecontact.com/v1/jobs/enrich", {
2  method: "POST",
3  headers: {
4    "Authorization": `Bearer ${process.env.RC_API_KEY}`,
5    "Content-Type": "application/json",
6  },
7  body: JSON.stringify({
8    input: { type: "person_email", value: "jane.doe@company.com" },
9    include: ["person", "company"],
10    callback_url: "https://hooks.yourapp.com/reversecontact",
11    idempotency_key: "enrich_20260215_0001",
12  }),
13});
14
15console.log(await res.json());
1{
2  "job_id": "job_7b3c2",
3  "status": "queued",
4  "estimated": { "mode": "async" },
5  "created_at": "2026-02-15T10:55:02Z"
6}
7
8{
9  "event": "job.completed",
10  "job_id": "job_7b3c2",
11  "status": "completed",
12  "delivered_at": "2026-02-15T10:55:09Z",
13  "data": {
14    "person": {
15      "full_name": "Jane Doe",
16      "job_title": "VP Sales",
17      "company": "Example Inc.",
18      "last_updated": "2026-02-15T10:55:08Z"
19    },
20    "company": {
21      "website": "https://www.example.com",
22      "industry": "Software",
23      "headcount": 210,
24      "last_updated": "2026-02-15T10:55:08Z"
25    }
26  },
27  "metadata": {
28    "source": "public_web",
29    "confidence": 0.91
30  }
31}

Where async webhook delivery wins

When reliability matters more than instant responses.

High-volume enrichment queues

Submit jobs in bulk, process in the background, and keep your workers efficient.

Uptime-sensitive workflows

Reduce hard dependency on immediate API responses and smooth over transient latency.

Data pipelines & ETL

Trigger enrichment as a step in your pipeline and receive structured payloads downstream.

Backfills & reprocessing

Re-run historical enrichments without hammering synchronous endpoints.

Rate-limit friendly processing

Let the system handle pacing and delivery, instead of building complex polling logic.

Event-driven architecture

Treat results as events you can route to CRM, warehouse, or internal services.

How does it works ?

A decoupled flow built for stable automation.

01
Create a job

Send identifiers + your callback_url (and optional idempotency key).

02
We fetch and structure

Our system retrieves the data and standardizes it into a consistent schema.

03
Receive the payload

We POST the result to your webhook with job status + freshness metadata.

Trusted by data-driven teams

“Our data team built an internal ops product with Reverse Contact. It improved identity resolution across systems and provided a reliable people & company layer.”

Ethan Carter
Data Team, Gitpod

“We use Reverse Contact as a trusted data provider for our product inside our RevOps workflows. It helps our customers unify CRM records and enrich missing context...”

David Bromberg
CEO, Lantern

“Reverse Contact provided a reliable identity resolution layer for our product. The API is straightforward, outputs are consistent, and match quality is strong.”

Lucas Perret
Head of Product, lemlist

Compliance-by-design. Built to be defensible.

Reverse Contact is designed to support GDPR/CCPA-aligned data practices. We maintain clear sourcing principles, respect data subject rights, and prioritize accuracy over guesswork.

GDPR
CCPA

Frequently Asked Questions

Can't find the answers to your questions?
Reach out to us by clicking here.

B2B Data made for Products & Workflows

Stop cleaning and reconciling records. Start shipping products powered by a reliable identity layer.

98.2
%
API uptime
300
M
Requests / month
<4
s
Response time (P95)