Skip to main content
Lusha’s API gives you programmatic access to contact and company data for enrichment, prospecting, and sales intelligence. All requests are made over HTTPS and responses are returned in JSON format.
API access requires an API key. Every user gets their own key by default, on every plan including Free - see Authentication for how keys are owned and capped.

Authentication

Find your API key in API Hub (left sidebar). Click Copy API key in the top right, or open the Manage API Keys tab to view and manage your key. Pass the key in the request header to authenticate. Every key is tied to the user who generated it - Users get one key each; Admins and Managers can generate as many as they need. A key authenticates as its owner and draws from the account’s shared credit pool. How it’s capped depends on who generated it: a key a User generates is capped only by that user’s own personal credit limit (uncapped if they have none), while each key an Admin or Manager generates can also carry its own credit limit, set independently for that key and independently of their personal one.
Every user gets their own API key by default, on every plan including Free - API access is no longer limited to Admins and Managers.
Admins and Managers can turn a user’s API access off from Account Settings → Permissions. This suspends - rather than deletes - any key that user owns; turning access back on reactivates it automatically. If a user leaves the account, their key transfers to an Admin and keeps working. Admins and Managers can see every key in the account, and who owns each one, from the Manage API Keys tab.

Rate limits

Limits vary by plan: Free and Starter plans do not have an hourly limit - only per-minute and per-day caps apply. Rate limits are enforced per API key. Exceeding a limit will result in a 429 Too Many Requests response. To avoid a 429 error, implement retry logic with exponential backoff when hitting rate limits. Legacy users will keep the same limits they always had; 300/minute, 600/hour, 6000/day.

Available endpoints

The APIs tab in API Hub gives you a categorized view of every Lusha API: Prospecting, Enrichment, Signals, and Lookalikes. Each endpoint has a one-click Try button that opens the API playground with that action preloaded, so you can run live requests without any setup.

Person API

Retrieves contact data using identifiers like email, LinkedIn URL, name, company name, or domain. Returns location, email, phone, LinkedIn URL, and more. The Bulk Person API processes up to 100 contacts per request.

Company API

Retrieves firmographic data for a company based on its domain or name - industry, employee count, location, revenue, and more. The Bulk Company API handles multiple domains or names in a single request.

Prospecting API

Queries Lusha’s database using filters like job title, seniority, location, and industry to generate contact or company tables aligned with your ICP. The process has three stages: select filters, run the search, then enrich the results. See the Prospecting API documentation for all available filters.

Lookalike API

Uses machine learning to find contacts and companies that mirror your best-performing customers. Contact Lookalikes match by role, seniority, and career trajectory; Company Lookalikes match by industry, headcount, revenue, and firmographic profile. See the Lookalike API documentation.

Signals API

Enriches contacts and companies with timely sales intelligence like job moves, promotions, and company growth signals. Useful for triggering outreach at moments of change. See the Signals API documentation.

Signal Score

Signal Score is a 0-100 ranking that tells you who to work first. It combines buying signals - hiring, funding, tech installs, job changes, website visits, intent - into a single score per contact or company, so a raw list becomes a prioritized one. Signal Score used to be available only inside the AI Recommendations table. It now works on any list - bring your own contacts or companies (a CRM export, a saved search, a custom table) and get a Signal Score back on every row.
Signal Score is available via the API, MCP, and directly in the Platform - add it as a column on any Saved Table (companies or contacts) via the Enrich flow.
See Signal Score and ICP Fit Score for how the score is calculated. For full parameter reference, see the Signals API documentation.

Credit usage API

Returns current credit consumption by type. Rate limit: 5 requests per minute.

Data Waterfall (Waterfall Reveal)

Data Waterfall enhances contact enrichment by falling through to your enabled third-party providers when Lusha’s own data has no match for a requested email or phone - extra reach on hard-to-match contacts, on top of standard enrichment. Available on Pro plans and above, for both API and MCP. See Data Waterfall for full details on setup, how it works, and pricing.

MCP

API Hub includes a dedicated MCP tab. Grab your personal MCP URL there and follow the ready-made setup guides for Claude, ChatGPT, Codex, Cursor, and VS Code (plus Gong AI Briefer) to connect Lusha to any AI tool. See the Lusha MCP Server article for the full, current client list and setup instructions.
MCP connects over OAuth, not an API key, so it isn’t affected by a user’s API access permission. Admins can control MCP separately via a dedicated MCP access permission in Account Settings → Permissions - on by default; turn it off to restrict MCP connections to Admins and Managers only.

Conversation Intelligence

Search your account’s recorded Lusha Conversations calls and retrieve their transcripts programmatically, through two endpoints: Conversations Search and Transcript. Search returns each call’s summary, coaching scores, chapters, and participants; fetch the transcript separately.
Only completed conversations are returned, and there’s no built-in way to roll up action items, competitor mentions, or risks across multiple calls - pull the calls you want with Search and aggregate them yourself.
See Conversation Intelligence API for full credit costs and what each endpoint returns, or the Conversations API documentation for parameters.

Credit consumption

Credits are charged based on two factors: the data points revealed and the number of API results returned. Data points (per reveal): Request type: Example: revealing an email and phone for one contact costs 7 credits total (5 for phone + 1 for email + 1 for the request). Signals credits:
  • Growth Surge in Hiring: 1 credit per company
  • Growth in Headcount: 1 credit per company
  • Job Change: 1 credit per contact
Key rules: A minimum of 1 credit applies per request even if no data is returned. Maximum 100 contacts or companies per request. Each contact’s data point is only charged once - re-querying the same contact won’t incur additional charges for already-revealed data.

Managing credit consumption per key

How you cap a key’s spending depends on who generated it. A key an Admin or Manager generated can carry its own monthly credit limit, on top of their personal limit. Admins and Managers can generate as many keys as they need, and each one gets its own limit, set independently of the others.
1

Open Manage API Keys

In API Hub, click the Manage API Keys tab.
2

Open the key's credit limit

Click the edit (pencil) icon or Set limit in the Credit usage column.
3

Set the monthly credit limit

In the Edit Key panel, toggle on the limit and enter the maximum credits allowed per month.
4

Confirm

Click Continue.
A key a User generated for themselves has no limit of its own - an Admin or Manager can’t cap that specific key the way they can a key they generated themselves. To cap how much a workflow using that key can spend (Zapier, Make, an internal script, and so on), set a credit limit on the user instead:
1

Open Team Management

Go to Settings → Team Management.
2

Select the user

Select the user whose key you want to cap.
3

Set their credit limit

Set their credit limit the same way you would for any team member - see How to limit credits per user or group.
Only Admins and Managers can set or edit a credit limit - on a key they generated themselves, or on a user’s account. If a user has no personal credit limit, their key is uncapped and can draw on the full account credit balance.

Troubleshooting: my API calls are rejected with a credit limit error

If your API calls fail with a credit limit error, check which kind of key is failing:
  • A key an Admin or Manager generated (they can generate more than one) may have its own monthly limit, separate from their personal credit limit - check it under API Hub → Manage API Keys.
  • A key a User generated for themselves has no limit of its own - the block is coming from that user’s own credit limit, set under Settings → Team Management.
To check and fix it:
1

Find the key's owner

Find out who owns the key that’s failing, and whether it’s a key an Admin/Manager generated or a User’s key - Admins and Managers can see every key and its owner under API Hub → Manage API Keys.
2

Edit an Admin/Manager key's limit

If it’s an Admin/Manager-generated key with its own limit, edit or remove that limit from the same tab.
3

Check a User's credit limit

Otherwise, go to Settings → Team Management and check that user’s credit limit - raise it, remove it, or free up some of their allowance.
Only Admins and Managers can view and edit credit limits, whether per-key or per-user. If you don’t have that access, ask your Lusha Admin or Manager to check it for you.
If there’s no limit anywhere and you’re still seeing the error, the account’s shared credit balance itself may be exhausted - check your plan’s credit balance, or contact Lusha Support with the API key name and the error message you received.

Error handling

Lusha’s API uses standard HTTP response codes. See the full table in the API documentation or the API Error Code Reference. (a) Data brokers and other third-party platforms may not embed, expose, or otherwise provide access to the Lusha API, or to Data obtained through it, on or through their own website, product, or service, without Lusha’s prior written consent. (b) Data obtained through the API may not be used to train or develop AI/ML systems, subject to the terms and exceptions outlined in the Terms and Conditions.