> ## Documentation Index
> Fetch the complete documentation index at: /people-search/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Quickstart

> Search for a person, enrich the one you mean with their matched accounts and videos, then go further on any other account or video.

## 0. Get an API key

Sign in or sign up on the [dashboard](https://www.constants.io/people-search/app) with your constants.io account (Google, or a code sent to your email), open **API Keys** and create a key. It's shown once, so copy it then. Keys belong to the workspace picked in the sidebar, so everyone in it can use them; invite people from **Members**, in your workspace settings. Every request sends it as `Authorization: Bearer <key>`; the examples below read it from an environment variable:

```bash theme={null}
export CONSTANTS_API_KEY="cps_…"
```

## 1. Search for the person

Describe the person as you would to a colleague: their name plus anything that tells them apart, like an employer, school, role or city.

```bash theme={null}
curl -X POST "https://www.constants.io/people-search/v1/people/search" \
  -H "Authorization: Bearer $CONSTANTS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "Bichen Wu who worked at Meta",
    "max_results": 5
  }'
```

The call takes 8–20 seconds. People come back best first, each with their current role and LinkedIn address:

```json theme={null}
{
  "people": [
    {
      "id": "…",
      "name": "Bichen Wu",
      "title": "Co-Founder",
      "company": "Stealth startup",
      "linkedin_url": "https://www.linkedin.com/in/…"
    }
  ],
  "usage": { "credits": 72, "credits_remaining": 4928 }
}
```

> [!TIP]
>
> Already have the person's LinkedIn address? Skip this step and go straight to enriching them.

## 2. Enrich the person

Pass the `linkedin_url` of the person you meant. This collects their full profile and searches every platform for their accounts and videos:

```bash theme={null}
curl -X POST "https://www.constants.io/people-search/v1/people/enrich" \
  -H "Authorization: Bearer $CONSTANTS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "linkedin_url": "https://www.linkedin.com/in/jane-doe",
    "platforms": ["x", "instagram", "tiktok", "facebook", "youtube"]
  }'
```

The call takes 30–60 seconds. Set your HTTP client's timeout to at least 120 seconds.

Only matches come back, best first: accounts already enriched, with their recent posts in `enrichment`, and videos with their `transcript`. Each platform's `searched` says how many results its search found before that cut. The next two steps are for any account or video you have, such as one you found yourself:

```json theme={null}
{
  "person": {
    "source": "anyapi",
    "name": "Bichen Wu",
    "current_role": "Co-Founder at Stealth startup",
    "location": "Santa Clara, California, United States"
  },
  "accounts": {
    "x": [
      {
        "handle": "wu_bichen",
        "url": "https://x.com/wu_bichen",
        "bio": "Founder | Ex-Meta, Google, Berkeley PhD, Tsinghua | Marathon Runner & Mountaineer"
      }
    ]
  },
  "usage": { "credits": 60, "credits_remaining": 4868 }
}
```

## Errors

Errors return a status code and a message:

```json theme={null}
{ "error": { "message": "Send linkedin_url, the person's LinkedIn profile address." } }
```

| Status | Meaning |
| - | - |
| 400 | The request is invalid. The message says which field. |
| 404 | Enrich person: there's no profile for the LinkedIn address. |
| 413 | The request body is over 64 KB. |
| 429 | The profile provider is rate limiting requests. Retry after a minute. |
| 502 | X, TikHub or the profile provider failed. Retry later. |
| 503 | The server is missing credentials for this request. |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.