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 enrichment — not_found is free
Request Body
Content-Type: application/json
Same input shape as Email Enrichment. Provide one of:
linkedin_urlaloneemailalonefirst_name+last_name+company_namefirst_name+last_name+company_website
| Field | Type | Description |
|---|---|---|
linkedin_url | string | LinkedIn profile URL |
email | string | Known email — look up phone number for this person |
first_name | string | Contact first name |
last_name | string | Contact last name |
company_name | string | Company name |
company_website | string | Company 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
| Field | Type | Description |
|---|---|---|
success | boolean | Always true on 200 OK (even for not_found) |
status | string | "success" or "not_found" |
results.phone | string | Present only when status == "success" |
results.email | string | Bonus matched email when available |
message | string | Present only when status == "not_found" |
remaining_credits | integer | Wallet balance after this call |
Error Responses
| HTTP | When | Body |
|---|---|---|
| 400 | No valid field combination supplied | {"error": "Provide linkedin_url, email, or first_name + last_name + (company_name OR company_website)."} |
| 401 | Missing or invalid token | {"detail": "Invalid token."} |
| 402 | Wallet balance below the minimum threshold | {"error": "Insufficient credits."} |
See Error Codes for the full list.