Skip to main content
MoltSets has two search endpoints: one for companies and one for contacts. Both accept the same core filters and return ranked results. Use them when you want to find records matching a profile rather than enrich a specific person or company you already know. If you already have a LinkedIn URL, email, or IP address and want to enrich it, see I Have X, I Want Y.
Search results are capped at 25 per call. Use limit and offset together to paginate through larger result sets. See Pagination below for examples.The following filters are not available on either search endpoint: location, founding year, and free-text industry or size. Industry and employee range use fixed enumerations — see the API reference for accepted values.

Available Filters

Both search_company_profiles and search_business_profiles accept the same filters.
FilterWhat it doesNotes
queryFree-text search across company nameDo not use for domain, industry, or size — use the dedicated filters for those
domainExact company domain matchOmit the protocol — use acme.com not https://acme.com. Prefer this over query when you have a known domain
industryFilter by industryFixed enumeration — see Search Company Profiles for accepted values
employee_rangeFilter by headcount bandFixed enumeration — see Search Company Profiles for accepted values
revenue_rangeFilter by annual revenue bandFixed enumeration — see Search Company Profiles for accepted values
limitNumber of results to returnMax 25 per call
offsetNumber of results to skipUse with limit to paginate
Combine query with filters for best precision. Results are ranked by relevance — higher _score means a stronger match.

Finding Companies

Use search_company_profiles when your output is a list of companies. Returns name, domain, industry, employee count, revenue range, LinkedIn URL, and follower count.
I want…Type in Claude…Filters used
A specific company by domainFind the company record for acme.comdomain
Companies matching a nameFind company profiles matching Acmequery
Companies in a specific industryFind information technology companiesindustry
Companies by industry and headcountFind information technology companies with 51–200 employeesindustry, employee_range
Companies by industry and revenueFind computer software companies with revenue above $50Mindustry, revenue_range
Companies matching an ICPFind privately held computer software companies with 201–500 employees and revenue between 10Mand10M and 50Mindustry, employee_range, revenue_range

Finding Contacts

Use search_business_profiles when your output is a list of people. Returns name, title, seniority, LinkedIn URL, business email, company name, and firmographic data.
I want…Type in Claude…Filters used
All contacts at a specific companyFind contacts at acme.comdomain
Contacts at a named companyFind contacts at Acmequery
Contacts in a specific industryFind contacts at information technology companiesindustry
Contacts at companies of a specific sizeFind contacts at companies with 51–200 employeesemployee_range
Contacts matching an ICPFind contacts at computer software companies with 201–500 employeesindustry, employee_range
Contacts at high-revenue companiesFind contacts at companies with revenue above $50Mrevenue_range
Contacts matching a full ICP profileFind contacts at information technology companies with 51–200 employees and revenue between 10Mand10M and 50Mindustry, employee_range, revenue_range

Pagination

Each call returns a maximum of 25 results. To pull more, increment offset by 25 on each subsequent call. The total number of matching records is returned in the total field on every response — use this to determine how many pages exist before you start paginating.

Using with MCP

Once MoltSets is connected to Claude, describe what you want and Claude will call the right search endpoint with the right filters. Exact company lookup
Look up the company record for acme.com
ICP company list
Find computer software companies with 51–200 employees and revenue between $10M and $50M
ICP contact list
Find contacts at information technology companies with 201–500 employees
Paginated pull
Find contacts at information technology companies with 201–500 employees. Get the first 25, then keep fetching the next page until you have 100 results.
Paginated offset/skip
Find contacts at information technology companies with 201–500 employees. Offset by 50 then keep fetching the next page until you have 100 additional results.

Using with the API

All search requests follow the same shape. Pass your filters in the request body and increment offset to paginate. Find companies matching an ICP
const response = await fetch("https://api.moltsets.com/api/v1/tools/search_company_profiles", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    industry: "Computer Software",
    employee_range: "51-200",
    revenue_range: "$10M - $20M",
    limit: 25,
    offset: 0
  })
});

const data = await response.json();
// data.results.results — array of matching companies
// data.results.total — total matching records across all pages
Find contacts at a specific company
const response = await fetch("https://api.moltsets.com/api/v1/tools/search_business_profiles", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    domain: "acme.com",
    limit: 25,
    offset: 0
  })
});

const data = await response.json();
// data.results.results — array of matching contacts
// data.results.total — total matching records across all pages
Paginating through results
async function fetchAllResults(filters, endpoint) {
  const results = [];
  let offset = 0;
  const limit = 25;

  while (true) {
    const response = await fetch(`https://api.moltsets.com/api/v1/tools/${endpoint}`, {
      method: "POST",
      headers: {
        "Authorization": "Bearer YOUR_API_KEY",
        "Content-Type": "application/json"
      },
      body: JSON.stringify({ ...filters, limit, offset })
    });

    const data = await response.json();
    const page = data.results.results;

    results.push(...page);

    if (results.length >= data.results.total || page.length < limit) break;

    offset += limit;
  }

  return results;
}

// Example: fetch all contacts at acme.com
const contacts = await fetchAllResults({ domain: "acme.com" }, "search_business_profiles");