# Company Bulk Enrich `POST https://api.getprospect.com/v2/companies/bulk-enrich` Enrich up to 50 companies in one request. Each item takes the same identifiers as Companies Enrich and is matched independently (id, then linkedin_id, linkedin_url, domain, name); the response buckets items into matched, not_matched and invalid, echoing each item's identifier so you can correlate results. Free: spends no credits; 1 unit of the enrich rate limit per item, none for companies your workspace saved. Authenticate with your API key in the x-api-key header. > **How are credits spent?** > > Company Bulk Enrich is free - matching and returning company profiles > never charges credits. ## How the batch behaves Each of the up to 50 items is looked up independently with the same identifier precedence as [Company Enrich](https://getprospect.com/api-docs/company-enrich.md) - `id`, then `linkedin_id`, `linkedin_url`, `domain`, then `name`. One item failing never fails the batch: the response splits items into three buckets, each entry echoing your `identifier` (or the item's index if you did not send one): - `matched` - the company was found; carries `matched_by` and the full [Company object](https://getprospect.com/api-docs/company-object.md). - `not_matched` - the identifiers were valid but no company matched; carries the `attempted` lookup fields. - `invalid` - the item could not be looked up at all; carries a `reason`. Prefer this endpoint over looping single Company Enrich calls: 50 lookups in one request instead of 50 round trips, with per-item outcomes you can correlate by `identifier`. ## Authentication Pass your API key in the `x-api-key` header. ## Body parameters - `data` (object[], required): Array of company lookup items (1-50). Each item is matched independently using priority order id > linkedin_id > linkedin_url > domain > name. - `identifier` (string, optional): Client-supplied correlation key echoed back in the response. If omitted, the item index is used. - `id` (string, optional): The GetProspect company `id`, as returned by Company Search and in People Search results. - `linkedin_id` (one of, optional): The LinkedIn company ID (numeric, string or number). - `linkedin_url` (string, optional): The LinkedIn company URL. - `domain` (string, optional): The company domain. - `name` (string, optional): The company name. ## Example request ```bash curl --request POST \ --url https://api.getprospect.com/v2/companies/bulk-enrich \ --header 'Content-Type: application/json' \ --header 'x-api-key: YOUR_API_KEY' \ --data ' { "data": [ { "identifier": "acct-1", "domain": "intercom.com" }, { "identifier": "acct-2", "domain": "domain-that-does-not-exist-x1.com" }, { "identifier": "acct-3" } ] } ' ``` ## Response 200 Every item in exactly one bucket, with the bucket counts in `metadata`. Two items with one `identifier` but different lookup keys answer 400 instead. ```json { "success": true, "data": { "matched": [ { "identifier": "acct-1", "matched_by": "domain", "company": { "id": "696fb12757da999990585cfd", "name": "Intercom", "description": "We’re Intercom — the AI customer service company helping businesses deliver incredible customer experiences at scale.\n\nOur platform combines Fin, the #1 AI Agent for customer service, with our next-generation Helpdesk, a modern workspace that gives support teams the power, speed and intelligence they need.", "logo": "https://logos.getprospect.com/ecb5a93f5fb0f0718eaf4f75634c3cf5.jpg", "website": "intercom.com", "email": { "domain": "intercom.com", "provider": null }, "linkedin_url": "https://linkedin.com/company/intercom", "industry": "Software Development", "keywords": [ "Customer Support", "Live Chat", "Marketing Automation", "Customer Relationship Management", "Customer Experience", "Customer Engagement", "Customer Service", "Mobile", "Customer Feedback", "AI", "Helpdesk", "CX", "Chat Bots", "Customer Communication", "Support Automation", "Shared Inbox" ], "naics_codes": [ 5112, 51121, 511210, 513210 ], "type": "Privately Held", "business_type": "B2B", "revenue_stream": "Subscriptions / Recurring", "founded": 2011, "employee_count": 5000, "employee_range": "+1 555-010-0027", "location": { "city": "San Francisco", "state": "California", "state_code": "CA", "country": "United States", "country_code": "US", "raw_address": "55 2nd Street, 4th Floor, San Francisco, California 94105, US" }, "other_locations": [ { "city": "Dublin", "state": "Leinster", "state_code": "L", "country": "Ireland", "country_code": "IE", "raw_address": "2nd Floor, Stephen Court, 18-21 St. Stephen’s Green, Dublin, Dublin 2, IE" }, { "city": "Greater London", "state": "England", "state_code": "ENG", "country": "United Kingdom", "country_code": "GB", "raw_address": "1 Primrose St., Unit 3044, Level 3, London, England EC2A 2EX, GB" }, { "city": "Chicago", "state": "Illinois", "state_code": "IL", "country": "United States", "country_code": "US", "raw_address": "1330 W Fulton Market, Suite 75, Chicago, Illinois 60607, US" }, { "city": "Sydney", "state": "New South Wales", "state_code": "NSW", "country": "Australia", "country_code": "AU", "raw_address": "285a Crown St, Upper Ground Floor, Surry Hills, New South Wales 2010, AU" } ], "saved": null } } ], "not_matched": [ { "identifier": "acct-2", "attempted": [ "domain" ] } ], "invalid": [ { "identifier": "acct-3", "reason": "No lookup fields provided. Expected one of: id, linkedin_id, linkedin_url, domain, name." } ] }, "metadata": { "timestamp": "2026-10-02T12:27:10.808Z", "total": 3, "matched_count": 1, "not_matched_count": 1, "invalid_count": 1 } } ``` ## Response 400 Invalid request (`VALIDATION_ERROR`; `payload.code` says which kind of mistake). ```json { "success": false, "data": null, "metadata": { "timestamp": "2026-10-02T12:27:10.726Z" }, "errors": [ { "name": "VALIDATION_ERROR", "message": "data must contain at least 1 elements", "payload": { "field": "data", "code": "out_of_range", "received_value": [], "received_type": "object" } } ] } ``` ## Response 401 Missing, unknown or inactive credentials (`UNAUTHORIZED`). ## Response 429 Over the `enrich` rate limit (`RATE_LIMIT`); wait `Retry-After` seconds. Sent only where rate limits are enforced. ## Response 500 Unexpected server error.