ContactOut alternative: the emails and mobiles behind your LinkedIn URLs, as one free file
ContactOut finds the email and phone number behind a LinkedIn profile: a Chrome extension that works on LinkedIn, a search portal, email campaigns and an API, sold by the month. Its free plan is 5 emails, 5 phones and 5 exports a day. If what you have is a list of LinkedIn URLs of people in the U.S., you can match them all at once.
Free: 10M+ U.S. B2B leads, as a flat file. Download it at datacircle.dev. 9,521,154 people at 1,748,139 U.S. companies, each with their LinkedIn URL, 4,016,020 with a mobile phone and 2,790,286 with an email. Below, side by side, with ContactOut's numbers from its pricing page, its terms and its API reference in October 2026.
ContactOut and Datacircle, side by side
| ContactOut | Datacircle | |
|---|---|---|
| Free | 5 emails, 5 phones and 5 exports a day, 1 user per company | The 10M+ U.S. file, whole: 9,521,154 LinkedIn URLs, 4,016,020 mobiles, 2,790,286 emails; $5 of API credit |
| Paid | Email, $49 a month; Email + Phone, $99 a month, with U.S. and UK data ($25 and $49 without); 1 user per company | No plan: a balance from $5 |
| “Unlimited” | fair use: 2,000 email credits and 1,000 phone credits per account per month | the whole file, no credits |
| Exports | 300 a month on Email, 600 on Email + Phone | a download: write as many CSVs from it as you like |
| API | a key by booking a meeting, price not published; 1 email credit and 1 phone credit a profile where found | The LinkedIn profile behind a URL, not an email or a phone: $1.25 per 1,000 through Up2Data (a profile it can't find is free), $3.70 per 1,000 through HarvestAPI. |
| Personal emails | yes: 150M, says its API page | no: work emails only |
| Coverage | 800M people profiles, says its API page | U.S., companies of 11 to 500 employees in the free file (every size in the 50M+), an October 2026 snapshot |
At its fair use limit, Email is 2,000 emails for $49: $24.50 per 1,000 emails. Email + Phone is $99 for at most 1,000 phone numbers and 2,000 emails a month, so a year of it, $1,188, reaches 12,000 phones at most. The free file holds 4,016,020 mobiles, and 5,182,067 people with a mobile or an email.
Your LinkedIn URLs, matched to the file
ContactOut's bulk API takes 100 LinkedIn URLs a call and spends a credit for each email and each phone it finds. The file does a whole list in one join. Unzip it into us_10m/, pip install duckdb, and put your URLs in linkedin_urls.csv under a url header:
import duckdb
duckdb.sql("create view people as select * from 'us_10m/us_smb_mid_market_persons.parquet'")
duckdb.sql("create view companies as select * from 'us_10m/us_smb_mid_market_companies.parquet'")
# A LinkedIn URL as the file writes it: the part after /in/, decoded and lowercased, so http, no www, a trailing slash or ?utm_source match
duckdb.sql(r"create macro profile(url) as lower(url_decode(regexp_extract(url, 'linkedin\.com/in/([^/?#]+)', 1)))")# Your LinkedIn URLs, one per row of linkedin_urls.csv under a "url" header, with each one's email and mobile from the file
duckdb.sql("""
copy (
select u.url, p.FULL_NAME, p.CURRENT_JOB_TITLE, c.NAME as COMPANY, p.EMAIL, p.MOBILE_PHONE, p.CITY, p.STATE_CODE
from read_csv('linkedin_urls.csv') u
left join people p on profile(p.LINKEDIN_URL) = profile(u.url)
left join companies c on c.LINKEDIN_ID = p.CURRENT_JOB_COMPANY_LINKEDIN_ID
) to 'linkedin_urls_with_contacts.csv'
""")We ran it on a laptop on 1,070 URLs: 1,020 people of the October 2026 file drawn at random, each written one of the ways people paste them (http, no www, a trailing slash, ?utm_source=share, uk.linkedin.com in capitals, /details/experience/, accents written out or percent-encoded), and 50 made-up ones. It took 0.6 s.
| URLs | |
|---|---|
| In the list | 1,070 |
| Found in the file (all of the file's, whatever the form) | 1,020 |
| Made up, not found: the row stays, blank | 50 |
| Found, with a mobile or an email | 527 |
| …with a mobile phone | 415 |
| …with an email | 283 |
| …with both | 171 |
About half the people found have a contact, as across the whole file: 5,182,067 of 9,521,154 (54%). A URL the file doesn't hold comes back blank: someone outside the U.S., at a company of fewer than 11 or more than 500 employees, or not in the October release. That's where ContactOut's lookup comes in.
A recruiter's list, as one query
ContactOut is “trusted by 1.4M recruiters and sales reps”, says its sales page. A recruiter's list from the same file, searched by title and place instead of by URL, with the same setup:
# Software engineers in Texas with a mobile phone or an email, with their company, to a CSV
duckdb.sql(r"""
copy (
select p.FULL_NAME, p.CURRENT_JOB_TITLE, c.NAME as COMPANY, c.EMPLOYEE_COUNT_RANGE, p.MOBILE_PHONE, p.EMAIL, p.CITY, p.LINKEDIN_URL
from people p
left join companies c on c.LINKEDIN_ID = p.CURRENT_JOB_COMPANY_LINKEDIN_ID
where regexp_matches(p.CURRENT_JOB_TITLE, '\b(software (engineer|developer)|(full[- ]?stack|back[- ]?end|front[- ]?end) (engineer|developer))\b', 'i')
and p.STATE_CODE = 'TX'
and (p.MOBILE_PHONE is not null or p.EMAIL is not null)
) to 'texas_software_engineers.csv'
""")| People | |
|---|---|
| Software engineers in the U.S. (the title alone) | 72,295 |
| …with a mobile or an email | 46,932 |
| …with a mobile phone | 30,321 |
| In Texas, with a mobile or an email: the CSV | 3,406 |
| …with a mobile phone | 2,129 |
| …with an email | 2,517 |
| …with both | 1,240 |
The titles are matched as written on LinkedIn; change the pattern, the state or add c.EMPLOYEE_COUNT_RANGE to the where for another list. One profile you're looking at, as ContactOut's extension does:
# One profile you're looking at on LinkedIn
duckdb.sql("""
select FULL_NAME, CURRENT_JOB_TITLE, EMAIL, MOBILE_PHONE
from people
where profile(LINKEDIN_URL) = profile('https://www.linkedin.com/in/their-profile/')
""").show()The emails are work emails: none of the 2,790,286 is at Gmail, Yahoo, Hotmail, Outlook, AOL or iCloud. A candidate's personal email is ContactOut's, not ours.
Moving the data work
- The live profile behind each URL, title and experience as they are today: the LinkedIn profile API, at $0.00125 a profile found. A script for a whole CSV: get LinkedIn profile data with Python.
- The same file next to other tools' contacts: Seamless.AI alternative, Lusha alternative, Hunter.io alternative; what each tool's free plan gives: free B2B database. Contacts by title, city or a list of company websites instead of LinkedIn URLs: RocketReach alternative.
The free file is on your dashboard once you sign up with your work email, with the $5 credit and your API key.
Questions
Is there a free ContactOut alternative?
ContactOut's free plan gives 5 emails, 5 phones and 5 exports a day. Datacircle's free offer is a whole file. Free: 10M+ U.S. B2B leads, as a flat file. Download it at datacircle.dev. 9,521,154 people, each with their LinkedIn URL, 4,016,020 with a mobile phone and 2,790,286 with an email, free with a work email.
How much does ContactOut cost?
Its pricing page, read in October 2026: Email is $49 a month and Email + Phone $99 a month with U.S. and UK data ($25 and $49 without), each for 1 user per company; Team and API on request. Its terms put the unlimited plans under a fair use policy: 2,000 email credits and 1,000 phone credits per account per month.
Does ContactOut have an API?
Yes: a key comes by booking a meeting, and its price isn't published. Its LinkedIn Profile API takes one profile URL and uses 1 email credit if it finds an email and 1 phone credit if it finds a phone; its bulk endpoint takes 100 LinkedIn URLs a call.
Does Datacircle have personal emails, like ContactOut?
No. The file's emails are work emails: none of the 2,790,286 is at Gmail, Yahoo, Hotmail, Outlook, AOL or iCloud. And Datacircle sells data, not a prospecting tool: no browser extension, search portal, email campaigns or dialer. Its API returns the LinkedIn profile behind a URL, not an email or a phone.
Sign up at datacircle.dev with your work email: a $5 credit, that's 4,000 LinkedIn profiles at $1.25 per 1,000. Free: 10M+ U.S. B2B leads, as a flat file. Download it at datacircle.dev.
Sign up