Employee Count API: Get the Employee Count

October 12, 2026
Employee Count API: Get the Employee Count

You need a reliable way to enrich signups, leads, or traffic with a company’s employee count so you can route accounts to the right sales tier, qualify partners, or tailor product limits. In this guide you’ll call Klazify’s company endpoint, extract employeesRange and related business fields, and wire them into your ingestion pipeline with caching, error handling, and taxonomy mapping that you can ship today.

Why Klazify for company size and employee count

Employee count is only useful when it’s accurate, fresh, and easy to automate. Klazify generates company profiles directly from a domain or URL, so you can resolve a website from your form or log file to a standardized employeesRange and related business attributes with minimal glue code.

Illustration: Employee Count API: Get the Employee Count
  • Accurate website categorization using AI: Klazify analyzes the full site to anchor company signals (name, location, tags) before inferring size, lowering the risk of mismatching similarly named organizations.
  • Global coverage: You’ll get company size across many languages and regions, which is critical when classifying global signups or traffic.
  • Real-time classification: Data is derived from current content rather than solely relying on stale lookups, improving the freshness of employeesRange.
  • Industry-level categories via IAB: When you also need vertical context for routing (e.g., split handling of different industries at the same headcount), Klazify maps content to IAB taxonomy for standardized policy decisions.
  • Simple API integration: A single POST with a URL returns employeesRange, revenue (as a range), raised, tags, and more—ready to drop into scoring or segmentation logic.
  • Compliance and filtering: If you also run content filtering or brand safety checks, you can use the categorization results alongside employee count to enforce policies consistently.

You can start quickly with the Starter plan at $39.99/mo with a 7-day trial. Failed or unreachable calls are not billed.

What you’ll build: employee count enrichment from a URL

The workflow below resolves any incoming domain to a structured company object with employeesRange. You’ll use the domain_company endpoint and handle operational concerns like caching and unknown domains so your production system stays fast and predictable.

  1. Collect a URL or domain in your signup form or log pipeline.
  2. POST it to the company endpoint.
  3. Store the returned employeesRange and supporting fields (name, location, revenue range, tags).
  4. Map employeesRange to your tiers (e.g., SMB, Mid-Market, Enterprise) and route accordingly.
  5. Cache results by domain to minimize latency and costs.

Endpoint to use

Use the following endpoint for company data including employee count:

  • POST https://www.klazify.com/api/domain_company
  • Authorization: Bearer token
  • Body (JSON): {"url": "https://example.com"}

Field highlights in the response:

  • name: Company name resolved from the domain.
  • city, stateCode, countryCode: Location data.
  • employeesRange: Size band for headcount (e.g., “1-10”, “11-50”, “100K+”).
  • revenue: A range (not an exact figure) for revenue classification.
  • raised: Funding raised (when available).
  • tags: Business descriptors derived from site content.

cURL example: get employee count from a domain

curl -X POST "https://www.klazify.com/api/domain_company" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://cbsnews.com"}'

Replace YOUR_API_KEY with your token. This request returns a JSON payload that includes employeesRange and other company fields you can persist to your data warehouse or CRM.

Official example JSON and how to use it

The following is the official sample response format. It illustrates the structure you’ll parse to extract employeesRange and other attributes that inform routing and enrichment. Use this JSON as a guide to field names and nesting when implementing your parser.


{
"domain": {
"categories": [
{
"confidence": 0.92,
"name": "/Computers & Electronics/Consumer Electronics",
"IAB-632-596": "Consumer Electronics/Technology & Computing/Consumer Electronics"
},
{
"confidence": 0.89,
"name": "/Internet & Telecom/Mobile & Wireless/Mobile Phones"
}
],
"social_media": null,
"logo_url": "https://klazify.s3.amazonaws.com/2110787991611585019600ed5fb1d1300.04730104.png"
},
"success": true,
"objects": {
"company": {
"url": "https://www.apple.com/",
"name": "Apple",
"city": "Cupertino",
"stateCode": "CA",
"countryCode": "US",
"employeesRange": "100K+",
"revenue": 274515000000,
"raised": null,
"tags": [
"E-commerce",
"Consumer Electronics",
"Mobile",
"B2C"
],
"tech": [
"omniture_adobe_analytics",
"atlassian_confluence",
"successfactors",
"apache_apex",
"talend",
"oracle_peoplesoft",
"salesforce",
"stripe",
"dell_boomi_atomsphere",
"gigya",
"sage_50cloud",
"quickbooks",
"webmethods",
"apache_tomcat",
"alteryx",
"tibco_rendezvous",
"atlassian_jira",
"..."
]
}
},
"domain_registration_data": {
"domain_age_date": "1987-02-19",
"domain_age_days_ago": "13026",
"domain_expiration_date": "2030-02-20",
"domain_expiration_days_left": "123"
},
"similar_domains": [
"bestbuy.com",
"icloud.com",
"microsoft.com",
"macrumors.com",
"google.com",
"samsung.com",
"twitter.com",
"hp.com",
"bhphotovideo.com",
"dell.com"
]
}

How to apply this structure for employee-count workflows:

  • objects.company.employeesRange: Your primary signal for tiering (e.g., drive lead routing, custom limits, or pricing flags).
  • objects.company.name and url: Normalize identity and link back to the source for audits.
  • objects.company.city, stateCode, countryCode: Regional routing or compliance checks alongside headcount.
  • objects.company.revenue and raised: Secondary context for scoring; in the domain_company endpoint, revenue is provided as a range.
  • objects.company.tags: Useful for logic that differs by business model (e.g., B2C vs. B2B) at the same employee band.
  • domain.categories: If you also enforce brand-safety or vertical-specific flows, you can combine category with employeesRange.
  • domain.logo_url and similar_domains: UX and deduplication helpers for reviewers and ops.

Python example: enrich a list of signups with employeesRange

import os
import time
import json
import requests

API_KEY = os.getenv("KLAZIFY_API_KEY", "YOUR_API_KEY")
ENDPOINT = "https://www.klazify.com/api/domain_company"

def get_company(domain: str) -> dict:
payload = {"url": f"https://{domain}" if not domain.startswith("http") else domain}
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json",
}
r = requests.post(ENDPOINT, headers=headers, data=json.dumps(payload), timeout=15)
# Non-2xx are not billed if the call failed or the host was unreachable.
r.raise_for_status()
return r.json()

def map_tier(employees_range: str) -> str:
# Example mapping – adapt to your policy
if not employees_range:
return "Unknown"
bands = employees_range.replace("+","").split("-")
try:
low = int(bands[0])
except ValueError:
return "Unknown"
if low <= 10:
return "SMB"
if low <= 200:
return "Mid-Market"
return "Enterprise"

def enrich_domains(domains):
results = []
for d in domains:
try:
data = get_company(d)
comp = (data.get("objects") or {}).get("company", {})
employees = comp.get("employeesRange")
record = {
"domain": d,
"company_name": comp.get("name"),
"employeesRange": employees,
"tier": map_tier(employees),
"city": comp.get("city"),
"stateCode": comp.get("stateCode"),
"countryCode": comp.get("countryCode"),
"revenue": comp.get("revenue"), # range in domain_company endpoint
"raised": comp.get("raised"),
"tags": comp.get("tags"),
}
results.append(record)
except requests.HTTPError as e:
results.append({"domain": d, "error": str(e), "tier": "Unknown"})
# Consider backoff if you approach your rate limit window
time.sleep(0.05)
return results

if __name__ == "__main__":
sample = ["cbsnews.com", "example.com", "contoso.com"]
enriched = enrich_domains(sample)
print(json.dumps(enriched, indent=2))

This script:

  • POSTs each domain to the company endpoint.
  • Extracts employeesRange, tags, revenue (a range), raised, and location fields.
  • Maps employeesRange into a simple tier to drive routing decisions.

How to act on employee count in your systems

Once you have employeesRange, standardize it to your business logic and push it downstream. A common pattern is to route inbound leads or signups to different queues or feature sets based on size bands.

Field Example Value Typical Action
employeesRange 11-50 Assign to SMB queue; enable self-serve tier limits
employeesRange 201-500 Route to Mid-Market AE; trigger trial-to-demo nurture
employeesRange 100K+ Enterprise handling; require security review
tags B2C, Mobile Apply B2C playbook; adjust onboarding
countryCode US Geographic routing; compliance checks
revenue Range Secondary score to break ties within same headcount

Operational details that save time

Batching and concurrency

  • Batch client-side: queue domains from your event stream and POST them sequentially or in small parallel sets to stay within your plan’s rate window.
  • Idempotency: de-duplicate domains per ingestion window so you don’t re-enrich the same site unnecessarily.

Caching strategy

  • Cache by eTLD+1 (e.g., example.co.uk) for 7–30 days, then revalidate. Employee ranges change infrequently for most companies but do evolve.
  • For high-volume flows, store a normalized record {domain, employeesRange, name, tags, city, stateCode, countryCode, revenue, raised, fetched_at} in your warehouse and key-value cache.
  • Invalidate early when you detect substantive site changes (e.g., content, tags) from your own crawlers or from periodic spot checks.

Handling unknown or new domains

  • If a domain is brand new or has sparse content, employeesRange can be null or broad. Treat this as “Unknown” and fall back to manual review or a default tier.
  • Queue a retry in a few days; as the site matures, the profile often stabilizes.
  • Do not block critical workflows; capture-and-continue with a missing value policy.

Mapping to your taxonomy

  • Store the raw employeesRange string. Maintain a separate mapping table to your internal tiers. This lets you change routing without reprocessing historical events.
  • If you also use content categories, keep IAB category names as-is and map them to your verticals via a lookup table. Apply both vertical and headcount constraints in your policy engine.

Resilience, latency, and billing

  • Timeouts: set a reasonable HTTP timeout (e.g., 10–15s) and short retries with backoff.
  • Latency: cache hits should satisfy most requests; defer refreshes to background jobs.
  • Failed or unreachable calls are not billed, which supports safe retries.

Governance and change awareness

  • Monitor for schema updates and model improvements. See the MCP for change policies and mechanisms you should track.
  • Pin your parser to known fields (employeesRange, tags, city, stateCode, countryCode, raised, revenue). Treat additional fields as optional to avoid breaking changes.

Putting it all together in your pipeline

Here’s a practical integration plan you can drop into your ingestion stack:

  1. Capture the company website from forms, CRM imports, or logs. Normalize the domain.
  2. Lookup in your cache. If found and fresh, use the cached employeesRange and metadata.
  3. If missing or stale, POST to https://www.klazify.com/api/domain_company with the domain.
  4. Parse objects.company to extract employeesRange, name, city, stateCode, countryCode, revenue (range), raised, and tags. Persist the normalized record.
  5. Map employeesRange to your internal tiers and write to your CRM, CDP, or rules engine.
  6. For observability, log enrichment latency, cache hit rate, and unknown-domain rate.

Accuracy levers you control

  • Provide a fully qualified URL when available, not just bare domains; this can improve resolution for companies with complex hosting or multiple brands.
  • Pre-clean user input: strip tracking query strings and fragments; lowercase domains.
  • Use periodic refreshes for high-value accounts, and backfill missing attributes asynchronously to avoid slowing down user-facing flows.

Where to go next

Review the request/response details and additional capabilities in the Documentation. When you’re ready, create a free account to get your API key and start enriching domains with employee count today.

Pricing and getting access

  • Starter plan: $39.99/month with a 7-day trial.
  • Failed or unreachable calls are not billed.

Sign up and get your key: Register.

FAQ

  • What if a domain returns no employeesRange? Treat it as Unknown. Cache the null result with a short TTL and retry later. You can also flag these for manual review if they’re high value.
  • Is revenue an exact number? In the domain_company endpoint, revenue is provided as a range to support scoring and routing without assuming precise financials.
  • How often should I refresh records? Many teams refresh every 30–90 days, with immediate refreshes for priority accounts or when they detect major site changes.
  • Can I use this for both enrichment and filtering? Yes. Use employeesRange for routing and the categorization data (IAB mapping) for content filtering or brand safety in parallel.
  • How do I handle rate limits? Implement client-side batching, short backoff retries, and caching to reduce request volume. Monitor your usage and concurrency and adjust accordingly.

Ready to classify and enrich domains at scale? Create your free account and start calling the API: Register. Explore endpoints, fields, and examples in the Documentation, and keep an eye on changes via MCP.

Ready to use Klazify?

Start classifying websites, enriching company data, and exploring web intelligence.

Get Started Free