Batch enrich profiles
Apply one partial, full, or regenerate operation to as many as 20 known Orbit profile IDs or slugs.
POST
/
v3
/
enrich
Batch enrich profiles
curl --request POST \
--url https://api.orbitsearch.com/v3/enrich \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"request_id": "batch-full-001",
"profile_ids": [
"profile_123",
"profile_456"
],
"operation": "full",
"include_profile": true
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
request_id: 'batch-full-001',
profile_ids: ['profile_123', 'profile_456'],
operation: 'full',
include_profile: true
})
};
fetch('https://api.orbitsearch.com/v3/enrich', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.orbitsearch.com/v3/enrich"
payload = {
"request_id": "batch-full-001",
"profile_ids": ["profile_123", "profile_456"],
"operation": "full",
"include_profile": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"request_id": "<string>",
"status": "running",
"results": [
{
"request_id": "<string>",
"profile_id": "<string>",
"status": "running",
"operation": "partial",
"include_profile": true,
"generation_level": 2,
"links": {
"profile": "<string>",
"status": "<string>"
},
"profile": {
"id": "<string>",
"generationLevel": 2,
"avatarUrl": "<string>",
"verified": true,
"sections": {},
"sources": [
{
"link": "<string>",
"title": "<string>",
"summary": "<string>",
"caption": "<string>",
"images": [
"<string>"
],
"sourceName": "<string>",
"sourceImage": "<string>",
"chunks": [
{
"text": "<string>"
}
],
"sources": "<array>"
}
],
"displayName": "<string>",
"personName": "<string>",
"aliases": [
"<string>"
],
"profileUrl": "<string>",
"slug": "<string>",
"category": {
"id": "<string>",
"label": "<string>"
},
"location": {
"city": "<string>",
"region": "<string>",
"country": "<string>"
},
"headline": {
"jobTitle": "<string>",
"companyName": "<string>",
"schoolName": "<string>"
},
"emails": [
"jsmith@example.com"
],
"phoneNumbers": [
"<string>"
],
"addresses": [
{}
]
},
"failure": {
"code": "<string>",
"message": "<string>",
"retryable": true,
"reason": "<string>",
"suggested_inputs": [
"<string>"
]
}
}
]
}{
"request_id": "<string>",
"status": "running",
"results": [
{
"request_id": "<string>",
"profile_id": "<string>",
"status": "running",
"operation": "partial",
"include_profile": true,
"generation_level": 2,
"links": {
"profile": "<string>",
"status": "<string>"
},
"profile": {
"id": "<string>",
"generationLevel": 2,
"avatarUrl": "<string>",
"verified": true,
"sections": {},
"sources": [
{
"link": "<string>",
"title": "<string>",
"summary": "<string>",
"caption": "<string>",
"images": [
"<string>"
],
"sourceName": "<string>",
"sourceImage": "<string>",
"chunks": [
{
"text": "<string>"
}
],
"sources": "<array>"
}
],
"displayName": "<string>",
"personName": "<string>",
"aliases": [
"<string>"
],
"profileUrl": "<string>",
"slug": "<string>",
"category": {
"id": "<string>",
"label": "<string>"
},
"location": {
"city": "<string>",
"region": "<string>",
"country": "<string>"
},
"headline": {
"jobTitle": "<string>",
"companyName": "<string>",
"schoolName": "<string>"
},
"emails": [
"jsmith@example.com"
],
"phoneNumbers": [
"<string>"
],
"addresses": [
{}
]
},
"failure": {
"code": "<string>",
"message": "<string>",
"retryable": true,
"reason": "<string>",
"suggested_inputs": [
"<string>"
]
}
}
]
}{
"status": "failed",
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"status": "failed",
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"status": "failed",
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"status": "failed",
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"status": "failed",
"error": {
"code": "<string>",
"message": "<string>"
}
}Applies the same Enrich operation to 1–20 Orbit IDs or profile slugs. Each identifier resolves to its canonical Orbit ID before work starts.
The batch status is
The endpoint returns
curl -X POST "https://api.orbitsearch.com/v3/enrich" \
-H "Authorization: Bearer $ORBIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"profile_ids": ["profile_123", "profile_456"],
"operation": "full",
"include_profile": true
}'
Request body
| Field | Type | Default | Description |
|---|---|---|---|
profile_ids | string[] | Required | Between 1 and 20 Orbit profile IDs or slugs. Duplicate entries are normalized. The field name remains profile_ids. |
operation | partial, full, or regenerate | Required | Operation applied to every profile. |
include_profile | boolean | true | Embed available profiles in child results. |
Response
{
"request_id": "batch-full-001",
"status": "running",
"results": [
{
"request_id": "batch-full-001:profile_123",
"profile_id": "profile_123",
"status": "completed",
"operation": "full",
"include_profile": true,
"generation_level": 3,
"profile": {
"id": "profile_123",
"displayName": "Example Person",
"generationLevel": 3
},
"links": {
"profile": "/v3/enrich/profile_123"
}
},
{
"request_id": "batch-full-001:profile_456",
"profile_id": "profile_456",
"status": "running",
"operation": "full",
"include_profile": true,
"generation_level": 2,
"links": {
"status": "/v3/enrich/requests/batch-full-001%3Aprofile_456",
"profile": "/v3/enrich/profile_456"
}
}
]
}
running, completed, or completed_with_errors. Each result has its own child request_id and status.
There is no aggregate batch status endpoint. Poll each running child’s
links.status URL until it completes or fails.202 Accepted if any child is running and 200 OK otherwise. It requires search:read; include_profile: true also requires profile:read. v3 Enrich does not consume credits.Authorizations
Use an Orbit API key from the developer dashboard.
Headers
A client-generated key for a safe retry. If the body omits request_id, Orbit can use this value as the request ID.
Maximum string length:
200Body
application/json
Provide between 1 and 20 Orbit profile IDs or slugs. Duplicate entries within this list are normalized before work starts.
Required array length:
1 - 20 elementsMinimum string length:
1Use partial for a useful profile, full for the deepest available profile, or regenerate to rebuild a fresh full profile.
Available options:
partial, full, regenerate The parent idempotency key for the batch.
Minimum string length:
1Embed available profiles in child results.
⌘I
Batch enrich profiles
curl --request POST \
--url https://api.orbitsearch.com/v3/enrich \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"request_id": "batch-full-001",
"profile_ids": [
"profile_123",
"profile_456"
],
"operation": "full",
"include_profile": true
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
request_id: 'batch-full-001',
profile_ids: ['profile_123', 'profile_456'],
operation: 'full',
include_profile: true
})
};
fetch('https://api.orbitsearch.com/v3/enrich', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.orbitsearch.com/v3/enrich"
payload = {
"request_id": "batch-full-001",
"profile_ids": ["profile_123", "profile_456"],
"operation": "full",
"include_profile": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"request_id": "<string>",
"status": "running",
"results": [
{
"request_id": "<string>",
"profile_id": "<string>",
"status": "running",
"operation": "partial",
"include_profile": true,
"generation_level": 2,
"links": {
"profile": "<string>",
"status": "<string>"
},
"profile": {
"id": "<string>",
"generationLevel": 2,
"avatarUrl": "<string>",
"verified": true,
"sections": {},
"sources": [
{
"link": "<string>",
"title": "<string>",
"summary": "<string>",
"caption": "<string>",
"images": [
"<string>"
],
"sourceName": "<string>",
"sourceImage": "<string>",
"chunks": [
{
"text": "<string>"
}
],
"sources": "<array>"
}
],
"displayName": "<string>",
"personName": "<string>",
"aliases": [
"<string>"
],
"profileUrl": "<string>",
"slug": "<string>",
"category": {
"id": "<string>",
"label": "<string>"
},
"location": {
"city": "<string>",
"region": "<string>",
"country": "<string>"
},
"headline": {
"jobTitle": "<string>",
"companyName": "<string>",
"schoolName": "<string>"
},
"emails": [
"jsmith@example.com"
],
"phoneNumbers": [
"<string>"
],
"addresses": [
{}
]
},
"failure": {
"code": "<string>",
"message": "<string>",
"retryable": true,
"reason": "<string>",
"suggested_inputs": [
"<string>"
]
}
}
]
}{
"request_id": "<string>",
"status": "running",
"results": [
{
"request_id": "<string>",
"profile_id": "<string>",
"status": "running",
"operation": "partial",
"include_profile": true,
"generation_level": 2,
"links": {
"profile": "<string>",
"status": "<string>"
},
"profile": {
"id": "<string>",
"generationLevel": 2,
"avatarUrl": "<string>",
"verified": true,
"sections": {},
"sources": [
{
"link": "<string>",
"title": "<string>",
"summary": "<string>",
"caption": "<string>",
"images": [
"<string>"
],
"sourceName": "<string>",
"sourceImage": "<string>",
"chunks": [
{
"text": "<string>"
}
],
"sources": "<array>"
}
],
"displayName": "<string>",
"personName": "<string>",
"aliases": [
"<string>"
],
"profileUrl": "<string>",
"slug": "<string>",
"category": {
"id": "<string>",
"label": "<string>"
},
"location": {
"city": "<string>",
"region": "<string>",
"country": "<string>"
},
"headline": {
"jobTitle": "<string>",
"companyName": "<string>",
"schoolName": "<string>"
},
"emails": [
"jsmith@example.com"
],
"phoneNumbers": [
"<string>"
],
"addresses": [
{}
]
},
"failure": {
"code": "<string>",
"message": "<string>",
"retryable": true,
"reason": "<string>",
"suggested_inputs": [
"<string>"
]
}
}
]
}{
"status": "failed",
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"status": "failed",
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"status": "failed",
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"status": "failed",
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"status": "failed",
"error": {
"code": "<string>",
"message": "<string>"
}
}