Akta.pro helps sales, investment, and market research teams discover and analyze companies. Search businesses, retrieve structured company profiles, filter news by topic, build targeted company lists, and track headcount trends, website traffic, employee reviews, product reviews, hiring activity, and social posts.
Encrypted at rest, isolated from the model
Resolved from an AES-256-GCM vault at the moment of the call and attached to the request — the model never sees the secrets.
Try asking
Resolve a company by name or website to its akta-pro identifiers. ALWAYS call this first. Every other company tool accepts ONLY the `uuid` returned here — names and websites are rejected — so this is also the only way to check whether a company exists in akta-pro at all. Free (0 credits). Returns candidates with uuid, name, website, product_category, and public/private status. A child company also carries `parent_company` ({name, uuid}) pointing at its parent. By default only top-level companies are returned; pass include_child_companies=True to also match subsidiaries and divisions. Searching by a child company's own uuid finds it either way. Results are ranked but not disambiguated: one website can map to several distinct entities (stripe.com → Stripe, Stripe Capital, Stripe Atlas). Pick the candidate that matches the user's intent, and if none does, say the company isn't covered rather than passing a guessed uuid.
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, product_offering 2, strategic_signal 1.5, customer_profile 1, industry 0.5, technology 2, funding_detail 3, mna_and_investment 5. funding_detail and mna_and_investment are included on Subscription, Agent and Enterprise plans. Subscription and Agent get a trimmed view (first 3 rounds/investors/deals, month-year dates, with a note listing what is withheld); Enterprise gets the full data. On pay-as-you-go they are skipped (not an error); the returned Markdown notes any that were dropped. funding_detail and mna_and_investment are included on Subscription, Agent and Enterprise plans. Subscription and Agent get a trimmed view (first 3 rounds/investors/deals, month-year dates, with a note listing what is withheld); Enterprise gets the full data. On pay-as-you-go they are skipped (not an error); 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. API: GET /company/enrichment/markdown — the Markdown variant of akta-pro's Company Data API, documented at https://docs.akta.pro/api-reference/company-data; the fields each section carries are listed at https://docs.akta.pro/company-data-dictionary.
Return a condensed company overview (no section selection). akta-pro returns a slimmed JSON with the fluff redacted — much smaller than full enrichment. Flat cost 3 credits. This tool never returns funding or M&A data. Use company_data with funding_detail / mna_and_investment (Subscription, Agent and Enterprise plans) to get them. Prerequisite: `company` must be an akta-pro uuid from company_search (free). Names and websites are rejected. API: GET /company/enrichment/concise (akta-pro Company Data API — https://docs.akta.pro/api-reference/company-data).
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). API: GET /filters/list/ (akta-pro). The same keys are documented publicly under "Available Filters" at https://docs.akta.pro/api-reference/listgen-api — read that when a catalogue entry's `description` isn't enough to decide on a key.
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`. API: POST /filters/options/ (akta-pro) — the value lookups behind the filters documented at https://docs.akta.pro/api-reference/listgen-api.
Run a company list: the companies matching your filters. Cost: 1.5 credits per call that returns companies + 0.2 per company, so 20 companies is 5.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. API: POST /list/generate/companies/ — akta-pro's List Generation API, documented at https://docs.akta.pro/api-reference/listgen-api (filter keys, value shapes, sort fields, response envelope).
Resolve a free-text industry to akta-pro industry codes. Free (0 credits). Returns code, industry_name, and similarity score. The codes serve two purposes: * news_signals — pass them as the `industry` filter. * company lists — use them as `industry.industry` filter values in generate_company_list (the same lookup as get_filter_values with dropdown_type 'industry.industry'). A broader code matches every company beneath it in the hierarchy. `level` picks the taxonomy depth(s); several can be combined.
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. API: GET /news — akta-pro's News Signals API, documented at https://docs.akta.pro/api-reference/news-signals (every filter, the article schema, and the published code lists for the NAICS / SIC / IPTC / IAB / country / news-type filters above).
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. API: GET /news/by-id/ (akta-pro News Signals API — https://docs.akta.pro/api-reference/news-signals).
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).
LinkedIn-sourced headcount: total employees, historical growth, and breakdown by function. 2.5 credits. Prerequisite: `company` must be an akta-pro uuid from company_search (free). Names and websites are rejected.
Website traffic: engagement metrics, monthly visit estimates, and traffic by acquisition channel. 1.5 credits. Prerequisite: `company` must be an akta-pro uuid from company_search (free). Names and websites are rejected.
Employee reviews: overall + dimension-level ratings and individual reviews (Glassdoor et al.). 1.5 credits per 50 reviews. Prerequisite: `company` must be an akta-pro uuid from company_search (free). Names and websites are rejected.
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. Prerequisite: `company` must be an akta-pro uuid from company_search (free). Names and websites are rejected.
Live LinkedIn/Indeed job posts: title, location, description, compensation, experience level, and key skills. 4 credits. Prerequisite: `company` must be an akta-pro uuid from company_search (free). Names and websites are rejected.
Company social media posts: content type, text, publish date, paid/repost flags, an AI classification, and engagement metrics. 1 credits. Prerequisite: `company` must be an akta-pro uuid from company_search (free). Names and websites are rejected.
Report the current user's account details 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 tools pay-as-you-go can't use (headcount_trends, website_traffic, employee_reviews, product_reviews, job_posts, social_posts) or the Funding Detail / M&A and Investment enrichment sections (not on pay-as-you-go) to pre-empt a 403. The tier also sets the news_signals lookback limit (pay-as-you-go 6 months, subscription 1 year, agent and enterprise unlimited) and the generate_company_list window (pay-as-you-go 20, every other plan 500). Returns: is_enterprise (bool — true only on enterprise, not agent; do not use it to decide funding/M&A access, which subscription and agent have too), package_type (top_up = pay-as-you-go | subscription | agent | enterprise), credit_balance (remaining credits), currency.
One endpoint, the same key, whichever client you use.
~/Library/Application Support/Claude/claude_desktop_config.json (Mac) · %APPDATA%\Claude\claude_desktop_config.json (Windows)
Replace API_KEY with your own key.
Already have an "mcpServers" section in your config? Just add the server entry inside it.
Discovery, routing, credentials, tool scoping and execution logs all happen at the gateway→connections stay ACTIVE with no work from you
Akta.pro MCP runs through a gateway that holds the credentials, scopes the access and records every call.
Managed auth, hosted MCP servers, and every Akta.pro MCP tool your agent needs.
Free to start.