Skip to content
LeadMCPDocs

Tools

What your agent can do with the MCP server.

The server URL is https://mcp.leadmcp.ai. Every description states its cost before the model acts.

The tools

guideFree

Explains the workflow, the filter keys and the cost of each tool.

count_matchesFree

Counts the contacts that match a filter.

Inputs

filterFilterrequired

The audience to count.

Show child attributes

countriesarray of Countryoptional

Contact countries to include. Send ISO-2 codes such as us, or English names such as Germany.

exclude_countriesarray of Countryoptional

Contact countries to exclude. Send ISO-2 codes such as us, or English names such as Germany.

has_linkedinbooleanoptional

True keeps only contacts that carry a LinkedIn URL.

has_work_emailbooleanoptional

True keeps only contacts that carry a work email.

has_phonebooleanoptional

True matches contacts with a mobile or direct phone. False matches contacts without either.

include_secondary_rolesbooleanoptional

By default, filters match a person's main role. Set include_secondary_roles to true to also match their other current roles; the contact's top-level fields still show the main role. Default false.

title_querystring or array of stringoptional

Words in the current title. The match is case-insensitive and uses whole words: 'CTO' matches 'Co-founder & CTO' but not 'Director'. The words also match across punctuation: 'VP Sales' also matches 'VP, Sales' and 'VP-Sales'. Send an array to match any one of several phrases, for example ["VP Sales", "Vice President of Sales"]. A phrase that is blank after trimming answers 400 request.invalid. A leading or trailing wildcard answers 422 filter.rejected. For a substring match, use where with the contains operator on title.

functionsarray of JobFunctionoptional

Job functions to include.

operationsgeneral_managementsales_and_bizdevinformation_technologyeducationhealthcare_and_social_servicesfinance_and_accountingmanufacturing_and_productionengineeringcustomer_servicegovernment_and_public_safetymarketing_and_advertisinghuman_resourcesarts_and_creativeconstruction_and_tradeslegalsupply_chain_and_logisticsprocurementwriting_and_editorialresearch_and_scienceother

exclude_functionsarray of JobFunctionoptional

Job functions to exclude.

operationsgeneral_managementsales_and_bizdevinformation_technologyeducationhealthcare_and_social_servicesfinance_and_accountingmanufacturing_and_productionengineeringcustomer_servicegovernment_and_public_safetymarketing_and_advertisinghuman_resourcesarts_and_creativeconstruction_and_tradeslegalsupply_chain_and_logisticsprocurementwriting_and_editorialresearch_and_scienceother

seniorityarray of Seniorityoptional

Seniority rungs to include.

c_levelvpdirectormanagersenior_icentryfounder_or_partnerunknown

exclude_seniorityarray of Seniorityoptional

Seniority rungs to exclude.

c_levelvpdirectormanagersenior_icentryfounder_or_partnerunknown

domainsarray of stringoptional

Current employer domains. A full URL reduces to a bare domain on input.

exclude_domainsarray of stringoptional

Current employer domains to exclude.

company_namesarray of stringoptional

Current employer names. Case-insensitive exact match after normalization. Lowercase, trim and collapse whitespace. Strip one trailing legal suffix with an optional comma, then a leading "the ". Legal suffixes: inc, inc., incorporated, llc, l.l.c., ltd, ltd., limited, corp, corp., corporation, co, co., gmbh, ag, sa, s.a., bv, b.v., plc, pty ltd, srl. An empty normalized name returns 400 request.invalid. Values are OR within this key and AND across keys.

exclude_company_namesarray of stringoptional

The NOT of company_names after the same normalization. Lowercase, trim and collapse whitespace. Strip one trailing legal suffix with an optional comma, then a leading "the ". Legal suffixes: inc, inc., incorporated, llc, l.l.c., ltd, ltd., limited, corp, corp., corporation, co, co., gmbh, ag, sa, s.a., bv, b.v., plc, pty ltd, srl. An empty normalized name returns 400 request.invalid. Values are OR within this key and AND across keys.

company_sizearray of CompanySizeoptional

Company employee bands to include.

1-1011-5051-200201-500501-1K1K-5K5K-10K10K+

company_revenuearray of CompanyRevenueoptional

Company revenue ranges to include. Only companies with a known revenue range match; most small companies have none, so this key leaves them out.

0-1M1M-10M10M-50M50M-100M100M-1B1B+

industriesarray of Industryoptional

Company industries to include, as slugs such as software_development. A label such as 'Software Development' or 'IT Services & IT Consulting' is folded to its slug. Read the values from GET /contacts/schema/industries/values.

exclude_industriesarray of Industryoptional

Company industries to exclude, as slugs such as software_development. A label such as 'Software Development' or 'IT Services & IT Consulting' is folded to its slug. Read the values from GET /contacts/schema/industries/values.

schoolsarray of stringoptional

School names. It matches any school on the record. The match is exact on the stored value, so send the name as the record holds it.

skillsarray of stringoptional

Skill names. It matches any skill on the record. The match is exact on the stored value, which is lowercase, and the input is lowercased. Read the values from GET /contacts/schema/skills/values.

employee_count_minintegeroptional

The smallest company employee count, inclusive.

employee_count_maxintegeroptional

The largest company employee count, inclusive.

founded_year_minintegeroptional

The earliest company founding year, inclusive.

founded_year_maxintegeroptional

The latest company founding year, inclusive.

company_hq_countriesarray of Countryoptional

Company headquarters countries to include. Send ISO-2 codes such as us, or English names such as Germany.

last_round_afterYearMonthoptional

The latest financing event is after this month, exclusive.

last_round_beforeYearMonthoptional

The latest financing event is before this month, exclusive.

last_round_typesarray of FundingRoundTypeoptional

Types of the latest financing event to include.

pre_seedseedseries_aseries_bseries_c_plusprivate_equitydebtother

total_funding_minintegeroptional

The smallest total funding in US dollars, inclusive. Missing funding is null and never matches.

total_funding_maxintegeroptional

The largest total funding in US dollars, inclusive.

company_idsarray of CompanyIdoptional

Company ids (com_) of the current employer to include. Take them from POST /companies/search or POST /companies/lookup. Values are OR within this key and AND across keys. Takes up to 1,000 ids.

whereWhereNodeoptional

The condition tree. It is opened per account when the named keys cannot express the audience. The signals column is filtered here, with in or not_in.

Show child attributes

WhereGroupWhereGroupoptional

A boolean group of child nodes.

Show child attributes

andarray of WhereNodeoptional

Every child must match.

orarray of WhereNodeoptional

At least one child must match.

notWhereNodeoptional

The child must not match.

WhereLeafWhereLeafoptional

One bound condition on one column.

Show child attributes

fieldstringrequired

A contact column name, as GET /contacts/schema prints it, or signals. The name match is case-insensitive.

openumrequired

The comparison to apply. The operator list is frozen.

eqneqinnot_ingtgteltltecontainsexists

valueanyoptional

The bound value: a string, a number, a boolean, or a list of at most 50 values for in and not_in. Text columns take eq, neq, in, not_in, contains, exists, gt, gte, lt and lte with text values. role_since takes eq, neq, gt, gte, lt, lte, in, not_in and exists with YYYY-MM-DD dates. The number columns (company_employee_count, company_founded_year, company_total_funding_usd) take eq, neq, gt, gte, lt, lte, in, not_in and exists, where exists means the value is known. has_work_email and has_phone take eq and neq with true or false. The list columns (company_industries, signals, skills, languages) take in, not_in, contains, exists, eq (the list holds the value) and neq. experience, education, certifications and social take contains and exists only. exists takes no value or true; false means the column is empty. A leaf other than exists needs a value. A refused operator, value type or shape answers 422 filter.rejected and names what the column takes.

exclude_idsarray of PersonIdoptional

Person ids to leave out of count, search and export. Unknown ids have no effect. Takes up to 1,000 ids.

find_contactsContact credits

Returns a page of contact rows for a filter.

Inputs

filterFilterrequired

The audience to read.

Show child attributes

countriesarray of Countryoptional

Contact countries to include. Send ISO-2 codes such as us, or English names such as Germany.

exclude_countriesarray of Countryoptional

Contact countries to exclude. Send ISO-2 codes such as us, or English names such as Germany.

has_linkedinbooleanoptional

True keeps only contacts that carry a LinkedIn URL.

has_work_emailbooleanoptional

True keeps only contacts that carry a work email.

has_phonebooleanoptional

True matches contacts with a mobile or direct phone. False matches contacts without either.

include_secondary_rolesbooleanoptional

By default, filters match a person's main role. Set include_secondary_roles to true to also match their other current roles; the contact's top-level fields still show the main role. Default false.

title_querystring or array of stringoptional

Words in the current title. The match is case-insensitive and uses whole words: 'CTO' matches 'Co-founder & CTO' but not 'Director'. The words also match across punctuation: 'VP Sales' also matches 'VP, Sales' and 'VP-Sales'. Send an array to match any one of several phrases, for example ["VP Sales", "Vice President of Sales"]. A phrase that is blank after trimming answers 400 request.invalid. A leading or trailing wildcard answers 422 filter.rejected. For a substring match, use where with the contains operator on title.

functionsarray of JobFunctionoptional

Job functions to include.

operationsgeneral_managementsales_and_bizdevinformation_technologyeducationhealthcare_and_social_servicesfinance_and_accountingmanufacturing_and_productionengineeringcustomer_servicegovernment_and_public_safetymarketing_and_advertisinghuman_resourcesarts_and_creativeconstruction_and_tradeslegalsupply_chain_and_logisticsprocurementwriting_and_editorialresearch_and_scienceother

exclude_functionsarray of JobFunctionoptional

Job functions to exclude.

operationsgeneral_managementsales_and_bizdevinformation_technologyeducationhealthcare_and_social_servicesfinance_and_accountingmanufacturing_and_productionengineeringcustomer_servicegovernment_and_public_safetymarketing_and_advertisinghuman_resourcesarts_and_creativeconstruction_and_tradeslegalsupply_chain_and_logisticsprocurementwriting_and_editorialresearch_and_scienceother

seniorityarray of Seniorityoptional

Seniority rungs to include.

c_levelvpdirectormanagersenior_icentryfounder_or_partnerunknown

exclude_seniorityarray of Seniorityoptional

Seniority rungs to exclude.

c_levelvpdirectormanagersenior_icentryfounder_or_partnerunknown

domainsarray of stringoptional

Current employer domains. A full URL reduces to a bare domain on input.

exclude_domainsarray of stringoptional

Current employer domains to exclude.

company_namesarray of stringoptional

Current employer names. Case-insensitive exact match after normalization. Lowercase, trim and collapse whitespace. Strip one trailing legal suffix with an optional comma, then a leading "the ". Legal suffixes: inc, inc., incorporated, llc, l.l.c., ltd, ltd., limited, corp, corp., corporation, co, co., gmbh, ag, sa, s.a., bv, b.v., plc, pty ltd, srl. An empty normalized name returns 400 request.invalid. Values are OR within this key and AND across keys.

exclude_company_namesarray of stringoptional

The NOT of company_names after the same normalization. Lowercase, trim and collapse whitespace. Strip one trailing legal suffix with an optional comma, then a leading "the ". Legal suffixes: inc, inc., incorporated, llc, l.l.c., ltd, ltd., limited, corp, corp., corporation, co, co., gmbh, ag, sa, s.a., bv, b.v., plc, pty ltd, srl. An empty normalized name returns 400 request.invalid. Values are OR within this key and AND across keys.

company_sizearray of CompanySizeoptional

Company employee bands to include.

1-1011-5051-200201-500501-1K1K-5K5K-10K10K+

company_revenuearray of CompanyRevenueoptional

Company revenue ranges to include. Only companies with a known revenue range match; most small companies have none, so this key leaves them out.

0-1M1M-10M10M-50M50M-100M100M-1B1B+

industriesarray of Industryoptional

Company industries to include, as slugs such as software_development. A label such as 'Software Development' or 'IT Services & IT Consulting' is folded to its slug. Read the values from GET /contacts/schema/industries/values.

exclude_industriesarray of Industryoptional

Company industries to exclude, as slugs such as software_development. A label such as 'Software Development' or 'IT Services & IT Consulting' is folded to its slug. Read the values from GET /contacts/schema/industries/values.

schoolsarray of stringoptional

School names. It matches any school on the record. The match is exact on the stored value, so send the name as the record holds it.

skillsarray of stringoptional

Skill names. It matches any skill on the record. The match is exact on the stored value, which is lowercase, and the input is lowercased. Read the values from GET /contacts/schema/skills/values.

employee_count_minintegeroptional

The smallest company employee count, inclusive.

employee_count_maxintegeroptional

The largest company employee count, inclusive.

founded_year_minintegeroptional

The earliest company founding year, inclusive.

founded_year_maxintegeroptional

The latest company founding year, inclusive.

company_hq_countriesarray of Countryoptional

Company headquarters countries to include. Send ISO-2 codes such as us, or English names such as Germany.

last_round_afterYearMonthoptional

The latest financing event is after this month, exclusive.

last_round_beforeYearMonthoptional

The latest financing event is before this month, exclusive.

last_round_typesarray of FundingRoundTypeoptional

Types of the latest financing event to include.

pre_seedseedseries_aseries_bseries_c_plusprivate_equitydebtother

total_funding_minintegeroptional

The smallest total funding in US dollars, inclusive. Missing funding is null and never matches.

total_funding_maxintegeroptional

The largest total funding in US dollars, inclusive.

company_idsarray of CompanyIdoptional

Company ids (com_) of the current employer to include. Take them from POST /companies/search or POST /companies/lookup. Values are OR within this key and AND across keys. Takes up to 1,000 ids.

whereWhereNodeoptional

The condition tree. It is opened per account when the named keys cannot express the audience. The signals column is filtered here, with in or not_in.

Show child attributes

WhereGroupWhereGroupoptional

A boolean group of child nodes.

Show child attributes

andarray of WhereNodeoptional

Every child must match.

orarray of WhereNodeoptional

At least one child must match.

notWhereNodeoptional

The child must not match.

WhereLeafWhereLeafoptional

One bound condition on one column.

Show child attributes

fieldstringrequired

A contact column name, as GET /contacts/schema prints it, or signals. The name match is case-insensitive.

openumrequired

The comparison to apply. The operator list is frozen.

eqneqinnot_ingtgteltltecontainsexists

valueanyoptional

The bound value: a string, a number, a boolean, or a list of at most 50 values for in and not_in. Text columns take eq, neq, in, not_in, contains, exists, gt, gte, lt and lte with text values. role_since takes eq, neq, gt, gte, lt, lte, in, not_in and exists with YYYY-MM-DD dates. The number columns (company_employee_count, company_founded_year, company_total_funding_usd) take eq, neq, gt, gte, lt, lte, in, not_in and exists, where exists means the value is known. has_work_email and has_phone take eq and neq with true or false. The list columns (company_industries, signals, skills, languages) take in, not_in, contains, exists, eq (the list holds the value) and neq. experience, education, certifications and social take contains and exists only. exists takes no value or true; false means the column is empty. A leaf other than exists needs a value. A refused operator, value type or shape answers 422 filter.rejected and names what the column takes.

columnsarray of stringoptional

The columns to return. Every row also carries id, always first. The default is the compact set: name, title, company, company_domain, work_email, country, seniority, last_updated, mobile_phone, direct_phone, has_phone. Send ["*"] for every column.

limitintegeroptional

The page size. The default is 50 and the maximum is 500, on REST and through MCP alike. Default 50.

cursorCursoroptional

The cursor from the previous page. Omit it on the first page. Read pages until page.next_cursor is null.

max_rows_per_companyintegeroptional

The most contacts to return from one company. On search the cap holds inside one page, so next_cursor is null when it is set; use start_export for the full capped list. On export the file can hold fewer rows than rows_to_export, and only exported rows are charged.

exclude_idsarray of PersonIdoptional

Person ids to leave out of count, search and export. Unknown ids have no effect. Takes up to 1,000 ids.

get_valuesFree

Lists the allowed values of one closed-list column, with an optional search string.

Inputs

columnstringrequired

The column name, as GET /contacts/schema prints it, for example seniority.

qstringoptional

An optional search string that filters the values by slug or by label.

limitintegeroptional

The maximum number of values to return. The default is 100. Default 100.

start_exportContact credits

Starts a file job for a filter and answers with the job size (rows_available and rows_to_export).

Inputs

filterFilterrequired

The audience to write to the file.

Show child attributes

countriesarray of Countryoptional

Contact countries to include. Send ISO-2 codes such as us, or English names such as Germany.

exclude_countriesarray of Countryoptional

Contact countries to exclude. Send ISO-2 codes such as us, or English names such as Germany.

has_linkedinbooleanoptional

True keeps only contacts that carry a LinkedIn URL.

has_work_emailbooleanoptional

True keeps only contacts that carry a work email.

has_phonebooleanoptional

True matches contacts with a mobile or direct phone. False matches contacts without either.

include_secondary_rolesbooleanoptional

By default, filters match a person's main role. Set include_secondary_roles to true to also match their other current roles; the contact's top-level fields still show the main role. Default false.

title_querystring or array of stringoptional

Words in the current title. The match is case-insensitive and uses whole words: 'CTO' matches 'Co-founder & CTO' but not 'Director'. The words also match across punctuation: 'VP Sales' also matches 'VP, Sales' and 'VP-Sales'. Send an array to match any one of several phrases, for example ["VP Sales", "Vice President of Sales"]. A phrase that is blank after trimming answers 400 request.invalid. A leading or trailing wildcard answers 422 filter.rejected. For a substring match, use where with the contains operator on title.

functionsarray of JobFunctionoptional

Job functions to include.

operationsgeneral_managementsales_and_bizdevinformation_technologyeducationhealthcare_and_social_servicesfinance_and_accountingmanufacturing_and_productionengineeringcustomer_servicegovernment_and_public_safetymarketing_and_advertisinghuman_resourcesarts_and_creativeconstruction_and_tradeslegalsupply_chain_and_logisticsprocurementwriting_and_editorialresearch_and_scienceother

exclude_functionsarray of JobFunctionoptional

Job functions to exclude.

operationsgeneral_managementsales_and_bizdevinformation_technologyeducationhealthcare_and_social_servicesfinance_and_accountingmanufacturing_and_productionengineeringcustomer_servicegovernment_and_public_safetymarketing_and_advertisinghuman_resourcesarts_and_creativeconstruction_and_tradeslegalsupply_chain_and_logisticsprocurementwriting_and_editorialresearch_and_scienceother

seniorityarray of Seniorityoptional

Seniority rungs to include.

c_levelvpdirectormanagersenior_icentryfounder_or_partnerunknown

exclude_seniorityarray of Seniorityoptional

Seniority rungs to exclude.

c_levelvpdirectormanagersenior_icentryfounder_or_partnerunknown

domainsarray of stringoptional

Current employer domains. A full URL reduces to a bare domain on input.

exclude_domainsarray of stringoptional

Current employer domains to exclude.

company_namesarray of stringoptional

Current employer names. Case-insensitive exact match after normalization. Lowercase, trim and collapse whitespace. Strip one trailing legal suffix with an optional comma, then a leading "the ". Legal suffixes: inc, inc., incorporated, llc, l.l.c., ltd, ltd., limited, corp, corp., corporation, co, co., gmbh, ag, sa, s.a., bv, b.v., plc, pty ltd, srl. An empty normalized name returns 400 request.invalid. Values are OR within this key and AND across keys.

exclude_company_namesarray of stringoptional

The NOT of company_names after the same normalization. Lowercase, trim and collapse whitespace. Strip one trailing legal suffix with an optional comma, then a leading "the ". Legal suffixes: inc, inc., incorporated, llc, l.l.c., ltd, ltd., limited, corp, corp., corporation, co, co., gmbh, ag, sa, s.a., bv, b.v., plc, pty ltd, srl. An empty normalized name returns 400 request.invalid. Values are OR within this key and AND across keys.

company_sizearray of CompanySizeoptional

Company employee bands to include.

1-1011-5051-200201-500501-1K1K-5K5K-10K10K+

company_revenuearray of CompanyRevenueoptional

Company revenue ranges to include. Only companies with a known revenue range match; most small companies have none, so this key leaves them out.

0-1M1M-10M10M-50M50M-100M100M-1B1B+

industriesarray of Industryoptional

Company industries to include, as slugs such as software_development. A label such as 'Software Development' or 'IT Services & IT Consulting' is folded to its slug. Read the values from GET /contacts/schema/industries/values.

exclude_industriesarray of Industryoptional

Company industries to exclude, as slugs such as software_development. A label such as 'Software Development' or 'IT Services & IT Consulting' is folded to its slug. Read the values from GET /contacts/schema/industries/values.

schoolsarray of stringoptional

School names. It matches any school on the record. The match is exact on the stored value, so send the name as the record holds it.

skillsarray of stringoptional

Skill names. It matches any skill on the record. The match is exact on the stored value, which is lowercase, and the input is lowercased. Read the values from GET /contacts/schema/skills/values.

employee_count_minintegeroptional

The smallest company employee count, inclusive.

employee_count_maxintegeroptional

The largest company employee count, inclusive.

founded_year_minintegeroptional

The earliest company founding year, inclusive.

founded_year_maxintegeroptional

The latest company founding year, inclusive.

company_hq_countriesarray of Countryoptional

Company headquarters countries to include. Send ISO-2 codes such as us, or English names such as Germany.

last_round_afterYearMonthoptional

The latest financing event is after this month, exclusive.

last_round_beforeYearMonthoptional

The latest financing event is before this month, exclusive.

last_round_typesarray of FundingRoundTypeoptional

Types of the latest financing event to include.

pre_seedseedseries_aseries_bseries_c_plusprivate_equitydebtother

total_funding_minintegeroptional

The smallest total funding in US dollars, inclusive. Missing funding is null and never matches.

total_funding_maxintegeroptional

The largest total funding in US dollars, inclusive.

company_idsarray of CompanyIdoptional

Company ids (com_) of the current employer to include. Take them from POST /companies/search or POST /companies/lookup. Values are OR within this key and AND across keys. Takes up to 1,000 ids.

whereWhereNodeoptional

The condition tree. It is opened per account when the named keys cannot express the audience. The signals column is filtered here, with in or not_in.

Show child attributes

WhereGroupWhereGroupoptional

A boolean group of child nodes.

Show child attributes

andarray of WhereNodeoptional

Every child must match.

orarray of WhereNodeoptional

At least one child must match.

notWhereNodeoptional

The child must not match.

WhereLeafWhereLeafoptional

One bound condition on one column.

Show child attributes

fieldstringrequired

A contact column name, as GET /contacts/schema prints it, or signals. The name match is case-insensitive.

openumrequired

The comparison to apply. The operator list is frozen.

eqneqinnot_ingtgteltltecontainsexists

valueanyoptional

The bound value: a string, a number, a boolean, or a list of at most 50 values for in and not_in. Text columns take eq, neq, in, not_in, contains, exists, gt, gte, lt and lte with text values. role_since takes eq, neq, gt, gte, lt, lte, in, not_in and exists with YYYY-MM-DD dates. The number columns (company_employee_count, company_founded_year, company_total_funding_usd) take eq, neq, gt, gte, lt, lte, in, not_in and exists, where exists means the value is known. has_work_email and has_phone take eq and neq with true or false. The list columns (company_industries, signals, skills, languages) take in, not_in, contains, exists, eq (the list holds the value) and neq. experience, education, certifications and social take contains and exists only. exists takes no value or true; false means the column is empty. A leaf other than exists needs a value. A refused operator, value type or shape answers 422 filter.rejected and names what the column takes.

columnsarray of stringoptional

The columns to write, in this order. Send ["*"] for every column.

max_rows_per_companyintegeroptional

The most contacts to return from one company. On search the cap holds inside one page, so next_cursor is null when it is set; use start_export for the full capped list. On export the file can hold fewer rows than rows_to_export, and only exported rows are charged.

max_rowsintegeroptional

The ceiling for this job. One job writes at most 50,000 rows, so a bigger audience needs several jobs. Default 50000.

formatenumoptional

The file format. Both are gzipped. The list is frozen. Default csv.

csvjsonl

exclude_idsarray of PersonIdoptional

Person ids to leave out of count, search and export. Unknown ids have no effect. Takes up to 1,000 ids.

get_exportFree

Polls one export job and returns its status. Poll every 3 to 5 seconds until status is completed. Then it returns a download URL on our own domain that needs no key and is valid 7 days from completion. The file is gzip-compressed (.csv.gz or .jsonl.gz): download it and gunzip it, or give the link to the person when you have no shell. An expired or gone file answers 410 with the code `export.expired`.

Inputs

idExportIdrequired

The export id, a ULID behind the prefix exp_.

enrich_contactContact credits

Matches up to 100 work emails, phone numbers or LinkedIn profile URLs to stored rows.

Inputs

inputsarray of stringrequired

Up to 100 work emails, phone numbers or LinkedIn URLs. One input matches at most one contact.

company_domainstringoptional

The domain of the account you sourced these people from, for example acme.com. When set, a match counts only if the contact's current employer is on this domain. A person we hold at another employer, or with no employer domain, answers matched: false with off_domain: true, costs nothing, and is listed on an off_domain warning. Without it, every match is returned and charged, whatever the employer. A value with no dot, such as a company name, returns 400 request.invalid. To find the domain of a named company, use POST /companies/search with company_names.

modeenumoptional

How to answer. stored reads our own store and is the only working value in v1. refresh is reserved and returns 400 enrich.mode_unavailable until v2. Default stored.

storedrefresh

columnsarray of stringoptional

The columns to return on a hit. Every hit also carries id, always first. The default is the enrichment set: name, title, company, company_domain, work_email, country, seniority, last_updated, mobile_phone, direct_phone, has_phone, function, location, email_status, company_size, company_industries, company_linkedin, linkedin. A signal row that matches a stored contact carries the same set. Send ["*"] for every column.

get_credit_balanceFree

Both meters, as separate objects. contact_credits: the plan caps, what is left this month and today, and the reset time. premium_credits: this month's allowance, used, held, available and the reset time. Premium credits pay for engagers and verified emails.

list_signalsFree

Every row has the same columns.

Inputs

kindstringoptional

alert_idstringoptional

job_idstringoptional

source_typeenumoptional

Reads one kind of source: alert or collect.

source_idstringoptional

One alert id or collect job id. Send it only with source_type; alone it answers 400 request.invalid with field source_id.

sincestringoptional

limitintegeroptional

Default 50.

cursorstringoptional

collect_signalsPremium credits

Collects one profile, post or company page once. Company followers accept max_followers (minimum 100) and finish asynchronously. One premium credit per lead.

Inputs

kindenumrequired

What to collect. linkedin_profile: the people who react to or comment on the 10 latest posts of one profile. linkedin_post: the people who react to or comment on one post. linkedin_company: the followers of one company page.

linkedin_profilelinkedin_postlinkedin_company

targetstringrequired

The LinkedIn URL of the target. A profile URL, such as https://www.linkedin.com/in/<slug>. A post URL of the form https://www.linkedin.com/posts/<slug> or https://www.linkedin.com/feed/update/urn:li:activity:<id>. A company URL, such as https://www.linkedin.com/company/<slug>.

max_followersintegeroptional

For linkedin_company only: the most followers to collect, at least 100 and at most one million. Without it, a company job asks for at most the premium credits available, with a minimum of 100, and adds a max_followers_missing warning.

waitbooleanoptional

True keeps the request open until the rows are ready, for at most about 45 seconds, when the estimate is 500 engagers or fewer. A company page never waits. Otherwise the job runs in the background; read its rows with list_signals.

dry_runbooleanoptional

True returns only the estimate: units, premium_credits, available and sufficient. It holds no credits, starts no job and costs nothing.

get_collectFree

Returns the status of one collect job: queued, running, completed or failed. It also returns the leads and contacts so far, the premium credits held and charged, and the list_signals arguments that read the rows. After collect_signals, call it every 30 to 60 seconds until status is completed or failed. Then read the rows with list_signals. Free.

Inputs

idstringrequired

The collect job id: job.id in the collect_signals answer.

estimate_signalsFree

Returns units (expected engagers or company followers), premium_credits (premium credits reserved), available and sufficient. Includes upgrade_url only when insufficient. Company pages accept max_followers.

Inputs

kindenumrequired

What to collect. linkedin_profile: the people who react to or comment on the 10 latest posts of one profile. linkedin_post: the people who react to or comment on one post. linkedin_company: the followers of one company page.

linkedin_profilelinkedin_postlinkedin_company

targetstringrequired

The LinkedIn URL of the target. A profile URL, such as https://www.linkedin.com/in/<slug>. A post URL of the form https://www.linkedin.com/posts/<slug> or https://www.linkedin.com/feed/update/urn:li:activity:<id>. A company URL, such as https://www.linkedin.com/company/<slug>.

Response 200
{
  "ok": true,
  "request_id": "req_01JBQ2W8K9V6M3T0X5Y7Z4A1BC",
  "release": "b_2026_09_15",
  "data": {
    "units": 10,
    "premium_credits": 20,
    "available": 100,
    "sufficient": true
  },
  "quota": {
    "plan": "free",
    "contact_credits_used": 50,
    "month_remaining": 950,
    "today_remaining": 950,
    "binding": "month",
    "resets_at": "9999-12-31T23:59:59.000Z"
  },
  "warnings": []
}

create_alertPremium credits

An alert is a source of signals. Read them with `list_signals`. Watches one profile or post daily. Paid plans only, at most 100 active alerts. Answers 403 plan.required for free plans or 403 alerts.limit_reached when the cap is reached. One premium credit per new lead, held before each run.

Inputs

kindenumrequired

What to watch. linkedin_profile: the people who react to or comment on the 10 latest posts of one profile. linkedin_post: the people who react to or comment on one post.

linkedin_profilelinkedin_post

targetstringrequired

The LinkedIn URL of the target. A profile URL, such as https://www.linkedin.com/in/<slug>. A post URL of the form https://www.linkedin.com/posts/<slug> or https://www.linkedin.com/feed/update/urn:li:activity:<id>.

cadenceenumoptional

daily runs the alert once a day. manual never runs on its own: it runs only when you call poll_alert. The default is daily.

dailymanual

billing_choiceenumoptional

new_only: the first run sets a baseline and charges nothing for the backlog; later runs collect and charge only new engagers. backfill_and_new: the first run also collects and charges the existing engagers. The default is backfill_and_new.

backfill_and_newnew_only

dry_runbooleanoptional

True returns only the estimate: units, premium_credits, available and sufficient. It holds no credits, starts no job and costs nothing.

list_alertsFree

An alert is a source of signals. Read them with `list_signals`. Lists the account's alerts with signal and lead counts and the last job state. Free.

get_alertFree

An alert is a source of signals. Read them with `list_signals`. Returns one alert and its last job. Free.

Inputs

idstringrequired

The alert id.

update_alertFree

An alert is a source of signals. Read them with `list_signals`. Pauses, resumes or changes the cadence of one alert. Free.

Inputs

idstringrequired

The alert id.

activebooleanoptional

False pauses the alert, and true resumes it. A paused alert does not run on its daily cadence.

cadenceenumoptional

daily runs the alert once a day. manual never runs on its own: it runs only when you call poll_alert. The default is daily.

dailymanual

stop_alertFree

An alert is a source of signals. Read them with `list_signals`. Removes one alert. Its signals stay. Free.

Inputs

idstringrequired

The alert id.

poll_alertPremium credits

An alert is a source of signals. Read them with `list_signals`. Runs one alert now. One premium credit per new lead. Answers 409 while a run is in progress.

Inputs

idstringrequired

The alert id.

send_feedbackFree

Report a problem to the LeadMCP team: a missing feature or filter, a bug, wrong data in a row, or an unclear error. Send the request_id from the response of the call that went wrong. Call it once for each problem, not after every call. It is free.

Inputs

request_idstringrequired

The request_id from the response of the call that went wrong. It must be from the last 7 days.

categoryenumrequired

The kind of problem: a missing feature or filter, a bug, wrong data in a row, or an unclear error.

missing_featurebugwrong_dataunclear_error

toolstringrequired

The tool or route the agent called or wanted. Free text: a tool that does not exist is accepted.

row_idstringoptional

The id of the row with wrong data, when there is one.

messagestringrequired

What went wrong, or what the agent needed.

count_companiesFree

Counts the companies that match a company filter.

Inputs

filterCompanyFilterrequired

The companies to count.

Show child attributes

company_idsarray of CompanyIdoptional

Company ids (com_) to include. Takes up to 1,000 ids.

domainsarray of stringoptional

Company domains. A company matches when any of its domains is in the list. A full URL reduces to a bare domain on input.

exclude_domainsarray of stringoptional

Company domains to exclude. A company is left out when any of its domains is in the list.

company_namesarray of stringoptional

Company names. Case-insensitive exact match after normalization. Lowercase, trim and collapse whitespace. Strip one trailing legal suffix with an optional comma, then a leading "the ". Legal suffixes: inc, inc., incorporated, llc, l.l.c., ltd, ltd., limited, corp, corp., corporation, co, co., gmbh, ag, sa, s.a., bv, b.v., plc, pty ltd, srl. An empty normalized name returns 400 request.invalid. Values are OR within this key and AND across keys.

exclude_company_namesarray of stringoptional

The NOT of company_names after the same normalization. Lowercase, trim and collapse whitespace. Strip one trailing legal suffix with an optional comma, then a leading "the ". Legal suffixes: inc, inc., incorporated, llc, l.l.c., ltd, ltd., limited, corp, corp., corporation, co, co., gmbh, ag, sa, s.a., bv, b.v., plc, pty ltd, srl. An empty normalized name returns 400 request.invalid. Values are OR within this key and AND across keys.

company_sizearray of CompanySizeoptional

Company employee bands to include.

1-1011-5051-200201-500501-1K1K-5K5K-10K10K+

company_revenuearray of CompanyRevenueoptional

Company revenue ranges to include. Only companies with a known revenue range match; most small companies have none, so this key leaves them out.

0-1M1M-10M10M-50M50M-100M100M-1B1B+

industriesarray of Industryoptional

Company industries to include, as slugs such as software_development. A label such as 'Software Development' or 'IT Services & IT Consulting' is folded to its slug. Read the values from GET /companies/schema/industries/values.

exclude_industriesarray of Industryoptional

Company industries to exclude, as slugs such as software_development. A label such as 'Software Development' or 'IT Services & IT Consulting' is folded to its slug. Read the values from GET /companies/schema/industries/values.

employee_count_minintegeroptional

The smallest company employee count, inclusive.

employee_count_maxintegeroptional

The largest company employee count, inclusive.

founded_year_minintegeroptional

The earliest company founding year, inclusive.

founded_year_maxintegeroptional

The latest company founding year, inclusive.

company_hq_countriesarray of Countryoptional

Company headquarters countries to include. Send ISO-2 codes such as us, or English names such as Germany.

last_round_afterYearMonthoptional

The latest financing event is after this month, exclusive.

last_round_beforeYearMonthoptional

The latest financing event is before this month, exclusive.

last_round_typesarray of FundingRoundTypeoptional

Types of the latest financing event to include.

pre_seedseedseries_aseries_bseries_c_plusprivate_equitydebtother

total_funding_minintegeroptional

The smallest total funding in US dollars, inclusive. Missing funding is null and never matches.

total_funding_maxintegeroptional

The largest total funding in US dollars, inclusive.

find_companiesContact credits

Returns a page of company records for a company filter.

Inputs

filterCompanyFilterrequired

The companies to read.

Show child attributes

company_idsarray of CompanyIdoptional

Company ids (com_) to include. Takes up to 1,000 ids.

domainsarray of stringoptional

Company domains. A company matches when any of its domains is in the list. A full URL reduces to a bare domain on input.

exclude_domainsarray of stringoptional

Company domains to exclude. A company is left out when any of its domains is in the list.

company_namesarray of stringoptional

Company names. Case-insensitive exact match after normalization. Lowercase, trim and collapse whitespace. Strip one trailing legal suffix with an optional comma, then a leading "the ". Legal suffixes: inc, inc., incorporated, llc, l.l.c., ltd, ltd., limited, corp, corp., corporation, co, co., gmbh, ag, sa, s.a., bv, b.v., plc, pty ltd, srl. An empty normalized name returns 400 request.invalid. Values are OR within this key and AND across keys.

exclude_company_namesarray of stringoptional

The NOT of company_names after the same normalization. Lowercase, trim and collapse whitespace. Strip one trailing legal suffix with an optional comma, then a leading "the ". Legal suffixes: inc, inc., incorporated, llc, l.l.c., ltd, ltd., limited, corp, corp., corporation, co, co., gmbh, ag, sa, s.a., bv, b.v., plc, pty ltd, srl. An empty normalized name returns 400 request.invalid. Values are OR within this key and AND across keys.

company_sizearray of CompanySizeoptional

Company employee bands to include.

1-1011-5051-200201-500501-1K1K-5K5K-10K10K+

company_revenuearray of CompanyRevenueoptional

Company revenue ranges to include. Only companies with a known revenue range match; most small companies have none, so this key leaves them out.

0-1M1M-10M10M-50M50M-100M100M-1B1B+

industriesarray of Industryoptional

Company industries to include, as slugs such as software_development. A label such as 'Software Development' or 'IT Services & IT Consulting' is folded to its slug. Read the values from GET /companies/schema/industries/values.

exclude_industriesarray of Industryoptional

Company industries to exclude, as slugs such as software_development. A label such as 'Software Development' or 'IT Services & IT Consulting' is folded to its slug. Read the values from GET /companies/schema/industries/values.

employee_count_minintegeroptional

The smallest company employee count, inclusive.

employee_count_maxintegeroptional

The largest company employee count, inclusive.

founded_year_minintegeroptional

The earliest company founding year, inclusive.

founded_year_maxintegeroptional

The latest company founding year, inclusive.

company_hq_countriesarray of Countryoptional

Company headquarters countries to include. Send ISO-2 codes such as us, or English names such as Germany.

last_round_afterYearMonthoptional

The latest financing event is after this month, exclusive.

last_round_beforeYearMonthoptional

The latest financing event is before this month, exclusive.

last_round_typesarray of FundingRoundTypeoptional

Types of the latest financing event to include.

pre_seedseedseries_aseries_bseries_c_plusprivate_equitydebtother

total_funding_minintegeroptional

The smallest total funding in US dollars, inclusive. Missing funding is null and never matches.

total_funding_maxintegeroptional

The largest total funding in US dollars, inclusive.

limitintegeroptional

The page size. The default is 50 and the maximum is 500, the same as contact search. Default 50.

cursorCursoroptional

The cursor from the previous page. Omit it on the first page. Read pages until page.next_cursor is null.

get_companiesContact credits

Matches up to 100 company ids, domains or company LinkedIn URLs to company records.

Inputs

inputsarray of stringrequired

Up to 100 company ids, domains or company LinkedIn URLs. One input matches at most one company.

create_api_keyFree

Creates the account's one API key for scripts and tools without OAuth, and returns the key once. An account has one active key: while one exists the answer is 409 key.limit_reached, so call revoke_api_key first. Works only in an OAuth session. Free.

list_api_keysFree

Lists the account's active API key with its id, name, created_at and last_used_at. Never returns the key itself. Works only in an OAuth session. Free.

revoke_api_keyFree

Revokes one API key by id at once.

Each worked example gives a buyer brief and the calls an agent makes for it. Read them on the Worked examples page.