> ## Documentation Index
> Fetch the complete documentation index at: https://api.tryspecter.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Enrichment

> Resolve a company, person, or investor from a domain, LinkedIn URL, or email and return their full Specter profile.

Enrichment resolves a company, person, or investor from an identifier you already have (a domain, LinkedIn URL, or email) and returns their full Specter profile. If Specter doesn't already hold the record, enrichment fetches it on demand.

## Data categories

Enrichment returns the same profile object the entity's own endpoints return, so you parse it identically. What comes back depends on the entity:

**Company** (via [Enrich company](/api-reference/enrich/enrich-company) and [Enrich companies (bulk)](/api-reference/enrich/enrich-companies-bulk))

* **Profile & classification.** Name, description, HQ, founding year, operating status, industry, tech verticals, business model, and customer focus.
* **Funding & financials.** Funding history, rounds, investors, and post-money valuation.
* **Headcount & growth.** Employee count, department and location breakdowns, founders, and web-traffic and engagement traction.
* **Web & social.** Domain, website, social presence, and product reviews (G2, Trustpilot, Glassdoor).

**Person** (via [Enrich person](/api-reference/enrich/enrich-person), [Enrich people (bulk)](/api-reference/enrich/enrich-people-bulk), [Enrich person by email](/api-reference/enrich/enrich-person-by-email), and [Enrich people by email (bulk)](/api-reference/enrich/enrich-people-by-email-bulk))

* **Profile.** Name, tagline, about, location, and LinkedIn follower and connection counts.
* **Career history.** `experience[]`: companies, titles, tenure, and progression.
* **Education.** `education[]`: institutions, degrees, and fields of study.
* **Skills & attributes.** Skills, languages, seniority, and years of experience.
* **Social links.** LinkedIn, Twitter, and GitHub URLs.

**Investor** (via [Enrich investor](/api-reference/enrich/enrich-investor) and [Enrich investors (bulk)](/api-reference/enrich/enrich-investors-bulk))

* **Profile & classification.** Name, description, HQ, founding year, organisation size, investor types, investment stage, and industry / tech-vertical targeting.
* **Fund details.** Named funds with announce date and amount raised (`fund_details`).
* **Investment activity.** Number of investments, lead investments, exits, and funds.
* **Portfolio & linkages.** Backed companies (`portfolio_companies`), plus `person_id` / `company_id` linkages.

Verified contact details (a person's email) aren't part of the base person profile; retrieve them separately with [Get person email](/api-reference/people/get-person-email).

## Endpoints

| Method | Endpoint                                                                           | Returns                                  |
| ------ | ---------------------------------------------------------------------------------- | ---------------------------------------- |
| `POST` | [Enrich company](/api-reference/enrich/enrich-company)                             | A company by domain or website           |
| `POST` | [Enrich companies (bulk)](/api-reference/enrich/enrich-companies-bulk)             | Enrich up to 50 companies in one request |
| `POST` | [Enrich person](/api-reference/enrich/enrich-person)                               | A person by name, company, or LinkedIn   |
| `POST` | [Enrich people (bulk)](/api-reference/enrich/enrich-people-bulk)                   | Enrich up to 50 people in one request    |
| `GET`  | [Enrich investor](/api-reference/enrich/enrich-investor)                           | An investor by name or domain            |
| `POST` | [Enrich investors (bulk)](/api-reference/enrich/enrich-investors-bulk)             | Enrich up to 50 investors in one request |
| `POST` | [Enrich person by email](/api-reference/enrich/enrich-person-by-email)             | Resolve a single email to a person       |
| `POST` | [Enrich people by email (bulk)](/api-reference/enrich/enrich-people-by-email-bulk) | Resolve up to 50 emails in one request   |

## How to use the API

1. **Pick the endpoint for the identifier you hold.** A domain or website goes to [Enrich company](/api-reference/enrich/enrich-company); a name, company, or LinkedIn URL to [Enrich person](/api-reference/enrich/enrich-person); a name or domain to [Enrich investor](/api-reference/enrich/enrich-investor); an email address to [Enrich person by email](/api-reference/enrich/enrich-person-by-email).

2. **Send the identifier.** For example, enrich a company by its domain:

   ```bash theme={null}
   curl --request POST \
     --url https://app.tryspecter.com/api/v1/companies \
     --header 'X-API-Key: YOUR_API_KEY' \
     --header 'Content-Type: application/json' \
     --data '{ "domain": "tryspecter.com" }'
   ```

3. **Go bulk when you have many.** Every single-record endpoint has a bulk counterpart that takes up to 50 lookups per request: [Enrich companies (bulk)](/api-reference/enrich/enrich-companies-bulk), [Enrich people (bulk)](/api-reference/enrich/enrich-people-bulk), [Enrich investors (bulk)](/api-reference/enrich/enrich-investors-bulk), and [Enrich people by email (bulk)](/api-reference/enrich/enrich-people-by-email-bulk). Post a JSON array instead of a single object:

   ```bash theme={null}
   curl --request POST \
     --url https://app.tryspecter.com/api/v1/companies/by-id/bulk \
     --header 'X-API-Key: YOUR_API_KEY' \
     --header 'Content-Type: application/json' \
     --data '[{ "domain": "stripe.com" }, { "domain": "revolut.com" }]'
   ```

4. **Read the matches.** Results come back as the same records the entity's own endpoints return; a miss returns no record.

## Notes

* If enrichment returns nothing, Specter doesn't hold the record yet and will begin gathering it; retry later.
* Every bulk endpoint is capped at 50 lookups per request and takes a JSON array; the single-record endpoints take one object.
* [Enrich people (bulk)](/api-reference/enrich/enrich-people-bulk) returns one row per lookup in input order, each carrying a `status` of `found` or `queued`; `queued` means Specter didn't hold the person yet and has started gathering them, so poll later. The other bulk endpoints omit misses instead, so a response can be shorter than the array you sent and its order isn't guaranteed.
* [Enrich companies (bulk)](/api-reference/enrich/enrich-companies-bulk) accepts one identifier per lookup object (website, domain, LinkedIn, or Crunchbase) and [Enrich people (bulk)](/api-reference/enrich/enrich-people-bulk) one LinkedIn identifier; [Enrich investors (bulk)](/api-reference/enrich/enrich-investors-bulk) takes a `website` and/or a `name`, and supplying both narrows the match.
* [Enrich person by email](/api-reference/enrich/enrich-person-by-email) and [Enrich people by email (bulk)](/api-reference/enrich/enrich-people-by-email-bulk) return the same person object as [Get person by ID](/api-reference/people/get-person-by-id), plus the email each result resolved from and the match score. A person's roles live in `experience[]`, each with its own `company_id`; there is no top-level `company_id`.
* For the exact credit cost, see each endpoint's own "Costs ..." note; enrichment is charged per matched result, so misses are free. A bulk call costs the same per match as its single-record counterpart, and `queued` rows aren't charged.
