# Search Contacts Look up contacts by identifier. Returns a non-PII preview of each profile — no emails or phone numbers. Accepted identifiers (one required per contact): - Lusha contact id - linkedinUrl - email - firstName + lastName + companyName or companyDomain Up to 100 contacts per request. Each result includes: - has — data points available on this profile - canReveal — what you can unlock via Enrich Contacts, and the credit cost Pass a signals filter to narrow results to contacts with recent activity (e.g. promotion, job change). > Billing: Charged per successful result via the api_search action. Endpoint: POST /v3/contacts/search Security: ApiKeyAuth ## Request fields (application/json): - `contacts` (array, required) - `contacts.clientReferenceId` (string) Example: "my-ref-1" - `contacts.id` (string) Example: "12345" - `contacts.linkedinUrl` (string) Example: "https://www.linkedin.com/in/orit-shilvock-6243bb5" - `contacts.email` (string) Example: "orit.shilvock@lusha.com" - `contacts.firstName` (string) Example: "Orit" - `contacts.lastName` (string) Example: "Shilvock" - `contacts.companyName` (string) Example: "Lusha" - `contacts.companyDomain` (string) Example: "lusha.com" - `options` (object) Additional options for search requests - `options.includePartialProfiles` (boolean) Include partial profiles in results Example: true - `signals` (object) - `signals.types` (array, required) Enum: "allSignals", "promotion", "companyChange" - `signals.startDate` (string) Example: "2025-01-01" - `signals.maxResultsPerSignal` (integer) Example: 10 ## Response 200 fields (application/json): - `requestId` (string) Example: "3c7f6d96-4a72-40cd-96c1-2efcfabeb727" - `results` (array) - `results.clientReferenceId` (string) Example: "my-ref-1" - `results.id` (string) Example: "4389064704" - `results.firstName` (string) Example: "Orit" - `results.lastName` (string) Example: "Shilvock" - `results.jobTitle` (object) - `results.jobTitle.title` (string) Example: "Vice President of Partnerships" - `results.jobTitle.departments` (array) Example: ["Business Development"] - `results.jobTitle.seniority` (string) Example: "Vice President" - `results.company` (object) - `results.company.name` (string) Example: "Lusha" - `results.company.domain` (string) Example: "www.lusha.com" - `results.location` (object) - `results.location.country` (string) Example: "Israel" - `results.location.state` (string) Example: "Tel Aviv District" - `results.location.city` (string) Example: "Tel Aviv" - `results.socialLinks` (object) - `results.socialLinks.linkedin` (string) Example: "https://www.linkedin.com/in/orit-shilvock-6243bb5" - `results.has` (array) Example: ["firstName","lastName","jobTitle","location","socialLinks","emails"] - `results.canReveal` (array) - `results.canReveal.field` (string) Enum: "emails", "phones" - `results.canReveal.credits` (integer) Credit cost (0 when already revealed for this account) Example: 1 - `results.signalTypes` (array) Example: ["promotion","companyChange"] - `results.error` (object) Per-item error in a batch response - `results.error.code` (string) Enum: "NOT_FOUND", "COMPLIANCE_RESTRICTED", "ENRICH_FAILED" - `results.error.message` (string) Example: "Contact not found" - `billing` (object) Credit usage summary for a V3 API request - `billing.creditsCharged` (integer) Total credits charged for this request Example: 3 - `billing.resultsReturned` (integer) Number of successful results returned Example: 1 ## 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 402 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"]