Skip to main content
POST
/
v3
/
companies
/
search
curl --request POST \ --url https://api.leadmagic.io/v3/companies/search \ --header 'Content-Type: application/json' \ --header 'X-API-Key: <api-key>' \ --data ' { "company_domain": "leadmagic.io" } '
{
  "message": "<string>",
  "credits_consumed": 123,
  "companies": [
    {}
  ],
  "found": true,
  "company": {},
  "companyName": "<string>",
  "companyDomain": "<string>",
  "websiteUrl": "<string>",
  "linkedinUrl": "<string>",
  "count": 123,
  "returned_count": 123,
  "limit_applied": 123,
  "offset": 123,
  "interpreted_search": {},
  "metadata": {}
}

Documentation Index

Fetch the complete documentation index at: https://leadmagic.io/docs/llms.txt

Use this file to discover all available pages before exploring further.

Company Search

POST /v3/companies/search is the single V3 company lookup endpoint for building and paging through account lists from structured criteria. Use Company Search for both one-company lookup and filtered company lists. Send a single identifier such as company_domain, domain, website, company_name, profile_url, or linkedin_url for one company, or use company_filters for account lists.
Existing clients that send one-company search bodies such as company_domain, domain, website, company_name, profile_url, or linkedin_url can keep using the same request shape. When no broad filters or explicit limit are supplied, the API treats the request as a one-row lookup and returns the richer company record plus legacy-friendly aliases such as companyName, companyDomain, and websiteUrl.
You can pass multiple company identities at once using company_domains, company_websites, B2B company profile inputs, and company_names. Those identity filters are treated as alternatives, then the rest of your filters narrow the matched set.

Endpoint Details

MetricValue
Search1 credit per returned company
No resultsFREE
Page caplimit max is 50; use offset for pagination
Credits finalize by returned company count, not by requested limit.

Quick Examples

Use one of the patterns below. They hit the same endpoint but return different response shapes.
Send a single company identifier at the request root. Do not include company_filters, query, or limit unless you want list mode.
curl -X POST 'https://api.leadmagic.io/v3/companies/search' \
  -H 'X-API-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "company_domain": "leadmagic.io"
  }'
Accepted root fields: company_domain (preferred), domain, website, company_name, profile_url, linkedin_url (and aliases listed below).Response extras: found, company, companyName, companyDomain, websiteUrl, linkedinUrl plus companies[] with one row.
Adding limit, company_filters, or query switches the request to list mode. For a single-company lookup, send only identity fields such as company_domain or linkedin_url.

Request Body

company_domain
string
One-company lookup: company domain (preferred). Aliases: domain, website, company_website.
company_name
string
One-company lookup: company name. Aliases: name.
profile_url
string
One-company lookup: B2B company profile URL. Aliases: linkedin_url, company_linkedin_url, company_url, url.
company_filters
object
List search: primary filter object. You may also send the same fields inside filters or at the request root; company_filters is preferred for new integrations.
query
string
Optional natural-language/company keyword query. Use structured fields when you know the exact filters.
limit
integer
default:"10"
Number of companies to return. Maximum is 50 for this public API route.
offset
integer
default:"0"
Offset for pagination. Increase by limit to fetch the next page.

Company Identity Filters

FieldTypeMatching behavior
company_domainsstring[]Exact normalized domain match, e.g. leadmagic.io
company_websitesstring[]Normalized to domain-equivalent exact matches
linkedin_urlsstring[]Exact normalized B2B company profile matches
company_namesstring[]Exact case-insensitive company name match
company_domainstringSingle-value alias for company_domains
company_website / websitestringSingle-value aliases for company_websites
linkedin_url / company_linkedin_urlstringSingle-value aliases for B2B company profile inputs
company_name / namestringSingle-value aliases for company name search

Firmographic Filters

FieldTypeDescription
country_codes / country_codestring[] / stringHQ country codes such as US, GB, CA
industries / industrystring[] / stringB2B industry labels
employee_ranges / employee_rangestring[] / stringRanges such as 51 to 200, 201 to 500, 10001+
min_employeesintegerMinimum employee count/range overlap
max_employeesintegerMaximum employee count/range overlap
revenue_ranges / revenue_rangestring[] / stringRevenue labels such as $10M to <$50M
min_revenueintegerMinimum revenue
max_revenueintegerMaximum revenue
founded_afterintegerMinimum founded year
founded_beforeintegerMaximum founded year
company_entity_typesstring[]Legal/company entity type labels
domain_tldsstring[]Domain TLDs such as io, com, ai

Location Filters

FieldType
hq_countriesstring[]
hq_regionsstring[]
hq_citiesstring[]
hq_statesstring[]
hq_continentsstring[]
hq_streetsstring[]
hq_postcodesstring[]

Funding And Social Filters

FieldTypeDescription
has_fundingbooleanRequire or exclude companies with known funding
min_total_funding / max_total_fundingintegerFunding amount bounds
last_funding_typesstring[]Funding round/type labels
last_funding_after / last_funding_beforestringDate bounds for last funding
min_funding_investor_count / max_funding_investor_countintegerInvestor-count bounds
lead_investorsstring[]Fuzzy lead investor text search
min_profile_followers / max_profile_followersintegerB2B company profile follower bounds
min_profile_growth_rate / max_profile_growth_ratenumberProfile follower growth-rate bounds
linkedin_claimedbooleanClaimed B2B company profile flag

Contact Coverage Filters

FieldType
min_total_contacts / max_total_contactsinteger
min_contacts_with_email / max_contacts_with_emailinteger
min_contacts_with_phone / max_contacts_with_phoneinteger
min_valid_email_count / max_valid_email_countinteger

Technology Filters

FieldTypeDescription
has_tech_stackbooleanRequire a detected tech stack
tech_stack / technologiesstring[]Generic technology search across indexed tech/specialty columns
crm_techstring[]CRM technologies
marketing_automation_techstring[]Marketing automation
sales_automation_techstring[]Sales automation
analytics_techstring[]Analytics tools
cloud_provider_techstring[]Cloud platforms such as AWS, GCP, Azure
development_techstring[]Development frameworks/tools
ecommerce_techstring[]Ecommerce platforms
erp_techstring[]ERP platforms
email_hosting_techstring[]Email hosting
email_security_techstring[]Email security
abm_techstring[]ABM tools
cms_techstring[]CMS tools
conversation_intelligence_techstring[]Conversation intelligence tools
app_security_techstring[]Application security tools
cloud_security_techstring[]Cloud security tools
company_martechstring[]Marketing technology

Text And Classification Filters

FieldType
keywordstring
specialtiesstring[]
company_headlinesstring[]
company_aboutstring[]
company_phonesstring[]
sic_codesstring[]
naics_codesstring[]
sic_descriptionsstring[]
naics_descriptionsstring[]

Website Filters

FieldType
website_activeboolean
website_for_saleboolean
min_total_app_reviews / max_total_app_reviewsinteger

Sort

FieldTypeValues
sort_bystringcompany_domain, linkedin_followers, total_funding, linkedin_employee_count, founded_year, total_contacts
sort_orderstringasc, desc

Response

companies
object[]
Company records matching your criteria.
company
object
Present for one-company lookup requests. Contains the first returned company record.
found
boolean
Present for one-company lookup requests. true when a company row was returned.
companyName
string
Present for one-company lookup requests. Alias for company.company_name.
companyDomain
string
Present for one-company lookup requests. Alias for company.company_domain.
websiteUrl
string
Present for one-company lookup requests. Alias for company.company_website.
linkedinUrl
string
Present for one-company lookup requests. Alias for company.linkedin_url.
count
integer
Number of companies returned.
returned_count
integer
Alias for count.
limit_applied
integer
Applied page size.
offset
integer
Applied offset.
credits_consumed
number
Finalized credits charged (1 per returned company; 0 when no companies match).
Normalized filters used by the backend.

Example Responses

{
  "message": "Companies found",
  "credits_consumed": 1,
  "found": true,
  "companyName": "LeadMagic",
  "companyDomain": "leadmagic.io",
  "websiteUrl": "https://leadmagic.io",
  "company": {
    "company_domain": "leadmagic.io",
    "company_name": "LeadMagic"
  },
  "companies": [
    {
      "company_domain": "leadmagic.io",
      "company_name": "LeadMagic"
    }
  ],
  "count": 1,
  "returned_count": 1,
  "limit_applied": 1,
  "offset": 0
}
Returned company rows can include: company_domain, company_name, company_website, company_industry_linkedin, employee_range, employee_min, employee_max, linkedin_employee_count, revenue_range, revenue_min, revenue_max, hq_country, hq_country_code, hq_city, hq_state, hq_street, hq_postcode, hq_region, hq_continent, founded_year, category, specialties, total_funding, funding_investor_count, last_funding_type, last_funding_date, last_funding_amount, lead_investors, linkedin_followers, linkedin_growth_rate, linkedin_url, linkedin_claimed, company_headline, company_about, company_logo_url, company_phone, company_entity_type, has_tech_stack, total_contacts, contacts_with_email, contacts_with_phone, valid_email_count, website_active, website_for_sale, sic_code, naics_code, sic_description, naics_description, domain_tld, total_app_reviews, and all technology columns listed above.

Company Lookalike

Find similar accounts from a seed company and return the same full company row shape.

Technographics

Get detailed technology stack information for one company.

People Search

Search contacts across one company or a filtered company set.

Authorizations

X-API-Key
string
header
required

Your LeadMagic API key. Header name is case-insensitive (X-API-Key, X-API-KEY, x-api-key all work).

Body

application/json
company_domain
string

Direct one-company lookup input. Returns one rich company row plus legacy-friendly aliases when no broad filters or explicit limit are supplied.

Example:

"leadmagic.io"

domain
string

Alias for company_domain.

website
string

Company website URL or domain.

company_name
string

Company name lookup input.

profile_url
string

Company profile URL.

linkedin_url
string

Company profile URL.

company_filters
object

Full company filter object.

query
string
limit
integer
default:10
Required range: 1 <= x <= 50
offset
integer
default:0
Required range: x >= 0

Response

Company search results

message
string
credits_consumed
number
companies
object[]
found
boolean

Present for one-company lookup requests.

company
object

Present for one-company lookup requests. Contains the first returned company row.

companyName
string | null

Present for one-company lookup requests. Alias for company.company_name.

companyDomain
string | null

Present for one-company lookup requests. Alias for company.company_domain.

websiteUrl
string | null

Present for one-company lookup requests. Alias for company.company_website.

linkedinUrl
string | null

Present for one-company lookup requests. Alias for company.linkedin_url.

count
integer
returned_count
integer
limit_applied
integer
offset
integer
metadata
object