With Proxycurl API, you could enrich LinkedIn profiles at one cent per profile, at scale.
Since we introduced Proxycurl, the feedback revolved around two issues:
- It was too hard to scrape public LinkedIn profiles
- And our corporate plans were too expensive
I was happy to share, at the time, that we had completely overhauled Proxycurl so that you could:
- Crawl LinkedIn profiles with just 8 lines of code
- Get started with a free trial and an API key immediately
- Get 100 credits for $10, that's 100 profiles
You could check out Proxycurl API, the pricing model, and the documentation. I am deliberately keeping the original framing here because this post was part of that launch.
Proxycurl Person Profile API
Update: Proxycurl has since been sunset. I founded Proxycurl, and today I am building NinjaPear instead. If your use case is still "give me structured people and company data in API form," NinjaPear is the continuation of that obsession, except we no longer scrape LinkedIn at all. The data comes from public web sources, is legally cleaner, and in many cases is richer than what a LinkedIn-centric workflow gives you.
We had a lot of feedback asking for an easy way to scrape public LinkedIn profiles. At the time, that was exactly what Proxycurl was built to do.
With Proxycurl Person Profile API, you could get a LinkedIn profile fully parsed into a nicely formatted JSON result. All you had to do was submit a request to the API.
This is what the request looked like:
import requests
api_endpoint = 'https://nubela.co/proxycurl/api/linkedin/person'
linkedin_profile_url = 'https://www.linkedin.com/in/williamhgates'
api_key = 'YOUR_API_KEY'
header_dic = {'Authorization': 'Bearer ' + api_key}
response = requests.get(
api_endpoint,
params={'url': linkedin_profile_url},
headers=header_dic,
)
And a nicely formatted JSON document of Bill Gates' LinkedIn profile would be returned:
{
"public_identifier": "williamhgates",
"profile_pic_url": "https://media-exp1.licdn.com/dms/image/...",
"first_name": "Bill",
"last_name": "Gates",
"occupation": "Co-chair, Bill & Melinda Gates Foundation",
"headline": "Co-chair, Bill & Melinda Gates Foundation",
"summary": "Co-chair of the Bill & Melinda Gates Foundation. Microsoft Co-founder. Voracious reader. Avid traveler. Active blogger.",
"country": "us",
"birth_date": null,
"experiences": [
{
"company": "Bill & Melinda Gates Foundation",
"title": "Co-chair",
"starts_at": {
"month": null,
"year": 2000
},
"ends_at": null,
"url": null
},
{
"company": "Microsoft",
"title": "Co-founder",
"starts_at": {
"month": null,
"year": 1975
},
"ends_at": null
}
],
"education": [
{
"school": "Lakeside School, Seattle",
"degree_name": null,
"field_of_study": null
},
{
"school": "Harvard University",
"degree_name": null,
"field_of_study": null
}
],
"languages": [],
"organisations": []
}
That product solved a real problem. Getting structured profile data out of LinkedIn was annoying, brittle, and expensive if you tried to do it yourself. Proxycurl made it simple.
What changed is that I no longer think LinkedIn scraping is the right long-term foundation.
Instead, I have now learned that the better product is one that gives you the same downstream utility without tying your workflow to LinkedIn at all.
The NinjaPear alternative
If you were using Proxycurl's Person Profile API, the closest modern replacement is NinjaPear's Employee API. It does not scrape LinkedIn. It aggregates professional data from public web sources and returns structured person profile data in a very similar shape.
The current Person Profile endpoint is:
GET /api/v1/employee/profile
And the simplest Python call looks like this:
import ninjapear
configuration = ninjapear.Configuration(
host="https://nubela.co",
access_token="YOUR_API_KEY"
)
with ninjapear.ApiClient(configuration) as api_client:
api = ninjapear.EmployeeAPIApi(api_client)
response = api.get_employee_profile(work_email='[email protected]')
print(response)
A representative response shape looks like this:
{
"id": "a3xK9mP2",
"full_name": "Patrick Collison",
"first_name": "Patrick",
"last_name": "Collison",
"bio": "Co-founder and CEO of Stripe",
"country": "IE",
"x_handle": "patrickc",
"personal_website": "https://patrickcollison.com",
"work_experience": [
{
"role": "Co-founder & CEO",
"company_name": "Stripe",
"company_website": "stripe.com",
"start_date": "2010-01",
"end_date": null
}
],
"education": [
{
"major": "B.S. Mathematics",
"school": "MIT",
"start_date": "2006-09",
"end_date": "2009-06"
}
]
}
The important distinction is this: Proxycurl started from LinkedIn URLs. NinjaPear starts from public web evidence and identity resolution.
That means the input can be more useful for real workflows:
- Work email
- Name + company
- Role + company
That is just a better fit for CRM enrichment, outbound, and account research.
API credits with volume discounts
Instead of charging $1250 for the smallest plan, we changed the minimum amount to get started to $10.
Instead of rate limits, we changed the billing model to be based on available credits.
That was the original Proxycurl improvement, and at the time it mattered a lot because most tools in this category hid access behind demos, sales calls, or large contracts.
Today, the pricing model at NinjaPear follows the same spirit, except the product is broader.
According to the current Pricing page:
- 3-day free trial
- 10 credits included
- No card required for trial
GET /api/v1/employee/profilecosts 3 credits / callGET /api/v1/company/detailscosts 3 credits / callGET /api/v1/employee/work-emailcosts 2 credits when found, 0.5 credit on miss- Free endpoints include the Company Logo API, Disposable Email Check, and credit balance
I still like this model more than seat-based nonsense. Pay for data, not for a sales deck.
If you used Proxycurl for people data
Here is the clean mapping from the old world to the new one.
| Old Proxycurl use case | NinjaPear replacement | What changed |
|---|---|---|
| LinkedIn profile enrichment | Employee API | No LinkedIn scraping, public-web profile resolution |
| Company enrichment from LinkedIn/company pages | Company API | Rich company details, funding, headcount, updates |
| Work email lookup | Work Email endpoint | Same downstream use case, different sourcing |
| Company logo enrichment | Company Logo API | Free, zero-credit endpoint |
| Employee count lookup | Company API employee count endpoint | Fresh headcount via web search |
This is not a one-to-one product rename. It is a philosophical shift.
Proxycurl was built around making LinkedIn data programmable.
NinjaPear is built around making B2B intelligence programmable without depending on LinkedIn.
Better data, less liability
This is the part I care about most now.
When I was building Proxycurl, the market wanted LinkedIn data because LinkedIn had become the default system of record for professional identity. Fair enough. But that dependency creates product, legal, and operational fragility.
NinjaPear avoids that entire class of risk.
From the current docs and product pages, NinjaPear now provides:
- Person profile enrichment
- Company details
- Employee count
- Company updates from blogs and X
- Funding history
- Competitor data
- Customer listing data
- Work email lookup
- Free company logos
And all of that is positioned around public web sourcing and first-party data principles, not LinkedIn scraping.
For many teams, that is simply the better architecture.
What I would use now
If you found this article because you wanted an introduction to Proxycurl API, the honest answer is simple: Proxycurl was useful, it solved a real pain point, and this post reflects that moment.
But Proxycurl has been sunset.
If you need the modern equivalent, start with NinjaPear instead:
- Use the Employee API for person profiles
- Use the Company API for company intelligence
- Use the Company Logo API if you just need logos for free
- Use the pricing page if you want current credit costs before building
Same obsession with structured B2B data. Better sourcing model. Less legal baggage.
That is the real update.
If your old Proxycurl integration needs a replacement path, start with NinjaPear's Person Profile, Company Details, and Work Email endpoints first. That usually gets you 80% of the way there in one afternoon.