# Search Multiple Contacts 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. >##### Endpoint: POST https://api.lusha.com/v2/person >##### Notes - You can process up to 100 contacts per request. - At least one of email, linkedinUrl, or company/domain with fullName is required. --- ⚠️ 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 | --- Endpoint: POST /v2/person Security: ApiKeyAuth ## Request fields (application/json): - `contacts` (array, required) This is a required parameter that should contain a list of contact objects. Each contact will be processed based on the provided contact details. - `contacts.contactId` (string, required) A unique sequential ID to associate with the contact object in the API response Example: "1234" - `contacts.fullName` (string) The full name of the person Example: "Dustin Moskovitz" - `contacts.location` (string) The raw location of the person Example: "Singapore,Chicago" - `contacts.linkedinUrl` (string) The LinkedIn URL of the person Example: "https://www.linkedin.com/in/dustin/" - `contacts.email` (string) The email address of the person Example: "dustin@lusha.com" - `contacts.companies` (array) Details of the company where the contact is currently employed (or previously employed if applicable) - `contacts.companies.name` (string) The name of the company, Required if no domain. Example: "Lusha" - `contacts.companies.domain` (string) The domain of the company, Required if no name. Example: "lusha.com" - `contacts.companies.isCurrent` (boolean, required) Indicates whether this is the person's current company Example: true - `contacts.companies.jobTitle` (string) The job title of the person at the company Example: "Software Engineer" - `contacts.companies.fqdn` (string) The fully qualified domain name of the company Example: "https://lusha.com" - `contacts.companies.companySocialId` (string) The social ID associated with the company (if available) Example: "1234567890" - `metadata` (object) - `metadata.refreshJobInfo` (boolean) Set this to true to refresh job information for the contact. This replaces any outdated job details with the most current information. By default, Lusha returns results for records that have at least one of the specified contact details (e.g., phone number or email address). Example: true - `metadata.filterBy` (string) Filters the results based on specific contact details. Use the following options: emailAddresses, phoneNumbers Example: "emailAddresses" - `metadata.revealEmails` (boolean) Set revealEmails=true to retrieve only the email address of the contact. Example: true - `metadata.revealPhones` (boolean) Set revealPhones=true to retrieve only the phone number of the contact. Example: true - `metadata.signals` (array) Array of signal types to retrieve for the contact. - allSignals: All available signal types - promotion: Promotion signals - companyChange: Company change signals Enum: "allSignals", "promotion", "companyChange" - `metadata.signalsStartDate` (string) Start date for signal retrieval in YYYY-MM-DD format. Defaults to 6 months ago if not specified. Example: "2025-03-01" - `metadata.partialProfile` (boolean) When set to true, returns a simplified contact profile with basic information only. Example: true ## Response 200 fields (application/json): - `contacts` (object, required) The contacts of the bulk person output, keyed by contactId - `companies` (object, required) The companies of the bulk person output, keyed by companyId ## Response 400 fields (application/json): - `statusCode` (integer, required) HTTP status code Example: 400 - `message` (string, required) Error message Example: "Validation failed" - `errors` (array) Detailed error messages (optional, only for validation errors) Example: ["entityType must be one of: contact, company"] ## Response 401 fields (application/json): - `statusCode` (integer, required) HTTP status code Example: 400 - `message` (string, required) Error message Example: "Validation failed" - `errors` (array) Detailed error messages (optional, only for validation errors) Example: ["entityType must be one of: contact, company"] ## Response 403 fields (application/json): - `statusCode` (integer, required) HTTP status code Example: 400 - `message` (string, required) Error message Example: "Validation failed" - `errors` (array) Detailed error messages (optional, only for validation errors) Example: ["entityType must be one of: contact, company"] ## Response 429 fields (application/json): - `statusCode` (integer, required) HTTP status code Example: 400 - `message` (string, required) Error message Example: "Validation failed" - `errors` (array) Detailed error messages (optional, only for validation errors) Example: ["entityType must be one of: contact, company"] ## Response 500 fields (application/json): - `statusCode` (integer, required) HTTP status code Example: 400 - `message` (string, required) Error message Example: "Validation failed" - `errors` (array) Detailed error messages (optional, only for validation errors) Example: ["entityType must be one of: contact, company"]