Reliable Company Location Data APIs for Your Needs in 2026
Why Klazify is the best fit for classifying company location data from websites
If your team needs to reliably identify where a company is located from a URL—whether to enrich a signup in your product, normalize account records in your CRM, or ensure your ads only run against businesses in allowed regions—you need a classifier that sees beyond metadata. Klazify analyzes real site content to return accurate categories and detailed company information, including city, stateCode, and countryCode. This makes it uniquely effective for “company location data” workflows where a single domain must translate into usable geography, organization size, and business context for downstream decisions.
Here’s why Klazify stands out for this job:
- Accurate Website Categorization Using AI: Klazify evaluates full-page content, enabling precise identification of company context and supporting reliable extraction of company location data from the domain.
- Global Coverage: Many modern lead flows are international. Klazify can analyze websites across languages to return consistent location fields—city, stateCode, countryCode—critical when normalizing global accounts.
- Real-Time Classification: You get fresh analysis instead of static lookups, so when a business moves headquarters or updates its About page, your enrichment reflects the current truth.
- Industry-Level Categories (IAB): Outputs include IAB-aligned categories so you can place the company in the right industry context when pairing location with vertical for routing or segmentation.
- Simple API Integration: A developer-friendly, single REST endpoint for classification and company data means easy integration into signup flows, ETL jobs, or risk review tooling.
- Superior Compliance and Filtering: Combine location fields with business categories to build country-specific allow/deny policies, regional ad controls, and territory-based sales assignments.
With Klazify, a URL becomes a structured company profile you can trust: business categories, logo, related domains, and—most importantly for this use case—the company’s location fields ready for analytics, routing, and compliance logic.
Scenario: Enriching signups with location and industry to auto-route leads
Imagine a signup form that asks only for a business email and website. Your product needs to route the lead to the correct regional sales team, segment it by industry, and verify the brand’s safety profile before a trial starts. The Klazify API lets you send the URL once and get back:
- Company city, stateCode, countryCode to set territory and compliance rules
- Industry categories aligned to IAB for segmentation and marketing automation
- Logo URL to enhance UI profiles automatically
- Similar domains to find parent/related brands for deduplication or upsell mapping
In a few milliseconds in your backend flow, your signup becomes a fully enriched account with location, industry, and visual assets—no manual verification required.
What the Klazify API returns for company location and categorization
Klazify provides a single endpoint to analyze a URL or domain and return both categorization and company details. You’ll use these fields most in location-enrichment pipelines:
- domain.categories: List of categories (IAB-mapped) with confidence score
- domain.logo_url: A logo URL you can store and render in your product
- objects.company.city, stateCode, countryCode: Company location data resolved from the website
- objects.company.name, url: Clean, normalized primary identity fields
- objects.company.employeesRange, revenue, tags, tech: Additional context for lead scoring and prioritization
- domain_registration_data: Domain age and expiration details for trust evaluation
- similar_domains: Useful for brand networks, deduplication, or competitive analysis
Complete example response (1 of 4)
The following is a realistic JSON response you’ll receive from the API. Use the company fields for location, and the domain categories for industry-level segmentation.
{
"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 call the classification endpoint
Endpoint you’ll use
Klazify exposes a single, developer-friendly endpoint for classification and enrichment:
- Endpoint URL: https://www.klazify.com/api/categorize
- Purpose: Website classification and content categorization, including company data and location from a URL
Example curl request
Send the company’s URL to receive categories and location data in one response. Substitute YOUR_API_KEY and the target URL.
curl -X POST "https://www.klazify.com/api/categorize" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"url": "https://www.apple.com/"
}'
Minimal JavaScript example
This snippet demonstrates how to request classification and pull city, stateCode, countryCode, categories, and logo for your enrichment pipeline.
async function classifyDomain(url) {
const resp = await fetch("https://www.klazify.com/api/categorize", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_KEY"
},
body: JSON.stringify({ url })
});
if (!resp.ok) throw new Error("Request failed: " + resp.status);
const data = await resp.json();
const company = data.objects?.company || {};
const domain = data.domain || {};
return {
companyName: company.name,
website: company.url,
city: company.city,
stateCode: company.stateCode,
countryCode: company.countryCode,
categories: (domain.categories || []).map(c => c.name),
logoUrl: domain.logo_url,
domainAgeDate: data.domain_registration_data?.domain_age_date,
similarDomains: data.similar_domains || []
};
}
// Example usage:
classifyDomain("https://www.apple.com/").then(console.log).catch(console.error);
Field-by-field usage
- objects.company.city/stateCode/countryCode: Store these in your CRM location fields. Use countryCode for compliance rules and stateCode for regional routing.
- domain.categories.name: Map to your internal industry taxonomy or retain as IAB for ad and content workflows.
- domain.categories.confidence: Set a threshold (e.g., 0.80) to decide whether to accept or flag for review.
- domain.logo_url: Download or proxy the URL to display brand visuals in your app.
- domain_registration_data: Use domain age to inform trust signals or prioritization in lead scoring.
- similar_domains: Consolidate related properties into a single account in your database.
Complete example response (2 of 4)
Below is the same complete JSON structure you’ll receive from a typical classification call. This example highlights how categories and location co-exist in one payload for immediate use.
{
"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"
]
}
Operational design: accuracy, coverage, and plugging into your pipeline
Architecture principles for production use
- Cache by domain: Cache results per normalized domain (e.g., apple.com) with an expiration policy. Refresh periodically to capture moves or rebrands.
- Batch ingestion: Group URLs into background jobs for ETL or backfill workflows. Store raw JSON and a normalized subset for fast access in your services.
- Idempotency by key: Use domain or canonical URL as a deduplication key to avoid re-classifying the same property.
- Confidence thresholds: When using categories, set a minimum confidence. For borderline cases, route to a human review queue or a secondary verification step.
- Fallbacks for new or sparse domains: If location fields are missing, attempt the root domain, the About/Contact pages, or queue for a later retry.
Mapping categories to your own taxonomy
Teams often keep internal vertical lists (e.g., “FinTech,” “Retail,” “Healthcare”). Use the returned category names and IAB mapping to build a deterministic transform. For instance, map any category string containing “Consumer Electronics” to your “Hardware & Devices” segment. Apply a many-to-one mapping table in your ETL step, preserving the IAB keys for audits and future reprocessing.
Data governance tips
- Provenance: Store the full JSON response and a processing timestamp next to enriched fields for auditability.
- Schema versioning: Keep a lightweight schema version in your warehouse to maintain compatibility over time.
- Encryption at rest: Treat enriched location and company data as PII-adjacent; align with your data security standards.
Technical approach: extracting company location data with Klazify
What Klazify analyzes
Klazify’s models inspect website content and structure to determine both what the site represents (industry categories) and who stands behind it (company details). This content-first approach is particularly effective for location since many organizations list their headquarters in footers, Contact pages, or structured organization profiles—details that metadata-only tools may miss.
From URL to normalized location fields
- Input: A URL like https://www.apple.com/
- Classification: Hierarchical categories and confidence
- Company enrichment: Name, normalized city, stateCode, and countryCode
- Context: Logo, tags, technologies, domain age, and similar domains
Once you store these fields, use standardized country codes to merge with your internal region tables (e.g., mapping US to “North America” or “AMER”). State codes are critical for subnational assignment in large markets like the US.
Data model quick reference
| Section | Field | Use in Pipeline |
|---|---|---|
| objects.company | city, stateCode, countryCode | Territory routing, compliance screening, geo analytics |
| objects.company | name, url | Deduplication and identity resolution |
| domain.categories | name, confidence | Industry segmentation, ad targeting, brand safety rules |
| domain | logo_url | UI enhancement, brand recognition |
| domain_registration_data | domain_age_date, expiration | Trust signal, lifecycle management |
| similar_domains | array | Account consolidation, portfolio insights |
Real-world applications that depend on reliable company location data
1) Enrich signups and route to the right region
With city, stateCode, and countryCode, you can auto-assign new trials to the correct territory. Pair with categories to direct industry-expert sales reps. Use domain age to flag low-trust signups for review.
2) CRM and lead enrichment
Backfill existing accounts or leads with location and categories for full-funnel improvements. Build views like “EMEA Consumer Electronics mid-market accounts” by combining countryCode, employeesRange, and tags.
3) Ad tech and brand safety
Restrict where your creatives run by filtering on countryCode and category lists. For instance, only place ads on Consumer Electronics sites in US/CA/UK segments. Use confidence scores to set strict or permissive matching modes.
4) Content filtering and compliance
Apply allowlists/denylists that include both geography and IAB categories. For public WiFi or education scenarios, ensure only sites from approved regions and verticals load, improving compliance posture.
5) Cybersecurity and network controls
Region-aware categorization helps SOC teams craft rules tuned to local regulations or threat landscapes. Combine countryCode with domain age to tune risk scoring heuristics.
Complete example response (3 of 4)
This complete JSON illustrates the unified structure you will parse for both location and categorization. Use it directly as a reference when planning your data model.
{
"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"
]
}
Implementation patterns and best practices
Batch enrichment for data warehouses
For large domain lists (e.g., nightly warehouse jobs), queue jobs that call the endpoint, store raw JSON responses for audit, and write normalized columns for BI. Maintain a “last_classified_at” timestamp per domain and schedule refreshes based on business needs.
Inline enrichment during signup
When a user submits a domain, trigger a backend call to the endpoint. If successful, persist the parsed company fields (name, city, stateCode, countryCode) and categories. If parsing fails, accept the signup but mark it “pending enrichment” and retry asynchronously.
Category mapping: IAB to internal segments
Use deterministic string contains/starts-with rules to translate detailed categories to your internal taxonomy while keeping the original IAB-aligned value as a reference. Apply a priority rule for multi-category results based on confidence.
Check out the full API documentation
To dive deeper into request structures, fields, and additional capabilities that expand beyond location, you can review the official reference. Check out the full Klazify API documentation
Complete example response (4 of 4)
This fourth, complete response mirrors the payload shape you can expect in production, reinforcing how location and categories are always available from the same call path.
{
"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"
]
}
Interpreting the response: putting location to work
Lead routing and territory assignment
- Map countryCode to your territory table (e.g., AMER/EMEA/APAC).
- Where needed, use stateCode for subregional assignment.
- Use city for address normalization and map to metro regions if relevant to your business.
Brand safety and content controls
- Allow ads where countryCode is in your permitted list and categories align with your vertical.
- Use confidence thresholds to tighten or widen placement rules.
- Leverage similar_domains to ensure brand-level controls apply across sibling properties.
CRM and analytics
- Persist objects.company.name as the canonical name for lead/account merges.
- Use employeesRange or revenue for simple ICP targeting.
- Tag account records with tags and top categories for discoverability and cohort analysis.
Python example: extracting location and categories
Below is a concise Python snippet showing how you might parse the response and prepare a normalized record for storage. Adjust field handling to match your data model.
import os
import json
import requests
API_KEY = os.getenv("KLAZIFY_API_KEY")
URL = "https://www.klazify.com/api/categorize"
def classify(url):
resp = requests.post(
URL,
headers={
"Content-Type": "application/json",
"Authorization": f"Bearer {API_KEY}"
},
data=json.dumps({"url": url})
)
resp.raise_for_status()
data = resp.json()
company = data.get("objects", {}).get("company", {})
domain = data.get("domain", {})
reg = data.get("domain_registration_data", {})
return {
"name": company.get("name"),
"website": company.get("url"),
"city": company.get("city"),
"stateCode": company.get("stateCode"),
"countryCode": company.get("countryCode"),
"categories": [c.get("name") for c in (domain.get("categories") or [])],
"category_conf": [c.get("confidence") for c in (domain.get("categories") or [])],
"logo_url": domain.get("logo_url"),
"domain_age_date": reg.get("domain_age_date"),
"similar_domains": data.get("similar_domains") or []
}
if __name__ == "__main__":
rec = classify("https://www.apple.com/")
print(json.dumps(rec, indent=2))
Performance, batching, and resilience considerations
Throughput and batching
- Run background batch processes for large backfills and nightly refreshes. Queue domain tasks and monitor completion with retries.
- For interactive user flows, call the API synchronously but cap concurrency to maintain predictable response times.
Caching and revalidation
- Cache per domain with a sensible TTL. Businesses don’t move frequently; a periodic refresh (e.g., weekly or monthly) is often sufficient.
- On key lifecycle events (e.g., major release, territory remodel), trigger a bulk revalidation to ensure consistency across your database.
Handling new or unknown domains
- When location fields are missing, enqueue a retry job that attempts root domain or known contact pages.
- Flag unclassified domains in your BI layer so operations teams can review edge cases and improve your mapping logic.
End-to-end pipeline example: from raw URL to territory-ready record
1) Intake
- Collect signups with a URL field or derive domain from email.
- Normalize the URL (lowercase host, strip tracking params) and queue a classification task.
2) Classification
- Call https://www.klazify.com/api/categorize with the URL.
- Store raw JSON, parse company location and categories into normalized columns.
3) Mapping and validation
- Map countryCode and stateCode to your territory hierarchy.
- Apply category-to-segment rules and confidence thresholds.
- Compute enrichment quality metrics for observability dashboards.
4) Application
- Auto-assign lead owners by region; display the company logo and categories on account pages.
- Enforce brand safety filters in ad placement and content distribution workflows.
Future trends: where company location data and categorization are heading
Page-level intelligence for multi-regional brands
As organizations host localized sites (e.g., country TLDs or /country paths), page-level analysis becomes more important. You’ll want to treat each local property as a signal source for regional targeting or compliance.
Deeper semantic understanding
Modern content classification will continue to move beyond keywords into true semantic context, helping systems understand multi-faceted businesses that span several industries and locations.
Unified brand graphs
Expect stronger connections across similar domains, parent/child brands, and acquisitions. Being able to expand from a single URL to a complete brand network gives you richer location coverage and better territory logic.
Checklist: making your company location enrichment resilient
- Normalize and cache results per domain
- Persist raw JSON for audits and reprocessing
- Build deterministic category-to-segment maps
- Set minimum confidence thresholds for category usage
- Design retry and fallback strategies for unknown domains
- Monitor enrichment coverage, freshness, and quality KPIs
FAQ
How do I use Klazify to get a company’s location from a URL?
Send the company’s URL to the categorization endpoint. Parse objects.company.city, stateCode, and countryCode in the response. Store these fields alongside the company name and domain in your CRM or user profile.
Can I rely on the categories for territory-based ad controls?
Yes. Combine domain.categories with company location fields to ensure your ads run only in approved regions and against relevant verticals. Use confidence scores to set strict or flexible matching policies.
What if a website has multiple categories or low confidence?
Use a priority rule (e.g., pick the highest-confidence category or apply a whitelist/blacklist of acceptable categories). If confidence falls below your threshold, route the domain for manual review or a secondary verification pass.
How should I cache results to reduce repeat lookups?
Cache per normalized domain with a TTL based on your data freshness requirements. For critical accounts, schedule periodic revalidations to capture changes like relocations or rebrands.
How do I map IAB categories to my internal taxonomy?
Create a translation table keyed by category strings and IAB mappings. Implement a deterministic rule (e.g., substring match or regex) to map multiple IAB values to your internal segments, preserving the original values for audits.
Can I handle large backfills and daily refresh jobs?
Yes. Build a batch pipeline that queues domains, calls the endpoint, stores raw responses, and writes normalized fields. Run nightly or weekly refreshes, and track enrichment coverage and freshness in your BI tools.
How do I incorporate domain age or similar domains into trust signals?
Use domain_registration_data.domain_age_date as a heuristic for maturity. Leverage similar_domains to find brand networks and reduce fraud from misleading lookalikes by applying organization-level controls.
For deeper technical references, examples, and field definitions beyond the highlights in this guide, explore the official API reference: Check out the full Klazify API documentation
Ready to turn any URL into a structured company profile with accurate location and IAB-aligned categories? Create your free account and integrate in minutes. Try Klazify API for free
Ready to use Klazify?
Start classifying websites, enriching company data, and exploring web intelligence.
Get Started Free