Enrich contacts in bulk
curl --request POST \
--url https://api.orbit.devotel.io/api/v1/contacts/enrich \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"contactIds": [
"contact_01HZX8Y7QJK4M",
"contact_01HZX8Y7QJK4N"
]
}
'import requests
url = "https://api.orbit.devotel.io/api/v1/contacts/enrich"
payload = { "contactIds": ["contact_01HZX8Y7QJK4M", "contact_01HZX8Y7QJK4N"] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({contactIds: ['contact_01HZX8Y7QJK4M', 'contact_01HZX8Y7QJK4N']})
};
fetch('https://api.orbit.devotel.io/api/v1/contacts/enrich', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.orbit.devotel.io/api/v1/contacts/enrich",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'contactIds' => [
'contact_01HZX8Y7QJK4M',
'contact_01HZX8Y7QJK4N'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.orbit.devotel.io/api/v1/contacts/enrich"
payload := strings.NewReader("{\n \"contactIds\": [\n \"contact_01HZX8Y7QJK4M\",\n \"contact_01HZX8Y7QJK4N\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.orbit.devotel.io/api/v1/contacts/enrich")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"contactIds\": [\n \"contact_01HZX8Y7QJK4M\",\n \"contact_01HZX8Y7QJK4N\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.orbit.devotel.io/api/v1/contacts/enrich")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"contactIds\": [\n \"contact_01HZX8Y7QJK4M\",\n \"contact_01HZX8Y7QJK4N\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"enriched": 1,
"total": 2,
"configured": true
},
"meta": {
"request_id": "req_01HZX9ABCDEF",
"timestamp": "2026-02-02T12:00:00.000Z"
}
}Contacts
Enrich contacts in bulk
Enrich up to 200 contacts at once by deriving additional profile attributes (such as company from an email domain) and persisting any new values. Returns the count of contacts whose stored profile actually changed, alongside configured, which is false when no enrichment provider is wired so the caller can distinguish “no new data” from “enrichment not set up”.
POST
/
api
/
v1
/
contacts
/
enrich
Enrich contacts in bulk
curl --request POST \
--url https://api.orbit.devotel.io/api/v1/contacts/enrich \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"contactIds": [
"contact_01HZX8Y7QJK4M",
"contact_01HZX8Y7QJK4N"
]
}
'import requests
url = "https://api.orbit.devotel.io/api/v1/contacts/enrich"
payload = { "contactIds": ["contact_01HZX8Y7QJK4M", "contact_01HZX8Y7QJK4N"] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({contactIds: ['contact_01HZX8Y7QJK4M', 'contact_01HZX8Y7QJK4N']})
};
fetch('https://api.orbit.devotel.io/api/v1/contacts/enrich', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.orbit.devotel.io/api/v1/contacts/enrich",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'contactIds' => [
'contact_01HZX8Y7QJK4M',
'contact_01HZX8Y7QJK4N'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.orbit.devotel.io/api/v1/contacts/enrich"
payload := strings.NewReader("{\n \"contactIds\": [\n \"contact_01HZX8Y7QJK4M\",\n \"contact_01HZX8Y7QJK4N\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.orbit.devotel.io/api/v1/contacts/enrich")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"contactIds\": [\n \"contact_01HZX8Y7QJK4M\",\n \"contact_01HZX8Y7QJK4N\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.orbit.devotel.io/api/v1/contacts/enrich")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"contactIds\": [\n \"contact_01HZX8Y7QJK4M\",\n \"contact_01HZX8Y7QJK4N\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"enriched": 1,
"total": 2,
"configured": true
},
"meta": {
"request_id": "req_01HZX9ABCDEF",
"timestamp": "2026-02-02T12:00:00.000Z"
}
}Authorizations
BearerApiKey
Dashboard JWT token from Clerk
Body
application/json
The contact ids to enrich (1–200 per request).
Required array length:
1 - 200 elements⌘I