openapi: 3.2.0 info: title: Lusha API Documentation Prospecting - Search & Enrich API version: '' x-logo: url: https://www.lusha.com/logo.png license: name: Proprietary url: https://lusha.com/legal/terms description: "
\n\n⚠️ **This version is soon to be deprecated.** Please [migrate to V3](/apis/openapi).\n\n
\n\n---\n\nLusha provides a RESTful API that allows you to query a comprehensive\ndataset of business profiles and company information.\n\nIt is designed for teams building prospecting, enrichment, automation, and analytics workflows that require accurate, continuously updated business data. The API supports both real-time and bulk use cases and is suitable for production environments.\n\nUse the Lusha API to search for new prospects, enrich existing records, react to real-world changes, and expand coverage using lookalike recommendations.\n\n*All API requests should be made over HTTPS (SSL), and the response bodies are delivered in JSON format.*\n\n---\n \n\n
\n
\n\n \n
\n

\n Person\n

\n \n\n
https://api.lusha.com/v2/person
\n\n
\n \n ▶ Common Use Cases\n \n
    \n
  • • Form enrichment
  • \n
  • • CRM completion
  • \n
  • • Outbound personalization
  • \n
\n
\n
\n\n \n
\n

\n Company\n

\n \n\n
https://api.lusha.com/v2/company
\n\n
\n \n ▶ Common Use Cases\n \n
    \n
  • • Account enrichment
  • \n
  • • Routing, scoring, territory logic
  • \n
  • • Market analysis & segmentation
  • \n
\n
\n
\n\n \n
\n

\n Signals\n

\n \n\n
https://api.lusha.com/v2/signals
\n\n
\n \n ▶ Common Use Cases\n \n
    \n
  • • Job change tracking
  • \n
  • • Company updates signals
  • \n
  • • News event alerts
  • \n
\n
\n
\n\n \n
\n

\n Lookalikes\n

\n \n\n
https://api.lusha.com/v3/lookalike
\n\n
\n \n ▶ Common Use Cases\n \n
    \n
  • • Market expansion
  • \n
  • • Similar account discovery
  • \n
  • • Prospect recommendations
  • \n
\n
\n
\n\n \n
\n

\n Filters\n

\n \n
\n\n \n
\n

\n Account\n

\n \n
\n\n
\n
\n\n \n
\n
\n
\n
\n Webhooks API\n NEW\n
\n

\n Subscribe to real-time notifications when contacts change jobs or companies experience key business events.\n

\n \n View Documentation →\n \n
\n
\n
\n\n\n\n---\n\n**Data Source and Privacy**\n\nPlease note that **Lusha is a search platform**, meaning the data provided\nis not created or directly managed by us. Instead, it is retrieved from\npublicly available sources and through contributions from trusted business\npartners.\n\nFor more information on how we collect, use, and handle business profiles,\nplease refer to our [Privacy Policy](https://lusha.com/legal/privacy-notice/).\n\n----\n\n## Authentication\n\nAPI keys are required for all API and MCP requests and are tied to your Lusha account and plan. To access the Lusha API, you must authenticate your requests using your API\nkey. This key is unique to your account and is used to identify your usage\nof the API.\n\n**How to Authenticate:**\n\nWhen making an API call, include your API key in the `api_key` header of the request.\n\n> You can generate and retrieve your API key [here](https://dashboard.lusha.com/enrich/api).\n\nAPI keys should be stored securely and used only in server-side environments.\n\n---\n\n## Rate Limiting\n\nLusha enforces rate limits on a per-plan basis to ensure fair usage and platform stability. Limits are applied across multiple time windows (per minute, per hour, and per day), and vary depending on your account plan.\n\nRate limits for the **Credit Usage API** differ from standard endpoint limits.\n\n> **Note:** To check your current plan's limits, visit the [Lusha Help Center](https://info.lusha.com/en/articles/163856-all-there-is-to-know-about-lusha-s-api) or contact your account manager.\n\n**Rate Limit Response Headers**\n\nTo monitor your current rate limit status, check the HTTP response headers\nin your API calls:\n\n| Header | Description |\n|--------|-------------|\n| `x-rate-limit-daily` | The total number of requests allowed per day under your current plan |\n| `x-daily-requests-left` | The number of requests remaining in your daily quota |\n| `x-daily-usage` | The number of requests you have made in the current daily period |\n| `x-rate-limit-hourly` | The total number of requests allowed per hour under your current plan |\n| `x-hourly-requests-left` | The number of requests remaining in your hourly quota |\n| `x-hourly-usage` | The number of requests you have made in the current hourly period |\n| `x-rate-limit-minute` | The total number of requests allowed per minute under your current plan |\n| `x-minute-requests-left` | The number of requests remaining in your current minute window |\n| `x-minute-usage` | The number of requests you have made in the current minute window |\n\n---\n\n## Error Codes\n\nLusha API uses standard HTTP response codes to indicate the status of your request.\n\n| Status Code | Name | Description |\n|-------------|------|-------------|\n| **200** | OK | Successful request |\n| **400** | Bad Request | Badly formatted request |\n| **401** | Unauthorized | The API key is invalid |\n| **402** | Payment Required | Your account requires payment |\n| **403** | Forbidden | Your account is not active. Please reach out to support at *support@lusha.com* for assistance |\n| **403** | Forbidden | Your pricing version does not support requesting individual datapoints [revealEmails, revealPhones] |\n| **404** | Not Found | The requested endpoint was not found |\n| **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 |\n| **429** | Too Many Requests | You've reached your trial limit, please contact support for upgrade |\n| **429** | Too Many Requests | Daily API quota limit exceeded. Limit X calls per day |\n| **429** | Too Many Requests | Hourly API rate limit exceeded. Limit: X calls per hour. Reset in X seconds |\n| **451** | Unavailable For Legal Reasons | We are unable to process this contact request due to our GDPR regulations |\n| **499** | Client Closed Request | Request failed due to request timeout |\n| **5XX** | Server Error | There's a problem on Lusha's end |\n\n**Error Response Format**\n\nIn case of an error, the response body will contain details about the error:\n\n ```json\n {\n \"error\": {\n \"code\": 400,\n \"message\": \"Invalid request parameters\"\n }\n }\n ```\n\n**Handling errors**\n\n- Always ensure your API key is correct and valid\n- Pay attention to the specific error message and code to troubleshoot issues efficiently\n- Implement proper error handling and retry logic in your application\n- For 5XX errors, implement exponential backoff before retrying\n\n---\n" contact: name: Lusha Support url: https://api.lusha.com email: support@lusha.com termsOfService: https://lusha.com/legal/terms x-privacy-policy: name: Privacy Policy url: https://lusha.com/legal/privacy-notice/ servers: - url: https://api.lusha.com description: Production server security: - ApiKeyAuth: [] tags: - name: Prospecting - Search & Enrich description: '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 companies) 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 *(check available Contact and Company filter endpoints)* | | 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 | ' x-tag-expanded: true paths: /prospecting/contact/search: post: tags: - Prospecting - Search & Enrich summary: Search Contacts description: "Search for contacts using various filters. This is step 2 of the prospecting process.\n\n*Endpoint*: **(POST) https://api.lusha.com/prospecting/contact/search**\n---\n##### Signal Filtering (Premium Feature)\nFilter contacts by signal types to find prospects at key career moments.\n\n > **Note:** This is a premium feature. Credits are charged for each signal type that returns results.\n\n---\n##### DNC Filtering (Scale Feature)\nUse `excludeDnc: true` at the top level of the request body to filter out contacts whose phone numbers are all marked Do Not Call.\n- Contacts with **at least one callable phone** appear in results - Only callable phones are shown — DNC phones are hidden - Contacts with **only DNC phones** are excluded entirely\n> **Note**: Returns **403** on unsupported plans.\n" operationId: searchProspectingContacts requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ContactSearchRequest' examples: basicContactSearch: summary: Basic contact search with filters value: pages: page: 0 size: 20 filters: contacts: include: departments: - Engineering & Technical - Marketing seniority: - 4 - 5 existing_data_points: - phone - work_email - mobile_phone locations: - continent: North America country: United States city: New York state: New York country_grouping: na signals: names: - allSignals - promotion - companyChange startDate: '2025-11-01' exclude: departments: - Human Resources companies: include: names: - Apple - Microsoft locations: - country: United States technologies: - Salesforce - Amazon Web Services mainIndustriesIds: - 4 - 5 subIndustriesIds: - 101 intentTopics: - Digital Sales sizes: - min: 100 max: 1000 revenues: - min: 10000000 max: 100000000 sicCodes: - '1011' - '1021' naicsCodes: - '11' - '21' exclude: {} simpleExample: summary: Simple search example value: pages: page: 0 size: 10 filters: contacts: include: departments: - Sales withSearchText: summary: Contact search with searchText filter value: pages: page: 0 size: 50 filters: contacts: include: searchText: Amit departments: - Engineering & Technical exclude: searchText: Ronen companies: include: searchText: finance marketing in Germany DE dncFilterExample: summary: Exclude DNC contacts — Scale only value: pages: page: 0 size: 20 excludeDnc: true filters: contacts: include: linkedinUrls: - https://www.linkedin.com/in/justin-pernitz - https://www.linkedin.com/in/andrewbarrettbettcher - https://www.linkedin.com/in/aitor-moreno-artola-11a2a985 companies: {} employeesInLinkedInContactExample: summary: Filter contacts by company LinkedIn employee count value: pages: page: 0 size: 20 filters: contacts: include: departments: - Sales companies: include: employeesInLinkedIn: min: 500 responses: '200': description: Search results with contact IDs content: application/json: schema: $ref: '#/components/schemas/ContactSearchResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': description: Forbidden — DNC filter not available on your current plan content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: statusCode: 403 message: Exclude DNC is not supported on your current plan. Please contact support or your account manager for assistance. '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' /prospecting/contact/enrich: post: tags: - Prospecting - Search & Enrich summary: Enrich Contacts description: "Enrich contacts from search results. This is step 3 of the prospecting process.\n\n *Endpoint*: **(POST) https://api.lusha.com/prospecting/contact/enrich**\n---\n\n⚠️ **Important Notice - Unified Credits Plan Required**\n\n| Parameter | Requirement |\n|-----------|-------------|\n| `revealEmails` and `revealPhones` | Only available to customers on the **Unified Credits** pricing plan |\n| Plan Restriction | Attempting to use these parameters on other plans will result in a **403 Unauthorized** error |\n| Default Behavior | When neither parameter is used, the API returns **both email addresses and phone numbers**, if available |\n\n---\n" operationId: enrichProspectingContacts requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ContactEnrichRequest' examples: basicExample: summary: Basic enrichment request value: requestId: b6effae6-35b8-493d-91aa-7d3b1b7c7dc7 contactIds: - 37b4c536-eaec-11ef-ad4b-a75f8e9e1484 unifiedCreditsExample: summary: Unified Credits plan with selective reveal value: requestId: b6effae6-35b8-493d-91aa-7d3b1b7c7dc7 contactIds: - ddfb6966-741f-4fca-a62b-e553d4ac12f8 revealEmails: false revealPhones: true responses: '200': description: Enriched contact data content: application/json: schema: $ref: '#/components/schemas/ContactEnrichResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' /prospecting/company/search: post: tags: - Prospecting - Search & Enrich summary: Search Companies description: "Search for companies using various filters. This is step 2 of the prospecting process.\n\n*Endpoint*: **(POST) https://api.lusha.com/prospecting/company/search**\n---\n\n##### Signal Filtering (Premium Feature)\nFilter companies by signal types to identify those with recent business events and changes.\n\n > **Note:** This is a premium feature. Credits are charged for each signal type that returns results.\n" operationId: searchProspectingCompanies requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CompanySearchRequest' examples: companyLocationsExample: summary: Filter by site-level office locations value: pages: page: 0 size: 20 filters: companies: include: companyLocations: - country: United States state: California - country: Germany employeesInLinkedInExample: summary: Filter by LinkedIn employee count range value: pages: page: 0 size: 20 filters: companies: include: employeesInLinkedIn: min: 100 max: 5000 responses: '200': description: Search results with company IDs content: application/json: schema: $ref: '#/components/schemas/CompanySearchResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' /prospecting/company/enrich: post: tags: - Prospecting - Search & Enrich summary: Enrich Companies description: "Enrich companies from search results. This is step 3 of the prospecting process.\n\n *Endpoint*: **(POST) https://api.lusha.com/prospecting/company/enrich**\n" operationId: enrichProspectingCompanies requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CompanyEnrichRequest' responses: '200': description: Enriched company data content: application/json: schema: $ref: '#/components/schemas/CompanyEnrichResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' components: schemas: EmployeesInLinkedInFilter: type: object description: 'Filter companies by LinkedIn-reported employee count. Both `min` and `max` are optional — provide either or both. ' properties: min: type: integer format: int64 description: Minimum employee count (inclusive) example: 100 max: type: integer format: int64 description: Maximum employee count (inclusive) example: 5000 LinkedinCourse: type: object properties: activities: type: - string - 'null' degree: type: - string - 'null' endDateMonth: oneOf: - type: - integer - 'null' - type: - string - 'null' endDateYear: oneOf: - type: - integer - 'null' - type: - string - 'null' fieldOfStudy: type: - object - 'null' properties: id: type: - string - 'null' name: type: - string - 'null' grade: type: - string - 'null' school: type: - object - 'null' properties: id: type: - string - 'null' logoUrl: type: - string - 'null' name: type: - string - 'null' startDateMonth: oneOf: - type: - number - 'null' - type: - string - 'null' startDateYear: oneOf: - type: - number - 'null' - type: - string - 'null' linkedinSchoolId: type: - number - 'null' PhoneNumbers: type: object properties: number: type: string description: The phone number example: '+1234567890' phoneType: type: string description: The type of phone number example: Mobile enum: - Mobile - Direct - Phone doNotCall: type: boolean description: Indicates whether the phone number is listed as "Do Not Call" (DNC). example: false updateDate: type: string description: The update date of the phone number example: '2020-01-01' required: - phoneType - doNotCall - updateDate CompanySearchRequest: type: object properties: pages: $ref: '#/components/schemas/PaginationParams' filters: type: object properties: companies: $ref: '#/components/schemas/CompanyFilters' required: - filters ContactSearchRequest: type: object properties: includePartialContact: type: boolean description: 'When set to true, includes contacts with partial information in the search results. ' default: true example: false excludeDnc: type: boolean description: 'When `true`, excludes contacts whose phones are all marked Do Not Call (DNC). ' default: false example: true pages: $ref: '#/components/schemas/PaginationParams' filters: type: object properties: contacts: $ref: '#/components/schemas/ContactFilters' companies: $ref: '#/components/schemas/CompanyFilters' required: - filters CompanyHeadcountChangeSignal: type: object properties: companyId: type: string example: '3416' signalId: type: string example: '1503904' signalDate: type: string format: date example: '2025-06-15' baselineEmployeesCount: type: number example: 500 newEmployeesCount: type: number example: 550 changeRatePercent: type: number example: 10 companyName: type: string example: Lusha domain: type: string example: lusha.com LinkedinAward: type: object properties: companyName: type: - string - 'null' example: Columbia Southern University dateDay: oneOf: - type: number - type: string example: 15 dateMonth: oneOf: - type: number - type: string example: 7 dateYear: oneOf: - type: number - type: string example: 2023 linkedinCompanyId: type: - string - 'null' summary: type: - string - 'null' example: Certificate of Recognition for Exceptional Teaching title: type: string example: Raising the Bar Award CompanySizeRange: type: object properties: min: type: number example: 1 max: type: number example: 10 ContactFilters: type: object properties: include: type: object properties: departments: type: array items: type: string example: - Engineering & Technical seniority: type: array items: type: integer example: - 4 - 5 existing_data_points: type: array items: type: string example: - phone - work_email locations: type: array items: $ref: '#/components/schemas/LocationFilter' jobTitles: type: array items: type: string example: - CTO - Chief Technology Officer - VP Engineering - Senior Developer linkedinUrls: type: array description: Filter contacts by LinkedIn profile URLs items: type: string example: - https://www.linkedin.com/in/justin-pernitz - https://www.linkedin.com/in/andrewbarrettbettcher searchText: type: string description: Free-text search across contact fields example: Amit signal: type: object description: Filter contacts by signal types (premium filter - charges apply per signal type) properties: names: type: array description: Signal types to filter by items: type: string enum: - allSignals - promotion - companyChange example: - promotion - companyChange startDate: type: string format: date description: Start date for signal detection (YYYY-MM-DD format) example: '2025-11-01' exclude: type: object description: Same structure as include, for exclusion filters RevenueRange: type: object properties: min: type: number example: 1 max: type: number example: 1000000 CompanyEnrichResponse: type: object properties: requestId: type: string description: The requestId used in the request companies: type: array items: $ref: '#/components/schemas/CompanyEnrichData' CompanySearchResponse: type: object properties: requestId: type: string description: The requestId that should be used in Prospecting Enrich request API params currentPage: type: number description: Current page of search results pageLength: type: number description: Page length totalResults: type: number description: Total search results companies: type: array items: $ref: '#/components/schemas/CompanySearchData' LinkedinCertification: type: object properties: companyId: type: integer example: 1035 companyName: type: string example: Microsoft credentialId: type: string example: abc123 dateMonth: anyOf: - type: integer - type: string example: 6 dateYear: anyOf: - type: integer - type: string example: 2020 expireDateMonth: anyOf: - type: integer - type: string example: 6 expireDateYear: anyOf: - type: integer - type: string example: 2025 linkedinCompanyId: type: - integer - 'null' example: 1441 summary: type: - string - 'null' example: Azure fundamentals certification covering cloud concepts title: type: string example: 'Microsoft Certified: Azure Fundamentals' verifyUrl: type: - string - 'null' example: https://www.youracclaim.com/badges/5ccf865c-dd6e-4dcc-9184-c8999d31f83d ErrorResponse: type: object required: - statusCode - message properties: statusCode: type: integer description: HTTP status code example: 400 message: type: string description: Error message example: Validation failed errors: type: array items: type: string description: Detailed error messages (optional, only for validation errors) example: - 'entityType must be one of: contact, company' CompanyLocationFilter2: type: object description: 'Site-level office location filter. At least `country` is required. ' required: - country properties: country: type: string example: United States state: type: string example: California ContactSearchResponse: type: object properties: requestId: type: string description: The unique request ID used for subsequent enrichment requests currentPage: type: number description: The current page of the search results pageLength: type: number description: The number of results on the page totalResults: type: number description: The total number of search results contacts: type: array items: $ref: '#/components/schemas/ContactSearchData' PaginationParams: type: object properties: page: type: number description: Page number (0-1000) minimum: 0 maximum: 1000 default: 0 size: type: number description: Page size (10-50) minimum: 10 maximum: 50 default: 20 CompanySurgeInHiringSignal: type: object properties: companyId: type: string example: '3416' signalId: type: string example: '1503905' signalDate: type: string format: date example: '2025-06-15' newJobsPostedLastWeek: type: number example: 25 historicalAvg: type: number example: 10 changeRatePercent: type: number example: 150 companyName: type: string example: Lusha domain: type: string example: lusha.com CompanyFilters: type: object properties: include: type: object properties: names: type: array items: type: string example: - Apple domains: type: array items: type: string example: lusha.com locations: type: array items: type: object properties: country: type: string example: United States technologies: type: array items: $ref: '#/components/schemas/CompanyTechnology' example: - name: Amazon intentTopics: type: array items: type: string example: - Digital Sales sizes: type: array items: $ref: '#/components/schemas/CompanySizeRange' revenues: type: array items: $ref: '#/components/schemas/RevenueRange' sicCodes: type: array items: type: string example: - '1011' - '1021' naicsCodes: type: array items: type: string example: - '11' - '21' mainIndustriesIds: type: array items: type: number example: - 4 - 5 subIndustriesIds: type: array items: type: number example: - 101 searchText: type: string description: Free-text search across company fields example: Finance Marketing in Germany DE excludePartialCompanies: type: boolean example: false companyLocations: type: array description: 'Filter by company site-level office locations as reported by LinkedIn. This includes all physical office locations where the company has a presence. ' items: $ref: '#/components/schemas/CompanyLocationFilter2' example: - country: United States state: California - country: Germany employeesInLinkedIn: $ref: '#/components/schemas/EmployeesInLinkedInFilter' signal: type: object description: 'Filter companies by signal types (premium filter - charges apply per signal type). ' properties: names: type: array description: Signal types to filter by items: type: string enum: - allSignals - websiteTrafficIncrease - websiteTrafficDecrease - itSpendIncrease - itSpendDecrease - headcountIncrease1m - headcountDecrease1m - headcountIncrease3m - headcountDecrease3m - headcountIncrease6m - headcountDecrease6m - headcountIncrease12m - headcountDecrease12m - surgeInHiring - surgeInHiringByDepartment - surgeInHiringByLocation - riskNews - commercialActivityNews - corporateStrategyNews - financialEventsNews - peopleNews - marketIntelligenceNews - productActivityNews example: - commercialActivityNews - financialEventsNews startDate: type: string format: date description: Start date for signal detection (YYYY-MM-DD format) example: '2025-11-01' exclude: type: object description: Same structure as include, for exclusion filters LocationFilter: type: object properties: continent: type: string example: North America country: type: string example: United States city: type: string example: New York state: type: string example: New York country_grouping: type: string example: na CompanySurgeInHiringByDepartmentSignal: type: object properties: signalId: type: string example: '1503906' companyId: type: string example: '3416' department: type: string example: Engineering signalDate: type: string format: date example: '2025-06-15' newJobsPostedLast4Weeks: type: number example: 15 historicalAvg: type: number example: 5 changeRatePercent: type: number example: 200 companyName: type: string example: Lusha domain: type: string example: lusha.com ContactEnrichData: type: object properties: firstName: type: string example: Carolina lastName: type: string example: Portela fullName: type: string example: Carolina Portela isShown: type: boolean example: false jobTitle: type: string example: Solutions Engineer location: type: object properties: city: type: string example: Boston state: type: string example: Massachusetts country: type: string example: United States country_iso2: type: string example: US continent: type: string example: North America emailAddresses: type: array items: $ref: '#/components/schemas/EmailAddress' phoneNumbers: type: array items: $ref: '#/components/schemas/PhoneNumbers' companyId: type: number example: 3553744 companyName: type: string example: Lusha socialLinks: type: object properties: linkedin: type: string example: https://www.linkedin.com/in/carolinaportela/ xUrl: type: string example: https://twitter.com/carolina departments: type: array items: type: string example: Engineering & Technical seniority: type: array items: type: object properties: id: type: number example: 4 value: type: string example: senior company: type: object properties: revenueRange: type: array items: type: number funding: $ref: '#/components/schemas/CompanyFunding' intent: $ref: '#/components/schemas/CompanyIntent' mainIndustry: type: string subIndustry: type: string technologies: type: array items: $ref: '#/components/schemas/CompanyTechnology' linkedinFollowersCount: type: integer example: 1250 linkedinConnectionsCount: type: integer example: 500 linkedinCertifications: type: array items: $ref: '#/components/schemas/LinkedinCertification' linkedinCourses: type: array items: $ref: '#/components/schemas/LinkedinCourse' linkedinAwards: type: array items: $ref: '#/components/schemas/LinkedinAward' linkedinSkills: type: array items: type: string example: - Microsoft Office - Project Management - Strategic Planning CompanySurgeInHiringByLocationSignal: type: object properties: signalId: type: string example: '1503907' companyId: type: string example: '3416' country: type: string example: United States state: type: string example: California signalDate: type: string format: date example: '2025-06-15' newJobsPostedLast4Weeks: type: number example: 20 historicalAvg: type: number example: 8 changeRatePercent: type: number example: 150 companyName: type: string example: Lusha domain: type: string example: lusha.com CompanyNewsSignal: type: object properties: companyId: type: string example: '33222678' companyName: type: string example: Lusha domain: type: string example: lusha.com signalId: type: string example: '1503910' eventType: type: string example: partnership eventSummary: type: string example: Lusha announced a strategic partnership with Salesforce. articlePublishedDate: type: string format: date example: '2025-06-15' articleTitle: type: string example: Lusha Partners with Salesforce articleHighlight: type: string example: The partnership enables Salesforce users to access Lusha data directly within their CRM. eventEffectiveDate: type: string format: date example: '2025-06-10' articleUrl: type: string format: uri example: https://example.com/lusha-salesforce-partnership CompanyIntentTopic: type: object properties: topicName: type: string example: Remote Sales metadata: $ref: '#/components/schemas/CompanyIntentTopicMetadata' required: - topicName - metadata ContactEnrichResponse: type: object properties: requestId: type: string description: The requestId that was used in the request contacts: type: array items: type: object properties: id: type: string description: The ID of the contact from the enrichment request isSuccess: type: boolean description: Indicates whether the enrichment process was successful data: $ref: '#/components/schemas/ContactEnrichData' CompanyIntent: type: object properties: detectedTopics: type: array items: $ref: '#/components/schemas/CompanyIntentTopic' topicCount: type: number example: 6 required: - detectedTopics - topicCount CompanyFundingRound: type: object properties: currency: type: string example: USD roundAmount: type: number example: 205000000 roundType: type: string example: Private Equity Round roundDate: type: string example: Nov 10, 2021 required: - currency - roundAmount - roundType - roundDate EmailAddress: type: object properties: email: type: string description: The email address (alternative to 'address') example: dustin@lusha.com address: type: string description: The email address (alternative to 'email') example: dustin@lusha.com emailType: type: string description: The type of email address (alternative to 'type') example: work enum: - work - private emailConfidence: type: string description: The confidence level of the email address example: A+ updateDate: type: string description: The update date of the email address example: '2020-01-01' CompanySearchData: type: object properties: id: type: string description: A unique identifier for a Lusha company name: type: string description: The name of the company fqdn: type: string description: The fqdn of the company description: type: string description: A description of the company logoUrl: type: string description: The URL of the company's logo hasCompanyEmployeesCount: type: boolean hasCompanyRevenue: type: boolean hasCompanyMainIndustry: type: boolean hasCompanySubIndustry: type: boolean hasCompanyFunding: type: boolean hasCompanyIntent: type: boolean hasCompanyTechnologies: type: boolean hasCompanyCity: type: boolean hasCompanyCountry: type: boolean signalTypes: type: array description: Types of signals detected for this company items: type: string CompanyTechnology: type: object properties: name: type: string example: salesforce required: - name ContactEnrichRequest: type: object properties: requestId: type: string description: The requestId generated in the Prospecting Search response (UUID) example: b6effae6-35b8-493d-91aa-7d3b1b7c7dc7 contactIds: type: array description: An array containing the contact IDs for enrichment. Min 1, max 100. items: type: string example: - 37b4c536-eaec-11ef-ad4b-a75f8e9e1484 revealEmails: type: boolean description: 'Set `revealEmails=true` to retrieve only the email address of the contact. Only available to customers on the **Unified Credits** pricing plan. ' example: false revealPhones: type: boolean description: 'Set `revealPhones=true` to retrieve only the phone number of the contact. Only available to customers on the **Unified Credits** pricing plan. ' example: true required: - requestId - contactIds CompanyWebsiteTrafficSignal: type: object properties: companyId: type: string example: '3416' signalId: type: string example: '1503902' signalDate: type: string format: date example: '2025-06-15' historicalAvg: type: number example: 50000 lastMonthVisits: type: number example: 75000 changeRatePercent: type: number example: 50 companyName: type: string example: Lusha domain: type: string example: lusha.com CompanyEnrichRequest: type: object properties: requestId: type: string description: The requestId from the Prospecting Search response example: 5ad275c8-7dd4-462a-bd45-6bc1970da64e companiesIds: type: array description: An array of company IDs for enrichment. Min 1, max 100. items: type: string example: - '1586' required: - requestId - companiesIds CompanyEnrichData: type: object properties: id: type: number example: 33222678 name: type: string example: Lusha companySize: type: object properties: min: type: number example: 11 max: type: number example: 50 employees_in_linkedin: type: number example: 32 employees: type: string example: 10001 - 100000 revenueRange: type: array items: type: number example: - 10000000 - 50000000 fqdn: type: string example: www.lusha.com description: type: string example: Lusha is the sales intelligence platform designed to help businesses get their next customers. domains: type: object properties: email: type: string example: lusha.com homepage: type: string example: lusha.com logoUrl: type: string example: https://logo.lusha.co/logo.jpg industryTags: type: array items: type: string example: - Technology, Information & Media - Software Development stateCode: type: string example: MA social: type: object properties: linkedin: type: string example: https://www.linkedin.com/company/lushadata crunchbase: type: string example: https://www.crunchbase.com/organization/lusha city: type: string example: Boston state: type: string example: Massachusetts country: type: string example: United States countryIso2: type: string example: US continent: type: string example: North America rawLocation: type: string example: 800 Boylston St; Suite 1410; Boston, Massachusetts 02199, US coordinates: type: array items: type: number example: - -71.05976867675781 - 42.358428955078125 specialities: type: array items: type: string example: - data enrichment - sales intelligence - lead generation - prospecting mainIndustry: type: string example: Technology, Information & Media subIndustry: type: string example: Software Development linkedinFollowers: type: integer example: 1950 emailDomain: type: string example: bitcoinromania.ro companyLocations: type: array description: All known company locations (not just HQ) items: type: object properties: city: type: string continent: type: string country: type: string country_iso2: type: string location_coordinates: type: array items: type: number state: type: - string - 'null' state_code: type: - string - 'null' alternativeName: type: string example: bitcoin romania companyType: type: string example: Private company lushaPopularityTier: type: integer example: 1 funding: $ref: '#/components/schemas/CompanyFunding' intent: $ref: '#/components/schemas/CompanyIntent' technologies: type: array items: $ref: '#/components/schemas/CompanyTechnology' riskNews: type: array items: $ref: '#/components/schemas/CompanyNewsSignal' commercialActivityNews: type: array items: $ref: '#/components/schemas/CompanyNewsSignal' corporateStrategyNews: type: array items: $ref: '#/components/schemas/CompanyNewsSignal' financialEventsNews: type: array items: $ref: '#/components/schemas/CompanyNewsSignal' peopleNews: type: array items: $ref: '#/components/schemas/CompanyNewsSignal' marketIntelligenceNews: type: array items: $ref: '#/components/schemas/CompanyNewsSignal' productActivityNews: type: array items: $ref: '#/components/schemas/CompanyNewsSignal' surgeInHiring: type: array items: $ref: '#/components/schemas/CompanySurgeInHiringSignal' surgeInHiringByDepartment: type: array items: $ref: '#/components/schemas/CompanySurgeInHiringByDepartmentSignal' surgeInHiringByLocation: type: array items: $ref: '#/components/schemas/CompanySurgeInHiringByLocationSignal' websiteTrafficIncrease: type: array items: $ref: '#/components/schemas/CompanyWebsiteTrafficSignal' websiteTrafficDecrease: type: array items: $ref: '#/components/schemas/CompanyWebsiteTrafficSignal' itSpendIncrease: type: array items: $ref: '#/components/schemas/CompanyItSpendSignal' itSpendDecrease: type: array items: $ref: '#/components/schemas/CompanyItSpendSignal' headcountIncrease1m: type: array items: $ref: '#/components/schemas/CompanyHeadcountChangeSignal' headcountDecrease1m: type: array items: $ref: '#/components/schemas/CompanyHeadcountChangeSignal' headcountIncrease3m: type: array items: $ref: '#/components/schemas/CompanyHeadcountChangeSignal' headcountDecrease3m: type: array items: $ref: '#/components/schemas/CompanyHeadcountChangeSignal' headcountIncrease6m: type: array items: $ref: '#/components/schemas/CompanyHeadcountChangeSignal' headcountDecrease6m: type: array items: $ref: '#/components/schemas/CompanyHeadcountChangeSignal' headcountIncrease12m: type: array items: $ref: '#/components/schemas/CompanyHeadcountChangeSignal' headcountDecrease12m: type: array items: $ref: '#/components/schemas/CompanyHeadcountChangeSignal' ContactSearchData: type: object properties: contactId: type: string description: A unique serial contact ID generated for each search response example: 06de9b18-516d-5512-5cb5-6ec5pb215776 isShown: type: boolean description: Indicates whether the contact was already revealed by any of the account users example: false name: type: string description: The full name of the contact example: Chris Karageorge jobTitle: type: string description: The job title held by the person at their current company example: Senior Director of Technical Operations companyId: type: number description: A unique identifier for a Lusha company example: 28054532 companyName: type: string description: The name of the company where the person currently works example: Lusha fqdn: type: string description: The fqdn of the company example: lusha.com hasCompanyEmployeesCount: type: boolean hasCompanyRevenue: type: boolean hasCompanyMainIndustry: type: boolean hasCompanySubIndustry: type: boolean hasCompanyFunding: type: boolean hasCompanyIntent: type: boolean hasCompanyTechnologies: type: boolean hasDepartment: type: boolean hasSeniority: type: boolean hasContactLocation: type: boolean hasSocialLink: type: boolean hasEmails: type: boolean hasWorkEmail: type: boolean hasPrivateEmail: type: boolean hasPhones: type: boolean hasMobilePhone: type: boolean hasDirectPhone: type: boolean hasCompanyCity: type: boolean hasCompanyCountry: type: boolean signalTypes: type: array description: Types of signals detected for this contact items: type: string example: - companyChange - promotion CompanyFunding: type: object properties: rounds: type: array items: $ref: '#/components/schemas/CompanyFundingRound' totalRounds: type: number example: 2 totalRoundsAmount: type: number example: 245000000 currency: type: string example: USD isIpo: type: boolean example: false lastRoundType: type: string example: Private Equity Round lastRoundAmount: type: number example: 205000000 lastRoundDate: type: string example: Nov 10, 2021 required: - totalRounds - currency - isIpo CompanyItSpendSignal: type: object properties: companyId: type: string example: '3416' signalId: type: string example: '1503903' signalDate: type: string format: date example: '2025-06-15' estimatedAnnualItSpend: type: number example: 5000000 changeRatePercent: type: number example: 25 companyName: type: string example: Lusha domain: type: string example: lusha.com CompanyIntentTopicMetadata: type: object properties: topicScore: type: number example: 83 topicTrend: type: string example: '-5' required: - topicScore - topicTrend responses: InternalServerError: description: Internal server error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: statusCode: 500 message: Internal server error. Please try again later. TooManyRequests: description: Too many requests - rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: statusCode: 429 message: Too many requests. Please wait before making another request. headers: RateLimit-Limit: description: The total number of allowed requests per second schema: type: integer RateLimit-Remaining: description: The number of remaining requests in the current window schema: type: integer RateLimit-Reset: description: The time (in seconds) until the rate limit quota is reset schema: type: integer X-RateLimit-Remaining-Daily: description: The number of remaining requests for your daily quota schema: type: integer X-RateLimit-Reset-Daily: description: The time when your daily quota will reset schema: type: integer Unauthorized: description: Unauthorized - invalid or missing API key content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: statusCode: 401 message: Invalid API key Forbidden: description: Forbidden - account inactive or feature not available content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: accountInactive: summary: Account inactive value: statusCode: 403 message: Your account is not active. Please reach out to support at support@lusha.com featureNotAvailable: summary: Feature not available for pricing plan value: statusCode: 403 message: Your pricing version does not support requesting individual datapoints [revealEmails, revealPhones] subscriptionLimitReached: summary: Subscription limit reached value: statusCode: 403 message: Maximum subscriptions limit reached for your account dncNotSupported: summary: DNC filter not supported on current plan value: statusCode: 403 message: Exclude DNC is not supported on your current plan. Please contact support or your account manager for assistance. BadRequest: description: Bad request - invalid input data content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: statusCode: 400 message: Invalid request parameters securitySchemes: ApiKeyAuth: type: apiKey in: header name: api_key description: 'Your Lusha API key. You can find this in your Lusha dashboard under API settings. Include this key in the `api_key` header for all requests. '