Enrich a company (sync)
Enrich a single LinkedIn company right now and return the result directly.
https://api.up2data.ai/api/open-refresh/companyEnrich a single LinkedIn company right now and get the result back in the same request. There is no queue, no status to poll and no webhook involved - the result is delivered in the response only.
For volume, send many companies to companies-bulk instead.
Both sync endpoints share a limit of 10 requests per 10 seconds per team. Every response carries RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset (seconds until the window clears) headers, and a 429 also carries Retry-After.
Every rate is charged whether the company is found (200) or not (404) - see the credit pill above.
The response is a Company document, with no wrapper and no _id. See Company for the full shape.
Enriching many companies in one request is cheaper per company than calling this endpoint one at a time - see the credit pill on Companies bulk. See the batch endpoint.
#Request
| Field | Type | Notes |
|---|---|---|
companyrequired | string | LinkedIn company URL, linkedin.com/company/<slug>, or bare slug. |
#Call it
curl -X POST "https://api.up2data.ai/api/open-refresh/company" \
-H "Authorization: YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"company": "https://www.linkedin.com/company/acme-corp"
}'import requests
url = "https://api.up2data.ai/api/open-refresh/company"
headers = {
"Authorization": "YOUR_ACCESS_TOKEN",
"Content-Type": "application/json",
}
payload = {
"company": "https://www.linkedin.com/company/acme-corp"
}
response = requests.post(url, headers=headers, json=payload)
print(response.json())const url = "https://api.up2data.ai/api/open-refresh/company";
const headers = {
"Authorization": "YOUR_ACCESS_TOKEN",
"Content-Type": "application/json",
};
const body = {
"company": "https://www.linkedin.com/company/acme-corp"
};
const response = await fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
});
const data = await response.json();
console.log(data);package main
import (
"bytes"
"fmt"
"io"
"net/http"
)
func main() {
url := "https://api.up2data.ai/api/open-refresh/company"
body := bytes.NewBufferString(`{
"company": "https://www.linkedin.com/company/acme-corp"
}`)
req, err := http.NewRequest("POST", url, body)
if err != nil {
panic(err)
}
req.Header.Set("Authorization", "YOUR_ACCESS_TOKEN")
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
{
"name": "Acme Corp",
"linkedinId": "1234567",
"linkedinSlug": "acme-corp",
"industry": "Software Development",
"website": "https://acme.example.com"
}{
"message": "Company not found on LinkedIn"
}#Errors
| Status | Type | When |
|---|---|---|
| 404 | Company not found on LinkedIn | No company was found on LinkedIn for the given URL or slug. |
| 400 | Invalid input | The input is not a LinkedIn company URL (linkedin.com/company/) or a bare slug, or the team's daily or monthly spending cap has been reached. |
| 403 | Insufficient credits | Not enough credits on the team. |
| 429 | Rate limited | More than 10 requests in 10 seconds for the team. The response carries Retry-After. |
| 503 | Worker unavailable | No worker became available within 10 seconds, or the crawl could not be completed. Retry later. |
See the Errors guide for every error type this version can return.