_private/qwestly-docs/Engineering/2026-06-09-linkedin-api-freshdata-pricing-impact.md

LinkedIn Profile API: FreshData Pricing Impact Assessment

Date: June 9, 2026 Author: Dom Asana: Audit LinkedIn profile API includes and assess FreshData pricing impact


Executive Summary

FreshData is changing LinkedIn profile endpoint pricing on June 20, 2026. Basic profile cost doubles from 1 to 2 credits. Currently we request zero includes (all 11 set to false), so our per-profile cost goes from 1 to 2 credits (+100%). At our modeled usage (1 profile + 1 company call per user = 3 credits/user), the Pro plan ($45/mo) supports ~1,500 users/month. The Ultra plan ($250/mo) supports ~10,600 users/month. We should upgrade to Ultra when monthly credit utilization on Pro consistently exceeds 80% (~3,600 credits/mo).


1. Current Integration Audit

1.1 Profile requests

File: candidate/src/services/data/linkedin-rapidapi.ts

We call GET /get-personal-profile with all 11 includes explicitly set to false:

Include Value Impact if enabled
include_skills false +1 credit
include_certifications false +1 credit
include_publications false +1 credit
include_honors false +1 credit
include_volunteers false +1 credit
include_projects false +1 credit
include_patents false +1 credit
include_courses false +1 credit
include_organizations false +1 credit
include_profile_status false +1 credit
include_company_public_url false +1 credit

Cost: 2 credits/request under new pricing (was 1 credit under old pricing).

1.2 Company requests

Endpoint Location Credits
GET /get-company-by-domain api-python/lib/integrations/company_profile_upstream.py 1
GET /get-company-by-url api-python/lib/integrations/company_profile_upstream.py 1
GET /get-company-by-id api-python/lib/integrations/company_profile_upstream.py 1
GET /get-company-by-url (legacy) candidate/src/services/data/company-rapidapi.ts 1

Company calls are used less frequently than profile calls, but for worst-case modeling we assume one per user.

1.3 Caching

Profile data is cached in MongoDB (linkedin_profiles collection), with configurable cache and force-refresh options. This means not every user interaction triggers a fresh API call -- only first-time lookups and explicit refreshes. Actual API usage will be lower than total user count.

1.4 Dev servers

Dev servers also hit the FreshData API (all 6 apps: candidate, api-python, agent, hire, internal, public). Using the shared RapidAPI key means dev traffic counts against the same credit/request pool. Dev usage is modest but should be monitored.


2. Pricing Change (June 20, 2026)

2.1 Profile endpoint changes

Old New (June 20)
Basic profile 1 credit 2 credits (+100%)
Each include +0.5 credits, rounded down +1 credit (+100% minimum)
Max cap 3 credits No cap

2.2 Impact on our usage

Since we use zero includes, our per-profile cost goes from 1 → 2 credits (+100%).

2.3 If we ever enable includes

Enabling even one include (e.g., skills) would increase profile cost from 2 → 3 credits (+50%). Enabling three includes would mean 5 credits/profile (+150% over current 2). The removal of the 3-credit cap means poorly-considered includes could be very expensive at scale.


3. Capacity Modeling

3.1 Modeled usage

For analysis, we model 1 profile call + 1 company call per user = 3 credits/user.

3.2 Plan comparison

Plan Price/mo Credits/mo Req limit Rate limit Max users/mo (credit bound) Max users/mo (req bound)
Pro $45 4,500 6,000 30/min 1,500 3,000
Ultra $250 32,000 40,000 60/min 10,666 20,000
Mega $1,000 200,000 240,000 150/min 66,666 120,000

Credits are the binding constraint, not requests. The request limit is ~2x the effective credit limit in all plans.

3.3 Throughput limits

Plan Users/minute (rate-limit bound) Users/hour
Pro 15 (at 2 req/user) 900
Ultra 30 1,800
Mega 75 4,500

3.4 Credit-only profile requests (no company call)

If we only make profile calls (2 credits each):

Plan Max profiles/mo
Pro 2,250
Ultra 16,000
Mega 100,000

4. Upgrade Signals

4.1 When to upgrade to Ultra ($250/mo)

Primary signal: Monthly credit utilization consistently exceeds 80% on Pro (~3,600 credits/mo = ~1,200 users at 3 credits/user).

Secondary signals:

  • Rate limit throttling (30 req/min causing user-facing delays)
  • Approaching the 6,000 request hard limit
  • Planning to enable includes for richer profile data
  • Launching a feature that drives significant new user acquisition

4.2 Cost breakeven

Ultra costs $205/mo more than Pro. At 3 credits/user, Pro covers 1,500 users. Ultra covers an additional ~9,100 users. The marginal cost on Ultra is ~$0.022/user (vs. Pro's ~$0.03/user). Ultra is cheaper per-user at scale.

4.3 When to consider Mega ($1,000/mo)

Mega becomes relevant at ~10,000+ users/month, or if Sales Navigator search endpoints (50 credits/search) are introduced to the product.


5. Recommendations

  1. No immediate action required. Our zero-includes configuration means the pricing change only doubles our per-profile cost -- from 1 to 2 credits. This is the smallest possible impact.

  2. Keep includes at false. Do not enable any includes without explicit review. Each include now costs a full credit and there is no cap. If product requirements demand richer data (skills, certifications, etc.), weigh the cost against the value and trigger an upgrade review.

  3. Monitor monthly credit consumption. Set up a monthly check to review RapidAPI credit usage against the 4,500-credit Pro limit. If utilization crosses 80% (3,600 credits) consistently, plan the Ultra upgrade.

  4. Audit company API usage. The company endpoints are less used but still consume credits. Track actual call volume to refine the model.

  5. Update the LinkedIn-Profile-API.md after any plan change to keep the plan table current.

  6. Consider caching improvements. MongoDB caching already reduces repeat API calls. Review cache TTLs -- longer TTLs directly reduce credit consumption.


Appendix: Plan Details (from RapidAPI)

Plan Monthly Price Credits Hard Request Limit Rate Limit Overage
Pro $45 4,500 6,000 30/min Hard stop
Ultra $250 32,000 40,000 60/min Hard stop
Mega $1,000 200,000 240,000 150/min Hard stop

References