---
title: "Bulk Enrich"
description: "Enrich up to 500 profiles in a single API call."
---

> 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.

# Bulk Enrich

`POST /api/v1/people/bulk-enrich`

Hydrate up to 500 Kooperativa profile IDs in a single POST. The most efficient way to enrich search results.

:::tip
The recommended pattern is: **Search → get IDs → Bulk Enrich**. This lets you filter down to the exact profiles you need before paying credits.
:::

## Body parameters

| Parameter | Type | Required | Description |
|---|---|---|---|
| `profiles` | array | **Yes** | Array of objects, each with one of: `id`, `username`, or `linkedin_url` |

## Pricing

:::note
**1 credit per profile returned.** Profiles not found are skipped and **not charged**. You only pay for successful matches.
:::

## Code examples

```bash title="cURL"
curl -X POST "https://kooperativa.io/api/v1/people/bulk-enrich" \
  -H "Authorization: Bearer ik_live_..." \
  -H "Content-Type: application/json" \
  -d '{"profiles": [{"username": "satyanadella"}, {"username": "kirktanner"}]}'
```

```js title="JavaScript"
const res = await fetch("https://kooperativa.io/api/v1/people/bulk-enrich", {
  method: "POST",
  headers: {
Authorization: `Bearer ${process.env.KOOPERATIVA_API_KEY}`,
"Content-Type": "application/json",
  },
  body: JSON.stringify({
profiles: [
  { username: "satyanadella" },
  { username: "kirktanner" },
],
  }),
});
const { profiles } = await res.json();
```

## Response

```json
{
  "profiles": [
{
  "id": "f9413465-...",
  "full_name": "Satya Nadella",
  "current_title": "Chairman and CEO",
  "current_company": "Microsoft",
  "fetched_at": "2026-06-21T17:44:00Z"
}
  ],
  "count": 2
}
```

:::caution
Maximum **500 profiles per request**. Requests exceeding this limit return `400 Bad Request`.
:::

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