Skip to content
Scalekit Docs

Akta Pro MCP

Vendor MCP17 toolsAPI KeyAnalyticsSearch

Connect to Akta Pro MCP to search company news signals, check account status, and access sales intelligence tools directly from your AI agents.

Akta Pro MCP connector

  1. Terminal window
    npm install @scalekit-sdk/node

    Full SDK reference: Node.js | Python

  2. Add your Scalekit credentials to your .env file. Find values in app.scalekit.com > Developers > API Credentials.

    .env
    SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
    SCALEKIT_CLIENT_ID=<your-client-id>
    SCALEKIT_CLIENT_SECRET=<your-client-secret>
  3. quickstart.ts
    import { ScalekitClient } from '@scalekit-sdk/node'
    import 'dotenv/config'
    const scalekit = new ScalekitClient(
    process.env.SCALEKIT_ENV_URL,
    process.env.SCALEKIT_CLIENT_ID,
    process.env.SCALEKIT_CLIENT_SECRET,
    )
    const actions = scalekit.actions
    const connector = 'aktapromcp'
    const identifier = 'user_123'
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'aktapromcp_account_status',
    toolInput: {},
    })
    console.log(result)

Connect this agent connector to let your agent:

  • Traffic website — Website traffic: engagement metrics, monthly visit estimates, and traffic by acquisition channel
  • Posts social, job — Company social media posts: content type, text, publish date, paid/repost flags, an AI classification, and engagement metrics
  • Reviews product, employee — Product catalog and per-product reviews (G2 et al.)
  • Types news — List the news-type taxonomy (tag codes) for filtering news_signals
  • Signals news — Fetch a list of news signals by company, industry, topic, or title (JSON)
  • Detail news — Fetch the full article body for specific news id(s) from news_signals

Use the exact tool names from the Tool list below when you call execute_tool. If you’re not sure which name to use, list the tools available for the current user first.

aktapromcp_account_status#Report the current user's plan tier and credit balance. Free. No arguments — identity is taken from the authenticated API key. Call this when the user asks about their plan, credits, or limits, and consult it before attempting Subscription/Enterprise-only tools (headcount_trends, website_traffic, employee_reviews, product_reviews, job_posts, social_posts) or enterprise-only enrichment sections (Funding Detail, M&A and Investment) to pre-empt a 403. Returns: is_enterprise (bool), package_type (top_up | subscription | enterprise), credit_balance (remaining credits), currency.0 params

Report the current user's plan tier and credit balance. Free. No arguments — identity is taken from the authenticated API key. Call this when the user asks about their plan, credits, or limits, and consult it before attempting Subscription/Enterprise-only tools (headcount_trends, website_traffic, employee_reviews, product_reviews, job_posts, social_posts) or enterprise-only enrichment sections (Funding Detail, M&A and Investment) to pre-empt a 403. Returns: is_enterprise (bool), package_type (top_up | subscription | enterprise), credit_balance (remaining credits), currency.

aktapromcp_company_data#Enrich a company with the requested sections, returned as Markdown. akta-pro renders the (large, deeply-nested) company data into clean Markdown server-side. Sections (credits): firmographic 2, business_model 2, company_assessment 2, trust_signal 0.5, company_hierarchy 0.5, digital_presence 0.5, financial_estimate 0.5, location 0.5, management_profile 1.5, product_offering 2, strategic_signal 1.5, customer_profile 1, industry 1, technology 2, funding_detail 3 (enterprise-only), mna_and_investment 5 (enterprise-only). The two enterprise-only sections are skipped (not an error) when the caller isn't on an Enterprise plan; the returned Markdown notes any that were dropped. Prerequisite: `company` must be an akta-pro uuid from company_search (free). Names and websites are rejected.2 params

Enrich a company with the requested sections, returned as Markdown. akta-pro renders the (large, deeply-nested) company data into clean Markdown server-side. Sections (credits): firmographic 2, business_model 2, company_assessment 2, trust_signal 0.5, company_hierarchy 0.5, digital_presence 0.5, financial_estimate 0.5, location 0.5, management_profile 1.5, product_offering 2, strategic_signal 1.5, customer_profile 1, industry 1, technology 2, funding_detail 3 (enterprise-only), mna_and_investment 5 (enterprise-only). The two enterprise-only sections are skipped (not an error) when the caller isn't on an Enterprise plan; the returned Markdown notes any that were dropped. Prerequisite: `company` must be an akta-pro uuid from company_search (free). Names and websites are rejected.

NameTypeRequiredDescription
companystringrequiredakta-pro company uuid — the 7-character id from company_search (e.g. '00000l1'). This is the ONLY accepted form: company names ('Canva') and website domains ('canva.com') are rejected. Always call company_search first (it's free) and pass the `uuid` of the candidate you want; a domain can map to several distinct entities, so picking the right uuid is your decision to make, not the API's.
sectionsarrayrequiredOne or more data sections to fetch. You MUST choose sections explicitly — there is no 'all'. Each section is billed separately. funding_detail and mna_and_investment are enterprise-only; they're silently skipped (not an error) for non-enterprise callers.
aktapromcp_company_data_concise#Return a condensed company overview (no section selection). akta-pro returns a slimmed JSON with the fluff redacted — much smaller than full enrichment. Intended flat cost 8 credits. Prerequisite: `company` must be an akta-pro uuid from company_search (free). Names and websites are rejected.1 param

Return a condensed company overview (no section selection). akta-pro returns a slimmed JSON with the fluff redacted — much smaller than full enrichment. Intended flat cost 8 credits. Prerequisite: `company` must be an akta-pro uuid from company_search (free). Names and websites are rejected.

NameTypeRequiredDescription
companystringrequiredakta-pro company uuid — the 7-character id from company_search (e.g. '00000l1'). This is the ONLY accepted form: company names ('Canva') and website domains ('canva.com') are rejected. Always call company_search first (it's free) and pass the `uuid` of the candidate you want; a domain can map to several distinct entities, so picking the right uuid is your decision to make, not the API's.
aktapromcp_employee_reviews#Employee reviews: overall + dimension-level ratings and individual reviews (Glassdoor et al.). 1.5 credits per 50 reviews. Subscription/Enterprise only. Prerequisite: `company` must be an akta-pro uuid from company_search (free). Names and websites are rejected.3 params

Employee reviews: overall + dimension-level ratings and individual reviews (Glassdoor et al.). 1.5 credits per 50 reviews. Subscription/Enterprise only. Prerequisite: `company` must be an akta-pro uuid from company_search (free). Names and websites are rejected.

NameTypeRequiredDescription
companystringrequiredakta-pro company uuid — the 7-character id from company_search (e.g. '00000l1'). This is the ONLY accepted form: company names ('Canva') and website domains ('canva.com') are rejected. Always call company_search first (it's free) and pass the `uuid` of the candidate you want; a domain can map to several distinct entities, so picking the right uuid is your decision to make, not the API's.
limitintegeroptionalMax reviews to return (max 100).
offsetintegeroptionalPagination offset.
aktapromcp_generate_company_list#Run a company list: the companies matching your filters. Cost: 1.5 credits per call that returns companies + 0.2 per company, so 25 companies is 6.5 credits. A query matching nothing is FREE. The cost does not depend on the fields: this tool always returns the same identifying fields per company and never full enrichment, so screening a list is cheap and predictable. For depth, call company_data on the few uuids that matter — that is billed per section, on those companies only. Prerequisites, in order: list_filters() to see what exists, then get_filter_values() for every filter that has a `dropdown_type`. Use those values VERBATIM and never write one from memory — these are exact strings from akta-pro's data, so an invented value matches zero companies instead of erroring. Key this call by each entry's `filter` — the one name that field has everywhere. Send at least one selective filter. A very broad or unfiltered query is rejected, not slow — it exhausts the backend's query timeout. Always read `warnings` in the result. A value that was dropped there means the list is BROADER than what the user asked for, which otherwise looks exactly like a good answer; a `coerced` entry means a value was normalised to its canonical form (harmless, but worth trusting over your own spelling next time). A filter key that isn't in list_filters() is an error, not a warning — the call fails with the offending key named and costs nothing, so fix the key and retry rather than guessing. Each company comes back with uuid, name, website, product_category, company_type and hq_country — that is the whole row; there is no option to return more per company. Feed a `uuid` straight into company_data / news_signals for depth on one of them. `total_count` saturates at 500, meaning "500 or more" — it is also the deepest page reachable, so narrow the filters rather than paging past it.5 params

Run a company list: the companies matching your filters. Cost: 1.5 credits per call that returns companies + 0.2 per company, so 25 companies is 6.5 credits. A query matching nothing is FREE. The cost does not depend on the fields: this tool always returns the same identifying fields per company and never full enrichment, so screening a list is cheap and predictable. For depth, call company_data on the few uuids that matter — that is billed per section, on those companies only. Prerequisites, in order: list_filters() to see what exists, then get_filter_values() for every filter that has a `dropdown_type`. Use those values VERBATIM and never write one from memory — these are exact strings from akta-pro's data, so an invented value matches zero companies instead of erroring. Key this call by each entry's `filter` — the one name that field has everywhere. Send at least one selective filter. A very broad or unfiltered query is rejected, not slow — it exhausts the backend's query timeout. Always read `warnings` in the result. A value that was dropped there means the list is BROADER than what the user asked for, which otherwise looks exactly like a good answer; a `coerced` entry means a value was normalised to its canonical form (harmless, but worth trusting over your own spelling next time). A filter key that isn't in list_filters() is an error, not a warning — the call fails with the offending key named and costs nothing, so fix the key and retry rather than guessing. Each company comes back with uuid, name, website, product_category, company_type and hq_country — that is the whole row; there is no option to return more per company. Feed a `uuid` straight into company_data / news_signals for depth on one of them. `total_count` saturates at 500, meaning "500 or more" — it is also the deepest page reachable, so narrow the filters rather than paging past it.

NameTypeRequiredDescription
filtersobjectrequiredThe filters to apply, keyed by the `filter` from each list_filters() entry (its enrichment path). E.g. {"firmographic.company_type": "Private", "location.hq.country": ["USA"], "firmographic.founded_year": {"gte": 2018}}. Filters sharing a `same_element_group` must all match the SAME sub-object. Ranges are {"gte": .., "lte": ..} (inclusive, either bound optional), booleans true/false, name filters a case-insensitive substring. At least one filter is REQUIRED.
limitintegeroptionalCompanies to return.
offsetintegeroptionalPagination offset.
sort_bystringoptionalSort field. Defaults to relevance. Band fields (revenue_estimate, valuation_estimate, employee_range) sort by band magnitude, not alphabetically.
sort_orderstringoptionalSort direction — desc gives highest revenue / most funding / largest headcount / most recently founded first. Ignored while sort_by is relevance.
aktapromcp_get_filter_values#Get the allowed values for one or more filters. Free (0 credits). Two kinds of result: * A fixed list -> [{label, value}]. Use `value` verbatim; `label` is just the human-readable form. `query` substring-filters the list. * A searched taxonomy (industry.industry, industry.naics, industry.sic; investors resolve to companies) -> ranked matches with a `code` and a similarity score. `query` is REQUIRED, and you use the `code`. For `industry`, `level` picks how deep in the taxonomy to search — leave it at the ['l4'] default for a specific niche, and pass ['all'] for a broad sector, since a broader code matches every company beneath it in the hierarchy. NEVER write a value from memory. These are exact strings from akta-pro's data, and a value that merely looks plausible matches zero companies instead of failing — so a made-up value silently ruins the whole query. If nothing returned clearly means what the user asked for, leave that filter out rather than forcing a weak match. Check `truncated` / `total_available`: if what you need isn't in the list, re-query with a narrower `query`.1 param

Get the allowed values for one or more filters. Free (0 credits). Two kinds of result: * A fixed list -> [{label, value}]. Use `value` verbatim; `label` is just the human-readable form. `query` substring-filters the list. * A searched taxonomy (industry.industry, industry.naics, industry.sic; investors resolve to companies) -> ranked matches with a `code` and a similarity score. `query` is REQUIRED, and you use the `code`. For `industry`, `level` picks how deep in the taxonomy to search — leave it at the ['l4'] default for a specific niche, and pass ['all'] for a broad sector, since a broader code matches every company beneath it in the hierarchy. NEVER write a value from memory. These are exact strings from akta-pro's data, and a value that merely looks plausible matches zero companies instead of failing — so a made-up value silently ruins the whole query. If nothing returned clearly means what the user asked for, leave that filter out rather than forcing a weak match. Check `truncated` / `total_available`: if what you need isn't in the list, re-query with a narrower `query`.

NameTypeRequiredDescription
lookupsarrayrequiredThe filters whose values you want — resolve everything in ONE call (1-25 lookups). Take each `dropdown_type` from a list_filters() entry.
aktapromcp_job_posts#Live LinkedIn/Indeed job posts: title, location, description, compensation, experience level, and key skills. 3 credits. Subscription/Enterprise only. Prerequisite: `company` must be an akta-pro uuid from company_search (free). Names and websites are rejected.3 params

Live LinkedIn/Indeed job posts: title, location, description, compensation, experience level, and key skills. 3 credits. Subscription/Enterprise only. Prerequisite: `company` must be an akta-pro uuid from company_search (free). Names and websites are rejected.

NameTypeRequiredDescription
companystringrequiredakta-pro company uuid — the 7-character id from company_search (e.g. '00000l1'). This is the ONLY accepted form: company names ('Canva') and website domains ('canva.com') are rejected. Always call company_search first (it's free) and pass the `uuid` of the candidate you want; a domain can map to several distinct entities, so picking the right uuid is your decision to make, not the API's.
limitintegeroptionalMax job listings to return.
offsetintegeroptionalPagination offset.
aktapromcp_list_filters#List the filters available for building a company list. Free. Call this FIRST whenever the request is for a SET of companies rather than one named company. Each entry gives: filter the field's enrichment path — the key to use in your output, and the only name it has description what it means / when to use it value_shape the JSON shape to emit how_to_get_values either "look up with /list/options/" or "supply the value directly" dropdown_type present only when a lookup is available; always the same string as `filter` same_element_group present only for a repeated sub-object; every filter sharing a group must match the SAME element Next step: for every filter you picked that has a `dropdown_type`, call get_filter_values() and use the returned values verbatim. Filters without one take their value directly — ranges as {"gte": …, "lte": …} (inclusive, either bound optional), booleans as true/false, name filters as a string (case-insensitive substring, so a surname or partial name works).0 params

List the filters available for building a company list. Free. Call this FIRST whenever the request is for a SET of companies rather than one named company. Each entry gives: filter the field's enrichment path — the key to use in your output, and the only name it has description what it means / when to use it value_shape the JSON shape to emit how_to_get_values either "look up with /list/options/" or "supply the value directly" dropdown_type present only when a lookup is available; always the same string as `filter` same_element_group present only for a repeated sub-object; every filter sharing a group must match the SAME element Next step: for every filter you picked that has a `dropdown_type`, call get_filter_values() and use the returned values verbatim. Filters without one take their value directly — ranges as {"gte": …, "lte": …} (inclusive, either bound optional), booleans as true/false, name filters as a string (case-insensitive substring, so a surname or partial name works).

aktapromcp_news_detail#Fetch the full article body for specific news id(s) from news_signals. Use this after news_signals when you need the complete text of particular articles — pass their `id`s here. Returns up to 10 articles with the same fields as full_enrichment plus `full_text`. Cost: 0.1 credits per call + 0.01 per article.1 param

Fetch the full article body for specific news id(s) from news_signals. Use this after news_signals when you need the complete text of particular articles — pass their `id`s here. Returns up to 10 articles with the same fields as full_enrichment plus `full_text`. Cost: 0.1 credits per call + 0.01 per article.

NameTypeRequiredDescription
news_idsarrayrequiredNews article id(s) from news_signals results. Up to 10 per call.
aktapromcp_news_signals#Fetch a list of news signals by company, industry, topic, or title (JSON). Typically provide one of `company`, `primary_company`, `industry`, `query`, or `title` to anchor the search. Cost: 0.1 credits per call + 0.01 per article. `company` matches any article mentioning the company; `primary_company` keeps only the articles the company is actually the subject of. Prefer `primary_company` for "news about X" / company-monitoring requests, and `company` when broad mention coverage matters. They are mutually exclusive — passing both is an error. To filter by news type/topic (e.g. "only product-related news"), call news_types() first to find the matching tag code(s), then pass them as type_codes. To filter by industry/sector, resolve codes with industry_search and pass them as `industry` — don't fall back to `query` for company or industry topics. Default to the compact list (full_enrichment=False) — it's enough to read and triage results. Don't set full_enrichment=True unless the user explicitly needs every field on every article. This list never includes full article text (kept compact). Every result carries an `id`; pass those ids to `news_detail` to retrieve the complete article body for the ones you care about.24 params

Fetch a list of news signals by company, industry, topic, or title (JSON). Typically provide one of `company`, `primary_company`, `industry`, `query`, or `title` to anchor the search. Cost: 0.1 credits per call + 0.01 per article. `company` matches any article mentioning the company; `primary_company` keeps only the articles the company is actually the subject of. Prefer `primary_company` for "news about X" / company-monitoring requests, and `company` when broad mention coverage matters. They are mutually exclusive — passing both is an error. To filter by news type/topic (e.g. "only product-related news"), call news_types() first to find the matching tag code(s), then pass them as type_codes. To filter by industry/sector, resolve codes with industry_search and pass them as `industry` — don't fall back to `query` for company or industry topics. Default to the compact list (full_enrichment=False) — it's enough to read and triage results. Don't set full_enrichment=True unless the user explicitly needs every field on every article. This list never includes full article text (kept compact). Every result carries an `id`; pass those ids to `news_detail` to retrieve the complete article body for the ones you care about.

NameTypeRequiredDescription
blacklistedarrayoptionalPublisher domains to exclude (e.g. 'example.com').
companystringoptionalNews mentioning a specific company (anywhere in the article). akta-pro company uuid — the 7-character id from company_search (e.g. '00000l1'). This is the ONLY accepted form: company names ('Canva') and website domains ('canva.com') are rejected. Always call company_search first (it's free) and pass the `uuid` of the candidate you want; a domain can map to several distinct entities, so picking the right uuid is your decision to make, not the API's.
countriesarrayoptionalFilter by the country of the event. ISO country codes (e.g. 'USA', 'GBR').
end_datestringoptionalEnd of date range, YYYY-MM-DD. Default today.
entity_eventarrayoptionalFilter to articles mentioning these event names.
entity_locationarrayoptionalFilter to articles mentioning these locations.
entity_personarrayoptionalFilter to articles mentioning these people (names).
entity_productarrayoptionalFilter to articles mentioning these product names.
full_enrichmentbooleanoptionalKeep False (the default) for almost all queries — it returns a compact list (id, title, AI summary, URL, date, publisher), which is enough to read and triage results. Only set True if the user explicitly needs the full per-article metadata (industries, types, entities, company mentions, sentiment) for every result; it is much larger, especially for broad topic/query searches. Do NOT default to True.
group_articlesbooleanoptionalGroup near-duplicate articles from the same event.
iab_codesarrayoptionalFilter by IAB content taxonomy codes.
industrystringoptionalComma-separated industry codes to filter by. For ANY industry / sector / market news request, FIRST call industry_search to resolve the industry to its code(s), then pass them here — this is far more precise than a free-text query. Prefer this over `query` whenever the topic is an industry or market.
iptc_codesarrayoptionalFilter by IPTC media topic codes.
limitintegeroptionalMax articles to return (max 1000).
naics_codesarrayoptionalFilter by NAICS industry classification codes.
news_scorestringoptionalFilter by news relevance/quality tier.
offsetintegeroptionalPagination offset.
primary_companystringoptionalLike `company`, but returns ONLY articles where this company is the PRIMARY company the article is about — it drops articles that merely mention it in passing. Use this when the user wants news *about* a company rather than every article name-dropping it. Cannot be combined with `company`. akta-pro company uuid — the 7-character id from company_search (e.g. '00000l1'). This is the ONLY accepted form: company names ('Canva') and website domains ('canva.com') are rejected. Always call company_search first (it's free) and pass the `uuid` of the candidate you want; a domain can map to several distinct entities, so picking the right uuid is your decision to make, not the API's.
querystringoptionalOpen-ended free-text topic, e.g. 'crude oil prices'. Use ONLY as a last resort — if the request is about a specific company use `company` (via company_search), and if it's about an industry/sector/market use `industry` (via industry_search). Don't default to query for company or industry topics.
sentimentstringoptionalFilter by article sentiment.
sic_codesarrayoptionalFilter by SIC industry classification codes.
start_datestringoptionalStart of date range, YYYY-MM-DD. Non-enterprise plans are limited to ~6 months back.
titlestringoptionalSearch by text in the article title.
type_codesarrayoptionalFilter by news type/topic. These are tag codes from news_types() (e.g. 'SD01' for product launches, 'CM03' for M&A). To honor a request like 'only product-related news', call news_types() first, pick the matching code(s), and pass them here. Omit for all types.
aktapromcp_news_types#List the news-type taxonomy (tag codes) for filtering news_signals. Call this FIRST whenever the user wants a specific kind of news — e.g. "product-related", "M&A", "layoffs", "funding". Map their intent to the matching code(s) below, then pass them to `news_signals(type_codes=[…])`. Free, no credits. Codes are grouped by category (e.g. product launches = SD01, M&A = CM03, layoffs = WT02).0 params

List the news-type taxonomy (tag codes) for filtering news_signals. Call this FIRST whenever the user wants a specific kind of news — e.g. "product-related", "M&A", "layoffs", "funding". Map their intent to the matching code(s) below, then pass them to `news_signals(type_codes=[…])`. Free, no credits. Codes are grouped by category (e.g. product launches = SD01, M&A = CM03, layoffs = WT02).

aktapromcp_product_reviews#Product catalog and per-product reviews (G2 et al.). Call once without `products` to get the catalog + product `id`s, then again with those ids to fetch reviews. 1.5 credits per 50 reviews. Subscription/Enterprise only. Prerequisite: `company` must be an akta-pro uuid from company_search (free). Names and websites are rejected.4 params

Product catalog and per-product reviews (G2 et al.). Call once without `products` to get the catalog + product `id`s, then again with those ids to fetch reviews. 1.5 credits per 50 reviews. Subscription/Enterprise only. Prerequisite: `company` must be an akta-pro uuid from company_search (free). Names and websites are rejected.

NameTypeRequiredDescription
companystringrequiredakta-pro company uuid — the 7-character id from company_search (e.g. '00000l1'). This is the ONLY accepted form: company names ('Canva') and website domains ('canva.com') are rejected. Always call company_search first (it's free) and pass the `uuid` of the candidate you want; a domain can map to several distinct entities, so picking the right uuid is your decision to make, not the API's.
limitintegeroptionalMax reviews per product (max 50; only when products given).
offsetintegeroptionalPagination offset.
productsarrayoptionalProduct IDs to fetch reviews for. Omit to list the product catalog (each product's `id` can then be passed here).
aktapromcp_social_posts#Company social media posts: content type, text, publish date, paid/repost flags, an AI classification, and engagement metrics. 1.5 credits. Subscription/Enterprise only. Prerequisite: `company` must be an akta-pro uuid from company_search (free). Names and websites are rejected.3 params

Company social media posts: content type, text, publish date, paid/repost flags, an AI classification, and engagement metrics. 1.5 credits. Subscription/Enterprise only. Prerequisite: `company` must be an akta-pro uuid from company_search (free). Names and websites are rejected.

NameTypeRequiredDescription
companystringrequiredakta-pro company uuid — the 7-character id from company_search (e.g. '00000l1'). This is the ONLY accepted form: company names ('Canva') and website domains ('canva.com') are rejected. Always call company_search first (it's free) and pass the `uuid` of the candidate you want; a domain can map to several distinct entities, so picking the right uuid is your decision to make, not the API's.
limitintegeroptionalMax posts to return.
offsetintegeroptionalPagination offset.
aktapromcp_website_traffic#Website traffic: engagement metrics, monthly visit estimates, and traffic by acquisition channel. 1.5 credits. Subscription/Enterprise only. Prerequisite: `company` must be an akta-pro uuid from company_search (free). Names and websites are rejected.1 param

Website traffic: engagement metrics, monthly visit estimates, and traffic by acquisition channel. 1.5 credits. Subscription/Enterprise only. Prerequisite: `company` must be an akta-pro uuid from company_search (free). Names and websites are rejected.

NameTypeRequiredDescription
companystringrequiredakta-pro company uuid — the 7-character id from company_search (e.g. '00000l1'). This is the ONLY accepted form: company names ('Canva') and website domains ('canva.com') are rejected. Always call company_search first (it's free) and pass the `uuid` of the candidate you want; a domain can map to several distinct entities, so picking the right uuid is your decision to make, not the API's.