MCP App Store
by KeenEthics

Overview

Leadfeeder shows you which companies are visiting your website and how well they fit your ideal customer. Connect Leadfeeder to Claude and just ask: find the right-fit companies showing interest this week, see what they viewed, enrich them with the right contacts, build and tag lists, and check your usage — all in plain language. Start from the demand your website already creates, not a cold database. You sign in with your own Leadfeeder account and stay in control of what the assistant can do. Leadfeeder provides business contact data from its B2B database, built from publicly available sources. The legal basis for processing this personal data is Leadfeeder's legitimate interests (Art. 6(1)(f) GDPR) in providing and marketing our services to our users and clients. Individuals can request removal, object to processing, or opt out at https://privacycockpit.leadfeeder.com/ or by contacting privacy@leadfeeder.com. More information available on our Privacy Center: https://www.leadfeeder.com/privacy/privacy-center/

Tools

add_company_to_lists

ChatGPT
Add a single company to one or more lists. Best when you have one company and want it placed on several lists at once (company → many lists). WHEN NOT TO USE: If you are adding multiple companies to the same list, do NOT call this tool in a loop — use Create Batch Add to List Job (create_batch_add_to_list_job) instead, which adds up to 100 companies to one list in a single request. Rule of thumb: 2+ companies going into one list → use the batch job; one company going into one or many lists → use this tool. The list IDs passed here come from the Retrieve Lists and Get List Details endpoints, and must be company lists (e.g. company_123). Credit Note: Adding a company to lists does not consume credits.

add_contact_to_lists

ChatGPT
Allows the addition of this contact to one or more lists. Since lists are a separate entity, the IDs that you must pass in this endpoint come from the Retrieve Lists and Get List Details endpoints. Credit Note: Adding a contact to lists does not consume credits. :::info Requires the contacts:write OAuth2 scope. :::

assign_tags_to_company

ChatGPT
Allows the assignment of one or more tags to a given company. Since tags are a separate entity, the IDs that you must pass in this endpoint come from the Retrieve Tags and Get Tag Details endpoints. Credit Note: Assigning tags to a company does not consume credits. :::info Requires the companies:write OAuth2 scope. :::

create_batch_add_tags_job

ChatGPT
Schedule an asynchronous job that adds the tags in data.attributes.tags to a set of companies. Every tag is added to every selected company. The companies are supplied either as an explicit items array (up to 100 items per request), or as an advanced_search selection that is resolved into companies (up to 100,000) when the job runs. To remove tags, use POST /v1/tags/batch-remove-tags-jobs — adding and removing are separate jobs. Returns 202 Accepted with a job handle. Poll GET /v1/tags/batch-add-tags-jobs/{job_id} to observe progress and the outcome summary. Credit Note: Adding tags does not consume credits. :::info Requires the companies:write OAuth2 scope. :::

create_batch_add_to_list_job

ChatGPT
PREFERRED way to add multiple companies or contacts to a single list (many members → one list). Use this instead of calling add_company_to_lists / add_contact_to_lists repeatedly: one job adds up to 100 members in a single request. Rule of thumb: whenever 2+ members are going into the same list, use this job rather than looping the per-entity tool. Schedules an asynchronous job. The target list is identified by data.attributes.list_id; the list's list_type determines whether company or contact references are accepted (every item's type must match). Up to 100 items per request. To remove members, use the separate batch-remove job (create_batch_remove_from_list_job) — adding and removing are distinct jobs. Returns 202 Accepted with a job handle. Poll Get Batch Add to List Job (get_batch_add_to_list_job) to observe progress and the per-item outcome (some items may fail while others succeed). For adding one company to several lists at once, use add_company_to_lists instead. Credit Note: Adding members to a list does not consume credits.

create_batch_remove_from_list_job

ChatGPT
PREFERRED way to remove multiple companies or contacts from a single list (many members → one list). Use this instead of calling remove_company_from_lists / remove_contact_from_lists repeatedly: one job removes up to 100 members in a single request. Rule of thumb: whenever 2+ members are leaving the same list, use this job rather than looping the per-entity tool. Schedules an asynchronous job. The target list is identified by data.attributes.list_id; the list's list_type determines whether company or contact references are accepted (every item's type must match). Up to 100 items per request. To add members, use the separate batch-add job (create_batch_add_to_list_job) — adding and removing are distinct jobs. Returns 202 Accepted with a job handle. Poll Get Batch Remove from List Job (get_batch_remove_from_list_job) to observe progress and the per-item outcome (some items may fail while others succeed). For removing one company from several lists at once, use remove_company_from_lists instead. Credit Note: Removing members from a list does not consume credits.

create_buyer_persona

ChatGPT
Create a buyer persona — a named, saved set of contact-level filter criteria — for the given account. Call get_buyer_personas first and reuse an existing persona that already expresses what the user wants rather than creating a near-duplicate. Confirm the name and the filters with the user before creating. The body lives under data.attributes. filters groups criteria by category: department, seniority, job_title and location. At least one category must be present and non-empty — omit a category rather than sending it as an empty array. Every entry needs a search_value (the value matched on) and may carry a display_value (its human-readable label, defaulting to search_value) and negated: true to exclude rather than include. department and seniority take one of a fixed set of codes, and an invalid one is rejected with a 422 naming the accepted values — note seniority has only three (top_management, middle_management, employees), so map job levels onto those rather than inventing a code. job_title is free text matched against the contact's title. location depends on that entry's type, which defaults to country_code (an ISO 3166-1 alpha-2 code like "DE").

create_company_enrichment_job

ChatGPT
CRITICAL: CREDIT-CONSUMING TOOL Using this tool MAY consume Leadfeeder credits. You MUST follow this protocol: 1. PAUSE: Do not execute this tool automatically. 2. INFORM: Tell the user this action may consume credits. It is not possible to know upfront how many credits will be consumed (if any). The actual consumption will be determined during execution. 3. CONFIRM: Ask the user for an explicit Yes/No confirmation to proceed. 4. EXECUTE: Only call this tool after receiving clear, affirmative consent. Trigger an asynchronous job to enrich companies with AI-generated custom field values. The custom field must exist and be of an AI type (ai_score, ai_text, ai_number, ai_boolean). Create custom fields via the Custom Fields API first. The job runs in the background; poll the status endpoint to check progress. A maximum of 50,000 companies are enriched per job, whether targeted via company_ids or list_id; companies beyond this limit are not processed. Split larger selections across multiple jobs. Credit Note: Credits are consumed as companies are enriched. :::info Requires the companies:read OAuth2 scope. :::

create_custom_field

ChatGPT
Create a new custom field in the account. :::info Requires the custom_fields:write OAuth2 scope. :::

create_find_contact_data_job

ChatGPT
CRITICAL: CREDIT-CONSUMING TOOL Using this tool MAY consume Leadfeeder credits. You MUST follow this protocol: 1. PAUSE: Do not execute this tool automatically. 2. INFORM: Tell the user this action may consume credits. It is not possible to know upfront how many credits will be consumed (if any). The actual consumption will be determined during execution. 3. CONFIRM: Ask the user for an explicit Yes/No confirmation to proceed. 4. EXECUTE: Only call this tool after receiving clear, affirmative consent. Trigger an asynchronous job to enrich the given contacts with email and phone data. Accepts either explicit contact_ids or a list_id to target an entire list. The job runs in the background; poll the status endpoint to check progress. Credit Note: Credits are consumed as contacts are enriched. :::info Requires the contacts:read OAuth2 scope. :::

create_icp

ChatGPT
Create an Ideal Customer Profile (ICP) — a named, saved set of company-level filter criteria — for the given account. Call get_icps first and reuse an existing ICP that already expresses what the user wants rather than creating a near-duplicate. Confirm the name and the filters with the user before creating. The body lives under data.attributes. filters groups criteria by category: industries, employee_count and location. At least one category must be present and non-empty — omit a category rather than sending it as an empty array. Every entry needs a search_value (the value matched on) and may carry a display_value (its human-readable label, defaulting to search_value) and negated: true to exclude rather than include. search_value is a code, not free text, and an invalid one is rejected with a 422 naming the accepted values. For industries it is an industry code such as "1594.6.4" (Software Development) — the same code a company's industries.industry[].code returns, and one of those returned by the Get Industries endpoint (GET /v1/industries). Take it from there or from an existing ICP via get_icps; do not guess. For employee_count it is a bucket such as "11-50", with "10001" meaning "10000+". For location it depends on that entry's type, which defaults to country_code (an ISO 3166-1 alpha-2 code like "DE").

create_list

ChatGPT
Create a new list in the account. :::info Requires the lists:write OAuth2 scope. :::

create_tag

ChatGPT
Create a new tag with the provided attributes. This endpoint allows clients to define a new tag that can be assigned to companies. The response returns the full tag object, including its generated identifier and timestamps. Credit Note: Creating tags doe not consume credits. :::info Requires the tags:write OAuth2 scope. :::

create_web_visits_custom_feed

ChatGPT
Create a new custom feed (a saved, filtered view of web-visiting companies) for the given account. The body lives under data.attributes; name (max 60 chars) is required. advanced_filters is NOT a free-form tree. It has a FIXED shape and any deviation returns 422 invalid_filters. Build it exactly like this: - The root is always { "type": "group", "operator": "and" } (never add negated to the root). - The root items array has EXACTLY TWO entries, in order: [0] the INCLUDE bucket { "type": "group", "operator": "or" } and [1] the EXCLUDE bucket { "type": "group", "operator": "or", "negated": true }. The exclude bucket is MANDATORY even when you exclude nothing — send it with "items": []. (Most 422s are caused by omitting this second bucket or forgetting its "negated": true.) - Inside a bucket, each items entry is an AND row { "type": "group", "operator": "and" }. - Inside an AND row, each items entry is an OR group { "type": "group", "operator": "or" }. - Inside an OR group, each items entry is a leaf { "type": "filter", "field", "operator", "value", "display_value" }. So the nesting is always and → [or(include), or(exclude, negated)] → and → or → filter. Put values for the SAME field in one OR group; AND across different fields by using separate OR groups in the same AND row. Minimal valid body — companies from Germany (country_code = DE) with an empty exclude bucket. Copy this shape and swap in your own conditions: ``json { "data": { "type": "custom_feed", "attributes": { "name": "DE companies", "advanced_filters": { "type": "group", "operator": "and", "items": [ { "type": "group", "operator": "or", "items": [ { "type": "group", "operator": "and", "items": [ { "type": "group", "operator": "or", "items": [ { "type": "filter", "field": "country_code", "operator": "is", "value": "DE", "display_value": "Germany" } ] } ] } ] }, { "type": "group", "operator": "or", "negated": true, "items": [] } ] } } } } ` Field/operator/value rules are field-specific: numeric fields like employee_count use at_least / less_than with an integer value; string fields like country_code or region use is / is_not; URL/text fields like page_url use contains / begins_with. Use ISO codes for country_code (e.g. "DE") and put the readable name in display_value (e.g. "Germany"). Not every operator is valid for every field — an unsupported pairing also returns 422`. For the full list of fields and the operators/value formats each accepts, see https://docs.leadfeeder.com/api/public/custom-feed-filter-reference-363484m0

create_web_visits_goal

ChatGPT
Create a goal — a named page-view condition that marks the page views signalling buying intent, such as visits to a pricing or demo page — for the given account. Call get_web_visits_goals first and reuse a goal that already covers what the user wants rather than creating a near-duplicate. Confirm the name and the condition with the user before creating: goals are shared by everyone in the account. The body lives under data.attributes: name and criterion are required, enabled defaults to true. criterion has a field, an operator and a value. For a page, prefer page_url with contains and a distinctive part of the path, e.g. "/pricing"; page matches the page title instead. form_submit matches the URL of the page a form was submitted on, or any form with is_present. Operators are field-specific — contains works on page_url, page, file_download_name and video_title; is_present / is_empty work on form_submit, file_download_name, video_title and video_url and take no value. The tool schema lists the operators each field accepts, and a pairing it does not list fails as invalid arguments. A pattern with nothing but "/" or "*" returns a 422 saying what is accepted. Tell the user a new goal is not retroactive: it only marks page views tracked from now on.

delete_buyer_persona

ChatGPT
Delete a buyer persona by its ID. Confirm with the user before calling this — it removes something other people in the account may be using, and it cannot be undone.

delete_custom_field

ChatGPT
Delete a custom field from the account. Once removed, the custom field will no longer be accessible. Credit Note: Deleting custom fields does not consume credits. :::info Requires the custom_fields:write OAuth2 scope. :::

delete_icp

ChatGPT
Delete an Ideal Customer Profile (ICP) by its ID. This also deletes the custom feed that surfaced the companies matching it. Confirm with the user before calling this — it removes something other people in the account may be using, and it cannot be undone.

delete_list

ChatGPT
Delete a list from the account. Once removed, the list will no longer be accessible. Credit Note: Deleting list does not consume credits. :::info Requires the lists:write OAuth2 scope. :::

delete_tag

ChatGPT
Delete a specific tag identified by its ID Removes the tag from the account and unassigns it from all associated companies. Once deleted, the tag cannot be recovered. Credit Note: Deleting tags does not consume credits. :::info Requires the tags:write OAuth2 scope. :::

delete_web_visits_custom_feed

ChatGPT
Delete a custom feed by its ID. :::info Requires the web_visits:write OAuth2 scope. :::

delete_web_visits_goal

ChatGPT
CONFIRMATION REQUIRED — the server enforces approval for this tool, so do NOT ask the user before calling it. Call it with the parameters you need: it will NOT execute. The server replies with a confirmation_required response naming the exact action, plus a confirm_token in data. Show that action to the user and, only if they approve, call again with identical parameters plus the token. Delete a goal by its ID. This also deletes the goal's custom feed and removes the goal from the page views it marked. Confirm with the user before calling this — it removes something other people in the account may be using, and it cannot be undone. The deletion completes in the background, so the goal may still be listed for a short time afterwards. Do not call this again or report a failure because of that.

enrich_ip

ChatGPT
Enriches an input IP (IPv4/IPv6) with matching company information (if any). Subscription required: This tool requires an active IP Enrich subscription. If the account does not have this subscription, every call returns 403 access_denied. Do not retry — contact Leadfeeder support to activate the subscription. Monthly call limit: The account has a monthly call limit set by its subscription tier. The limit is checked before the lookup executes; once reached, calls return 403 api_usage_limit_exceeded for the rest of the month. Only successful calls count toward the limit — failed ones (invalid IP, no company found) do not. The limit resets at the start of each calendar month. No credits consumed: This tool does not use Leadfeeder credits. It uses a separate quota called matches, defined by the account's IP Enrich subscription tier. If a company was resolved from the IP (i.e. company_type is "company" in the response), meta.num_results is 1 and the call counts against the monthly limit. If the IP belongs to a network or ISP instead ("shared_network" in the response), meta.num_results is 0 and the call does not count.

estimate_company_enrichment_job

ChatGPT
Estimate the credit cost for enriching companies with AI-generated custom field values. Target the estimate with a specific list_id, flat company_ids, or a pre-computed company_count. Credit Note: This endpoint does not consume credits. :::info Requires the companies:read OAuth2 scope. :::

estimate_find_contact_data_job

ChatGPT
Estimate the credit cost for enriching contacts with email and phone data. Accepts either explicit contact_ids or a list_id to target an entire list. Returns the number of eligible contacts and the estimated total credits that would be consumed. Credit Note: This endpoint does not consume credits. :::info Requires the contacts:read OAuth2 scope. :::

get_account_info

ChatGPT
Lists every Leadfeeder account available to this API key. Use this tool whenever you need to list, get, show, or choose accounts. get_account_info IS the list-accounts tool: there is NO get_accounts, list_accounts, or accounts tool, so never invent or call another name — always call get_account_info. Call with no account_id to list all accounts; each result includes the account name and id, but no credit details. Call with a specific account_id to retrieve that one account's credit details. Every account also carries the company it belongs to under relationships.account_company, as an id only. Pass include=account_company to load that company's name as well — do this whenever you need to name or group accounts by their company, since the id alone is not meaningful to the user.

get_batch_add_tags_job

ChatGPT
Retrieve the status of a batch add-tags job created via POST /v1/tags/batch-add-tags-jobs. While status is running, summary is omitted. Once status becomes completed, summary carries the outcome counts (including failed_count). On failed, errors describes the failure. Credit Note: This endpoint does not consume credits. :::info Requires the companies:read OAuth2 scope. :::

get_batch_add_to_list_job

ChatGPT
Retrieve the status of a batch add-to-list job created via POST /v1/lists/batch-add-to-list-jobs. While status is running, results and summary are omitted. Once status becomes completed, results carries the per-item outcome and summary carries the per-outcome counts (including failed_count) together with list_size_before and list_size_after. A job created from an advanced_search selection reports summary counts only — no per-item results. On failed, errors describes the failure. Credit Note: This endpoint does not consume credits. :::info Requires the lists:read OAuth2 scope. :::

get_batch_remove_from_list_job

ChatGPT
Retrieve the status of a batch remove-from-list job created via POST /v1/lists/batch-remove-from-list-jobs. While status is running, results and summary are omitted. Once status becomes completed, results carries the per-item outcome and summary carries the per-outcome counts (including failed_count) together with list_size_after. A job created from an advanced_search selection reports summary counts only — no per-item results. On failed, errors describes the failure. Credit Note: This endpoint does not consume credits. :::info Requires the lists:read OAuth2 scope. :::

get_batch_remove_tags_job

ChatGPT
Retrieve the status of a batch remove-tags job created via POST /v1/tags/batch-remove-tags-jobs. While status is running, summary is omitted. Once status becomes completed, summary carries the outcome counts (including failed_count). On failed, errors describes the failure. Credit Note: This endpoint does not consume credits. :::info Requires the companies:read OAuth2 scope. :::

get_buyer_persona

ChatGPT
Get the details of a specific buyer persona by ID, including its name, creation timestamp, and the full set of filter criteria that define it. Credit Note: Retrieving a buyer persona definition does not consume credits. :::info Requires the buyer_personas:read OAuth2 scope. :::

get_buyer_personas

ChatGPT
Retrieve all buyer personas defined in the account. Each buyer persona is a saved set of contact-level filter criteria (department, job title, location, seniority) used to identify target contacts. Credit Note: Retrieving buyer persona definitions does not consume credits. :::info Requires the buyer_personas:read OAuth2 scope. :::

get_campaign

ChatGPT
Fetch detailed information about a specific campaign using its campaign ID. Use the include parameter to attach related campaign data, campaign settings, list, or custom feed information to the result. :::info Requires the campaigns:read OAuth2 scope. :::

get_campaign_stats

ChatGPT
Retrieve statistics for a specific campaign over a defined time period. Use frequency, start_period, and end_period to control how the campaign performance data is grouped and returned. :::info Requires the campaigns:read OAuth2 scope. ::: Pagination: use page[num] to page through results, starting at 1. Increment by 1 for each subsequent page. Stop when page[num] exceeds meta.pagination.page_count. page[size] controls how many items are returned per page (default: 20, max: 100).

get_campaigns

ChatGPT
Retrieve the list of all campaigns available in the account. Use pagination to control the number of campaigns returned, and include related campaign data, campaign settings, list, or custom feed information when needed. :::info Requires the campaigns:read OAuth2 scope. ::: Pagination: use page[num] to page through results, starting at 1. Increment by 1 for each subsequent page. Stop when page[num] exceeds meta.pagination.page_count. page[size] controls how many items are returned per page (default: 20, max: 100).

get_companies_by_ids

ChatGPT
CRITICAL: CREDIT-CONSUMING TOOL Using this tool MAY consume Leadfeeder credits. You MUST follow this protocol: 1. PAUSE: Do not execute this tool automatically. 2. INFORM: Tell the user this action may consume credits. It is not possible to know upfront how many credits will be consumed (if any). The actual consumption will be determined during execution. 3. CONFIRM: Ask the user for an explicit Yes/No confirmation to proceed. 4. EXECUTE: Only call this tool after receiving clear, affirmative consent. Fetch one or more companies by their Leadfeeder IDs in a single call. Use this instead of calling get_company multiple times when you have more than one ID. Pass the IDs comma-separated in the ids parameter, e.g. "159001425,129011" (up to 100 IDs).

get_company

ChatGPT
CRITICAL: CREDIT-CONSUMING TOOL Using this tool MAY consume Leadfeeder credits. You MUST follow this protocol: 1. PAUSE: Do not execute this tool automatically. 2. INFORM: Tell the user this action may consume credits. It is not possible to know upfront how many credits will be consumed (if any). The actual consumption will be determined during execution. 3. CONFIRM: Ask the user for an explicit Yes/No confirmation to proceed. 4. EXECUTE: Only call this tool after receiving clear, affirmative consent. Fetch detailed information about a specific company, including firmographics and hierarchy information based on the provided Leadfeeder company_id. Credit Note: Accessing full deep data consumes 1 credit, unless the company was already accessed within the last 12 months. :::info Requires the companies:read OAuth2 scope. :::

get_company_enrichment_job

ChatGPT
Retrieve the current status of a Company AI Enrichment job. Returns progress counters, credit consumption, and any errors. Jobs are retained for 7 days after completion. Credit Note: This endpoint does not consume credits. :::info Requires the companies:read OAuth2 scope. :::

get_company_financials

ChatGPT
CRITICAL: CREDIT-CONSUMING TOOL Using this tool MAY consume Leadfeeder credits. You MUST follow this protocol: 1. PAUSE: Do not execute this tool automatically. 2. INFORM: Tell the user this action may consume credits. It is not possible to know upfront how many credits will be consumed (if any). The actual consumption will be determined during execution. 3. CONFIRM: Ask the user for an explicit Yes/No confirmation to proceed. 4. EXECUTE: Only call this tool after receiving clear, affirmative consent. Returns all financial reports for a given company. Credit Note: Accessing financial data consumes 1 credit per company only if financial data is available and there was no active deep data access within the last 12 months. Once charged, no additional credits are consumed for accessing the same company’s financial data again within that 12-month period. :::info Requires the companies:read OAuth2 scope. :::

get_company_icp_matches

ChatGPT
Find out which ICPs each of up to 100 companies matches. Prefer this over get_companies with include=icps when only the ICP matches are needed: it returns no company attributes and consumes no credits. Each match comes back as an ICP ID; pass include=icps as well if you need the ICP names and criteria.

get_company_ips

ChatGPT
CRITICAL: CREDIT-CONSUMING TOOL Using this tool MAY consume Leadfeeder credits. You MUST follow this protocol: 1. PAUSE: Do not execute this tool automatically. 2. INFORM: Tell the user this action may consume credits. It is not possible to know upfront how many credits will be consumed (if any). The actual consumption will be determined during execution. 3. CONFIRM: Ask the user for an explicit Yes/No confirmation to proceed. 4. EXECUTE: Only call this tool after receiving clear, affirmative consent. Fetch known IP addresses associated with a given set of companies, enabling identification of web traffic and network activity linked to those organizations based on the provided company IDs. Credit Note: Retrieving IP address data consumes 1 credit per company, unless the company's IP data was already accessed within the last 12 months. :::info Requires the companies:read OAuth2 scope. :::

get_company_list_memberships

ChatGPT
Find out which lists each of up to 100 companies belongs to. Prefer this over get_companies with include=lists when only list membership is needed: it returns no company attributes and consumes no credits. Each membership comes back as a list ID; pass include=lists as well if you need the list names.

get_contact

ChatGPT
CRITICAL: CREDIT-CONSUMING TOOL Using this tool MAY consume Leadfeeder credits. You MUST follow this protocol: 1. PAUSE: Do not execute this tool automatically. 2. INFORM: Tell the user this action may consume credits. It is not possible to know upfront how many credits will be consumed (if any). The actual consumption will be determined during execution. 3. CONFIRM: Ask the user for an explicit Yes/No confirmation to proceed. 4. EXECUTE: Only call this tool after receiving clear, affirmative consent. Get the details of a contact by ID. Credit Note: Accessing full deep data consumes 1 credit, unless the contact was already accessed within the last 12 months. :::info Requires the contacts:read OAuth2 scope. :::

get_contact_list_memberships

ChatGPT
Find out which lists each of up to 100 contacts belongs to. Returns no contact attributes and consumes no credits. Each membership comes back as a list ID; pass include=lists as well if you need the list names.

get_contacts

ChatGPT
CRITICAL: CREDIT-CONSUMING TOOL Using this tool MAY consume Leadfeeder credits. You MUST follow this protocol: 1. PAUSE: Do not execute this tool automatically. 2. INFORM: Tell the user this action may consume credits. It is not possible to know upfront how many credits will be consumed (if any). The actual consumption will be determined during execution. 3. CONFIRM: Ask the user for an explicit Yes/No confirmation to proceed. 4. EXECUTE: Only call this tool after receiving clear, affirmative consent. Retrieve a list of contacts based on the provided IDs. Credit Note: Each contact will contain its full deep data and it will consume 1 credit, unless the contact has already been accessed within the last 12 months. :::info Requires the contacts:read OAuth2 scope. :::

get_countries

ChatGPT
Returns the full list of countries with their administrative regions. Credit Note: This endpoint does not consume credits. :::info Requires the companies:read OAuth2 scope. :::

get_current_user_info

ChatGPT
Retrieves the identity of the current API user - a "whoami" endpoint. Unlike most endpoints, this one does not require the account_id query parameter — the user's identity is independent of the account they are currently working on.

get_custom_field

ChatGPT
Fetch the details of a specific custom field using its internal name. The response returns the field's attributes. Credit Note: Retrieving custom field definitions does not consume credits. :::info Requires the custom_fields:read OAuth2 scope. :::

get_custom_fields

ChatGPT
Retrieve the list of all custom field definitions available in the account. The response includes each field's attributes. Credit Note: Retrieving custom field definitions does not consume credits. :::info Requires the custom_fields:read OAuth2 scope. ::: Pagination: use page[num] to page through results, starting at 1. Increment by 1 for each subsequent page. Stop when page[num] exceeds meta.pagination.page_count. page[size] controls how many items are returned per page (default: 20, max: 100).

get_data_processing_settings

ChatGPT
Returns the current "Allow third-party providers" state for the account and its full change history, ordered most-recent-first. Each changelog entry records what was set, who set it, and when. :::info Requires the accounts:read OAuth2 scope. :::

get_find_contact_data_job

ChatGPT
Retrieve the current status of a Find Contact Data job. Returns progress counters, credit consumption, and any errors. Jobs are retained for 7 days after completion. Credit Note: This endpoint does not consume credits. :::info Requires the contacts:read OAuth2 scope. :::

get_geo_suggestions

ChatGPT
Resolves a typed city name or postal code into geographic coordinates. The returned latitude / longitude can be used to populate the value.lat / value.lon of the Geo Filter (field: geo, operator: within). Results can be scoped to one or more countries via country_codes, and search_fields limits which address fields the text may match; when omitted, both cities and postal codes are searched. Credit Note: This endpoint does not consume credits. :::info Requires the companies:read OAuth2 scope. :::

get_icp

ChatGPT
Get the details of a specific Ideal Customer Profile (ICP) by ID, including its name, creation timestamp, and the full set of filter criteria that define it. relationships.custom_feed links the ICP to the Web Visits custom feed created alongside it, which lists the visiting companies matching the ICP; it is null for the few ICPs that have no feed. Credit Note: Retrieving an ICP definition does not consume credits. :::info Requires the icps:read OAuth2 scope. :::

get_icps

ChatGPT
Retrieve all Ideal Customer Profiles (ICPs) defined in the account. Each ICP is a saved set of company-level filter criteria (employee count, industry, location) used to identify target companies. relationships.custom_feed links an ICP to the Web Visits custom feed created alongside it, which lists the visiting companies matching the ICP; it is null for the few ICPs that have no feed. Credit Note: Retrieving ICP definitions does not consume credits. :::info Requires the icps:read OAuth2 scope. :::

get_industries

ChatGPT
Returns the full list of industries based on the provided industry classification. Credit Note: This endpoint does not consume credits. :::info Requires the companies:read OAuth2 scope. :::

get_list

ChatGPT
Retrieve the details of a specific list using its unique ID. The response includes the list's attributes, such as its name and scope, along with any related information requested through query parameters. This endpoint is used to fetch the full definition of a list before viewing, updating, or managing its assigned items. Credit Note: Retrieving list definitions does not consume credits. :::info Requires the lists:read OAuth2 scope. :::

get_list_items

ChatGPT
Retrieve the members of a list. The list is addressed by its {id}, a scope-prefixed list identifier (e.g. company_123 or contact_456). There is a single List resource: the list's list_type determines whether the members are companies or contacts. The response contains bare references (IDs only) in data, with type following the list's list_type (company for a company list, contact for a contact list). Results are cursor-paginated. To retrieve the full company or contact data for these members, pass the returned IDs to the Retrieve Companies (GET /v1/companies) or Retrieve Contacts (GET /v1/contacts) endpoints. Credit Note: Retrieving list members does not consume credits. :::info Requires the lists:read OAuth2 scope. ::: Pagination: pass page[cursor] from meta.pagination.next_cursor to fetch the next page. Stop when next_cursor is null. page[size] controls how many items are returned per page (default: 20, max: 100).

get_lists

ChatGPT
Retrieve all lists available in the account. The response includes each list's attributes and can be filtered through query parameters. Credit Note: Retrieving list definitions does not consume credits. :::info Requires the lists:read OAuth2 scope. ::: Pagination: use page[num] to page through results, starting at 1. Increment by 1 for each subsequent page. Stop when page[num] exceeds meta.pagination.page_count. page[size] controls how many items are returned per page (default: 20, max: 100).

get_tag

ChatGPT
Fetch the details of a specific tag using its unique tag ID. Returns the tag’s attributes, including its name, color, and timestamps indicating when it was created and last updated. Credit Note: Retrieving tag data does not consume credits. :::info Requires the tags:read OAuth2 scope. :::

get_tags

ChatGPT
Retrieve the list of all tags available in the account. The response contains all tag definitions, including their identifiers, display names, and colors, which can be used to classify or filter companies within the platform. Credit Note: Retrieving tag data does not consume credits. :::info Requires the tags:read OAuth2 scope. ::: Pagination: use page[num] to page through results, starting at 1. Increment by 1 for each subsequent page. Stop when page[num] exceeds meta.pagination.page_count. page[size] controls how many items are returned per page (default: 20, max: 100).

get_web_visits_companies

ChatGPT
Retrieve the companies that visited the website within a date range. This is the tool that returns the COMPANY LIST for web visits. To return only companies matching specific conditions (industry, employee count, company location, pages visited, traffic source, intent, CRM data, tags, etc.), pass custom_feed_id: the feed encapsulates the filters and this tool returns the companies that match it. Workflow: first reuse an existing feed (get_web_visits_custom_feeds) or create one (create_web_visits_custom_feed), then call this tool with that custom_feed_id. Without a custom_feed_id it returns all visiting companies, filterable only by date range. Once you have company ids, use search_web_visits to drill into the individual visits of a company. EMPTY RESULT: say plainly that no visiting companies were returned for the requested period, then name the possible causes without guessing between them: there genuinely were no identified visits in that period; the Leadfeeder Tracker script is not installed on the website, so nothing is being recorded at all; or, if a custom_feed_id was used, the feed's filters exclude every company. Ask the user to rule out the tracker by checking whether the script is installed at https://app.leadfeeder.com/l/settings/, where they can also install it if it is missing; call get_web_visits_tracker if they want the snippet itself. Do not offer to retry a different or wider date range — confirming the tracker is installed comes first. Pagination: use page[num] to page through results, starting at 1. Increment by 1 for each subsequent page. Stop when page[num] exceeds meta.pagination.page_count. page[size] controls how many items are returned per page (default: 20, max: 100).

get_web_visits_custom_feed

ChatGPT
Retrieve a single custom feed by its ID. :::info Requires the web_visits:read OAuth2 scope. :::

get_web_visits_custom_feed_folders

ChatGPT
Retrieve all custom feed folders accessible to the current user for the given account. :::info Requires the web_visits:read OAuth2 scope. :::

get_web_visits_custom_feeds

ChatGPT
Retrieve all custom feeds accessible to the current user for the given account. :::info Requires the web_visits:read OAuth2 scope. :::

get_web_visits_goal

ChatGPT
Get a goal by its ID, including its name, whether it is enabled and the page-view condition that defines it. Credit Note: Retrieving a goal does not consume credits. :::info Requires the web_visits:read OAuth2 scope. :::

get_web_visits_goals

ChatGPT
Retrieve all goals defined in the account. A goal is a page-view condition — on the page URL or title, a form submission, a file download or a video — that marks the page views signalling buying intent, such as visits to a pricing page. relationships.custom_feed links a goal to the Web Visits custom feed listing the companies with a page view meeting it, and a custom feed's advanced_filters can filter on the goal field with a goal's id. Credit Note: Retrieving goals does not consume credits. :::info Requires the web_visits:read OAuth2 scope. :::

get_web_visits_tracker

ChatGPT
Retrieve this account's Leadfeeder Tracker script — the snippet that must be present on every page, across every domain and subdomain, for visitor tracking to work. Return data.attributes.script.html verbatim in a copyable block; never invent, edit or shorten the snippet or its hash. Then send the user to https://app.leadfeeder.com/l/settings/ to choose an installation method and follow the guided instructions there: Google Tag Manager (recommended), plain HTML in <head>, WordPress, Wix, Squarespace, GoDaddy, Weebly, or sending the script to a colleague who manages the site. Do not ask which platform they use and do not improvise platform-specific steps — the settings page covers every supported option. Tracking is not retroactive: only visits after the script goes live are recorded. Offer to re-check with get_web_visits_companies.

match_companies

ChatGPT
Find matching companies based on the provided input parameters. Returns matching company IDs and basic company information. Important: Each company object must include at least one of these required fields: company_name, url, vat_id, or register_id. Additional fields like email, phone, and address can improve match accuracy but cannot be used alone. Credit Note: Matches do not consume credits. Credits are only used if you subsequently retrieve deep data for a company you haven't accessed within the last 12 months. :::info Requires the companies:read OAuth2 scope. :::

remove_company_from_lists

ChatGPT
Remove a single company from one or more lists. Best when you have one company and want it taken off several lists at once (company → many lists). WHEN NOT TO USE: If you are removing multiple companies from the same list, do NOT call this tool in a loop — use Create Batch Remove from List Job (create_batch_remove_from_list_job) instead, which removes up to 100 companies from one list in a single request. Rule of thumb: 2+ companies leaving one list → use the batch job; one company leaving one or many lists → use this tool. The list IDs come from the Retrieve Lists and Get List Details endpoints, and must be company lists (e.g. company_123). Credit Note: Removing a company from lists does not consume credits.

remove_contact_from_lists

ChatGPT
Allows the removal of this contact from one or more lists. Credit Note: Removing a contact from lists does not consume credits. :::info Requires the contacts:write OAuth2 scope. :::

search_companies

ChatGPT
Search companies by name, location, industry, size, and other filters. Returns matching company IDs and basic company info. Searches do not consume credits. AT LEAST ONE CRITERION IS REQUIRED: the request must set at least one of search_terms, locations, industries, employee_ranges, revenue, icp_ids, or filters — an empty request is rejected. Each entry in locations must likewise carry at least one of street, postal_code, city, country_code, region_code, or geo. INDUSTRY FILTERING: The industries filter takes classification CODES, not display names, but users will describe an industry by name (e.g. "software", "logistics", "law firms"). You must resolve the name to code(s) before searching: 1. CHOOSE THE CLASSIFICATION: default to internal (Leadfeeder's own classification) — use it unless the user explicitly asks for nace or wz. 2. LOOK UP THE CODES using the get_industries tool, passing the chosen classification (internal, nace, or wz) to retrieve the full list of industries and their codes. 3. ON AN EXACT NAME MATCH, apply the corresponding code(s) directly in industries.classification + industries.codes. 4. WHEN THERE IS NO EXACT MATCH, do NOT guess: present the closest candidate industries (name + code) to the user and ask them to pick the one(s) they want, then search with the chosen code(s). Pagination: pass page[cursor] from meta.pagination.next_cursor to fetch the next page. Stop when next_cursor is null. page[size] controls how many items are returned per page (default: 20, max: 100).

search_companies_signals

ChatGPT
CRITICAL: CREDIT-CONSUMING TOOL Using this tool MAY consume Leadfeeder credits. You MUST follow this protocol: 1. PAUSE: Do not execute this tool automatically. 2. INFORM: Tell the user this action may consume credits. It is not possible to know upfront how many credits will be consumed (if any). The actual consumption will be determined during execution. 3. CONFIRM: Ask the user for an explicit Yes/No confirmation to proceed. 4. EXECUTE: Only call this tool after receiving clear, affirmative consent. Retrieve signals for a specified set of company IDs. The response returns the signals linked to the provided companies. Credit Node: You are charged 1 credit per company if the company has signals and there was no active deep data access within the last 12 months. The number of signals returned does not affect credit usage — no additional credits are charged per signal. :::info Requires the companies:read OAuth2 scope. ::: Pagination: pass page[cursor] from meta.pagination.next_cursor to fetch the next page. Stop when next_cursor is null. page[size] controls how many items are returned per page (default: 20, max: 100).

search_contacts

ChatGPT
Search for contacts using one or more filters. Multiple fields are combined with AND; multiple values within the same field are combined with OR. When the user specifies positions, expand each value to include both its abbreviation and its full form as separate entries (e.g. "CEO" → ["CEO", "Chief Executive Officer"]). This is necessary because position matching is exact — no synonyms are applied automatically. Pagination: pass page[cursor] from meta.pagination.next_cursor to fetch the next page. Stop when next_cursor is null. page[size] controls how many items are returned per page (default: 20, max: 100).

search_web_visits

ChatGPT
Search the raw web-visit records within a date range. Returns individual visit events (engagement, visitor, location), NOT a filtered company list. This tool only filters inline by a single company_id and visitor city/country. It CANNOT filter visiting companies by attributes or behaviour (industry, employee count, company location, page/URL visited, traffic source, intent, CRM data, tags, etc.). For any such filtering, do NOT try to approximate it here — instead create or reuse a custom feed and call get_web_visits_companies with its custom_feed_id (see create_web_visits_custom_feed). Use this tool mainly to fetch the underlying visits for a specific company once you already have its id. EMPTY RESULT: say plainly that no visit records were returned for the requested period, then name both possible causes without guessing: there genuinely were no identified visits, or the Leadfeeder Tracker script is not installed on the website so nothing is being recorded. Ask the user to rule out the tracker by checking whether the script is installed at https://app.leadfeeder.com/l/settings/, where they can also install it if it is missing; call get_web_visits_tracker if they want the snippet itself. Do not offer to retry a different or wider date range — confirming the tracker is installed comes first. Pagination: use page[num] to page through results, starting at 1. Increment by 1 for each subsequent page. Stop when page[num] exceeds meta.pagination.page_count. page[size] controls how many items are returned per page (default: 20, max: 100).

unassign_tags_from_company

ChatGPT
Allows the unassignment of one or more tags from a given company. Credit Note: Unassigning tags from a company does not consume credits. :::info Requires the companies:write OAuth2 scope. :::

update_campaign

ChatGPT
Update a specific campaign using its campaign ID. Supports changes to campaign attributes such as name, budget, status, associated list or custom feed, and campaign settings. :::info Requires the campaigns:write OAuth2 scope. :::

update_company

ChatGPT
Update a company. Applies a partial (merge-patch) update to the company: only the attributes named in the request are changed; any attribute you omit is left untouched. This endpoint updates the company's custom field values. To set custom field values, send them under attributes.custom_fields, keyed by custom field id. The value type is inferred from the field definition — no type is sent in the request. Only simple field types may be set: text, number, boolean, and date. Prompt-capable / computed types (ai_*, contact_collection) and unknown custom field ids are rejected with 400. The updated values are returned inside the entity's data envelope. The request is validated strictly and applied atomically: if any field fails validation, the whole request is rejected and nothing is written. Per-field errors carry a source.pointer locating the offending field; when fields fail with different statuses, the response status is the most severe one (403 over 400). Sending null as a value clears that field (merge-patch delete); clearing a field with no stored value is a no-op. A maximum of 100 custom fields may be supplied per request. Credit Note: Updating a company does not consume credits. :::info Requires the custom_fields:write OAuth2 scope. :::

update_contact

ChatGPT
Update a contact. Applies a partial (merge-patch) update to the contact: only the attributes named in the request are changed; any attribute you omit is left untouched. This endpoint updates the contact's custom field values. To set custom field values, send them under attributes.custom_fields, keyed by custom field id. The value type is inferred from the field definition — no type is sent in the request. Only simple field types may be set: text, number, boolean, and date. Prompt-capable / computed types (ai_*, contact_collection) and unknown custom field ids are rejected with 400. The updated values are returned inside the entity's data envelope. The request is validated strictly and applied atomically: if any field fails validation, the whole request is rejected and nothing is written. Per-field errors carry a source.pointer locating the offending field; when fields fail with different statuses, the response status is the most severe one (403 over 400). Sending null as a value clears that field (merge-patch delete); clearing a field with no stored value is a no-op. A maximum of 100 custom fields may be supplied per request. Credit Note: Updating a contact does not consume credits. :::info Requires the custom_fields:write OAuth2 scope. :::

update_custom_field

ChatGPT
Update an existing custom field's name and/or configuration. At least one of name or configuration must be provided. If name is present, it must not be blank. The configuration attribute is only meaningful for prompt-capable field types (ai_score, ai_text, ai_number, ai_boolean, contact_collection); it is silently ignored for simple types (text, number, boolean, date). Credit Note: Updating custom fields does not consume credits. :::info Requires the custom_fields:write OAuth2 scope. :::

update_data_processing_settings

ChatGPT
Enables or disables third-party data enrichment providers for the account. Disabling stops contact data enrichment via third-party providers. The change is recorded in the changelog with the acting API user's identity. :::info Requires the accounts:write OAuth2 scope. :::

update_list

ChatGPT
Update the name of a list. Credit Note: Updating list name does not consume credits. :::info Requires the lists:write OAuth2 scope. :::

update_tag

ChatGPT
Update the attributes of a specific tag identified by its ID. This endpoint applies a partial update to a single tag. Only the fields provided in the request body will be modified; all other fields remain unchanged. Credit Note: Updating tags does not consume credits. :::info Requires the tags:write OAuth2 scope. :::

update_web_visits_custom_feed

ChatGPT
Update an existing custom feed. All attributes are optional; only the attributes you send are changed. When you send advanced_filters, it fully replaces the existing filter tree and must follow the SAME fixed shape as create (create_web_visits_custom_feed): root { type: group, operator: and } whose items are EXACTLY the include bucket { type: group, operator: or } and the exclude bucket { type: group, operator: or, negated: true } (send items: [] when excluding nothing), then and → or → filter beneath each bucket. Any deviation returns 422 invalid_filters. To change only the name or folder, omit advanced_filters entirely.

usage

ChatGPT
Access usage statistics for various API endpoints for monitoring and auditing purposes. Returns usage data for all endpoints accessible by the requesting account within the specified date range. :::info Requires the usage:read OAuth2 scope. :::

add_company_to_lists

Claude

add_contact_to_lists

Claude

assign_tags_to_company

Claude

create_company_enrichment_job

Claude

create_custom_field

Claude

create_find_contact_data_job

Claude

create_list

Claude

create_tag

Claude

create_web_visits_custom_feed

Claude

delete_custom_field

Claude

delete_list

Claude

delete_tag

Claude

delete_web_visits_custom_feed

Claude

enrich_ip

Claude

estimate_company_enrichment_job

Claude

estimate_find_contact_data_job

Claude

get_account_info

Claude

get_buyer_persona

Claude

get_buyer_personas

Claude

get_campaign

Claude

get_campaign_stats

Claude

get_campaigns

Claude

get_companies_by_ids

Claude

get_company

Claude

get_company_enrichment_job

Claude

get_company_financials

Claude

get_company_ips

Claude

get_contact

Claude

get_contacts

Claude

get_current_user_info

Claude

get_custom_field

Claude

get_custom_fields

Claude

get_find_contact_data_job

Claude

get_icp

Claude

get_icps

Claude

get_list

Claude

get_lists

Claude

get_tag

Claude

get_tags

Claude

get_web_visits_companies

Claude

get_web_visits_custom_feed

Claude

get_web_visits_custom_feed_folders

Claude

get_web_visits_custom_feeds

Claude

get_web_visits_tracker

Claude

match_companies

Claude

remove_company_from_lists

Claude

remove_contact_from_lists

Claude

search_companies

Claude

search_companies_signals

Claude

search_contacts

Claude

search_web_visits

Claude

unassign_tags_from_company

Claude

update_campaign

Claude

update_custom_field

Claude

update_list

Claude

update_tag

Claude

update_web_visits_custom_feed

Claude

usage

Claude

Capabilities

Writes

Example Prompts

Click any prompt to copy it.

App Stats

144

Tools

3

Prompts

ChatGPT, Claude

Platforms

Works with

ChatGPT
Claude

Data refreshed daily