const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
social_urls: ['https://www.linkedin.com/in/ada-lovelace/'],
name: {first: 'Ada', last: 'Lovelace'},
company: {name: 'Analytical Engines', domain: 'analyticalengines.example'}
})
};
fetch('https://api.context.dev/v1/people/enrich', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.context.dev/v1/people/enrich"
payload = {
"social_urls": ["https://www.linkedin.com/in/ada-lovelace/"],
"name": {
"first": "Ada",
"last": "Lovelace"
},
"company": {
"name": "Analytical Engines",
"domain": "analyticalengines.example"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)require 'uri'
require 'net/http'
url = URI("https://api.context.dev/v1/people/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 \"social_urls\": [\n \"https://www.linkedin.com/in/ada-lovelace/\"\n ],\n \"name\": {\n \"first\": \"Ada\",\n \"last\": \"Lovelace\"\n },\n \"company\": {\n \"name\": \"Analytical Engines\",\n \"domain\": \"analyticalengines.example\"\n }\n}"
response = http.request(request)
puts response.read_bodypackage main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.context.dev/v1/people/enrich"
payload := strings.NewReader("{\n \"social_urls\": [\n \"https://www.linkedin.com/in/ada-lovelace/\"\n ],\n \"name\": {\n \"first\": \"Ada\",\n \"last\": \"Lovelace\"\n },\n \"company\": {\n \"name\": \"Analytical Engines\",\n \"domain\": \"analyticalengines.example\"\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))
}<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.context.dev/v1/people/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([
'social_urls' => [
'https://www.linkedin.com/in/ada-lovelace/'
],
'name' => [
'first' => 'Ada',
'last' => 'Lovelace'
],
'company' => [
'name' => 'Analytical Engines',
'domain' => 'analyticalengines.example'
]
]),
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;
}curl --request POST \
--url https://api.context.dev/v1/people/enrich \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"social_urls": [
"https://www.linkedin.com/in/ada-lovelace/"
],
"name": {
"first": "Ada",
"last": "Lovelace"
},
"company": {
"name": "Analytical Engines",
"domain": "analyticalengines.example"
}
}
'{
"match": {
"status": "candidate",
"score": 50,
"person": {
"social_urls": [
"<string>"
],
"website_urls": [
"<string>"
],
"current_role_status": "present",
"experience": [
{
"title": "<string>",
"organization": {
"name": "<string>",
"domain": "<string>"
},
"location": "<string>",
"description": "<string>",
"start_date": {
"year": 123,
"month": 6,
"day": 16
},
"end_date": {
"year": 123,
"month": 6,
"day": 16
},
"is_current": true
}
],
"education": [
{
"institution": {
"name": "<string>",
"domain": "<string>"
},
"degree": "<string>",
"field_of_study": "<string>",
"description": "<string>",
"start_date": {
"year": 123,
"month": 6,
"day": 16
},
"end_date": {
"year": 123,
"month": 6,
"day": 16
}
}
],
"skills": [
"<string>"
],
"name": {
"full": "<string>",
"first": "<string>",
"last": "<string>"
},
"email": "jsmith@example.com",
"avatar_url": "<string>",
"bio": "<string>",
"location": {
"display": "<string>",
"city": "<string>",
"region": "<string>",
"country": "<string>",
"country_code": "<string>"
},
"current_role": {
"title": "<string>",
"organization": {
"name": "<string>",
"domain": "<string>"
},
"location": "<string>",
"description": "<string>",
"start_date": {
"year": 123,
"month": 6,
"day": 16
},
"end_date": {
"year": 123,
"month": 6,
"day": 16
},
"is_current": true
},
"last_updated": "<string>",
"checked_at": "<string>"
}
},
"request_id": "3f1c2a6e-8b4d-4c1e-9f0a-2d7b5e6c8a91",
"partial": true,
"key_metadata": {
"credits_consumed": 123,
"credits_remaining": 123
}
}{
"request_id": "3f1c2a6e-8b4d-4c1e-9f0a-2d7b5e6c8a91",
"message": "<string>",
"error_code": "INTERNAL_ERROR",
"required_permission": "logs:read",
"key_metadata": {
"credits_consumed": 123,
"credits_remaining": 123
}
}{
"request_id": "3f1c2a6e-8b4d-4c1e-9f0a-2d7b5e6c8a91",
"message": "<string>",
"error_code": "INTERNAL_ERROR",
"required_permission": "logs:read",
"key_metadata": {
"credits_consumed": 123,
"credits_remaining": 123
}
}{
"request_id": "3f1c2a6e-8b4d-4c1e-9f0a-2d7b5e6c8a91",
"message": "<string>",
"error_code": "INTERNAL_ERROR",
"required_permission": "logs:read",
"key_metadata": {
"credits_consumed": 123,
"credits_remaining": 123
}
}{
"request_id": "3f1c2a6e-8b4d-4c1e-9f0a-2d7b5e6c8a91",
"message": "<string>",
"error_code": "INTERNAL_ERROR",
"required_permission": "logs:read",
"key_metadata": {
"credits_consumed": 123,
"credits_remaining": 123
}
}{
"request_id": "3f1c2a6e-8b4d-4c1e-9f0a-2d7b5e6c8a91",
"message": "<string>",
"status": "<string>",
"error_code": "FREE_EMAIL_DETECTED",
"key_metadata": {
"credits_consumed": 123,
"credits_remaining": 123
}
}{
"message": "<string>",
"error_code": "RATE_LIMITED",
"request_id": "3f1c2a6e-8b4d-4c1e-9f0a-2d7b5e6c8a91",
"key_metadata": {
"credits_consumed": 123,
"credits_remaining": 123
}
}{
"request_id": "3f1c2a6e-8b4d-4c1e-9f0a-2d7b5e6c8a91",
"message": "<string>",
"error_code": "INTERNAL_ERROR",
"required_permission": "logs:read",
"key_metadata": {
"credits_consumed": 123,
"credits_remaining": 123
}
}Enrich a person
Find a person from identity clues and return their profile with a match score. Requires a paid plan; free or disposable email addresses return 422.
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
social_urls: ['https://www.linkedin.com/in/ada-lovelace/'],
name: {first: 'Ada', last: 'Lovelace'},
company: {name: 'Analytical Engines', domain: 'analyticalengines.example'}
})
};
fetch('https://api.context.dev/v1/people/enrich', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.context.dev/v1/people/enrich"
payload = {
"social_urls": ["https://www.linkedin.com/in/ada-lovelace/"],
"name": {
"first": "Ada",
"last": "Lovelace"
},
"company": {
"name": "Analytical Engines",
"domain": "analyticalengines.example"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)require 'uri'
require 'net/http'
url = URI("https://api.context.dev/v1/people/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 \"social_urls\": [\n \"https://www.linkedin.com/in/ada-lovelace/\"\n ],\n \"name\": {\n \"first\": \"Ada\",\n \"last\": \"Lovelace\"\n },\n \"company\": {\n \"name\": \"Analytical Engines\",\n \"domain\": \"analyticalengines.example\"\n }\n}"
response = http.request(request)
puts response.read_bodypackage main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.context.dev/v1/people/enrich"
payload := strings.NewReader("{\n \"social_urls\": [\n \"https://www.linkedin.com/in/ada-lovelace/\"\n ],\n \"name\": {\n \"first\": \"Ada\",\n \"last\": \"Lovelace\"\n },\n \"company\": {\n \"name\": \"Analytical Engines\",\n \"domain\": \"analyticalengines.example\"\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))
}<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.context.dev/v1/people/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([
'social_urls' => [
'https://www.linkedin.com/in/ada-lovelace/'
],
'name' => [
'first' => 'Ada',
'last' => 'Lovelace'
],
'company' => [
'name' => 'Analytical Engines',
'domain' => 'analyticalengines.example'
]
]),
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;
}curl --request POST \
--url https://api.context.dev/v1/people/enrich \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"social_urls": [
"https://www.linkedin.com/in/ada-lovelace/"
],
"name": {
"first": "Ada",
"last": "Lovelace"
},
"company": {
"name": "Analytical Engines",
"domain": "analyticalengines.example"
}
}
'{
"match": {
"status": "candidate",
"score": 50,
"person": {
"social_urls": [
"<string>"
],
"website_urls": [
"<string>"
],
"current_role_status": "present",
"experience": [
{
"title": "<string>",
"organization": {
"name": "<string>",
"domain": "<string>"
},
"location": "<string>",
"description": "<string>",
"start_date": {
"year": 123,
"month": 6,
"day": 16
},
"end_date": {
"year": 123,
"month": 6,
"day": 16
},
"is_current": true
}
],
"education": [
{
"institution": {
"name": "<string>",
"domain": "<string>"
},
"degree": "<string>",
"field_of_study": "<string>",
"description": "<string>",
"start_date": {
"year": 123,
"month": 6,
"day": 16
},
"end_date": {
"year": 123,
"month": 6,
"day": 16
}
}
],
"skills": [
"<string>"
],
"name": {
"full": "<string>",
"first": "<string>",
"last": "<string>"
},
"email": "jsmith@example.com",
"avatar_url": "<string>",
"bio": "<string>",
"location": {
"display": "<string>",
"city": "<string>",
"region": "<string>",
"country": "<string>",
"country_code": "<string>"
},
"current_role": {
"title": "<string>",
"organization": {
"name": "<string>",
"domain": "<string>"
},
"location": "<string>",
"description": "<string>",
"start_date": {
"year": 123,
"month": 6,
"day": 16
},
"end_date": {
"year": 123,
"month": 6,
"day": 16
},
"is_current": true
},
"last_updated": "<string>",
"checked_at": "<string>"
}
},
"request_id": "3f1c2a6e-8b4d-4c1e-9f0a-2d7b5e6c8a91",
"partial": true,
"key_metadata": {
"credits_consumed": 123,
"credits_remaining": 123
}
}{
"request_id": "3f1c2a6e-8b4d-4c1e-9f0a-2d7b5e6c8a91",
"message": "<string>",
"error_code": "INTERNAL_ERROR",
"required_permission": "logs:read",
"key_metadata": {
"credits_consumed": 123,
"credits_remaining": 123
}
}{
"request_id": "3f1c2a6e-8b4d-4c1e-9f0a-2d7b5e6c8a91",
"message": "<string>",
"error_code": "INTERNAL_ERROR",
"required_permission": "logs:read",
"key_metadata": {
"credits_consumed": 123,
"credits_remaining": 123
}
}{
"request_id": "3f1c2a6e-8b4d-4c1e-9f0a-2d7b5e6c8a91",
"message": "<string>",
"error_code": "INTERNAL_ERROR",
"required_permission": "logs:read",
"key_metadata": {
"credits_consumed": 123,
"credits_remaining": 123
}
}{
"request_id": "3f1c2a6e-8b4d-4c1e-9f0a-2d7b5e6c8a91",
"message": "<string>",
"error_code": "INTERNAL_ERROR",
"required_permission": "logs:read",
"key_metadata": {
"credits_consumed": 123,
"credits_remaining": 123
}
}{
"request_id": "3f1c2a6e-8b4d-4c1e-9f0a-2d7b5e6c8a91",
"message": "<string>",
"status": "<string>",
"error_code": "FREE_EMAIL_DETECTED",
"key_metadata": {
"credits_consumed": 123,
"credits_remaining": 123
}
}{
"message": "<string>",
"error_code": "RATE_LIMITED",
"request_id": "3f1c2a6e-8b4d-4c1e-9f0a-2d7b5e6c8a91",
"key_metadata": {
"credits_consumed": 123,
"credits_remaining": 123
}
}{
"request_id": "3f1c2a6e-8b4d-4c1e-9f0a-2d7b5e6c8a91",
"message": "<string>",
"error_code": "INTERNAL_ERROR",
"required_permission": "logs:read",
"key_metadata": {
"credits_consumed": 123,
"credits_remaining": 123
}
}Authorizations
Send Authorization: Bearer <API_KEY>. Keys have full access unless restricted to scopes.
Body
Identity clues for one person. Provide a person email, a person-profile social URL, or both first and last name with company, education, or location. All supplied clues are considered together.
Public profile URLs for the person. A person-profile URL can identify the person without a name.
1 - 20 elementsPerson name. Without an email or person-profile URL, provide both first and last name plus company, education, or location.
Show child attributes
Show child attributes
Email address of the person to find.
320Company context to help identify the person. Provide a name or domain.
Show child attributes
Show child attributes
Education history to help distinguish people with similar names.
1 - 10 elementsShow child attributes
Show child attributes
Location context to help identify the person. Provide a city, region, or country.
Show child attributes
Show child attributes
Request deadline and what to return when it passes.
Show child attributes
Show child attributes
enabled turns on zero data retention. Returns 403 ZDR_NOT_ENABLED unless your organization has ZDR.
enabled, disabled Labels for filtering usage in the dashboard.
201 - 50["production", "team-alpha"]
Response
The highest-scoring candidate, including weak matches, or a not-found result when no usable candidate exists.
The highest-scoring person candidate.
- Candidate match
- No match
Show child attributes
Show child attributes
Unique ID of this request, also in X-Request-Id. Include it when contacting support.
"3f1c2a6e-8b4d-4c1e-9f0a-2d7b5e6c8a91"
True when the timeout ended processing and this response contains the usable data completed so far. Unfinished fields are omitted.
Credits this request used and your remaining balance.
Show child attributes
Show child attributes
Was this page helpful?