Prospect Database API - B2B Email Search and Verifier
Under maintenancePricing
$12.00 / 1,000 results
Prospect Database API - B2B Email Search and Verifier
Under maintenanceSearch a B2B prospect database by job title, management level, department, industry, location, company size and revenue. Find every email at a domain, work out an address from a name, verify deliverability, and enrich addresses and profiles. Pay per result. Bring your own API key.
Pricing
$12.00 / 1,000 results
Rating
0.0
(0)
Developer
Nabeel Hassan
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Search a B2B prospect database by job title, management level, department, industry, location, company size and revenue. Pull every person or every email address at a company domain, work out an address from a name and an employer, verify a list you already have, and turn an address, a profile URL or a company name into a full record. One flat row per prospect, address or company.
What this actor does
- Prospects a segment rather than a single company. The database search filters people on job titles with an exclusion list, management level, department, skills, name and location, and filters their employers on name, industry, location, specialities, headcount, revenue range and founding year, all in one query.
- Walks a company end to end. Domain search returns the people at a company with their job titles and source pages. Domain emails returns every address the provider holds there. Generic contacts returns the role mailboxes separately, which is what you want for support and billing routing rather than outreach.
- Finds an address from a name. Give the finder a list of names and a list of domains and it pairs them up, returning the address with its deliverability verdict and the format, disposable, webmail and gibberish checks behind it.
- Verifies a list you already have. The verifier returns the same checks for addresses you supply, including the provider's own reason when it cannot reach a verdict.
- Enriches three starting points. An email address, a profile URL or a company name all resolve into the same flat row shape, so lists that started in different systems end up in one table.
- Handles a two step API properly. Nearly every route here accepts work and answers with a task reference, then serves the data from a second route once it is ready. The actor owns that waiting, polling with a widening gap and an overall deadline you control, so a stuck task never holds a run open.
- Follows the provider's own paging. The domain routes hand back a next pointer rather than a page number, and the actor follows it, which is the only way to page these routes without silently re-reading the first page.
- Refreshes its own token. Credentials are exchanged for a short lived token which is renewed before it expires rather than after a request has already failed on it.
- Never charges for a miss. Only rows carrying a resolved result are billed.
Input
| Field | What it does |
|---|---|
mode | Prospect search, company search, the three domain modes, finder, verifier, or one of the three enrichment modes. |
jobTitles | Job titles to match, and the per company filter in domain search. |
excludeJobTitles | Job titles to leave out. |
managementLevels | C level, VP, director, manager or staff. |
departments | Department the person sits in. |
skills | Skills listed on the profile. |
firstName, lastName | Narrow a search to one name. |
personLocations | Where the person is. |
companies | Company names, as a filter or as lookups. |
excludeCompanies | Companies to leave out. |
domains | Company domains for the domain modes and the finder. |
fullNames | Names to find addresses for. |
emails | Addresses to verify or enrich. |
profileUrls | Profile URLs to enrich. |
industries | Industries the company should be in. |
companyLocations | Where the company should be. |
specialities | Specialities the company lists about itself. |
companySize | Headcount band. |
minRevenue, maxRevenue | Company revenue range. |
foundedFrom, foundedTo | Company founding year range. |
taskTimeoutMinutes | How long to wait for one asynchronous request. |
requestsPerMinute | Pace the run under the provider's ceiling of 60. |
skipNotFound | Leave unresolved inputs out of the dataset. |
maxResults | Hard cap on rows, and therefore on spend and run time. |
clientId | Your own API user id. Stored as a secret. |
apiKey | Your own API secret. Stored as a secret. |
Example output
{"found": true,"mode": "databaseSearch","query": "prospect database search","firstName": "Jane","lastName": "Doe","fullName": "Jane Doe","position": "Head of Engineering","email": "jane.doe@example.com","smtpStatus": "valid","allEmails": [{ "email": "jane.doe@example.com", "smtpStatus": "valid" }],"linkedinUrl": "https://www.linkedin.com/in/janedoe","location": "San Francisco, California","industry": "Financial Services","organization": "Example Labs","companyDomain": "example.com","companyLocation": "San Francisco, California","companyIndustry": "Financial Services","companySize": "51-200","companyRevenueMin": 10000000,"companyRevenueMax": 50000000,"companyLogoUrl": "https://logo.example.com/example.png","sourcePage": "https://example.com/team","error": null,"raw": { }}
Frequently asked questions
What can I filter a B2B prospect database on?
People are filtered on job titles, with a separate exclusion list, management level from C level down to staff, department, skills, first and last name, and location. Their employers are filtered at the same time on company name, an exclusion list, industry, location, self declared specialities, headcount band, revenue range and founding year. All of those apply in a single query, so a search for director level engineering people at financial services companies of fifty to two hundred people in the United States is one request rather than a filter applied after the fact.
What is the difference between the three domain modes?
Domain search returns the people at a company, with their names, job titles and the pages they were found on, optionally narrowed to up to ten job titles. Domain emails returns every address the provider holds at that domain, without attaching a person to each one. Generic contacts returns only the role mailboxes such as support, sales and billing. The last of those is worth keeping separate: role addresses are the wrong target for outreach and the right one for routing.
How does the email finder work?
It takes a person and a company and returns the most likely address for that pairing, along with the deliverability verdict and the checks behind it: whether the format is valid, whether the domain is disposable, whether it is a consumer webmail provider, and whether the local part looks like gibberish. Supply a list of names and a list of domains and every name is tried against every domain, so ten names at one company is exactly ten lookups. The provider takes ten at a time, and the actor batches accordingly.
What do the deliverability fields mean?
smtpStatus is the provider's verdict on the mailbox. validFormat is whether the address is syntactically well formed, which is a cheap check that catches typos. disposable flags throwaway providers, webmail flags consumer mailboxes rather than company ones, and gibberish flags local parts that look machine generated. unknownReason carries the provider's own explanation when it could not reach a verdict, which is what tells you whether a retry is worth it.
Why does the actor wait between submitting and returning results?
Because this provider is asynchronous almost everywhere. A request is accepted and answered with a task reference, and the data comes from a second route once the work is done. The actor manages that for you: it polls with a widening gap rather than continuously, treats an in progress status as a reason to keep waiting, and stops on a deadline you set with the task timeout. Nothing in the dataset is ever a half finished task.
Do I need my own API key?
Yes, and this provider issues two values rather than one. You use your own API user id and API secret from Snov.io, which is the provider whose prospect data API this actor calls, created on their dashboard. The actor exchanges the pair for a short lived token and refreshes it before it expires. Your own plan, credit balance and terms apply. Both values go into the input, where they are stored as Apify secrets and sent only to the provider's token endpoint, never in a URL.
How does this handle rate limits and spent credits?
The provider documents 60 requests per minute, and the actor spaces requests evenly to stay under whatever ceiling you set rather than bursting against it. A rate limit response is retried with backoff because it clears on its own. A spent credit balance is different: this provider reports it inside an otherwise successful response, the actor recognises it, and the run stops with what it has rather than burning retries on a balance that waiting will not refill.
What happens when a domain or an address returns nothing?
The row is written with found: false and an error giving the reason, and the run continues to the next input. Misses are not charged for. Set skipNotFound to true to leave them out of the dataset entirely.
How much does a run cost?
Pricing is pay per result: you are charged for each prospect, address or company returned to the dataset, and never for misses or duplicates. Apify platform usage is included in the per-result price. Your own API provider's credits, which this provider spends per prospect and per revealed address, are separate and billed by them.
Keyword map
B2B prospect database API, email finder API, bulk email verifier, domain search emails, find email by name and domain, company email lookup, decision maker search, management level filter, department filter prospecting, industry and revenue filters, company size search, LinkedIn profile enrichment, email to profile enrichment, company domain lookup, role email addresses, catch-all detection, disposable email detection, lead list building, sales prospecting data, CRM contact enrichment