Lead
The Lead Enrichment API turns one company URL into an outreach-ready lead. It finds the founders and leadership with their LinkedIn and X — identified by searching the company's own domain and verifying each person against that evidence — plus a company summary, socials, tech signals, pricing tiers, and the emails published on the site, as a single JSON object built for sales, ABM, and prospecting. It does not return funding, HQ, phone, or guessed/unverified emails.
/v1/leadTurn a company URL into an outreach-ready lead — founders and leadership with their LinkedIn and X.
/v1/extract.Request body
{
"url": "https://resend.com",
"no_cache": false
}Parameters
| Field | Type | Required | Description |
|---|---|---|---|
url | string | Yes | The company URL to enrich. Redirects are followed. |
no_cache | boolean | No | Bypass the response cache and force a fresh fetch. Defaults to false. |
Response
A single lead object. Fields are best effort: any that cannot be determined from the site or recovered from search are omitted or empty. The people_source field records where the people came from (e.g. web_search).
{
"url": "https://resend.com",
"domain": "resend.com",
"lead": {
"company_name": "Resend",
"summary": "Resend is an email platform for developers to build, test, and send transactional and marketing email at scale.",
"socials": {
"linkedin": "https://www.linkedin.com/company/resend",
"x": "https://x.com/resend",
"github": "https://github.com/resend"
},
"tech": ["Next.js", "React", "TypeScript", "Tailwind CSS", "Vercel"],
"pricing": [
{ "plan": "Free", "price": "$0/mo" },
{ "plan": "Pro", "price": "$20/mo" },
{ "plan": "Scale", "price": "$90/mo" }
],
"emails": [
{ "type": "support", "email": "support@resend.com" }
],
"people": [
{ "name": "Zeno Rocha", "role": "Founder", "linkedin": "https://www.linkedin.com/in/zenorocha", "x": "https://twitter.com/zenorocha" },
{ "name": "Jonni Lundy", "role": "Cofounder", "linkedin": "https://www.linkedin.com/in/jonnilundy", "x": "https://twitter.com/jonnilundy" }
]
},
"people_source": "web_search",
"cache": "miss",
"credits": 100
}Lead object
| Field | Type | Description |
|---|---|---|
company_name | string | The company's name. |
summary | string | A one-line description of what the company does. |
socials | object | Company social profile URLs: linkedin, x, and github. |
tech | string[] | Detected technologies and tools in use. |
pricing | object[] | Pricing tiers, each with a plan and price. |
emails | object[] | Emails published on the site, each with a type (e.g. support) and email. No guessed or unverified addresses. |
people | object[] | Founders and leadership, each with a name, role, linkedin, and x. Identified by searching the company's own domain and verified against that evidence — precision-first, so fewer but correct people. |
Pricing
A successful lead costs a flat 100 credits. A failed fetch charges nothing. The consumed amount is echoed back in the credits field.
/v1/extract is 25 credits. A lead runs several scrapes plus a web search for the founders/leadership internally and returns them as one object, so 100 credits covers the whole flow.Examples
curl -X POST https://api.webclaw.io/v1/lead \
-H "Authorization: Bearer wc_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"url": "https://resend.com"
}'import webclaw
client = webclaw.Webclaw(api_key="wc_your_api_key")
result = client.lead("https://resend.com")
lead = result.lead
print(lead["company_name"], lead["summary"])
# Founders and leadership, each with LinkedIn and X
for person in lead["people"]:
print(person["name"], person["role"], person["linkedin"], person["x"])Batch enrichment
Enrich up to 25 company URLs in a single job. The batch endpoint is asynchronous: POST the URLs and get a job ID back immediately, then poll the job until its status is completed. Every URL is enriched into the same lead object the single /v1/lead endpoint returns.
/v1/lead/batchSubmit 1–25 company URLs for enrichment. Returns a job ID to poll.
Request body
{
"urls": [
"https://resend.com",
"https://linear.app",
"https://vercel.com"
],
"no_cache": false
}Parameters
| Field | Type | Required | Description |
|---|---|---|---|
urls | string[] | Yes | 1 to 25 company URLs to enrich. Redirects are followed on each. |
no_cache | boolean | No | Bypass the response cache and force a fresh fetch for every URL. Defaults to false. |
Create response
Returned immediately when the job is created.
{
"id": "lead_batch_8f3c1a92",
"status": "processing",
"total": 3,
"credits_per_url": 100
}Poll the batch job
/v1/lead/batch/{id}Get the status and per-URL results of a batch enrichment job.
Poll every few seconds. When status is "completed", every result is included. Each successful URL carries the same lead object as /v1/lead; a URL that could not be reached carries an error instead.
{
"id": "lead_batch_8f3c1a92",
"status": "completed",
"total": 3,
"completed": 3,
"succeeded": 2,
"credits_charged": 200,
"results": [
{
"url": "https://resend.com",
"status": "success",
"domain": "resend.com",
"lead": {
"company_name": "Resend",
"summary": "Resend is an email platform for developers to build, test, and send transactional and marketing email at scale.",
"socials": {
"linkedin": "https://www.linkedin.com/company/resend",
"x": "https://x.com/resend",
"github": "https://github.com/resend"
},
"tech": ["Next.js", "React", "TypeScript"],
"pricing": [
{ "plan": "Free", "price": "$0/mo" },
{ "plan": "Pro", "price": "$20/mo" }
],
"emails": [
{ "type": "support", "email": "support@resend.com" }
],
"people": [
{ "name": "Zeno Rocha", "role": "Founder", "linkedin": "https://www.linkedin.com/in/zenorocha", "x": "https://twitter.com/zenorocha" }
]
},
"cache": "miss"
},
{
"url": "https://linear.app",
"status": "success",
"domain": "linear.app",
"lead": {
"company_name": "Linear",
"summary": "Linear is an issue tracking and project planning tool for modern software teams.",
"people": [
{ "name": "Karri Saarinen", "role": "Cofounder & CEO", "linkedin": "https://www.linkedin.com/in/karrisaarinen", "x": "https://twitter.com/karrisaarinen" }
]
},
"cache": "hit"
},
{
"url": "https://not-a-real-site.example",
"status": "error",
"error": "Failed to fetch URL"
}
],
"error": null,
"created_at": "2026-07-18T10:30:00Z"
}Batch job fields
| Field | Type | Description |
|---|---|---|
id | string | The batch job ID. Store it to poll for results. |
status | string | processing, completed, or failed. |
total | number | Number of URLs submitted. |
completed | number | How many URLs have finished processing (success or error). |
succeeded | number | How many URLs returned a lead. |
credits_charged | number | Total credits billed — 100 per successful lead. |
results | object[] | One entry per URL. See the result object below. |
error | string | null | A job-level error message, or null. |
created_at | string | ISO 8601 timestamp of when the job was created. |
Result object
| Field | Type | Description |
|---|---|---|
url | string | The submitted URL. |
status | string | success or error. |
domain | string | Registrable domain of the company. Success results only. |
lead | object | The enriched lead — same shape as the single /v1/lead response's lead field. Success results only. |
cache | string | hit or miss. Success results only. |
error | string | Why the URL failed. Error results only. |
credits_charged.Example
curl -X POST https://api.webclaw.io/v1/lead/batch \
-H "Authorization: Bearer wc_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"urls": ["https://resend.com", "https://linear.app", "https://vercel.com"]
}'curl https://api.webclaw.io/v1/lead/batch/lead_batch_8f3c1a92 \
-H "Authorization: Bearer wc_your_api_key"Error responses
{
"error": "Missing required field: url"
}{
"error": "Invalid or missing API key"
}