Skip to main content

Phone Enrichment

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

Endpoint

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

Request Body

Content-Type: application/json

Same input shape as Email Enrichment. Provide one of:

  • linkedin_url alone
  • email alone
  • first_name + last_name + company_name
  • first_name + last_name + company_website
FieldTypeDescription
linkedin_urlstringLinkedIn profile URL
emailstringKnown email — look up phone number for this person
first_namestringContact first name
last_namestringContact last name
company_namestringCompany name
company_websitestringCompany website (alternative to company_name)

Example Request — Name + Company

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

Example Request — LinkedIn URL

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

Successful Response — 200 OK

{
"success": true,
"status": "success",
"results": {
"phone": "+1 555-123-4567",
"email": "john.doe@acme.com"
},
"remaining_credits": 95
}

Phone enrichment also returns the matched email (when available) as a bonus — no extra charge for the email.

Not Found Response — 200 OK

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

Response Fields

FieldTypeDescription
successbooleanAlways true on 200 OK (even for not_found)
statusstring"success" or "not_found"
results.phonestringPresent only when status == "success"
results.emailstringBonus matched email when available
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.