---
updatedAt: 2026-09-17T13:34:42.000Z
agentTools:
  projectIndex: https://docs.rocketreach.co/llms.txt
---

# Bulk People Lookup API

Bulk People Lookup by Criteria

<Callout icon="ℹ️" theme="info">
  Using this endpoint consumes **export credits**.  You can check your current usage via the [Account Endpoint](rocketreach-api-account).
</Callout>

This endpoint is suited for large numbers of simultaneous lookups. This endpoint requires for at least one webhook URL enabled for this endpoint, or a webhook ID specified. Up to 100 lookups can be performedper batch. There must be at least 1 lookups in a batch.

## Bulk Lookup Queries

Each query in the queries list has the following parameters. For each query, at least one of the following is required:

* linkedin\_url
* profile\_id
* company and name
* email (warning: lower success rate than other options)

# OpenAPI definition

```json
{
  "openapi": "3.1.0",
  "info": {
    "title": "RocketReach API",
    "version": "1.0.0",
    "description": "The RocketReach API lets you search and retrieve contact info for 700M+ professionals and 35M\n    companies. Manage API settings, track usage, and find your API key on the account page.\n    All API calls require authentication via API key.\n    If you have any questions, please reach out to our team at api@rocketreach.co.\n    </br><span style=\"font-size:1.8rem; pass\">Quickstart</span>\n        1. Create an API key: Select “Generate New API Key” on your Account Settings page\n        2. Test API Key: You can test API endpoints directly in our documentation without writing a single line of code.\n            - Select an endpoint (GET /person/lookup for example)\n            - Select “Try It”\n            - Enter your API Key to send the request\n        3. Create Webhook (optional, but recommended): We offer a webhook solution for person lookups so clients do not need to poll the check status endpoint until their results are available.\n            - To set up a webhook, go to your API settings. Enter your server's callback URL into the field, and hit \"Create\".\n            - For each URL created, you can perform some basic maintenance tasks:\n                - Test the webhook - we will attempt to send a basic JSON payload to the URL.\n                - Disable/enable - if you may use this URL in the future, this is an option to temporarily disable it.\n                - Delete - if you no longer plan using this URL, it can be deleted.\n    </br><span style=\"font-size:1.8rem;pass\">Rate Limits</span>\n        - [Rate Limits](../guides/rate-limits.md)\n    </br><span style=\"font-size:1.8rem; pass\">FAQ</span>\n        - [FAQ](../guides/faq.md)\n    ",
    "contact": {
      "name": "RocketReach Support",
      "email": "api@rocketreach.co"
    }
  },
  "paths": {
    "/bulkLookup": {
      "post": {
        "operationId": "create_person_bulk_lookup",
        "description": "Bulk People Lookup by Criteria",
        "summary": "Bulk People Lookup API",
        "tags": [
          "People Data API"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/APIBulkLookupQuery"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/APIBulkLookupQuery"
              }
            },
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/APIBulkLookupQuery"
              }
            }
          },
          "required": true
        },
        "security": [
          {
            "RocketReachAPIKey": []
          }
        ],
        "responses": {
          "200": {
            "headers": {
              "RR-Request-ID": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                },
                "description": "Lookup unique identifier, will also be sent in the header of webhook."
              }
            },
            "description": "Success. Bulk lookup request accepted"
          },
          "400": {
            "headers": {
              "RR-Request-ID": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                },
                "description": "Lookup unique identifier, will also be sent in the header of webhook."
              }
            },
            "description": "Bad Request. The request is malformed or missing required parameters."
          },
          "401": {
            "headers": {
              "RR-Request-ID": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                },
                "description": "Lookup unique identifier, will also be sent in the header of webhook."
              }
            },
            "description": "Unauthorized. API Key is missing or invalid."
          },
          "403": {
            "headers": {
              "RR-Request-ID": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                },
                "description": "Lookup unique identifier, will also be sent in the header of webhook."
              }
            },
            "description": "Forbidden. API Key lacks permission to perform this action."
          },
          "404": {
            "headers": {
              "RR-Request-ID": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                },
                "description": "Lookup unique identifier, will also be sent in the header of webhook."
              }
            },
            "description": "Not Found. The requested resource (e.g., profile) does not exist."
          },
          "413": {
            "headers": {
              "RR-Request-ID": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                },
                "description": "Lookup unique identifier, will also be sent in the header of webhook."
              }
            },
            "description": "Payload Too Large. The request body, excluding any multipart file uploads, exceeds 2.5 MB."
          },
          "429": {
            "headers": {
              "RR-Request-ID": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                },
                "description": "Lookup unique identifier, will also be sent in the header of webhook."
              }
            },
            "description": "Too Many Requests. API request limit reached -- slow down requests."
          },
          "500": {
            "headers": {
              "RR-Request-ID": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                },
                "description": "Lookup unique identifier, will also be sent in the header of webhook."
              }
            },
            "description": "Internal Server Error. Unexpected error on RocketReach servers. Try again later."
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "APIBulkLookupQuery": {
        "type": "object",
        "properties": {
          "queries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProfileMatch"
            },
            "description": "List of profile lookup queries for between 1 and 100 profiles",
            "example": "[{'linkedin_url': 'https://www.linkedin.com/in/benioff'}, ...]"
          },
          "profile_list": {
            "type": "string",
            "default": "API Bulk Lookup",
            "description": "Name of a profile list to add looked up profiles to upon completion",
            "example": "API Bulk Lookup"
          },
          "webhook_id": {
            "type": "integer",
            "description": "Webhook ID to post lookup results to upon completion. Find your webhook ID [here](https://rocketreach.co/account?section=nav_gen_api).",
            "example": 12345
          }
        }
      },
      "LookupTypeEnum": {
        "enum": [
          "standard",
          "premium",
          "premium (feeds disabled)",
          "bulk",
          "phone",
          "enrich"
        ],
        "type": "string",
        "description": "* `standard` - standard\n* `premium` - premium\n* `premium (feeds disabled)` - premium (feeds disabled)\n* `bulk` - bulk\n* `phone` - phone\n* `enrich` - enrich"
      },
      "ProfileMatch": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "RocketReach internal unique profile ID.\n- Example: `123456`",
            "example": 123456
          },
          "name": {
            "type": "string",
            "description": "Name of the desired profile. Must specify along with `current_employer`.\n- Example: `Jamie Gullbrand`",
            "example": "Jamie Gullbrand"
          },
          "current_employer": {
            "type": "string",
            "description": "Current employer of the desired profile. Must specify along with `name`.\n- Example: `RocketReach`",
            "example": "RocketReach"
          },
          "title": {
            "type": "string",
            "description": "Job title of the desired profile.\n- Example: `Product Manager`",
            "example": "Product Manager"
          },
          "linkedin_ext_url": {
            "type": "string",
            "description": "linkedin_ext_url deprecated, please use `linkedin_url`",
            "pattern": "",
            "deprecated": true
          },
          "linkedin_url": {
            "type": "string",
            "description": "LinkedIn URL of the desired profile.\n- Example: `www.linkedin.com/in/jamesgullbrand`",
            "pattern": "",
            "example": "www.linkedin.com/in/jamesgullbrand"
          },
          "email": {
            "type": "string",
            "format": "email",
            "description": "An email address for the desired profile.\n- Example: `jamie@rocketreach.co`",
            "example": "jamie@rocketreach.co"
          },
          "phone": {
            "type": "string",
            "description": "A phone number for the desired profile in either E.164 format or international format.\n- Example: `+15555555555`"
          },
          "npi_number": {
            "type": "integer",
            "description": "An NPI number for the desired profile (US healthcare professional)\n- Example: `1234567890`",
            "example": "1234567890"
          },
          "lookup_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/LookupTypeEnum"
              }
            ],
            "description": "Lookup type for the request\n\n* `standard` - standard\n* `premium` - premium\n* `premium (feeds disabled)` - premium (feeds disabled)\n* `bulk` - bulk\n* `phone` - phone\n* `enrich` - enrich",
            "default": "standard",
            "example": "standard"
          },
          "metadata": {
            "type": [
              "object",
              "null"
            ],
            "additionalProperties": {},
            "description": "User metadata about the profile, such as external ids, tags, notes, etc."
          }
        }
      }
    },
    "securitySchemes": {
      "RocketReachAPIKey": {
        "type": "apiKey",
        "name": "Api-Key",
        "in": "header",
        "description": "RocketReach account API key. You can locate your API Key from the \"My API Key\" section of the [API account page](https://rocketreach.co/account?section=nav_gen_api). Requests to the API are authenticated using the Api-Key request header. Older clients may use an `api_key` query parameter, but this behavior is deprecated."
      }
    }
  },
  "servers": [
    {
      "url": "https://api.rocketreach.co/api/v2",
      "description": "v2 Production Server"
    }
  ]
}
```