

Build with Exellius Data
A single REST API for verified business emails, phone numbers, company enrichment, and contact lookups — built for developers who need reliable B2B data in production.
Authenticate with an API key, call any endpoint, and get clean JSON back. No SDKs required to get started.
fetch(
"https://api.exellius.com/api/v1/email-finder/" +
"?domain=exellius.com" +
"&first_name=sunil&last_name=patil",
{
headers: {
Authorization: "Bearer <api_key>"
}
}
)
.then(res => res.json())
.then(data => console.log(data));
// {
// "status": "success",
// "data": {
// "email": "sunil.patil@exellius.com",
// "verified": true
// }
// }Search
Build targeted lists of people by industry, company, job title, and location — then pull their emails, phone numbers, or both.
const myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "Bearer <YOUR_API_KEY>");
const raw = JSON.stringify({
includeIndustry: ["accounting"],
excludeIndustry: [],
includeEmployeeCount: null,
includeRevenue: null,
includeManagementRole: null,
includeCompany: [],
excludeCompany: [],
includeDepartmentKeyword: null,
includePersonalCountry: null,
excludePersonalCountry: null,
includeCompanyLocation: null,
excludeCompanyLocation: null,
includeJobTitles: null,
excludeJobTitles: null,
includeTechnology: null,
includeFirstName: null,
includeLastName: null,
search: null,
funding: null,
foundingYearOptions: null,
includeLinkedinUrl: null
});
const requestOptions = {
method: "POST",
headers: myHeaders,
body: raw,
redirect: "follow"
};
fetch("https://api.exellius.com/api/v1/people/search/email?limit=1", requestOptions)
.then((response) => response.text())
.then((result) => console.log(result))
.catch((error) => console.error(error));Find, search, and verify business email addresses with four purpose-built endpoints.
const myHeaders = new Headers();
myHeaders.append("Authorization", "Bearer <api_key>");
const requestOptions = {
method: "GET",
headers: myHeaders,
redirect: "follow"
};
fetch(
"https://api.exellius.com/api/v1/people/find/email
?domain=exellius.com&first_name=omkar&last_name=shinde&limit=1",
requestOptions
)
.then((response) => response.json())
.then((result) => console.log(result))
.catch((error) => console.error(error));Phone
Find phone numbers and contact details for people at any company with three purpose-built endpoints.
const myHeaders = new Headers();
myHeaders.append("Authorization", "Bearer <api_key>");
const requestOptions = {
method: "GET",
headers: myHeaders,
redirect: "follow"
};
fetch(
"https://api.exellius.com/api/v1/people/find/phone
?domain=exellius.com&first_name=omkar&last_name=shinde&limit=1",
requestOptions
)
.then((response) => response.text())
.then((result) => console.log(result))
.catch((error) => console.error(error));Enrichment
Enrich emails, LinkedIn profiles, phone numbers, and companies with detailed contact and firmographic data.
const myHeaders = new Headers();
myHeaders.append("Authorization", "Bearer <api_key>");
const requestOptions = {
method: "GET",
headers: myHeaders,
redirect: "follow"
};
fetch(
"https://api.exellius.com/api/v1/people/enrich/email
?email=omkar.shinde@exellius.com&limit=1",
requestOptions
)
.then((response) => response.text())
.then((result) => console.log(result))
.catch((error) => console.error(error));Frequently Asked Questions
Everything you need to know about authenticating, calling, and working with the Exellius API.
Every request must include your API key as a Bearer token in the Authorization header, e.g. Authorization: Bearer <api_key>. You can generate and manage your API keys from your developer dashboard.
All endpoints return JSON. List-based endpoints (like Phone Finder or Domain Search) return a paginated envelope with success, data, total_count, per_page_count, and current_page fields. Lookup endpoints (like Email Verifier) return a single object under data.
For endpoints that return multiple records, use current_page along with per_page_count to page through results. total_count tells you how many matching records exist in total across all pages.
Each successful lookup or enrichment call deducts credits from your account, shown in the credits_deducted field of the response. Your remaining balance is returned in remaining_credits so you can track usage in real time.
Requests beyond your plan's rate limit will receive a 429 Too Many Requests response. We recommend implementing exponential backoff and retry logic in production integrations.
Yes, new accounts start with a limited number of free credits so you can test every endpoint before committing to a paid plan. No credit card is required to get started.
Emails are returned with a status such as Valid or Verified, indicating our confidence in deliverability. We recommend running results through the Email Verifier endpoint before sending to time-sensitive campaigns.
Yes. Depending on the endpoint, you can look up contacts using a company domain, a first and last name combined with a domain, an email address, or a full LinkedIn profile URL.
The API is designed to be called from your backend. Calling it directly from client-side code would expose your API key, so we recommend proxying requests through your own server.
Reach out to our support team through the Contact Sales page, or check the endpoint-specific documentation on this page for request and response examples.