Enqueue companies
Enqueue LinkedIn companies for enrichment in bulk.
https://api.up2data.ai/api/open-refresh/companies-bulkEnqueue LinkedIn companies for enrichment in bulk. Provide many company URLs or LinkedIn slugs in a single request; results are delivered by webhook or read back with queues-list. See Company for the full shape.
Ensure you have sufficient credits before making requests - see the credit pill above.
Your companies array is normalized and de-duplicated before anything is charged, so you pay for enqueued, not for what you sent. Two entries that resolve to the same company count as one, and entries that are empty or contain mojibake are dropped. skipped reports what was removed and why. If nothing survives filtering, you get a 400 and no queue is created.
#Request
| Field | Type | Notes |
|---|---|---|
namerequired | string | Name for the enrichment job. |
companiesrequired | string[] | LinkedIn company URLs or bare slugs. |
priorityrequired | number | 1 = High, 2 = Normal, 3 = Low. |
webhookTags | string[] | Optional, defaults to every webhook on the team. Send [] to switch callbacks off - see the Webhooks guide. |
#Call it
curl -X POST "https://api.up2data.ai/api/open-refresh/companies-bulk" \
-H "Authorization: YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Company Enrichment Batch",
"companies": [
"https://www.linkedin.com/company/acme-corp",
"https://www.linkedin.com/company/globex",
"acme-corp"
],
"priority": 2
}'import requests
url = "https://api.up2data.ai/api/open-refresh/companies-bulk"
headers = {
"Authorization": "YOUR_ACCESS_TOKEN",
"Content-Type": "application/json",
}
payload = {
"name": "Company Enrichment Batch",
"companies": [
"https://www.linkedin.com/company/acme-corp",
"https://www.linkedin.com/company/globex",
"acme-corp"
],
"priority": 2
}
response = requests.post(url, headers=headers, json=payload)
print(response.json())const url = "https://api.up2data.ai/api/open-refresh/companies-bulk";
const headers = {
"Authorization": "YOUR_ACCESS_TOKEN",
"Content-Type": "application/json",
};
const body = {
"name": "Company Enrichment Batch",
"companies": [
"https://www.linkedin.com/company/acme-corp",
"https://www.linkedin.com/company/globex",
"acme-corp"
],
"priority": 2
};
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/companies-bulk"
body := bytes.NewBufferString(`{
"name": "Company Enrichment Batch",
"companies": [
"https://www.linkedin.com/company/acme-corp",
"https://www.linkedin.com/company/globex",
"acme-corp"
],
"priority": 2
}`)
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
{
"message": "3 items have been enqueued.",
"queueId": "507f1f77bcf86cd799439011",
"enqueued": 3,
"skipped": {
"invalid": 0,
"duplicates": 0
},
"webhooks": [
{
"_id": "6512c1a4f1b2c3d4e5f60789",
"name": "Production",
"url": "https://api.example.com/hooks/up2data"
}
]
}{
"message": "No valid companies to enqueue: of 4 submitted, 1 were invalid and 3 were duplicates."
}#Webhook payload
{
"queueId": "507f1f77bcf86cd799439011",
"name": "Company Enrichment Batch",
"url": "https://www.linkedin.com/company/acme-corp",
"type": "Company",
"status": 200,
"_id": "8f14e45fceea167a5a36dedd4bea2549",
"result": { ... }
}#Errors
| Status | Type | When |
|---|---|---|
| 400 | No valid companies to enqueue | Every entry in companies was invalid or a duplicate after normalization, so no queue was created. |
| 400 | No webhook matches webhookTags | One or more webhookTags do not match any webhook on the team. |
See the Errors guide for every error type this version can return.