Hand it to your AI agent
Copy this prompt into Claude Code, Cursor, Codex or any coding agent. It tells the agent where the docs are and how to use your API key.
Use the Lovely Router data tool "Find B2B leads with emails" (id `b2b-leads`, B2B database) to get data for me. It returns JSON.
- Docs (read first): https://lovelyrouter.com/docs/tools/run.md and https://lovelyrouter.com/docs/api/tools.md
- Input fields and price: GET https://lovelyrouter.com/v1/tools/b2b-leads (public, no key needed). Price: $0.002 / lead.
- Run: POST https://lovelyrouter.com/v1/tools/b2b-leads/run with a body like `{"input":{"personTitleIncludes":["head of marketing"],"personLocationCountryIncludes":["United States"],"companyIndustryIncludes":["Computer Software"],"hasEmail":true,"totalResults":3},"max_results":10}`. A 200 has the finished run with `items`; a 202 means it is still running, so poll the `poll` path until `status` is `succeeded`, `failed`, `timed_out` or `stopped`.
- Only delivered results are billed. Keep max_results small on the first run, check the output, then scale up (up to 1000 per run).
- If you support MCP, you can instead connect the server https://lovelyrouter.com/mcp (Streamable HTTP, same key; https://lovelyrouter.com/docs/tools/mcp.md) and use suggest_tools, get_tool and run_tool with tool "b2b-leads".
- Auth: read my API key from the LOVELY_API_KEY environment variable and send it as `Authorization: Bearer $LOVELY_API_KEY`. Never print or commit the key. If it is not set, ask me to create one at https://lovelyrouter.com/app/keys.
- Billing is prepaid: every call is charged to my balance, so test with a small request before running anything large.
- Every docs page is plain Markdown; the full index is https://lovelyrouter.com/llms.txt.
My task: <describe the data you need, e.g. which places, profiles, keywords or URLs, and the output format>Input
personTitleIncludesstring[]Job titles to match, e.g. ["VP of Sales", "CEO"]. Turn on includeTitleVariants for CEO Chief Executive Officer.
personTitleExcludesstring[]What this does: Removes people with titles matching these terms. Best practice: Use this to remove assistant/junior/intern-style false positives.
includeTitleVariantsbooleanWhat this does: Expands common title equivalents (e.g. CEO Chief Executive Officer). Best practice: Turn ON for broader recall; turn OFF only when you need strict title wording.
seniorityIncludesstring[]What this does: Includes selected seniority levels. Best practice: Pair with Excludes to keep only target decision levels.
functionIncludesstring[]What this does: Includes selected departments/functions. Best practice: Start with 1-2 core functions before broadening.
hasEmailbooleanOnly leads with an email address.
hasPhonebooleanOnly leads with a phone number.
emailStatusIncludesstring[]Email deliverability, e.g. ["verified"].
personFirstNameIncludesstring[]What this does: Includes only leads with these first names. Best practice: Use only when you already know exact names.
personLastNameIncludesstring[]What this does: Includes only leads with these last names. Best practice: Combine with title/company/location to avoid over-restricting.
personLocationCountryIncludesstring[]Country names, e.g. ["United States"].
personLocationStateIncludesstring[]What this does: Includes selected person states/regions. Best practice: Use country + state together for cleaner geography.
personLocationCityIncludesstring[]What this does: Includes only people in these cities. Best practice: Combine with country/state filters so city names are interpreted correctly.
companyNameIncludesstring[]What this does: Includes leads at companies whose names match any entered value. Best practice: Use for account-based targeting (named account lists).
companyIndustryIncludesstring[]Industry names, e.g. ["Computer Software"].
companyKeywordIncludesstring[]What this does: Includes companies whose name/description contains these keywords. Best practice: Use product/problem keywords to find similar companies.
companySizeIncludesstring[]Employee-count buckets, e.g. ["51-200"].
companyDomainIncludesstring[]Company websites without https://, e.g. ["stripe.com"].
companyLocationCountryIncludesstring[]What this does: Includes companies headquartered in the selected countries. Best practice: Use with company state/city filters for precise geo targeting.
companyLocationStateIncludesstring[]What this does: Includes selected company HQ states/regions. Best practice: Use with country/company city for precise HQ targeting.
companyLocationCityIncludesstring[]What this does: Includes companies headquartered in these cities. Best practice: Pair with country/state for cleaner location matching.
annualRevenueIncludesstring[]What this does: Includes companies in selected annual revenue bands. Best practice: Choose bands that match your ideal customer budget.
fundingStageIncludesstring[]What this does: Includes companies in selected funding stages. Best practice: Match stage to your go-to-market motion (startup vs enterprise).
technologiesIncludesstring[]What this does: Includes companies using any of the selected technologies. Best practice: Add 1-3 core tools your ICP uses (e.g. Salesforce, HubSpot). More filters narrow the pool.
totalResultsintegerWhat this does: Sets how many leads to extract in this run. Best practice: Start with a smaller test run (e.g. 200-1000), then scale up once the results look right.
Try it
Call it from code
How runs, polling and billing work →curl https://lovelyrouter.com/v1/tools/b2b-leads/run \
-H "Authorization: Bearer $LOVELY_API_KEY" \
-H "content-type: application/json" \
-d '{"input":{"personTitleIncludes":["head of marketing"],"personLocationCountryIncludes":["United States"],"companyIndustryIncludes":["Computer Software"],"hasEmail":true,"totalResults":3},"max_results":25}'# MCP (agents): suggest_tools → get_tool → run_tool
run_tool({
"tool": "b2b-leads",
"input": {"personTitleIncludes":["head of marketing"],"personLocationCountryIncludes":["United States"],"companyIndustryIncludes":["Computer Software"],"hasEmail":true,"totalResults":3},
"max_results": 25
})What it costs
| Results | Runs (at 1000 per run) | Cost |
|---|---|---|
| 100 | 1 | $0.20 |
| 1,000 | 1 | $2.00 |
| 10,000 | 10 | $20.00 |
Prepaid, no subscription. Fewer results than requested cost less. Pricing
Used for
Frequently asked questions
How much does the Find B2B leads with emails API cost?
$0.002 / lead. 1,000 results, fetched in runs of up to 1000, cost $2.00. There is no subscription: you pay from a prepaid balance.
How many results does one run return?
25 by default and up to 1000 per run. Set max_results to cap a run: you are billed only for the results it delivers.
Do I need a B2B database account or API key?
No. You call the tool with your Lovely Router API key and get JSON back. There is nothing to set up on B2B database.
Can an AI agent use this tool?
Yes. Connect Claude Code, Cursor or any MCP client to the Lovely Router MCP server: the agent finds the tool with suggest_tools and runs it with run_tool and the id b2b-leads.
What happens if a run fails?
A run that fails or is stopped pays only for the results it delivered, with no call fee. The most a run can cost is held when it starts and the rest is released when it settles.