Lusha provides a RESTful API that allows you to query a comprehensive dataset of business profiles and company information.
All API requests should be made over HTTPS (SSL), and the response bodies are delivered in JSON format.
Please note that Lusha is a search platform, meaning the data provided is not created or directly managed by us. Instead, it is retrieved from publicly available sources and through contributions from trusted business partners.
For more information on how we collect, use, and handle business profiles, please refer to our Privacy Policy.
To access the Lusha API, you must authenticate your requests using your API key. This key is unique to your account and is used to identify your usage of the API.
When making an API call, include your API key in the api_key
header of the request.
Lusha API enforces rate limiting to ensure fair usage and protect against excessive load.
To monitor your current rate limit status, check the HTTP response headers in your API calls:
Header | Description |
---|---|
x-rate-limit-daily | The total number of requests allowed per day under your current plan |
x-daily-requests-left | The number of requests remaining in your daily quota |
x-daily-usage | The number of requests you have made in the current daily period |
x-rate-limit-hourly | The total number of requests allowed per hour under your current plan |
x-hourly-requests-left | The number of requests remaining in your hourly quota |
x-hourly-usage | The number of requests you have made in the current hourly period |
x-rate-limit-minute | The total number of requests allowed per minute under your current plan |
x-minute-requests-left | The number of requests remaining in your current minute window |
x-minute-usage | The number of requests you have made in the current minute window |
X-RateLimit-Remaining-Daily
X-RateLimit-Reset-Daily
Lusha API uses standard HTTP response codes to indicate the status of your request. These codes help you understand whether the request was successful or if there was an issue.
Status Code | Name | Description |
---|---|---|
200 | OK | Successful request |
400 | Bad Request | Badly formatted request |
401 | Unauthorized | The API key is invalid |
403 | Forbidden | Your account is not active. Please reach out to support at support@lusha.com for assistance |
403 | Forbidden | Your pricing version does not support requesting individual datapoints [revealEmails, revealPhones] |
404 | Not Found | The requested endpoint was not found |
412 | Precondition Failed | The request failed due to invalid syntax that was provided. Please make sure to send a full name field that contains a valid first & last name |
429 | Too Many Requests | You've reached your trial limit, please contact support for upgrade |
429 | Too Many Requests | Daily API quota limit exceeded. Limit X calls per day |
429 | Too Many Requests | Hourly API rate limit exceeded. Limit: X calls per hour. Reset in X seconds |
451 | Unavailable For Legal Reasons | We are unable to process this contact request due to our GDPR regulations |
499 | Client Closed Request | Request failed due to request timeout |
5XX | Server Error | There's a problem on Lusha's end |
In case of an error, the response body will contain details about the error:
{
"error": {
"code": 400,
"message": "Invalid request parameters"
}
}
https://docs.lusha.com/_mock/apis/openapi/
https://api.lusha.com/
Find and enrich a single contact using various search criteria. You can search by name, email, LinkedIn URL, or company information.
Search Requirements: You must provide either:
Search Tips:
refreshJobInfo=true
to get the latest employment datafilterBy
parameter to specify what contact details you need⚠️ Important Notice - Unified Credits Plan Required
Parameter | Requirement |
---|---|
revealEmails and revealPhones | Only available to customers on the Unified Credits pricing plan |
Plan Restriction | Attempting to use these parameters on other plans will result in a 403 Unauthorized error |
Default Behavior | When neither parameter is used, the API returns both email addresses and phone numbers, if available |
The LinkedIn URL of the person
Set to true to refresh and update the job details for the person. This ensures that outdated job information is replaced with the most recent data.
Filters results based on specific contact details. Available options:
phoneNumbers
: Only return contacts with phone numbersemailAddresses
: Only return contacts with email addressesBy default, results will include contacts with at least one contact detail.
Set revealEmails=true
to retrieve only the email address of the contact.
https://docs.lusha.com/_mock/apis/openapi/v2/person
https://api.lusha.com/v2/person
curl -i -X GET \
'https://docs.lusha.com/_mock/apis/openapi/v2/person?companyDomain=lusha.com&companyName=Lusha&email=dustin%40lusha.com&filterBy=phoneNumbers&firstName=Dustin&lastName=Moskovitz&linkedinUrl=https%3A%2F%2Fwww.linkedin.com%2Fin%2Fdustin%2F&refreshJobInfo=true&revealEmails=true&revealPhones=true' \
-H 'api_key: YOUR_API_KEY_HERE'
{ "contact": { "error": { … }, "isCreditCharged": true, "data": { … } } }
Enrich multiple contacts in a single request. This endpoint allows you to submit a list of contacts and receive enriched data for each one, including company information.
Rate Limits: Up to 50 requests per second. You can process up to 100 contacts per request.
Credits: One credit is charged per successfully enriched contact.
⚠️ Important Notice - Unified Credits Plan Required
Parameter | Requirement |
---|---|
revealEmails and revealPhones | Only available to customers on the Unified Credits pricing plan |
Plan Restriction | Attempting to use these parameters on other plans will result in a 403 Unauthorized error |
Default Behavior | When neither parameter is used, the API returns both email addresses and phone numbers, if available |
The list of contacts to enrich
This is a required parameter that should contain a list of contact objects. Each contact will be processed based on the provided contact details.
A unique sequential ID to associate with the contact object in the API response
The LinkedIn URL of the person
https://docs.lusha.com/_mock/apis/openapi/v2/person
https://api.lusha.com/v2/person
curl -i -X POST \
https://docs.lusha.com/_mock/apis/openapi/v2/person \
-H 'Content-Type: application/json' \
-H 'api_key: YOUR_API_KEY_HERE' \
-d '{
"contacts": [
{
"contactId": "1",
"fullName": "John Doe",
"email": "john@example.com",
"companies": [
{
"name": "Example Corp",
"domain": "example.com",
"isCurrent": true
}
]
}
],
"metadata": {
"revealEmails": true,
"revealPhones": true
}
}'
{ "contacts": { "property1": { … }, "property2": { … } }, "companies": { "property1": { … }, "property2": { … } } }
With Lusha's Prospecting API, you can query Lusha's extensive database based on specific criteria (such as job title, seniority, location, and more) to retrieve detailed contact and company information.
The Prospecting API is designed to help you generate new records (contacts or leads) for your CRM system, using filters that align with your Ideal Customer Profile (ICP).
This process involves three main steps:
Step | API | Description |
---|---|---|
1 | Filters API | Apply filters to refine your search |
2 | Search API | Query Contacts or Companies using the available filters |
3 | Enrich API | Get full details of Contacts and Companies from the search results |
Important Notes: