# Enrich a company

Turn any LinkedIn company URL, domain, or ID into live firmographics.

**POST** `https://api.up2data.ai/v1/companies/enrich`

**Credits:** 1 credit - **Mode:** synchronous

Identify the company with one of `url`, `domain`, or `linkedin_id`; provide exactly one. For example, `{"domain": "anthropic.com"}` (host only, no scheme, no www, no path) resolves the same record as passing the company's LinkedIn URL. Restricting the response with `fields` does not reduce the cost.

> **Info:** Send many as batch items at 1 credit each. See the [batch endpoint](https://up2data.ai/docs/v1/api/batch-create/).

## Request

| Field | Type | Notes |
|---|---|---|
| `url` | `string` | Public company URL or slug. Provide url, domain, or linkedin_id. |
| `domain` | `string` | Company website domain, e.g. anthropic.com. Provide url, domain, or linkedin_id. |
| `linkedin_id` | `string` | Numeric LinkedIn company ID. Provide url, domain, or linkedin_id. |
| `fields` | `string[]` | Restrict the response to these top-level fields. Same cost. |

## Call it

**cURL**

```bash
curl -X POST "https://api.up2data.ai/v1/companies/enrich" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "url": "https://linkedin.com/company/anthropic"
}'
```

**Python**

```python
import requests

url = "https://api.up2data.ai/v1/companies/enrich"
headers = {
    "X-API-Key": "YOUR_API_KEY",
    "Content-Type": "application/json",
}
payload = {
    "url": "https://linkedin.com/company/anthropic"
}

response = requests.post(url, headers=headers, json=payload)
print(response.json())
```

**Node**

```javascript
const url = "https://api.up2data.ai/v1/companies/enrich";
const headers = {
  "X-API-Key": "YOUR_API_KEY",
  "Content-Type": "application/json",
};
const body = {
  "url": "https://linkedin.com/company/anthropic"
};

const response = await fetch(url, {
  method: "POST",
  headers,
  body: JSON.stringify(body),
});
const data = await response.json();
console.log(data);
```

**Go**

```go
package main

import (
	"bytes"
	"fmt"
	"io"
	"net/http"
)

func main() {
	url := "https://api.up2data.ai/v1/companies/enrich"
	body := bytes.NewBufferString(`{
  "url": "https://linkedin.com/company/anthropic"
}`)
	req, err := http.NewRequest("POST", url, body)
	if err != nil {
		panic(err)
	}
	req.Header.Set("X-API-Key", "YOUR_API_KEY")
	req.Header.Set("Content-Type", "application/json")

	client := &http.Client{}
	resp, err := client.Do(req)
	if err != nil {
		panic(err)
	}
	defer resp.Body.Close()

	respBody, _ := io.ReadAll(resp.Body)
	fmt.Println(string(respBody))
}
```

## Response

**200**

```json
{
  "data": {
    "url": "https://www.linkedin.com/company/anthropic",
    "linkedin_id": "74126343",
    "name": "Anthropic",
    "website": "https://anthropic.com",
    "description": "AI safety and research company.",
    "industry": "Research Services",
    "company_type": "Privately Held",
    "logo_url": "https://media.licdn.com/dms/image/v2/C560BAQExample/company-logo_400_400/0/anthropic",
    "headcount": 2841,
    "headcount_growth_6m": 0.34,
    "company_size": { "min": 1001, "max": 5000 },
    "founded": 2021,
    "hq": {
      "city": "San Francisco",
      "region": "California",
      "country": "US",
      "address": "500 Howard St",
      "postal_code": "94105",
      "latitude": 37.78797,
      "longitude": -122.39653,
      "raw": "US, San Francisco, 500 Howard St, 94105"
    },
    "locations": [{ "city": "San Francisco" }, { "city": "London" }],
    "specialties": ["Artificial Intelligence", "AI Safety"],
    "funding": { "total_usd": 14300000000, "last_round": { "type": "Series F", "amount_usd": 3500000000, "date": "2026-03" } },
    "scraped_at": "2026-07-07T14:00:03Z",
    "followers_count": 1204800
  },
  "meta": { "creditsUsed": 1, "creditsRemaining": 98417, "billed": true, "reason": "company_found", "requestId": "req_4jd83mcy", "latencyMs": 2950 }
}
```

## Errors

| Status | Type | When | Billed |
|---|---|---|---|
| 400 | `invalid_request` | Malformed body, unknown field, or bad URL format. | No |
| 401 | `invalid_api_key` | Missing, malformed, or revoked key. | No |
| 402 | `insufficient_credits` | Balance can't cover the call. | No |
| 422 | `unprocessable_target` | Target not found, private, deleted, or unreachable. | Yes |
| 429 | `rate_limited` | Over the 300 requests/min per-key limit. Honor Retry-After. | No |
| 500 | `internal_error` | Something broke on the server side. | No |
| 504 | `upstream_timeout` | The live scrape didn't complete in time. | No |

See the [Errors guide](https://up2data.ai/docs/v1/guides/errors/) for every error type this version can return.
