1. What Is a Company URL Research API? (Simple Explanation)

Imagine you have a list of 200 company names — no websites, just names. Finding each website by Googling would take hours. A company URL research API does this automatically in seconds.

An API stands for Application Programming Interface. Think of it like a waiter in a restaurant. You (your code) tell the waiter (the API) what you want. The waiter goes to the kitchen (the database), gets your order, and brings it back. You never see the kitchen — you just get the result.

A company URL research API specifically means: you send a company name, and the API returns that company’s official website address. For example:

  • You send: Salesforce
  • The API returns: salesforce.com
  • You send: IKEA
  • The API returns: ikea.com

📚 Simple analogy for anyone

It is exactly like asking a very smart librarian: “What is the website for this company?” — except the librarian answers in under one second and you can ask 10,000 companies in a row without them getting tired.

The result comes back as JSON (JavaScript Object Notation) — a simple structured text format that any programming language can read. Here is what a typical response looks like:

JSON — Example API Response
[
  {
    "name": "Salesforce",
    "domain": "salesforce.com",
    "logo": "https://logo.clearbit.com/salesforce.com"
  }
]

That domain value is the company’s official website. Add https:// in front and you have the full URL: https://salesforce.com.

2. Who Needs This API and Why?

Company URL research APIs are used by four types of teams every day:

📞

Sales SDRs

Turn a list of 500 target account names into verified website URLs before building cold outreach sequences.

📊

Marketing ops

Enrich CRM records, ABM target lists, and intent data platforms with accurate company domains.

🔬

Data analysts

Clean company datasets before lead scoring, deduplication, or revenue attribution modelling.

🏢

Developers

Build enrichment pipelines, CRM integrations, or internal tools that require company web presence data.

✅ Real-world example

A sales team at a SaaS company has a spreadsheet of 3,000 companies they want to prospect. The company names came from a trade show badge scan — no emails, no websites. Using a company URL research API in a Google Apps Script, they process all 3,000 names in under 10 minutes and have verified website domains for 94% of them, ready for the next step of finding contact emails.

3. The Free Clearbit Autocomplete API

This is the simplest, most accessible option for developers. No API key. No sign-up. No cost. Works in any browser, any server, any language.

⚠️ Important: What happened to the old Clearbit APIs?

Clearbit’s free Name to Domain API was sunset on April 30, 2025 after HubSpot acquired Clearbit. The free Logo API shut down on December 8, 2025. If you are reading outdated tutorials that reference company.clearbit.com/v2 — that endpoint no longer works for free accounts. The Autocomplete endpoint described below is still free and active as of June 2026.

The Autocomplete Endpoint

GET https://autocomplete.clearbit.com/v1/companies/suggest Free — No Key

Returns company name suggestions and their primary domain. No authentication. No rate limit published (use responsibly — add a 300ms delay between calls in loops).

ParameterTypeRequiredDescription
querystringRequiredThe company name or partial name to look up. URL-encode spaces as %20 or use your language’s built-in URL encoder.

Example request URL:

URL
https://autocomplete.clearbit.com/v1/companies/suggest?query=Salesforce
Example Response
[
  {
    "name": "Salesforce",
    "domain": "salesforce.com",
    "logo": "https://logo.clearbit.com/salesforce.com"
  },
  {
    "name": "Salesforce Commerce Cloud",
    "domain": "demandware.com",
    "logo": "https://logo.clearbit.com/demandware.com"
  }
]

The array is sorted by relevance — the first result ([0]) is almost always the correct match when the input name is reasonably specific. For ambiguous names (“Mercury”, “Dove”, “Atlas”), check the first two or three results and use a name similarity score to pick the best one.

💡 Pro tip: the logo URL

The logo field in the response points to Clearbit’s CDN. Note: The Clearbit Logo API shut down on December 8, 2025. Logo URLs may return 404 for some companies. Use your own logo fallback (the first letter of the company name styled as an avatar) for production apps.

4. Hunter.io Company Enrichment API

Hunter.io positions itself as the primary Clearbit replacement. It offers company enrichment (name or domain → full company data) through an API that requires a free account but offers 25 searches/month at no cost.

Hunter.io Company Enrichment Endpoint

GET https://api.hunter.io/v2/companies/find Free tier — API key required

Find company information by domain or company name. Returns industry, description, location, founded year, headcount, and social profiles. Costs 0.2 credits per successful call.

ParameterTypeRequiredDescription
domainstringOptional*Company website domain (e.g. salesforce.com). Use this OR name — not both.
companystringOptional*Company name to look up. Hunter resolves this to a domain internally.
api_keystringRequiredYour Hunter.io API key from hunter.io/api-keys. Free account gives 25 lookups/month.

*Either domain or company must be provided.

Example Response (abbreviated)
{
  "data": {
    "id": "salesforce.com",
    "name": "Salesforce",
    "domain": "salesforce.com",
    "description": "World's #1 CRM platform",
    "industry": "computer software",
    "country": "US",
    "city": "San Francisco",
    "founded_year": 1999,
    "employees": 73541
  }
}

Hunter.io Pricing (2026)

PlanPriceLookups/monthAPI access
Free$025 searches
Starter$34/mo (annual)2,000 credits
Growth$104/mo (annual)10,000 credits
Scale$209/mo (annual)25,000 credits

Source: Hunter.io pricing page (hunter.io/pricing). Annual billing. Company enrichment costs 0.2 credits per successful call. Verified June 2026.

5. JavaScript Code Example

This is the simplest working code to look up a company URL in JavaScript. It works in a browser, in Node.js, and in any modern JavaScript environment. It uses the Clearbit Autocomplete API — no API key, completely free.

Single company lookup

JavaScript — Browser & Node.js
// Company URL lookup using Clearbit Autocomplete API
// Free - no API key needed - works in browser and Node.js

async function findCompanyURL(companyName) {
  // Build the request URL with the company name
  const url = `https://autocomplete.clearbit.com/v1/companies/suggest?query=${encodeURIComponent(companyName)}`;

  try {
    const response = await fetch(url);
    const data = await response.json();

    // If no results found, return null
    if (!data || data.length === 0) {
      return { company: companyName, url: null, confidence: 'Not found' };
    }

    // The first result is the most likely match
    const topResult = data[0];

    return {
      company:    companyName,
      foundName:  topResult.name,
      url:        `https://${topResult.domain}`,
      domain:     topResult.domain,
      confidence: 'High'   // Higher for exact matches
    };

  } catch (error) {
    console.error('Lookup failed:', error);
    return { company: companyName, url: null, confidence: 'Error' };
  }
}

// Usage — single company
findCompanyURL('Stripe').then(result => {
  console.log(result);
  // Output: { company: 'Stripe', url: 'https://stripe.com', domain: 'stripe.com', ... }
});

Bulk lookup — process a full list

JavaScript — Bulk Lookup with Rate Limit
// Bulk company URL lookup — processes a list with a polite delay
// Add 300ms between requests to avoid rate limiting

const sleep = (ms) => new Promise(r => setTimeout(r, ms));

async function bulkFindCompanyURLs(companyNames) {
  const results = [];

  for (const name of companyNames) {
    const result = await findCompanyURL(name);
    results.push(result);
    await sleep(300); // Wait 300ms between each request
  }

  return results;
}

// Usage
const companies = ['Salesforce', 'HubSpot', 'Stripe', 'Notion', 'Figma'];

bulkFindCompanyURLs(companies).then(results => {
  // Print results as a table
  console.table(results);

  // Filter to only found results
  const found = results.filter(r => r.url);
  console.log(`Found ${found.length} out of ${companies.length} companies`);
});

💡 What is the 300ms delay for?

It is “being polite” to the API server. If you send 500 requests all at once (called “hammering” an API), the server may block you or return errors. Adding a small delay between each request is standard practice and prevents this. Think of it like not shouting all your questions at the librarian at once.

6. Python Code Example

Python is very popular for data pipelines and automation. This example uses the standard requests library. Install it with pip install requests if you haven’t already.

Python 3 — Single & Bulk Lookup
import requests
import time
import csv

def find_company_url(company_name: str) -> dict:
    """
    Look up a company's official website URL.
    Uses the free Clearbit Autocomplete API — no key needed.
    Returns a dict with: company, url, domain, found_name
    """
    endpoint = "https://autocomplete.clearbit.com/v1/companies/suggest"
    params = {"query": company_name}

    try:
        resp = requests.get(endpoint, params=params, timeout=10)
        resp.raise_for_status()
        data = resp.json()

        if not data:
            return {"company": company_name, "url": None, "confidence": "not_found"}

        top = data[0]   # First result is most relevant
        return {
            "company":    company_name,
            "found_name": top["name"],
            "url":        f"https://{top['domain']}",
            "domain":     top["domain"],
            "confidence": "high"
        }

    except Exception as e:
        print(f"Error looking up {company_name}: {e}")
        return {"company": company_name, "url": None, "confidence": "error"}


def bulk_lookup(company_list: list, delay=0.3) -> list:
    """Process a list of company names. delay = seconds between requests."""
    results = []
    for i, name in enumerate(company_list, 1):
        print(f"Looking up {i}/{len(company_list)}: {name}")
        result = find_company_url(name)
        results.append(result)
        time.sleep(delay)   # Polite delay between requests
    return results


def save_to_csv(results: list, filename="company_urls.csv"):
    """Save results to a CSV file."""
    with open(filename, "w", newline="", encoding="utf-8") as f:
        writer = csv.DictWriter(f, fieldnames=["company","found_name","url","domain","confidence"])
        writer.writeheader()
        writer.writerows(results)
    print(f"Saved {len(results)} results to {filename}")


# ── Main: run on a list of companies ──────────────────
if __name__ == "__main__":
    companies = [
        "Salesforce",
        "HubSpot",
        "Stripe",
        "Shopify",
        "Airbnb",
        "Notion",
    ]

    results = bulk_lookup(companies)
    save_to_csv(results)

    # Print summary
    found = sum(1 for r in results if r["url"])
    print(f"\nFound URLs for {found} of {len(companies)} companies.")

7. Google Sheets — No Code Method

Not a developer? No problem. This method lets you look up company URLs directly in Google Sheets using a custom function. No Python. No JavaScript. Just copy and paste.

Step-by-step setup

1

Open your Google Sheet

Put your company names in column A (one per row, starting at A2 with a header “Company Name” in A1).

2

Open the Script Editor

In the menu bar, click Extensions → Apps Script. A code editor opens in a new tab.

3

Paste this function

Delete all existing code in the editor and paste the code below. Then click the Save button (disk icon).

4

Use the formula in your sheet

In cell B2, type =GETCOMPANYURL(A2) and press Enter. Copy the formula down the column for all your companies.

Google Apps Script (paste into Extensions → Apps Script)
/**
 * Get the official website URL for a company name.
 * Uses the free Clearbit Autocomplete API.
 *
 * @param {string} companyName The name of the company to look up
 * @return {string} The official website URL, or "Not found" if unavailable
 * @customfunction
 */
function GETCOMPANYURL(companyName) {
  if (!companyName || companyName.toString().trim() === "") {
    return "";
  }

  try {
    var encoded = encodeURIComponent(companyName.toString().trim());
    var url = "https://autocomplete.clearbit.com/v1/companies/suggest?query=" + encoded;
    var response = UrlFetchApp.fetch(url);
    var data = JSON.parse(response.getContentText());

    if (data && data.length > 0) {
      return "https://" + data[0].domain;  // Return the full URL
    } else {
      return "Not found";
    }
  } catch (e) {
    return "Error: " + e.message;
  }
}

⚠️ Google Sheets tip

Google Apps Script caches external API calls. If you update a company name, the formula may show the old result. To force a refresh, add a helper column with a random number (=RAND()) and pass it as a second ignored argument to the function — this tricks Google into re-running the API call.

8. TargetCompanyURLResearch.com API

The TargetCompanyURLResearch.com API is available on the Agency plan and is designed for teams that need high-volume lookups, bulk processing, and enriched results beyond what the free Clearbit endpoint returns — including confidence scoring, careers page URLs, and industry classification.

✅ What the TCUR API returns that the Clearbit Autocomplete does not

  • Confidence score — High, Medium, or Low — so you know which results to verify manually before sending outreach
  • Industry label — e.g. “Financial Services”, “Technology / SaaS”, “Retail / E-Commerce”
  • Careers page URL — the direct link to the company’s jobs or careers page
  • GEO-specific regional URL — for global brands, the correct local domain (e.g. amazon.co.uk for UK)

Base URL

Base URL
https://api.targetcompanyurlresearch.com/v1

Authentication

All API requests require your API key, passed as a Bearer token in the Authorization header:

HTTP Header
Authorization: Bearer YOUR_API_KEY

Get your API key from your account dashboard after upgrading to the Agency plan at targetcompanyurlresearch.com/#pricing.

Endpoint 1 — Single Company Lookup

GET /lookup Pro & Agency

Look up the official website URL for a single company name. Returns URL, confidence score, industry, and careers page.

ParameterTypeRequiredDescription
namestringRequiredThe company name to look up. Supports brand names, legal names, and abbreviations.
countrystringOptionalISO country code (e.g. GB, DE, AU) to return the regional website for that country.
include_careersbooleanOptionalSet to true to include the company’s careers page URL in the response. Default: false.
Example Response
{
  "company": "Shopify",
  "found_name": "Shopify",
  "url": "https://shopify.com",
  "domain": "shopify.com",
  "confidence": "High",
  "confidence_score": 0.97,
  "industry": "Technology / SaaS",
  "careers_url": "https://www.shopify.com/careers",
  "regional_url": null,
  "credits_remaining": 4847
}

Endpoint 2 — Bulk Lookup

POST /lookup/bulk Agency Plan

Process up to 100 company names in a single API call. Returns results for all companies in one response. Uses 1 credit per company found.

Request Body (JSON)
{
  "companies": ["Salesforce", "HubSpot", "Stripe"],
  "include_careers": false,
  "country": "GB"
}

Complete JavaScript example using the TCUR API

JavaScript — TCUR Agency API
// TargetCompanyURLResearch.com API — Bulk Lookup
// Requires: Agency plan API key

const API_KEY  = 'your_api_key_here';  // Get from your account dashboard
const BASE_URL = 'https://api.targetcompanyurlresearch.com/v1';

async function bulkLookup(companies, options = {}) {
  const response = await fetch(`${BASE_URL}/lookup/bulk`, {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'Authorization': `Bearer ${API_KEY}`
    },
    body: JSON.stringify({
      companies:        companies,
      include_careers:  options.careers  || false,
      country:          options.country  || null
    })
  });

  if (!response.ok) {
    throw new Error(`API error: ${response.status} ${response.statusText}`);
  }

  return response.json();
}

// Usage example
const myCompanies = ['Salesforce', 'HubSpot', 'Stripe', 'Shopify', 'Airbnb'];

bulkLookup(myCompanies, { careers: true, country: 'GB' })
  .then(data => {
    console.log(`Found ${data.results.length} results:`);
    data.results.forEach(r => {
      console.log(`${r.company}${r.url} [${r.confidence}]`);
      if (r.careers_url) {
        console.log(`  Careers: ${r.careers_url}`);
      }
    });
  })
  .catch(console.error);

9. API Comparison Table

Here is every option laid out side-by-side so you can choose the right one for your needs at a glance.

API / Method Cost Key needed Bulk Confidence Careers URL GEO
Clearbit AutocompleteFree NoneManual loop
Hunter.io API (free)Free (25/mo) RequiredPaid onlyPartial
Hunter.io Starter$34/mo RequiredPartial
TCUR.com Tool (free)Free (10/session) None
TCUR.com API (Agency)$99/mo Required 100/call
Google Sheets scriptFree NoneSlow loop
Apollo.io APIFrom $49/mo Required

Which one should you choose?

  • Just testing or prototyping? → Use the free Clearbit Autocomplete API. No account, no card, works in 2 minutes.
  • Occasional use, under 25 lookups/month?Hunter.io free tier gives richer data including company description and location.
  • Non-developer who needs a quick list processed? → Use the free tool at targetcompanyurlresearch.com. 10 lookups free, no code.
  • Developer building a product or CRM integration?TCUR Agency API gives bulk endpoints, confidence scores, and careers URLs in one call.
  • Huge volume (10,000+ companies/month)? → Compare Hunter.io Growth ($104/mo) vs TCUR Agency ($99/mo) based on whether you need careers/GEO data.

10. Accuracy, Confidence Scores, and When to Trust Results

Company URL research APIs are not 100% accurate. Here is what actually determines accuracy — and what to do about it:

What affects accuracy?

  • Well-known companies (Fortune 500, major tech brands): 90–96% accurate. Salesforce, Apple, Nike, IKEA — these are unambiguous. Use the first result directly.
  • Mid-market, established companies: 75–90% accurate. Names that are specific to one company usually resolve correctly.
  • Ambiguous names: Under 70% accurate. “Mercury” could be Mercury Insurance, Mercury Systems, or Freddie Mercury’s estate. “Dove” could be Dove soap or Dove chocolate. Always use a confidence score and flag these for review.
  • Very small or local businesses: Under 50% accurate. Local plumbers, regional law firms, and new startups often don’t appear in business databases. Manual Google search is more reliable for these.

How to use confidence scores correctly

The TCUR API returns a confidence score from 0 to 1 (and a human-readable label of High, Medium, or Low). Here is the recommended threshold system:

Confidence scoreLabelWhat to do
0.85 – 1.0HighUse the URL directly. Add to CRM without manual review.
0.55 – 0.84MediumSpot-check before sending outreach. Visit the URL to confirm it is the right company.
0.0 – 0.54LowDo not use without manual verification. Google the company name directly.

💡 Simple rule for beginners

Always click the URL before adding it to your CRM or sending outreach. It takes 2 seconds and saves you from emailing your competitors or completely wrong companies. For bulk processing, set a rule: automatically trust High results, spot-check a random 10% of Medium results, and always verify Low results manually.

✏️

Use full legal names

“LVMH” works better than “Louis Vuitton company” for finding the parent company URL.

🔡

Avoid abbreviations

“IBM” works. But “MSFT” might return Microsoft or something unrelated depending on the database.

🌍

Use GEO for local variants

For Zara in Germany, use GEO search with country=DE to get the correct regional domain.

🔄

Cross-reference for accuracy

For critical lookups, run the same company through two different APIs and only use results where both agree.