LinkedIn Company Lookup Prices Look Tiny. What Does a Usable Record Cost?
The cheapest LinkedIn company lookup is not always the cheapest usable company record. Ten thousand URLs give you a request count, but your real budget depends on matches, required fields and review work. Define a usable record first, then compare per-call, per-record and prepaid pricing on the same input sample.
I founded Serpent API, one of the products compared here. The October 1, 2026 review used published prices and field contracts; the 200-call sample and usable-record yield below are illustrative, not observed results or a cross-provider benchmark.
If you already have a list of LinkedIn company URLs, the price of a company lookup API is only the first number you need. The harder question is how many matched records will contain the fields your team needs. Serpent API makes the request cost easy to model with a published per-call rate and a structured company response; this worksheet adds the field checks and schedule that turn that rate into a useful budget. For a broader vendor shortlist, see the LinkedIn API provider guide. If you still need to discover company URLs, include that step in your budget. Prices and product terms below were checked on October 1, 2026.
Define a usable company record before counting prices
Start by listing the fields that must be present for the job to count as finished. A CRM enrichment task might need the canonical LinkedIn URL, name, website and industry. A geographic sales territory task may also require headquarters country. A company-size filter may need a usable size band; an optional logo is rarely a reason to fail the record. The company field guide explains the returned object in more detail, and the company-versus-profile guide helps if your workflow actually needs a person.
| Decision | Example rule | What to do when it fails |
|---|---|---|
| Identity | Canonical company URL matches the requested organization; confidence=high | Review a low-confidence canonical match before attaching it to a CRM account. |
| Required fields | Name plus website and industry are nonempty | Keep the record, flag it incomplete, and avoid inventing values. |
| Optional fields | Employee count, founded year, logo and funding may be absent | Store null or an empty collection as documented; do not equate missing with zero. |
| Freshness | Record observed time and next refresh date | Schedule a new observation rather than silently treating an old snapshot as current. |
That definition gives you a useful metric: usable records per 1,000 billable units. If a representative sample of 200 calls returns 190 matching companies and 160 with the required fields, the illustrative usable rate is 160/200 = 80%. At that hypothetical rate, obtaining 10,000 usable records would take about 12,500 calls if the sample generalizes. That rate has not been measured for this article. Run the check on your own mix of large, small, renamed and non-US firms before treating any cost figure as a production forecast.
How much do 10,000 LinkedIn company lookups cost?
Serpent API pricing lists LinkedIn Company at $1.00 per 1,000 Default calls, $0.90 Growth and $0.70 Scale. One call requests one company URL or slug; the price is per call, not per filled field. The lower unit prices follow a qualifying deposit. Standard request allocations follow your current balance, so a past deposit does not permanently preserve the higher capacity bracket. The public API documentation and your account's GET /api/status provide the current contract and live allocation.
| Qualified unit-price tier | Rate per 1,000 company calls | 10,000 calls/month | 300,000 calls/month |
|---|---|---|---|
| Default | $1.00 | $10 | $300 |
| Growth | $0.90 | $9 | $270 |
| Scale | $0.70 | $7 | $210 |
Calculation: calls ÷ 1,000 × listed rate. This is usage arithmetic, not a guaranteed bill or delivery rate. A qualifying deposit is spendable balance, not an extra monthly fee, but it ties up cash until used. New accounts receive 10 shared free calls; that is a trial, not 10 free company calls every month. If you need 10,000 usable records, multiply the required number of attempts from your sample, and include scheduled rechecks.
The calendar matters. Ten thousand calls spread over 30 days average 333.3 per day; plan 334 on some days. Serpent's published standard Default bracket lists up to 10,000/day, 1,000/hour, 100/minute and 10 concurrent calls, so a smooth daily refresh fits those published ceilings with plenty of room. Sending all 10,000 in one day is a different matter: it equals the Default daily ceiling exactly, leaves no room for a retry or an extra call, and at 1,000/hour needs at least ten hours of sending. Growth lists up to 5,000/hour and 50,000/day, so the same 10,000 calls need at least two hours; Scale lists 7,500/hour and 100,000/day, so at least two hours as well (10,000 ÷ 7,500). Their current-balance thresholds must remain satisfied. The limits are up-to allocations, not throughput or success guarantees; contact Serpent about a suitable allocation if your deadline is strict. The capacity-planning worksheet shows how to test daily, hourly, minute and concurrent constraints together.
For a 10,000/month job, batching by day is easier than one large backfill. Use a durable queue of input URLs, cap calls against all four windows, and keep an audit record for each attempt: input URL, returned canonical URL, required-field check, observation time and any review state. A monthly full refresh of 10,000 records is different from a weekly refresh: four passes are 40,000 calls and four times the usage. A separate cache and refresh policy can reduce work when a record does not need daily updates.
What the request returns, and how to check it
The documented company endpoint accepts a full LinkedIn company URL or its vanity slug. Authenticate with your Serpent key in X-API-Key. The output below is a shape example from the public contract, shortened to the fields used in this article; it is not a measured live result.
curl "https://apiserpent.com/api/linkedin/company?slug=microsoft" \
-H "X-API-Key: YOUR_API_KEY"
{
"success": true,
"data": {
"universal_name_id": "microsoft",
"profile_url": "https://www.linkedin.com/company/microsoft",
"confidence": "high",
"requested_slug": null,
"name": "Microsoft",
"tagline": "We believe in what people make possible.",
"description": "Every company has a mission.",
"website": "https://news.microsoft.com/",
"industry": "Software Development",
"specialities": ["Business Software", "Cloud Computing"],
"company_size": "10001+",
"employee_count": 238000,
"follower_count": null,
"founded_year": 1975,
"hq": {"country": "US", "city": "Redmond", "state": "Washington"},
"locations": [],
"funding_data": []
}
}
Do not interpret follower_count: null as zero, or funding_data: [] as proof that the firm has no funding. A company can have multiple offices, an ambiguous vanity slug, a renamed URL, or no field on the public page. If confidence is low, the documented response may return a different canonical company and echo the requested slug. Decide whether your job may accept that match before saving it. For person-level fields, use a different LinkedIn endpoint; a company lookup will not populate an employee roster.
This Python example uses only the standard library and reads the key from an environment variable. It checks parsed identity and required fields, and records an incomplete outcome instead of treating HTTP 200 as success. The code makes one illustrative call; schedule and persistence belong in your application.
import json
import os
import urllib.parse
import urllib.request
slug = "microsoft"
url = "https://apiserpent.com/api/linkedin/company?" + urllib.parse.urlencode({"slug": slug})
request = urllib.request.Request(url, headers={"X-API-Key": os.environ["SERPENT_API_KEY"]})
with urllib.request.urlopen(request, timeout=60) as response:
payload = json.load(response)
company = payload.get("data")
if not payload.get("success") or not isinstance(company, dict):
raise RuntimeError("No parsed company record; inspect response before counting it")
required = ("name", "profile_url", "website", "industry")
missing = [field for field in required if not company.get(field)]
result = {
"requested_slug": slug,
"canonical_url": company.get("profile_url"),
"confidence": company.get("confidence"),
"missing_required": missing,
"usable": company.get("confidence") == "high" and not missing,
}
print(json.dumps(result, indent=2))
For the illustrative record above, the parsed summary would be:
{
"requested_slug": "microsoft",
"canonical_url": "https://www.linkedin.com/company/microsoft",
"confidence": "high",
"missing_required": [],
"usable": true
}
A real record with no website prints "missing_required":["website"] and "usable":false. This intentionally conservative rule can be relaxed if your workflow does not require a website. For production, catch request errors, log the sanitized failure category internally, and follow the documented guidance for any limit response. Never turn a failed request into a fabricated company.
Five public options, normalized to the same 10,000-company input list
The comparison uses official published pages checked on October 1, 2026. The common input is 10,000 known company identifiers and a desire for current structured company data. The outputs are not field-equivalent, and some vendors bill only delivered records while others bill calls or credits. These are posted-price calculations, not a five-vendor test of match rate, latency or record quality. If a vendor's product is a deeper multi-source database, its extra fields may justify a higher price.
| Provider and product | Public billing unit | 10,000-input worksheet | When it may fit; important limit |
|---|---|---|---|
| Serpent LinkedIn Company | One requested lookup; $1.00/$0.90/$0.70 per 1,000 by qualified price tier | $10/$9/$7 in usage for 10,000 calls | Simple recurring lookup from known URLs or slugs. Public-page fields can be missing, and a paid call does not guarantee your required fields. |
| Bright Data Web Scraper API | $1.50 per 1,000 delivered records, pay as you go | $15 if 10,000 company records are delivered | Broad scraper library and delivered-record billing. Confirm LinkedIn company dataset, its actual fields and commercial plan for your use. |
| Yonecode actor on Apify | $0.002 per fast match or $0.006 per deep company result | $20 for 10,000 fast matches; $60 for 10,000 deep results | Fast mode is mainly URL matching, so $20 is not field-equivalent. Deep mode requires your LinkedIn session cookie; this is one actor, not all Apify actors. |
| Coresignal Company API | Credits; Mini $49/month includes 2,500 credits, while collected company records may use 10–20 credits | Mini covers only 125–250 such records; price for 10,000 depends on the exact endpoint and plan | Search and multi-source enrichment can be more useful than a page lookup. Do not confuse cheap search with collecting full records. |
| People Data Labs company data | Published typical self-serve guidance of about $0.05–$0.10 per company profile, volume-dependent | About $500–$1,000 at that guidance, not a binding 10,000-record quote | Broader company-data product with different source mix and possible historical attributes. Obtain an offer for your actual volume and fields. |
Method: simple multiplication of each vendor's linked public unit price by 10,000, except where the product has credits or volume-dependent guidance. Bright Data's $499 Scale plan includes 384,000 supported records and $1.30/1,000 above that; paying $499 to use only 10,000 would be an unfair comparison with the pay-as-you-go row. Coresignal's company solution page describes other one- or two-credit enrichment forms, so confirm the exact record product rather than treating every company result as 10–20 credits. PDL's range is explanatory guidance, not a signed tariff. For a broader shortlist, read the LinkedIn API provider comparison; for the detailed credit ladder, see the Coresignal pricing analysis.
One practitioner discussion comparing enrichment APIs is a useful reminder to sample your own records for match and field quality. It is a user's experience, not proof of any current price or population-wide accuracy. This article does not include a simultaneous five-vendor delivery benchmark. A trial should use the same sampled company list, required-field rule, and observation window for each provider.
Choose by workload, not by the smallest number
- Already have company URLs and need current public fields? Serpent's per-call lookup is easy to budget. Validate the fields and schedule a representative test before committing a monthly refresh.
- Need to discover firms by filters, merge many sources, or view historical attributes? Coresignal or People Data Labs may better match the job despite their different pricing. Do not use a live-page lookup as a database-search substitute.
- Want delivered-record billing or a specific scraping workflow? Bright Data and individual Apify actors offer different terms. Read the exact dataset or actor contract, and account for any cookie, run or platform requirements.
- Need an authorized organization-management integration? LinkedIn's official Organization Lookup API is designed around approved permissions and admin contexts. It is a different access path with a narrower non-admin field set, so include it when that is your use case.
Before signing off, sample enough records to cover small companies, changed slugs, international pages and sparse fields. Count usable parsed companies rather than status codes. Divide the quoted or observed total by that count, then add the time to review ambiguous matches. This is the effective cost that matters to your CRM or analyst. The Serpent LinkedIn API page and documentation describe current fields and pricing; your account's status and a small trial are the last checks before scheduling.
Test your company-list economics
Run a representative set of known URLs, inspect canonical matches and required fields, then price the refresh frequency you actually need.
Start with a free API keyFAQ
How much do 10,000 Serpent LinkedIn company lookups cost?
At published company rates checked October 1, 2026, 10,000 calls mean $10 Default, $9 Growth, or $7 Scale in usage. Discounted prices require a qualifying deposit; live-balance limits are separate. These amounts do not promise 10,000 usable company records.
Does one company lookup guarantee a complete profile?
No. Public fields vary. Treat company identity and the fields required by your workflow as separate acceptance checks; null, empty arrays, low-confidence matches and missing records need explicit handling.
Can the standard Default account finish 10,000 lookups in one day?
Only on paper, with no margin. The published standard Default daily allocation is up to 10,000 calls and the hourly allocation is up to 1,000, so a one-day backfill needs at least ten hours and leaves no room for retries or extra calls. A 10,000-call monthly job averages about 334 calls/day over 30 days. Check your live /api/status before scheduling.
Why are competitor price rows not directly interchangeable?
They bill different units: Serpent bills requests, Bright Data and the named Apify actor publish delivered-record prices, Coresignal uses credits, and PDL offers multi-source company data with volume-dependent pricing guidance. Compare the fields you need and a representative sample before selecting one.






