Skip to main content

Email Enrichment

Find an email address by LinkedIn URL, an existing email, or a name + company combination. You're charged 1 credit only when the email is found — no charge on not_found.

Endpoint

Method: POST Path: /external/email/enrichment/ Full URL: https://app.ecoreservice.com/backend/api/v1/external/email/enrichment/ Auth: Authorization: Token YOUR_API_TOKEN — see Authentication Cost: 1 credit per successful enrichmentnot_found is free

Request Body

Content-Type: application/json

Provide one of the supported field combinations. Any other combination returns 400.

FieldTypeDescription
linkedin_urlstringLinkedIn profile URL
emailstringKnown email — look up additional data for this person
first_namestringContact first name (use with last_name + a company field)
last_namestringContact last name
company_namestringCompany name
company_websitestringCompany website (alternative to company_name)

Valid Combinations

  • linkedin_url alone
  • email alone
  • first_name + last_name + company_name
  • first_name + last_name + company_website

Example Request — LinkedIn URL

curl -X POST \
"https://app.ecoreservice.com/backend/api/v1/external/email/enrichment/" \
-H "Authorization: Token YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"linkedin_url": "https://www.linkedin.com/in/johndoe"}'

Example Request — Name + Company

curl -X POST \
"https://app.ecoreservice.com/backend/api/v1/external/email/enrichment/" \
-H "Authorization: Token YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"first_name": "John",
"last_name": "Doe",
"company_name": "Acme Corp"
}'

Successful Response — 200 OK

{
"success": true,
"status": "success",
"results": {
"email": "john.doe@acme.com"
},
"remaining_credits": 99
}

Not Found Response — 200 OK

When no matching email could be located, the call still returns 200 OK but with status: "not_found". No credit is charged in this case.

{
"success": true,
"status": "not_found",
"message": "Email not found",
"remaining_credits": 100
}

Response Fields

FieldTypeDescription
successbooleanAlways true on 200 OK (even for not_found)
statusstring"success" or "not_found"
results.emailstringPresent only when status == "success"
messagestringPresent only when status == "not_found"
remaining_creditsintegerWallet balance after this call

Error Responses

HTTPWhenBody
400No valid field combination supplied{"error": "Provide linkedin_url, email, or first_name + last_name + (company_name OR company_website)."}
401Missing or invalid token{"detail": "Invalid token."}
402Wallet balance below the minimum threshold{"error": "Insufficient credits."}

See Error Codes for the full list.