---
title: "People Search"
description: "Search professional profiles by title, location, seniority, industry, and more."
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.kooperativa.io/llms.txt
> Use this file to discover all available pages before exploring further.

# People Search

`POST /api/v1/people/search`

Search our data lake of professional profiles using any combination of filters.

:::caution
At least one filter is required. Requests with an empty body will return `400 Bad Request`.
:::

## Body parameters

| Parameter | Type | Description |
|---|---|---|
| `title` | string | Job title keywords |
| `location` | string or array | ISO 2-letter country code e.g. `"US"` |
| `seniority` | string | `c-level` · `vp` · `director` · `manager` |
| `company` | string | Current company name |
| `company_id` | string | Company ID (exact match) |
| `industry` | string or array | Industry name e.g. `"Computer Software"` |
| `headcount` | string | Company headcount range e.g. `"51 - 200"` |
| `skills` | array | Skill names (OR match) |
| `past_company` | string | Past employer name |
| `education` | string | School or university name |
| `tenure_min_months` | integer | Minimum months in current role |
| `job_changed_after` | integer | Unix timestamp |
| `exclude_companies` | array | Company names to exclude |
| `exclude_industries` | array | Industry names to exclude |
| `page` | integer | Page number (default: 1) |
| `per_page` | integer | Results per page (default: 10, max: 50) |

:::tip
`location` must be an ISO 2-letter code: `"US"`, `"DE"`, `"GB"`. Full country names like `"United States"` return 0 results.
:::

:::note
For `industry`, people profiles use the older taxonomy: `"Computer Software"`, `"Financial Services"`, etc. Company profiles use a newer taxonomy: `"Software Development"`, `"IT Services and IT Consulting"`. These differ, so use the right values for each endpoint.
:::

## Code examples

```bash title="cURL"
curl -X POST "https://kooperativa.io/api/v1/people/search" \
  -H "Authorization: Bearer ik_live_..." \
  -H "Content-Type: application/json" \
  -d '{"title": "VP of Sales", "location": "US", "seniority": "vp"}'
```

```js title="JavaScript"
const res = await fetch("https://kooperativa.io/api/v1/people/search", {
  method: "POST",
  headers: {
Authorization: `Bearer ${process.env.KOOPERATIVA_API_KEY}`,
"Content-Type": "application/json",
  },
  body: JSON.stringify({ title: "VP of Sales", location: "US", seniority: "vp" }),
});
const { results, total } = await res.json();
```

```python title="Python"
import os, requests

res = requests.post(
"https://kooperativa.io/api/v1/people/search",
json={"title": "VP of Sales", "location": "US", "seniority": "vp"},
headers={"Authorization": f"Bearer {os.environ['KOOPERATIVA_API_KEY']}"},
)
data = res.json()
```

## Response

```json
{
  "results": [
{
  "id": "b9847f21-...",
  "full_name": "Isaac Simpson",
  "current_title": "Chief Marketing Officer",
  "current_company": "WILL",
  "seniority": "c-level",
  "geo_city": "Los Angeles, California",
  "geo_country_code": "US",
  "linkedin_url": "https://www.linkedin.com/in/...",
  "fetched_at": "2026-06-21T17:44:00Z"
}
  ],
  "total": 40665,
  "page": 1,
  "per_page": 10
}
```

:::tip
Search returns lightweight summaries. Use [Bulk Enrich](/people/bulk-enrich) to hydrate full profiles from the returned IDs in a single call.
:::

Source: https://docs.kooperativa.io/people/search-people/index.mdx
