Mobile Phone Waterfall
Last updated October 19, 2026
Find mobile phone numbers for your contacts by chaining your own Prospeo, Lusha, ContactOut, and FullEnrich keys. One flat row per contact with the number, line type, country, Do Not Call flag, and the provider and credits used. No keys stored.
Features
- Find mobile phone numbers for your contacts by chaining your own Prospeo, Lusha, ContactOut, and FullEnrich keys.
- One flat row per contact with the number, line type, country, Do Not Call flag, and the provider and credits used.
- No keys stored.
- Pay per event: Mobile found at $0.02.
Input
contactsarrayoptionalContacts. One object per person with any of: full_name, first_name, last_name, company_domain, company_name, linkedin_url, email, and your own id or contact_id. A LinkedIn URL is the strongest identifier for most providers and is only passed to them, never opened. Also accepted as a JSON string, or one line per person, because Clay sends every input as a string.
full_namestringoptionalFull name (single contact). Optional. For one person per run, the shape a Clay row sends. Added to the contacts list.
company_domainstringoptionalCompany domain (single contact). Optional, with full_name for a single contact.
linkedin_urlstringoptionalLinkedIn URL (single contact). Optional, for a single contact. Passed to providers as an identifier, never opened by the actor.
emailstringoptionalEmail (single contact). Optional, for a single contact.
prospeo_api_keystringoptionalProspeo API key. Your Prospeo key. Prospeo charges 10 credits per mobile found and nothing on a miss.
lusha_api_keystringoptionalLusha API key. Your Lusha key (V3 API). Lusha charges a search credit plus a phone credit per revealed phone.
contactout_api_keystringoptionalContactOut API key. Your ContactOut API token. LinkedIn URL lookups only; a phone credit is spent only when a phone comes back.
fullenrich_api_keystringoptionalFullEnrich API key. Your FullEnrich key. FullEnrich is itself a waterfall over 20 plus sources and charges 10 credits per mobile found; it runs last by default.
provider_orderarrayoptionalProvider order. Optional. Provider names in the order to call them: prospeo, lusha, contactout, fullenrich. Leave empty for that default order. A provider with no key is skipped and reported.
mobile_onlybooleanoptionalMobile numbers only. On by default: a landline or VoIP number does not count as found, and the chain moves on to the next provider. Numbers a provider returns without a line type are kept and labeled unknown.
max_contactsintegeroptionalMaximum contacts. Optional ceiling on how many contacts this run processes.
max_provider_creditsintegeroptionalMaximum provider credits (your spend cap). Cap on the provider credits this run may spend from YOUR accounts. When it is reached, the remaining contacts are skipped with a reason and not charged. Strongly recommended.
max_charge_usdnumberoptionalMaximum charge for this run (USD). Optional. The run stops before any Apify charge that would take this run past this amount, and keeps every row already paid for. The run also honors the maximum cost per run set in Apify.
Output schema
{
"contact_id": "null",
"input_full_name": "null",
"input_first_name": "null",
"input_last_name": "null",
"input_company_domain": "null",
"input_company_name": "null",
"input_linkedin_url": "null",
"input_email": "null",
"mobile_phone": "null",
"phone_line_type": "null",
"phone_country": "null",
"phone_dnc": "null",
"phone_status": "string",
"found_by_provider": "null",
"found_by": "null",
"chain_position": "null",
"providers_called": "integer",
"providers_attempted_json": "string",
"provider_credits_used": "integer",
"is_summary_row": "boolean",
"run_summary_json": "string",
"row_status": "string",
"error_reason": "null",
"billable_events_json": "string",
"checked_at": "string"
}Pricing
Pay-per-event billing on the Apify platform. You are charged only when the actor returns a result. No subscription, no seat license.
Free-tier Apify accounts include monthly free compute. Upgrade for higher concurrency and volume.