/v2/enrich/peopleWebhook result: Documentation
| Endpoint | POST /v2/enrich/people |
| Credit cost | 0.1 credits / result |
| Response | Asynchronous — results delivered to your webhook |
| Max per request | 10,000 people |
curl -X POST "https://api.ocean.io/v2/enrich/people" \
-H "X-Api-Token: YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"peopleDataMapping": {
"contact-001": { "person": { "linkedin": "linkedin.com/in/jane-doe-123" } },
"contact-002": {
"person": { "firstName": "John", "lastName": "Smith", "jobTitle": "CTO" },
"company": { "domain": "acme.com" }
},
"contact-003": { "person": { "id": "ocean-person-id-abc" } }
},
"webhookUrl": "https://yourapp.com/webhooks/ocean-people"
}'import requests
response = requests.post(
'https://api.ocean.io/v2/enrich/people',
headers={'X-Api-Token': 'YOUR_API_TOKEN'},
json={
'peopleDataMapping': {
'contact-001': {'person': {'linkedin': 'linkedin.com/in/jane-doe-123'}},
'contact-002': {
'person': {'firstName': 'John', 'lastName': 'Smith', 'jobTitle': 'CTO'},
'company': {'domain': 'acme.com'},
},
'contact-003': {'person': {'id': 'ocean-person-id-abc'}},
},
'webhookUrl': 'https://yourapp.com/webhooks/ocean-people',
},
)
data = response.json() # {"status": "in progress"} — results arrive at your webhookconst response = await fetch('https://api.ocean.io/v2/enrich/people', {
method: 'POST',
headers: { 'X-Api-Token': 'YOUR_API_TOKEN', 'Content-Type': 'application/json' },
body: JSON.stringify({
peopleDataMapping: {
'contact-001': { person: { linkedin: 'linkedin.com/in/jane-doe-123' } },
'contact-002': {
person: { firstName: 'John', lastName: 'Smith', jobTitle: 'CTO' },
company: { domain: 'acme.com' },
},
'contact-003': { person: { id: 'ocean-person-id-abc' } },
},
webhookUrl: 'https://yourapp.com/webhooks/ocean-people',
}),
});
const data = await response.json(); // {"status": "in progress"} — results arrive at your webhookImmediate response:
{ "status": "in progress" }Webhook payload:
{
"results": {
"contact-001": {
"status": "found",
"person": { "id": "abc123", "name": "Jane Doe", "jobTitle": "Head of Product" }
},
"contact-002": { "status": "not_found", "person": null }
}
}apiToken string x-api-token string webhookUrl string Required 200 Successful Responsestatus const Required 400 Bad Requestdetail enum Required "Conflicting API tokens provided in query parameters and headers"402 Payment Requireddetail enum Required "Insufficient credits"403 Forbiddendetail enum Required "API token should be provided in headers or query parameters""Current API token is not registered in our database"404 Not found422 Validation Errormsg string Required type string Required input any How do I get emails for the enriched people?
Batch enrichment does not include email reveal. Once you have the enriched profiles with their id values, pass those to Reveal Emails.
Can I mix identifier types in the same batch?
Yes. Each entry is independent — some can have linkedin, others name + company.domain, others an Ocean ID. Costs are calculated per record based on the identifiers provided.