getregdata
This server provides 29 tools for accessing structured public business registry data across 11 jurisdictions, enabling KYC/AML compliance, credit-risk monitoring, due diligence, and B2B research.
Discovery & Introspection
List all available registry tools (
regdata_catalog) and fetch live input schemas for any tool (regdata_describe)
KYC / AML & Beneficial Ownership
Verify beneficial owners in Poland (CRBR) and Slovakia (RPVS, with PEP flag)
Retrieve full Polish KRS board members & shareholders
Screen Polish Sejm members as PEPs
Run cross-border adverse media screening for any person or company
Insolvency & Credit Risk
Search Polish KRZ, MSiG, Austrian Ediktsdatei, German Insolvenzbekanntmachungen, Czech ISIR, and Spain's Registro Público Concursal for bankruptcy, restructuring, and enforcement proceedings
Company Data & KYB
Poland: REGON/GUS master data, KRS financial statements (balance sheets, P&L)
Germany: Handelsregister (officers, capital, legal form)
Belgium: KBO/BCE (directors, VAT details)
France: Societe.com (directors, financials, shareholders, subsidiaries)
Italy: Registro Imprese (company profiles, PEC email) + PEC/SDI code lookup by VAT
Spain: Registro Mercantil directory + BORME gazette (incorporations, appointments, dissolutions)
Austria: WKO business directory (620,000+ businesses with trade licenses)
California: Secretary of State entity status and registered agent
UAE: ADGM public register
Property Due Diligence
Extract Polish EKW land registry data: ownership, mortgages, and easements
Search California UCC lien filings for debtors and secured parties
Compliance & ESG
Search Polish KNF registry for licensed financial institutions
Search Polish BDO waste registry for environmental/waste management permits
Search Polish UOKiK for court-banned abusive contract clauses
Lead Generation & Prospecting
Build prospect lists from Polish REGON premises by region/industry
Scrape Austrian WKO businesses with contact details
Provides access to EU public tenders and contract awards from the TED (Tenders Electronic Daily) database, enabling searching for procurement opportunities and awarded contracts.
getregdata - Business Registry Research Skills for AI Agents
Installable agent skills - packaged, repeatable workflows - for KYC/AML, credit-risk, due-diligence and B2B research over public business registry data. Official registries across Europe, the United States, the UAE, Africa and Latin America, plus cross-border adverse-media screening. Each skill turns official public registries into a process your agent can run on demand. Built on Apify actors for reliable, scalable access.
Checking a Polish company? Start with Poland KYB Risk Check. One NIP or KRS in, one verdict out - identity, beneficial owners and insolvency screened against the company and every beneficial owner. Everything below is the depth behind that answer, and the way to run the same jobs elsewhere.
Install
As Claude Code / agent skills:
npx skills add Nolpak14/getregdata -g -yAs a local MCP server (Claude Desktop, Claude Code, Cursor, Cline, Windsurf - every registry as a tool, with full input schemas):
{ "mcpServers": { "getregdata": { "command": "npx", "args": ["-y", "getregdata-mcp"], "env": { "APIFY_TOKEN": "apify_api_xxxxx" }, "timeout": 600000 } } }As a hosted MCP server - no install (claude.ai web, ChatGPT developer mode, Gemini, any remote MCP client): connect Apify's hosted MCP endpoint with OAuth, preloaded with regdata registry tools:
https://mcp.apify.com/?actors=regdata/crbr-beneficial-owners-scraper,regdata/krz-debtor-scraper,regdata/germany-handelsregister-scraper,regdata/poland-krs-financial-scraper,regdata/adverse-media-screenerSwap in any regdata actor - or use plain https://mcp.apify.com and let the agent discover them with search-actors. Billing goes to your own Apify account either way.
See mcp/ for the server, tool list, and per-client config.
Related MCP server: Bizfile MCP
Why this exists
European business registries are public, but they are fragmented and rarely offer a clean API: data is spread across separate portals and formats, returned as PDFs or partial fields, and often has to be joined by hand across several official sources. These skills - and the actors behind them - give you consistent, structured access, and package the common jobs (KYC checks, insolvency monitoring, due diligence, lead generation) into workflows your agent can run end to end.
Workflows you can build
These skills are designed to be wired into recurring processes, not one-off lookups:
KYC / onboarding check (
regdata-kyc-aml) - resolve a company's beneficial owners and verify licensing as a repeatable onboarding step.Insolvency & credit-risk watchlist (
regdata-credit-risk) - monitor counterparties for bankruptcy, restructuring and enforcement proceedings on a schedule (add Austria for cross-border coverage).New-incorporation lead feed (
regdata-lead-gen) - a daily feed of newly registered companies and officer changes for B2B prospecting.Property due-diligence check (
regdata-property) - verify ownership and mortgages as a standard pre-deal check.Contract / ESG compliance audit (
regdata-compliance) - screen terms against prohibited clauses and verify environmental registrations.
Each skill ships the analysis framework and checklists; you supply the trigger (a cron, an inbound lead, an onboarding event) and the agent runs the workflow.
Quick Start
Python
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
# Check beneficial owners for a Polish company (CRBR)
run = client.actor("regdata/crbr-beneficial-owners-scraper").call(
run_input={"nip": "6770065406"} # Comarch S.A.; batch via "queries": [{"nip": ...}]
)
items = client.dataset(run["defaultDatasetId"]).list_items().items
for item in items:
for owner in item.get("beneficialOwners", []):
name = f"{owner.get('firstName','')} {owner.get('lastName','')}".strip()
control = (owner.get("entitlements") or [{}])[0].get("natureOfControl", "")
print(f"{item.get('name')}: {name} - {control}")JavaScript
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
// Check if an Austrian company is insolvent (Ediktsdatei)
const run = await client.actor('regdata/austria-ediktsdatei-scraper').call({
searchQuery: 'Alpenbau GmbH',
maxResults: 10
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Found ${items.length} insolvency records`);
items.forEach(item => console.log(`${item.debtorName} - ${item.proceedingType}`));Get your API token: Apify Console - new accounts include $5 free credits.
One prompt in your agent - "Run a KYC check on NIP 6770065406" - and the regdata-kyc-aml skill resolves the company's beneficial owners, scores the ownership, and flags anything for enhanced due diligence.
More examples: examples/python/ | examples/javascript/
Claude Code Skills
Skills that let Claude Code (and Copilot, Cline, Cursor, Codex) interact with every actor - plus free public-API lookups that need no Apify token.
Workflow skills (the compliance/research frameworks, backed by the paid actors):
Skill | Use Case |
| Router - identifies your need and recommends the right skill |
| KYC/AML/KYB compliance, entity verification, beneficial owners |
| Insolvency monitoring, credit risk, financial analysis |
| Property due diligence, ownership verification, mortgages |
| Consumer protection audits, ESG/environmental compliance |
| B2B prospecting, decision-maker discovery, market research |
Free registry skills (query official public APIs directly - no Apify token, no per-result cost):
Skill | Source | What You Get (free) |
| UK Companies House API | Company profile, officers, PSC (beneficial owners), filings |
| US SEC EDGAR | Filings, submissions, XBRL financials for SEC-registered issuers |
| Brønnøysundregistrene (data.brreg.no) | Norwegian companies, roles/board, bankruptcy flag |
| api.gouv.fr (INSEE/INPI) | French companies by name/SIREN/director, identity + dirigeants |
| Zefix (Swiss federal index) | Swiss companies, UID/CHE number, status, SHAB publications |
| CVR (Erhvervsstyrelsen) | Danish companies, CVR number, industry, management |
| PRH open data (YTJ + XBRL + notices) | Finnish companies by name/Y-tunnus, forms, NACE, addresses, liquidation flag, digital financial statements, registered notifications |
| ABN Lookup (ABR) | Australian entities by ABN/ACN/name, status, GST |
| gBizINFO | Japanese companies by name/corporate number, plus subsidies/procurement |
| NZBN API | New Zealand entities by NZBN/name, roles, industry |
| CRO Open Services | Irish companies, status, filings (free key + CC-BY bulk) |
| GEMI OpenData API | Greek companies by name/GEMI number/AFM |
| Sudski registar OPEN API | Croatian companies by OIB/MBS (OAuth, free registration) |
| data.gov.lv | Latvian companies, officers, and open beneficial owners (UBO) |
| Registru centras (Spinta) | Lithuanian companies by name/code, mgmt, financials |
| data.gov.il | Israeli companies by name/number, status, purpose |
| BrasilAPI (Receita Federal) | Brazilian companies by CNPJ, incl. QSA partner list |
| DART (FSS) | Korean listed-company profiles and financial statements |
| data.gov.sg | Singapore entities by name/UEN (identity) |
| GLEIF API | Global LEI, local registry ID, parent/child corporate structure |
| EU VIES + EOS | Validate any EU VAT (and EORI) number + consultation number |
| OFAC / EU / UK / UN lists | Sanctions and PEP screening for a name or entity |
| SAM.gov | US federal debarment / exclusions screening |
| CourtListener | US litigation / court-record search (adverse-history DD) |
| INEGI DENUE | Mexican businesses by name/activity/location (directory) |
| VietQR (GDT data) | Vietnamese companies by tax code (MST) |
| ANAF + ONRC | Romanian companies by CUI (identity, reg number, CAEN, VAT) |
| DBD OpenAPI | Thai companies by 13-digit juristic ID |
| data.gov.hk | Hong Kong live local companies by name/BRN (name, address, type) |
| EU TED | EU public tenders + contract awards (who won EU contracts) |
| USAspending | US federal contracts/grants a company has received |
| apis.net.pe (SUNAT data) | Peruvian companies by RUC (name, status, address) |
| ICIJ | Offshore Leaks / Panama-Pandora Papers red-flag check (not proof) |
| EU Transparency Register | Does a company lobby the EU (influence/ESG DD) |
| EU FTS | Which EU grants/direct funding an org has received |
| World Bank | World Bank-financed contract awards + projects a company won |
| CR Hacienda | Costa Rican companies by cedula juridica (name, tax status, activity) |
| DGII | Dominican companies by RNC/name (national taxpayer registry) |
The free skills are the front door - they answer the easy lookups for free and drive adoption; the paid actors are the upsell for jurisdictions with no free API (Poland, Germany, Spain, Italy, ...) and for depth the free sources do not provide (beneficial owners, financials, insolvency, court filings).
Then in Claude Code: "Run a KYC check on Polish company NIP 6770065406" or "Look up UK company 00445790" - the skill handles the rest.
Actor Catalog
Per-result pricing is shown on each actor's Apify Store page - see Pricing below.
Poland
Actor | Registry | What You Get |
REGON + CRBR + KRZ | Start here. One NIP or KRS returns identity, beneficial owners and insolvency screened against the company and every owner, as a single verdict. Incomplete checks are not billed. | |
eKRS | Financial statements - balance sheets, P&L, assets | |
EKW | Property ownership, mortgages and easements | |
CRBR | Beneficial owners (UBO) for KYC/AML | |
KRZ | Bankruptcy, restructuring, enforcement proceedings | |
KRS | Board members and shareholders (structured, GDPR-compliant) | |
KNF | Licensed payment, e-money and lending institutions | |
MSiG | Bankruptcy, restructuring and liquidation notices | |
UOKiK | Court-ruled prohibited contract clauses | |
BDO | Waste-management entity registration verification | |
GUS REGON | Official company master data - no API key needed | |
GUS REGON | Site-level / local-unit (jednostki lokalne) records for prospecting | |
Sejm | Politically-exposed persons (PEP) for KYC/AML screening |
Spain
Actor | Registry | What You Get |
BORME | Incorporations, officer appointments, capital changes, dissolutions | |
Registro Mercantil | NIF, officers, CNAE codes, legal form, IRUS, EUID | |
Registro Publico Concursal | Insolvency parties and their roles (debtor, administrator, disqualified) |
Austria
Actor | Registry | What You Get |
Ediktsdatei | Austrian insolvency and court publications | |
WKO | Austrian businesses with contact details and trade licenses |
Germany
Actor | Registry | What You Get |
Handelsregister | Company KYB - registered details, officers, capital | |
Insolvenzbekanntmachungen | German insolvency announcements by company and date |
France
Actor | Registry | What You Get |
Societe.com | SIREN, directors, financials, shareholders, subsidiaries, director networks |
Italy
Actor | Registry | What You Get |
Registro Imprese | Full company profile by name or P.IVA (VAT), incl. PEC | |
INI-PEC | Certified email (PEC) and SDI code by VAT - bulk lookup |
Belgium
Actor | Registry | What You Get |
KBO/BCE | Company data, directors and VAT |
Czechia
Actor | Registry | What You Get |
ISIR | Czech insolvency register - debtor, case, court |
Slovakia
Actor | Registry | What You Get |
RPVS | Beneficial owners (UBO) with PEP flag - "the CRBR of Slovakia" |
United States
Actor | Registry | What You Get |
California SoS | Business entity status and registered agent | |
California UCC | UCC liens - debtors and secured parties |
UAE
Actor | Registry | What You Get |
ADGM | Abu Dhabi Global Market company data |
Cyprus
Actor | Registry | What You Get |
DRCOR | Company identity and status, directors & secretary, registered office |
Ireland
Actor | Registry | What You Get |
CRO (CORE) | Company identity, status, incorporation date, registered address and email |
Portugal
Actor | Registry | What You Get |
Publicações MJ | Published corporate acts - incorporations, changes, appointments, dissolutions |
Nigeria
Actor | Registry | What You Get |
CAC | Company / business-name / trustees identity, classification, status |
Colombia
Actor | Registry | What You Get |
RUES | Company & non-profit identity, chamber of commerce, legal form, status |
Cross-border
Actor | Source | What You Get |
News / web | KYC/AML adverse-media (negative news) check for a name or company |
Pricing
Plan | Credits included | Typical coverage |
Free | $5/month | 600-1,600 checks depending on actor |
Starter ($49/mo) | $49 platform credits | ~6,000-16,000 checks |
Scale ($499/mo) | $499 platform credits | ~60,000+ checks |
All actors are pay-per-result (from ~$0.003/result depending on actor and tier). No per-actor subscription. Unused credits roll over. Each actor's Apify Store page shows its current per-result price.
Authentication
# Set token in environment
export APIFY_TOKEN=apify_api_xxxxx
# Or pass directly
client = ApifyClient("apify_api_xxxxx")Get your token: Apify Console > Settings > Integrations
All actors
License
MIT
Available Tools
38 toolsregdata_adverse_mediaA
Adverse Media Screener - KYC/AML Negative News Check. Screen a person or company for adverse media (negative news) for KYC/AML and due diligence. Returns categorized, LLM-classified hits - fraud, corruption, sanctions, money laundering and more - with the entity's role, a severity score and source provenance. False positives filtered out. Advanced fields beyond this schema are also accepted (regdata_describe lists them).
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | OpenRouter model id used for classification. Default is a cheap, accurate model. | deepseek/deepseek-chat |
| aliases | No | Alternative names / transliterations for the entity (only meaningful when screening a single entity). | |
| country | No | ISO country code or name to bias the search and aid disambiguation, e.g. "de", "Germany". | |
| maxHits | No | Maximum number of adverse hits to return per entity. 1-50. | |
| maxItems | No | Optional cap on billed dataset items returned. | |
| categories | No | If set, only return hits in these risk categories. Leave empty to return all. | |
| entityType | No | Whether the entities are people or companies (improves disambiguation). Leave on "auto" if mixed. | auto |
| entityNames | No | One or more person or company names to screen, e.g. ["Wirecard AG", "Jan Marsalek"]. Each entity is billed and returned as its own result. | |
| minSeverity | No | Only return hits at or above this severity. | low |
| serperApiKey | No | Optional. Search is included; provide your own Serper key only to bill search to your own account. | |
| openRouterApiKey | No | Optional. The LLM is included; provide your own OpenRouter key only to bill classification to your own account. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It mentions false positives are filtered out, returns classified hits with severity and provenance, and accepts advanced fields. It does not mention rate limits or authentication requirements beyond API keys.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a concise paragraph of 4 sentences, front-loaded with purpose. It could be slightly tighter but avoids fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 11 optional parameters and no output schema, the description covers the tool's purpose, output structure (categorized hits, severity, provenance), and links to regdata_describe for extended fields. It is sufficiently complete for a screening tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds no additional meaning beyond the schema's parameter descriptions, which are already detailed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it is an 'Adverse Media Screener - KYC/AML Negative News Check' and explains it screens a person or company for adverse media, returning categorized hits with entity role, severity score, and source provenance. This distinguishes it from sibling tools which are registry lookups.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for KYC/AML and due diligence but does not explicitly state when to use alternatives or when not to use this tool. The context of sibling names (registry tools) provides indirect differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
regdata_austria_ediktsdateiA
Austria Insolvency & Court Publications Scraper. Scrape Austrian insolvency data from the Ediktsdatei - bankruptcies, reorganizations, debt settlements, court auctions, and Firmenbuch announcements. Official court publications with no API alternative. Advanced fields beyond this schema are also accepted (regdata_describe lists them).
| Name | Required | Description | Default |
|---|---|---|---|
| court | No | Filter by court name (e.g. 'Handelsgericht Wien', 'Landesgericht Linz'). Leave empty for all courts. | Nach Gericht filtern. Leer lassen fur alle Gerichte. | |
| state | No | Filter by Austrian federal state. | Nach Bundesland filtern. | all |
| dateTo | No | Only return publications up to this date (YYYY-MM-DD). Default: today. | Nur Veroffentlichungen bis zu diesem Datum (JJJJ-MM-TT). | |
| dateFrom | No | Only return publications from this date onward (YYYY-MM-DD). Default: 30 days ago. | Nur Veroffentlichungen ab diesem Datum (JJJJ-MM-TT). | |
| maxItems | No | Optional cap on billed dataset items returned. | |
| entryType | No | Filter by entry type: 'initial' for new proceedings, 'changes' for updates, 'all' for both. | Ersteintrage, Anderungen, oder beides. | all |
| maxResults | No | Maximum number of results to return. Default: 100. Set to 0 for unlimited. | Maximale Anzahl der Ergebnisse. | |
| searchQuery | No | Name of the debtor or company to search for (minimum 3 characters). Partial match supported. | Name des Schuldners oder Unternehmens (mindestens 3 Zeichen). | |
| proceedingType | No | Type of insolvency proceeding to filter. 'all' returns all types. | Art des Insolvenzverfahrens. 'all' gibt alle Verfahrensarten zuruck. | all |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the tool is a scraper but fails to mention rate limits, authentication, caching, or limitations on date range or result counts.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (3 sentences) and front-loaded with purpose and key details. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
All 9 parameters are described in the schema, but no output schema exists. The description lacks details on behavior for edge cases (e.g., large date ranges, pagination) and does not fully compensate for missing annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description does not add extra meaning beyond the schema's parameter descriptions, except noting that advanced fields are available via regdata_describe.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as an Austria-specific insolvency and court publications scraper, listing specific data types and the source (Ediktsdatei). It distinguishes from sibling tools which target other jurisdictions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states there is no API alternative, implying scraping is necessary. It also references 'regdata_describe' for advanced fields, but does not explicitly state when not to use this tool or provide alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
regdata_bdo_waste_registryA
Poland BDO Waste Registry Scraper. Rejestr BDO - baza danych o odpadach. Search 674,000+ waste management entities by name or NIP. Returns BDO registry number, company name, NIP, and address (province, district, commune, city, street, postcode). Answers "is this company in the BDO register, and what is its BDO number?" - registration status, waste codes and permits are behind a BDO login and are not part of the public register. No API exists. ESG compliance, environmental due diligence. Gospodarka odpadami. Advanced fields beyond this schema are also accepted (regdata_describe lists them).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search by company name, NIP, NIP EU, or BDO registry number. | |
| maxItems | No | Optional cap on billed dataset items returned. | |
| province | No | Filter by province. | |
| maxResults | No | Maximum entities to return. The registry serves 50 per page and the actor pages through until it reaches this limit or runs out of matches. Default: 100. Set to 0 to return every match. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It clearly identifies the tool as a scraper that reads from a public register, and specifies limitations (no API, no login access). It could explicitly state it is read-only, but the context implies safe, non-destructive use.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the key action and resource. It efficiently packs purpose, return data, limitations, and a pointer to additional fields. While slightly verbose, it avoids redundancy and each sentence serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 4 parameters and no output schema, the description covers purpose, data returned, limitations, and parameter behavior (via schema). It explains pagination in maxResults and provides enough context for an agent to decide when to use it. Lacks explicit description of error cases or empty results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3. The description adds value by contextualizing the search query (674,000+ entities by name/NIP) and noting that advanced fields are accepted via regdata_describe. This goes beyond the schema's definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description precisely states the tool searches the Poland BDO Waste Registry by name or NIP, returning specific fields (BDO number, company name, NIP, address). It explicitly answers the question 'is this company in the BDO register?' distinguishing it from other Polish registry tools listed as siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description tells when to use (checking BDO registration for ESG/due diligence) and explicitly states what NOT to use it for (waste codes/permits are behind login). It also directs to regdata_describe for advanced fields. However, it does not contrast with specific sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
regdata_belgium_kbo_companyA
Belgium KBO/BCE Company Scraper - Directors & VAT. Scrape Belgium's KBO/BCE registry from the official public search: company identity, status, legal form, address, NACEBEL activity codes and NAMED directors/managers. Lookup by enterprise/VAT number or company name. No API key. Advanced fields beyond this schema are also accepted (regdata_describe lists them).
| Name | Required | Description | Default |
|---|---|---|---|
| language | No | Language of the registry labels/descriptions (NACEBEL activity descriptions, status text). The data itself is identical across languages. | en |
| maxItems | No | Optional cap on billed dataset items returned. | |
| activeOnly | No | When searching by name, return only active (non-ceased) entities. Ignored in byNumber mode. | |
| maxResults | No | Maximum number of company records to extract. 0 means no limit. Useful to cap broad name searches. | |
| searchMode | No | How to look up companies. "byNumber" fetches exact companies by enterprise/VAT number (most precise, ideal for KYC/KYB enrichment). "byName" runs the official phonetic name search and then fetches each match. | byNumber |
| searchQuery | No | Company name to search for (used when searchMode = byName). Uses the registry's phonetic search, so minor spelling differences still match. Add a place or legal form to narrow very common names. | |
| minIntervalMs | No | Polite delay between requests to the registry. Lower is faster but less courteous; 400ms is a safe default. | |
| enterpriseNumbers | No | Belgian enterprise numbers or VAT numbers to look up (used when searchMode = byNumber). Any common format works: "0417.497.106", "0417497106" or "BE0417497106". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral traits. It mentions that it scrapes from the official public search, requires no API key, and includes a polite delay parameter. However, it lacks details on rate limits, caching, or whether it modifies data, leaving some gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused paragraph. It front-loads the tool's purpose, lists key data fields, then explains lookup methods and extras. Every sentence contributes information; there is no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 8 parameters with full schema descriptions and no output schema, the description adequately covers purpose, usage, and parameter intent. It could be improved by mentioning the output format or structure, but it lists the types of data returned and references advanced fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 8 parameters have schema descriptions (100% coverage), so the description adds marginal value. It does provide useful context such as phonetic search behavior and the purpose of minIntervalMs, but the schema already covers the basics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool scrapes Belgium's KBO/BCE registry and lists specific data fields (identity, status, legal form, address, activity codes, directors). It distinguishes from siblings by specifying Belgium, making it unique among country-specific tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains lookup by enterprise/VAT number or company name, and mentions two search modes (byNumber, byName). It references regdata_describe for advanced fields, but does not explicitly state when not to use this tool or provide alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
regdata_borme_corporate_actsB
Spain BORME Corporate Acts Parser. Parse daily BORME (Boletin Oficial del Registro Mercantil) Section A PDFs into structured corporate acts - company incorporations, officer appointments, capital changes, dissolutions, and more. Advanced fields beyond this schema are also accepted (regdata_describe lists them).
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Specific date to fetch in YYYY-MM-DD format. Defaults to yesterday if no date or date range is provided. BORME publishes on business days only. | |
| dateTo | No | End of date range (YYYY-MM-DD, inclusive). Use with dateFrom for multi-day extraction. | |
| actTypes | No | Filter by act types (e.g. ["Nombramientos", "Constitucion"]). Leave empty for all act types. Common types: Nombramientos, Ceses/Dimisiones, Constitucion, Disolucion, Ampliacion de capital, Cambio de domicilio social, Modificaciones estatutarias, Reelecciones, Revocaciones. | |
| dateFrom | No | Start of date range (YYYY-MM-DD). Use with dateTo for multi-day extraction. Maximum recommended range: 5 days per run. | |
| maxItems | No | Optional cap on billed dataset items returned. | |
| provinces | No | Filter by province names (e.g. ["MADRID", "BARCELONA"]). Leave empty for all provinces. Case-insensitive matching. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Mentions parsing and advanced fields, but does not disclose safety traits (e.g., idempotency, side effects, rate limits) or potential issues like PDF format changes. For a read-like operation, more transparency expected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences cover purpose and advanced fields. No fluff, but could be slightly more structured (e.g., separating usage from features). Overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Explains purpose and parameter usage, but lacks details on output format, result structure, pagination, or error handling. Given no output schema, more completeness would be beneficial. Adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (all parameters described). Description adds minimal value beyond schema: notes advanced fields accepted via regdata_describe. Baseline 3 is appropriate since schema already documents parameters well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool parses Spanish BORME Section A PDFs into structured corporate acts, listing specific examples (incorporations, appointments, etc.). This is a specific verb+resource and distinguishes from country-specific sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides context that it processes daily PDFs, but no explicit when-to-use or when-not-to-use guidance. Alternatives are implied by sibling tool names (other countries), but no direct comparison or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
regdata_california_sos_businessA
California SoS Business Scraper - Agent & Status. Scrape the California Secretary of State business registry (bizfileOnline): entity name, number, status, standing, type, formation date and registered agent. Search by name or entity number. The registry returns at most 500 matches for a term - a list that hits that ceiling is reported as INCOMPLETE, so a missing entity is not proof it is unregistered; narrow the term and re-run. No API key needed. Advanced fields beyond this schema are also accepted (regdata_describe lists them).
| Name | Required | Description | Default |
|---|---|---|---|
| maxItems | No | Optional cap on billed dataset items returned. | |
| searchQueries | Yes | Company names or entity/file numbers to look up in the California Secretary of State business registry. Each query returns all matching entities. | |
| maxResultsPerQuery | No | Maximum number of entities to keep per query (default 50 to avoid surprise charges on broad searches). Set 0 for no limit (all matches, typically up to ~500 per search). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Given no annotations, the description carries full burden. It discloses the 500-match limit, incomplete result reporting, and that no API key is required. However, it omits details on rate limits, error handling, or the format of returned data, leaving some behavioral aspects undisclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—two sentences plus two brief warnings—with all information front-loaded. No redundant words; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 3 parameters and no output schema, the description covers purpose, input, output fields, key behavioral caveats, authentication needs, and extensibility. It lacks details on return format and error handling, but the provided information is sufficient for an AI agent to use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with parameter descriptions. The main description adds value by explaining that searchQueries can include entity numbers, that maxResultsPerQuery has a default of 50 to avoid surprise charges, and that additional parameters beyond the schema are accepted (via regdata_describe). This provides meaningful context beyond the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as a scraper for the California Secretary of State business registry, listing specific data fields (entity name, number, status, etc.) and search methods. This distinguishes it from sibling tools focused on other jurisdictions or registries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains how to search (by name or entity number) and warns about the 500-match limit, advising users to narrow terms if results are incomplete. It also mentions no API key is needed and points to regdata_describe for advanced fields. However, it does not explicitly contrast with other California-specific siblings (e.g., regdata_california_ucc_lien), slightly reducing guidance on alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
regdata_california_ucc_lienA
California UCC Lien Search - Debtors & Secured Parties. Search the California Secretary of State UCC filing index (bizfileOnline) by debtor or secured-party name. Get filing number, UCC type, status, filing & lapse dates, debtors and secured parties. The registry rejects a term matching more than 1,000 filings as "too broad" - that refusal is reported as such and is NOT "no liens"; narrow the debtor name and re-run. No API key needed. Advanced fields beyond this schema are also accepted (regdata_describe lists them).
| Name | Required | Description | Default |
|---|---|---|---|
| filedTo | No | Keep only filings on or before this date (YYYY-MM-DD). | |
| maxItems | No | Optional cap on billed dataset items returned. | |
| filedFrom | No | Keep only filings on or after this date (YYYY-MM-DD). | |
| activeOnly | No | Keep only filings whose status is Active (drop Lapsed / terminated filings). | |
| searchQueries | Yes | Debtor or secured-party names to look up in the California SoS UCC filing index. The search is a contains-match across both debtor and secured-party names. Use a full, specific name - a term matching more than 1,000 filings is rejected by the registry. | |
| maxResultsPerQuery | No | Maximum number of filings to keep per query after filtering (default 50 to avoid surprise charges on broad searches). Set 0 for no limit (all matches, up to the registry's 1,000 cap). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that the registry rejects searches matching >1000 filings, reports refusal distinctly from 'no liens', and notes that advanced fields beyond schema are accepted. However, it does not explicitly state that the tool is read-only or mention authorization/rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the tool's purpose and resource. Every sentence adds value: purpose, returned data, error handling guidance, and extensibility. No redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 6 parameters, no output schema, and sibling tools, the description covers purpose, parameter hints, error behavior, and additional parameter extensibility. It mentions data returned but could explicitly state it returns list results. Overall fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3. The description adds significant meaning beyond schema for 'searchQueries' (contains-match, name specificity warning) and 'maxResultsPerQuery' (default 50 to avoid surprise charges, set 0 for no limit). Other parameters like 'filedTo' and 'filedFrom' are adequately explained in schema and description adds little.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches the California Secretary of State UCC filing index by debtor or secured-party name and lists returned data (filing number, type, status, dates, parties). This distinguishes it from sibling tools like regdata_california_sos_business, which searches business entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives. It provides advice on narrowing broad searches and mentions no API key needed, but lacks explicit context on tool selection among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
regdata_catalogA
List the getregdata business-registry tools (KYC/AML, credit-risk, due-diligence, B2B) across 16 jurisdictions, with each tool name and what it returns. For a Polish company, prefer regdata_poland_kyb_check: one call takes a NIP or KRS and returns a complete KYB verdict (identity + beneficial owners + insolvency screened against the company and every owner), instead of chaining several registry tools yourself. Use this catalog to find the right single-registry tool for other jurisdictions, or when you need one specific source in depth.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It accurately describes the read-only nature of listing tools and what the output includes (names and return descriptions). No contradictions or hidden behaviors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is two sentences, but the second sentence is somewhat long. However, it is well-structured, front-loaded with purpose, and each part earns its place. Minor redundancy could be tightened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and no output schema, the description is fully complete. It explains the catalog function, provides practical usage guidance, and covers all needed context for this simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has zero parameters, so schema coverage is 100%. No parameter descriptions needed; baseline 4 applies since description does not need to add parameter information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all getregdata business-registry tools across 16 jurisdictions with tool names and return descriptions. It distinguishes itself from sibling tools by being a catalog, and provides a specific use-case example for Poland.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use this tool (to find the right single-registry tool for other jurisdictions) and when to prefer a sibling (regdata_poland_kyb_check for Polish companies), with a clear rationale for avoiding chaining.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
regdata_colombia_ruesA
Colombia RUES Company Registry Scraper. Search the official Colombian RUES register by company name, NIT or matricula. Returns company and non-profit (RM and ESAL) identity, chamber of commerce, legal form and registration status. A verified "not found in the register" is a real answer. Advanced fields beyond this schema are also accepted (regdata_describe lists them).
| Name | Required | Description | Default |
|---|---|---|---|
| nits | No | One or more Colombian NITs, each looked up separately. Accepts any format: '890.903.938-8', '890903938-8' or '890903938'. The verification (check) digit is optional and is not used for matching. A NIT lookup returns the entity and its registered branches across chambers of commerce. | |
| maxItems | No | Optional cap on billed dataset items returned. | |
| register | No | Which register to search. 'Registro Mercantil' covers companies and business establishments. 'ESAL' covers non-profit entities - foundations, associations and NGOs. A single run searches one register; run twice to cover both. | RM |
| matriculas | No | One or more matrícula (mercantile registration) numbers, each looked up separately. | |
| companyNames | No | One or more names to search, each looked up separately. Matching is the register's own name search (minimum 2 characters). Broad terms hit the register's 500-result ceiling - see Max results per query. | |
| statusFilter | No | Keep only entities in these registry statuses. Leave empty to export every match, which is the safer default for screening - a CANCELADA (cancelled) counterparty is usually the finding you most want to see, not one to filter away. | |
| maxResultsPerQuery | No | Maximum records to export per query. The register itself returns at most 500 matches and provides no pagination, so 500 is the ceiling here too. To reach matches beyond it, narrow the name or search by NIT or matrícula. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds useful context: 'not found' is a real answer, each lookup is separate, and NIT lookups include branches. With no annotations, more could be expected (e.g., rate limits, cost, safety), so a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is reasonably concise and front-loaded with the purpose. It could be slightly more compact, but it is well-structured and informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and the tool's complexity (7 parameters), the description covers the main function, search keys, and return fields. It also mentions additional capabilities via regdata_describe, making it fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so each parameter already has a description. The main description adds some context (e.g., NIT format tolerance) but does not significantly enhance beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it searches the Colombian RUES register by name, NIT, or matricula, returning specific identity and registration fields. This distinguishes it from sibling tools which target other registries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells how to use the tool (search by various identifiers) and references regdata_describe for advanced fields. However, it does not provide explicit when-not scenarios or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
regdata_crbr_beneficial_ownersA
Poland CRBR Beneficial Owners Scraper. Automate Polish beneficial owner verification for KYC/AML onboarding. Search the official public registry by NIP or KRS to return structured UBO data: names, citizenship, control nature, ownership %. Pay-per-result, no subscription. Pairs with debtor and KNF checks. Advanced fields beyond this schema are also accepted (regdata_describe lists them).
| Name | Required | Description | Default |
|---|---|---|---|
| krs | No | KRS number of the company to search. | |
| nip | No | Polish Tax ID (NIP) of the company to search. For batch queries, use the 'queries' field instead. | |
| dateTo | No | End date (YYYY-MM-DD). Default: today. | |
| queries | No | List of queries for batch processing. Each query is an object with 'nip', 'krs', 'name', or 'pesel' field. Example: [{"nip": "6770065406"}, {"krs": "0000057567"}] | |
| dateFrom | No | Start date for historical data (YYYY-MM-DD). Default: 2019-10-13 (CRBR start date). Leave empty for full history. | |
| maxItems | No | Optional cap on billed dataset items returned. | |
| companyName | No | Company name to search (partial match). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behaviors. It mentions the read-only nature ('Search') and output fields (names, citizenship, control nature, ownership %), and notes a pay-per-result model. However, it does not discuss rate limits, error handling, authentication, or any destructive aspects. The description is adequate but lacks depth on behaviors beyond the basic read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is five sentences, each adding value. It front-loads the tool's purpose ('Poland CRBR Beneficial Owners Scraper'), then covers functionality, output, pricing, complementary tools, and extensibility. No wasted words; efficient and informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description covers the return fields well. It mentions the tool's role in KYC/AML, paired checks, and extensibility. It lacks details on pagination, error handling, or typical response size, but overall provides a solid understanding of the tool's capabilities and context among many sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description mentions searching by NIP or KRS, which aligns with schema parameters, but does not add significant meaning beyond the schema for other parameters like dateFrom, dateTo, maxItems, companyName, or queries. The mention of 'Advanced fields... regdata_describe lists them' provides some extra context but does not clarify individual parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches the Polish CRBR beneficial owner registry by NIP or KRS and returns structured UBO data (names, citizenship, control nature, ownership %). It distinguishes itself from siblings like regdata_polish_premises, regdata_polish_regon, and regdata_poland_kyb_check by focusing on beneficial owners for KYC/AML onboarding.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context for when to use: for Polish beneficial owner verification in KYC/AML onboarding. It mentions complementary tools (debtor and KNF checks) and notes it's pay-per-result with no subscription. However, it does not explicitly state when not to use or name alternative tools for similar purposes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
regdata_cyprus_drcorA
Cyprus DRCOR Company Registry Scraper. Look up Cyprus companies in the official DRCOR register by name or HE number. Returns company identity and status, directors and secretary, and registered office. A verified "not found in the register" is a real answer, not an error. Advanced fields beyond this schema are also accepted (regdata_describe lists them).
| Name | Required | Description | Default |
|---|---|---|---|
| language | No | Language for labels and values the register translates - organisation type, status and officer positions. Company names and addresses are returned exactly as the register holds them, which for older Cypriot files is Greek regardless of this setting. | en |
| maxItems | No | Optional cap on billed dataset items returned. | |
| maxResults | No | Maximum organisation records to export. A company that has traded under several names is listed once per former name in the register; those are merged into a single record here, with the former names kept on it, so you are never charged twice for the same company. | |
| searchType | No | How the company name is matched. 'Starts with' is the register's default and the most reliable. 'Sounds like' uses the register's own phonetic index, which is narrow - it will not behave like a general fuzzy search. | startsWith |
| companyName | No | Company or organisation name to search for. Matching is controlled by the Search type below. Example: 'HELLENIC BANK', 'EUROBANK'. | Όνομα εταιρείας ή οργανισμού. | |
| registrationNumbers | No | One or more Cyprus registration numbers, each looked up separately. Accepts any format: 'HE 6771', 'HE6771' or just '6771'. A bare number matches that number across EVERY organisation type (a limited company HE, a business name EE, an overseas company AE...), so include the letter prefix when you want just one type. | Αριθμοί εγγραφής, π.χ. 'ΗΕ 6771'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It adds behavioral context by stating that a 'not found in the register' is a valid response, not an error, and that advanced fields are accepted. However, it does not cover other important behaviors like rate limits, authentication, or idempotency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise: three sentences with no redundancy. It front-loads the purpose, then details returns, then adds a key behavioral note, and finally hints at advanced usage. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 6 parameters, no required fields, additional properties, and no output schema, the description is relatively complete. It explains the search scope, output fields, a critical behavioral nuance, and where to find extended parameters. Missing are examples or guidance on constructing queries, but overall adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the baseline is 3. The description adds value by mentioning that advanced fields beyond the schema are accepted and pointing to 'regdata_describe' for a list, but does not elaborate on the existing parameters beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool scrapes the Cyprus DRCOR register, specifies it looks up companies by name or HE number, and lists what it returns (identity, status, directors, secretary, registered office). This distinguishes it from the many other country-specific registry siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for Cyprus companies through the name and context, but does not explicitly mention when to use this tool versus alternatives like other country registries or when not to use it. It provides no guidance on exclusions or alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
regdata_czech_isir_insolvencyA
Czech ISIR Insolvency Register Search. Search the Czech insolvency register (ISIR) by company or debtor name, IČO or city. Get debtor name, IČO, case reference, court, proceeding status and the commercial-register cross-link. The register serves at most 400 rows per search and REFUSES a broader query outright - a refusal is reported as such and is NOT "no records". includeEnded defaults to true, which pulls in closed proceedings and makes a common surname more likely to be refused; set it false or add the IČO/city and re-run. No API key. Advanced fields beyond this schema are also accepted (regdata_describe lists them).
| Name | Required | Description | Default |
|---|---|---|---|
| ico | No | One or more Czech IČO registration numbers to look up (e.g. "41035623"). | |
| city | No | Optional city (obec) to narrow the search. | |
| name | No | The debtor to look up: a company name or a person's surname. Matched against the ISIR debtor index. Leave empty when using a watchlist. | |
| maxItems | No | Optional cap on billed dataset items returned. | |
| firstName | No | Optional first name to narrow an individual-debtor search. | |
| watchlist | No | A list of company names or surnames to check in one run - ideal on a schedule to monitor your counterparties for new Czech insolvencies. Overrides "name". | |
| maxResults | No | Maximum debtor records to export across all queries (the register returns up to 400 per query). | |
| includeEnded | No | On (default): include closed/ended insolvency proceedings as well as active ones. Off: only currently-active proceedings. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It reveals that the register refuses broad queries outright, that refusals are reported distinctly from 'no records,' and explains the impact of includeEnded on refusal likelihood. It also notes acceptance of advanced fields and no API key requirement, though it does not detail rate limits or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively concise for the amount of information conveyed, front-loading the main purpose and then covering limitations and tips. It could be slightly more structured but remains readable and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description lists key return fields and warns about refusal behavior. It covers important usage nuances (includeEnded, watchlist, maxResults) and mentions advanced fields via regdata_describe. It does not detail the return format or error handling, but is fairly complete for a data search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, but the description adds significant value beyond the schema by clarifying behavioral aspects: includeEnded's default effect, watchlist overriding 'name' parameter, and maxResults capping export. It also mentions additional accepted properties.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches the Czech ISIR Insolvency Register by company name, debtor name, IČO, or city, and lists returned fields (debtor name, IČO, case reference, court, status, cross-link). It differentiates from sibling tools (various country-specific registers) by specifying jurisdiction and function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides practical guidance on query limits (400 rows), behavior of includeEnded flag (default true causing potential refusals), and suggests narrowing with IČO/city or setting includeEnded false. It does not explicitly state when not to use, but the limitations are well explained.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
regdata_describeA
Fetch the live input schema + description for one actor so you can construct a correct call. Provide either the actor slug or its tool name.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | Actor slug, e.g. crbr-beneficial-owners-scraper | |
| tool | No | Tool name, e.g. regdata_crbr_beneficial_owners |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, description carries full burden. Discloses read-only fetch behavior, no side effects mentioned. Simple operation, so transparency is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words. Front-loads purpose and usage. Every sentence serves a clear function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but description mentions returning 'live input schema + description'. For a simple schema-fetcher, this is sufficient context. Could specify output format more, but adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% coverage with descriptions. Tool description adds explicit guidance that either slug or tool should be provided (mutual exclusivity), which schema does not state. Adds value beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it fetches the live input schema and description for an actor, distinguishing it from sibling data-fetching tools. Verb 'Fetch' and specific resource 'live input schema + description for one actor' provide precise purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage before calling other tools to construct correct calls, and instructs to provide either slug or tool name. Lacks explicit when-not or alternatives, but sufficient given meta-tool nature.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
regdata_ekw_ksiegi_wieczysteA
Poland EKW Land Registry Scraper Ksiegi Wieczyste. Extract property data from Poland's Electronic Land Registry (Elektroniczne Ksiegi Wieczyste): ownership, mortgages, restrictions, property details. Keyless - no proxy or API key needed. For property due diligence and credit-risk checks. Pay per result. Advanced fields beyond this schema are also accepted (regdata_describe lists them).
| Name | Required | Description | Default |
|---|---|---|---|
| maxItems | No | Optional cap on billed dataset items returned. | |
| sections | No | Which sections (działy) to extract. Default: all. Options: 'IO' (property designation), 'ISp' (associated rights), 'II' (ownership), 'III' (restrictions/claims), 'IV' (mortgages). | |
| viewType | No | 'aktualna' = Current content (default, most common). 'zupelna' = Complete content with full history of all entries. 'dotychczasowa' = Current content in legacy format. | aktualna |
| kwNumbers | Yes | List of KW numbers to look up. Format: 'CODE/NUMBER/DIGIT' (e.g., 'WR1K/00094598/3'). The check digit (last part) is optional - it will be auto-calculated if omitted. You can also provide just 'CODE/NUMBER'. Note: users on the Apify Free plan get a preview allowance of 25 KW numbers per 30 days; upgrade to any paid Apify plan to run unlimited batches. | |
| includeRawHtml | No | Include the raw HTML of each section in the output (useful for custom parsing). | |
| maxConcurrency | No | How many KW numbers to process in parallel (1-5). Higher = faster batches. Default 5. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Given no annotations, the description covers key behaviors: authentication (keyless), cost model (pay per result), free plan allowance, and auto-calculation of check digit in kwNumbers. Does not disclose error handling for invalid entries or response format details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is reasonably concise and front-loaded with core purpose. Includes necessary details like parameter clarifications and plan limits, though some information (e.g., free plan note) is placed inside the kwNumbers description rather than in a separate section.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, parameters, and some usage context. However, without an output schema, the description does not explain return values or output structure. Missing details on error handling or what happens on invalid inputs, which are important for a scraping tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds value beyond schema descriptions: explains kwNumber format with auto-calc, describes viewType enum meanings, default sections, and maxConcurrency behavior. Provides context missing from schema (e.g., free plan limit).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as a scraper for Poland's Electronic Land Registry (EKW), specifying the extracted data types (ownership, mortgages, restrictions, property details) and the context (property due diligence, credit-risk checks). It differentiates from numerous sibling tools focused on other countries or registries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States the tool is keyless and for property due diligence/credit-risk checks, with pay-per-result pricing. Mentions free plan limits and upgrade for unlimited batches. Hints at an alternative for advanced fields (regdata_describe) but does not explicitly compare with other siblings or provide when-not-to-use scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
regdata_germany_handelsregisterC
Germany Handelsregister Scraper. Search the German Commercial Register (Handelsregister) by company name or register number. Extract company data, officers / managing directors (Geschäftsführer) with dates of birth, capital, legal form, seat, business purpose. No official API - structured JSON for KYC, KYB & due diligence. Advanced fields beyond this schema are also accepted (regdata_describe lists them).
| Name | Required | Description | Default |
|---|---|---|---|
| maxItems | No | Optional cap on billed dataset items returned. | |
| exactMatch | No | Match the exact company name (genaue Firmenbezeichnung) instead of keyword containment. Reduces noise for precise lookups. | |
| maxResults | No | Maximum number of matching companies to return structured data for (from the first results page). 1-30. | |
| searchQuery | No | Company name or keyword(s) to search for (Schlagwörter). E.g. "Zalando SE" or "BioNTech". | |
| registerNumber | No | Optional commercial register number to narrow the search, e.g. "215511" (HRB). Must be combined with a company name/keyword - the portal does not allow number-only searches. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It mentions 'No official API' and that advanced fields are accepted via regdata_describe, but lacks details on rate limits, pagination, data freshness, or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is relatively concise and front-loaded with purpose. It efficiently covers key points without excessive verbosity, though it could be slightly tighter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema; description partially covers return values by listing extracted fields. However, it lacks details on pagination, error handling, and usage limits, making it adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are well-documented in the schema. The description adds context about advanced fields being accepted, but does not elaborate on parameter usage beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches the German Commercial Register and extracts specific data like officers and capital. However, it does not explicitly differentiate from sibling tools like regdata_austria_ediktsdatei, relying on the tool name for country distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. No when-not scenarios or prerequisites mentioned. The description only states what the tool does, not when it's appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
regdata_germany_insolvencyA
Germany Insolvency Register Search (Insolvenzbekanntmachungen). Search Germany's official insolvency register (Insolvenzbekanntmachungen) by company or debtor name. Get court, case number, publication date, seat and the Handelsregister reference. When a term matches too many announcements the register declines to enumerate them - that "too many matches" state is reported as such and is NOT "no insolvencies"; narrow the query and re-run. No API key. Advanced fields beyond this schema are also accepted (regdata_describe lists them).
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | Optional city to narrow the search (matches the debtor's registered seat or place of residence). | |
| name | No | The debtor to look up: a company name (e.g. "Wirecard") or a person's surname. Matched as a contains-search across the official insolvency register. Leave empty when using a watchlist. | |
| state | No | Optional filter by German state - narrows the search and helps a broad term stay under the register's 1,000-match cap. Use a name ("Bayern", "Nordrhein-Westfalen") or a code ("BY", "NW"). | NO_CODE |
| dateTo | No | End of the publication-date window (YYYY-MM-DD). Defaults to today. | |
| subject | No | Optional filter by the type of decision within the proceeding. | NO_CODE |
| dateFrom | No | Start of the publication-date window (YYYY-MM-DD). Defaults to two weeks ago. For a one-off historical check, widen this - a targeted name search returns matches from any date. Broad terms over long windows may hit the 1,000-match cap. | |
| maxItems | No | Optional cap on billed dataset items returned. | |
| firstName | No | Optional first name, to narrow an individual-debtor search. | |
| watchlist | No | A list of company names or surnames to check in one run. Ideal for scheduled monitoring - run this Actor daily against your counterparties and get any new insolvency publications. Overrides the single "name" field when set. | |
| exactMatch | No | Off (default): contains-search - the term is matched anywhere in the name. On: match the term exactly as typed (you may include the portal wildcard * yourself). | |
| maxResults | No | Maximum publications to export across all queries in this run. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that the register returns 'too many matches' instead of results (differentiating from 'no insolvencies'), and notes that advanced fields beyond the schema are accepted. However, it omits details on data freshness, rate limits, or response format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single coherent paragraph that is front-loaded with purpose. It is clear and not excessively long, though it could benefit from bullet points or subheadings for readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 11 parameters and no output schema, the description covers key edge cases (too many matches, watchlist usage, default dates) and mentions additional accepted fields. It lacks explicit return structure details but is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, yet the description adds significant value: explains 'name' as contains-search, 'state' filter helps avoid cap, 'dateFrom' defaults, 'exactMatch' behavior, and 'watchlist' for bulk monitoring. This goes well beyond the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as a search of Germany's official insolvency register by debtor name, listing specific returned fields (court, case number, etc.). It is distinct from sibling tools like regdata_czech_isir_insolvency or regdata_spain_concursal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use the tool (for German insolvency searches) and provides guidance on handling the 'too many matches' scenario by narrowing queries. It also notes that no API key is required. However, it does not explicitly contrast with sibling tools for similar purposes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
regdata_ireland_croA
Ireland CRO Company Registry Scraper. Look up Irish companies in the official CRO register by name or CRO number. Returns identity, type, status, incorporation date, registered address and email. Directors/shareholders are paid CRO documents and not included. A verified "not found" is a real answer. Advanced fields beyond this schema are also accepted (regdata_describe lists them).
| Name | Required | Description | Default |
|---|---|---|---|
| maxItems | No | Optional cap on billed dataset items returned. | |
| companyNames | No | One or more company names to search, each looked up separately (min 2 characters). Partial names work. A broad name can hit the register's 50-result ceiling. | |
| statusFilter | No | Keep only companies whose status contains one of these words, e.g. 'Normal', 'Dissolved', 'Liquidation'. Leave empty to export every match - a Dissolved or Liquidation counterparty is usually the finding you most want to see. | |
| companyNumbers | No | One or more Irish CRO registration numbers, each looked up separately. Digits only, e.g. '104547'. | |
| maxResultsPerQuery | No | Maximum company records to export per query. The register returns at most 50 matches per search, so 50 is the ceiling. Fetching the full record for each match happens in the same run. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that directors/shareholders are not included (paid documents) and that 'not found' is an answer. It lacks details on rate limits or auth, but for a registry scraper this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with no redundant information. It front-loads the purpose and covers key details in two sentences plus a few clarifications. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description fully explains what is returned (identity, type, status, date, address, email) and what is not (directors/shareholders). It also notes advanced fields via regdata_describe. Complete for a registry lookup.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds context like 'A broad name can hit the register's 50-result ceiling' but does not significantly go beyond schema descriptions. Adequate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it is an 'Ireland CRO Company Registry Scraper' that looks up Irish companies by name or CRO number, and lists return fields. It distinguishes from sibling tools by specifying the Irish CRO register, which is unique among the siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides guidance on advanced fields via regdata_describe and clarifies that 'not found' is a valid answer. However, it does not explicitly compare with sibling tools or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
regdata_italy_pecA
Italy PEC Lookup - Certified Email & SDI Code by VAT. Resolve an Italian company's certified PEC email (domicilio digitale) and SDI e-invoicing code from a Partita IVA, Codice Fiscale or company name. For fatturazione elettronica, KYC and bulk enrichment. No official API. Advanced fields beyond this schema are also accepted (regdata_describe lists them).
| Name | Required | Description | Default |
|---|---|---|---|
| maxItems | No | Optional cap on billed dataset items returned. | |
| identifiers | Yes | One or more Italian VAT numbers (Partita IVA), Codici Fiscali, or company names. One result row per identifier. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, description adds value by disclosing 'No official API' and that advanced fields are accepted. It doesn't discuss side effects, but as a read-like lookup, the transparency is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences: first defines purpose, second lists use cases, third notes schema extensibility. No wasted words, front-loaded with key info.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but description specifies key outputs (PEC email, SDI code) and result structure. It also mentions advanced fields via another tool. Sufficient for a lookup tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, description still adds meaning: clarifies identifier types (VAT, CF, name) and output behavior ('One result row per identifier'). It also references 'regdata_describe' for advanced fields, enriching schema info.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool resolves Italian PEC email and SDI code from VAT, tax code, or company name. It distinguishes from siblings like 'regdata_italy_registro_imprese' by focusing on PEC/SDI lookups.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description mentions use cases: e-invoicing, KYC, bulk enrichment. It implies when to use (for Italian company digital data) but does not explicitly state when not to use or suggest alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
regdata_italy_registro_impreseA
Italy Registro Imprese Scraper - Company Data & PEC. Search Italy's official Registro Imprese (InfoCamere) by company name and extract free-tier company data: name, registered office, PEC (certified email), legal form, ATECO activity and business description. No official API - structured JSON. Advanced fields beyond this schema are also accepted (regdata_describe lists them).
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Company name (denominazione) or Italian VAT number (Partita IVA) to look up, e.g. "Ferrari S.p.A." or "00159560366". | |
| maxItems | No | Optional cap on billed dataset items returned. | |
| startUrls | No | Optional. Direct ufficiocamerale.it company-page URLs to scrape, skipping the name lookup. Use when you already have the page URLs. | |
| maxResults | No | Maximum number of matching companies to return for a name search (1-30). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description bears full responsibility. It discloses that the tool is a scraper without an official API ('No official API - structured JSON') and mentions that advanced fields are accepted, but it omits details on rate limits, error handling, data freshness, or what happens when a company is not found.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with an additional note, all front-loaded with the core purpose. No extraneous words; every sentence adds necessary context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a scraper with no output schema or annotations. The description lists returned fields and indicates JSON output, but does not specify response structure, pagination, or error behavior. For a simple data retrieval tool, it covers the essentials but could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema itself documents all parameters. The description adds value by noting that 'Advanced fields beyond this schema are also accepted (regdata_describe lists them)', but does not elaborate on param usage beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool is an Italy Registro Imprese scraper, specifies the search method (by company name), and lists the data fields extracted (name, registered office, PEC, legal form, ATECO, business description). It clearly distinguishes itself from sibling tools through the name and registry specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when an Italian company name or VAT is available, but does not explicitly state when to use this tool versus alternatives like regdata_italy_pec or other country-specific tools. No guidance on when not to use it, prerequisites, or limitations is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
regdata_knf_registryA
Poland KNF Financial Registry Scraper. Extract payment institutions, e-money issuers, credit intermediaries, lending companies & pawnbroking operators from 3 Polish KNF registries. Search by name, NIP, entity type. Bulk export 75,000+ entities. Structured JSON. No auth needed. Advanced fields beyond this schema are also accepted (regdata_describe lists them).
| Name | Required | Description | Default |
|---|---|---|---|
| nip | No | Search by Polish Tax Identification Number (NIP) — exact match | |
| name | No | Search by entity/company name (partial match, case-insensitive) | |
| maxItems | No | Optional cap on billed dataset items returned. | |
| registry | No | Which KNF registry to search. e-rup = payment/e-money institutions (~17k entities), rpkip = credit intermediaries & lending institutions (~58k entities), rdl = pawnbroking activities (~250 entities), all = search all three. | all |
| exportAll | No | Export all records from the selected registry. Ignores name/NIP/entityType filters. Use for bulk data extraction. | |
| entityType | No | Filter by entity type code. e-rup: PSD_PI, PSD_EMI, PSD_ENL, PSD_EPI@BP, PSD_EPI@MIP, PSD_AISP, PSD_AG, PSD_BR. rpkip: RPH, RPK, RHA, RIP. Leave empty for all types. | |
| maxResults | No | Maximum number of results to return. Default: 100. Set to 0 for unlimited (use with Export All for full registry dump). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must convey behavioral traits. It states 'No auth needed' and implies a read-only operation ('extract', 'search', 'export'). It mentions that additional fields are accepted, but does not disclose potential behaviors like rate limits, data freshness, or whether it modifies data. More explicit safety info would raise the score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with only 6 sentences that front-load the tool's purpose and key capabilities. Every sentence provides useful information without redundancy. It efficiently covers search, export, format, and advanced options.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 7 parameters and no output schema or annotations. The description covers essential aspects: purpose, search methods, export capability, output format (JSON), and a pointer to extended features. Missing details include pagination behavior, result size limits beyond maxResults, and potential performance considerations. However, for a scraper tool, it is fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already provides detailed parameter descriptions. The description adds context like 'Bulk export 75,000+ entities' and points to regdata_describe for advanced fields, which adds value but does not significantly elaborate on the existing schema definitions. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as a 'Poland KNF Financial Registry Scraper' and specifies the types of entities it extracts (payment institutions, e-money issuers, credit intermediaries, etc.) and search methods (name, NIP, entity type). It distinguishes itself from sibling tools, which are for other registries/countries, by focusing on Polish KNF registries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear guidance on when to use the tool: for searching Polish KNF registries, bulk export, and using structured JSON. It also mentions that advanced fields are available via regdata_describe. However, it lacks explicit instructions on when not to use this tool (e.g., for other countries) or alternatives, though this is implied by the sibling context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
regdata_krs_fullnamesA
Poland KRS Board Members & Shareholders Scraper. Extract full non-anonymized board member & shareholder names from Polish KRS (National Court Register). The official API censors names to "L******" - this actor downloads the public PDF extract with complete names, roles, and company metadata. Advanced fields beyond this schema are also accepted (regdata_describe lists them).
| Name | Required | Description | Default |
|---|---|---|---|
| maxItems | No | Optional cap on billed dataset items returned. | |
| krsNumbers | Yes | List of KRS numbers to look up. Each number will be padded to 10 digits automatically. | |
| extractType | No | Type of KRS extract to download. 'aktualny' = current state only (faster, smaller). 'pelny' = full history including former board members. | aktualny |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes that the tool downloads public PDF extracts and extracts names, roles, and company metadata. No annotations to contradict. Discloses it performs file retrieval/parsing beyond a simple API call, but lacks details on rate limits or auth requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first states purpose, second explains why this tool is needed (official API censors). Efficient and front-loaded with key info. Could be slightly more structured but overall well-sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but description covers return contents: 'complete names, roles, and company metadata'. Mentions advanced fields beyond schema. Adequately complete for a tool with 3 params and no nested objects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but description adds meaning: 'Each number will be padded to 10 digits automatically' for krsNumbers, and explains 'aktualny' vs 'pelny' extract types. Adds value beyond schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource: 'Extract full non-anonymized board member & shareholder names from Polish KRS'. Distinguishes from siblings like regdata_poland_krs_financial by focusing on board/shareholder data vs financial data, and notes it bypasses official API censorship.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clear context: use when you need complete names censored by official API. Mentions advanced fields via regdata_describe. No explicit when-not or alternatives for other Polish tools, but sibling differentiation is implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
regdata_krz_debtorA
Poland KRZ National Debtor Registry Scraper. Automate bankruptcy and restructuring checks against the official public debtor registry. Nine search modes cover companies, persons, sole traders, case signatures, proceedings, shareholders, and assets. The bankruptcyEstate mode returns the trustee's filed estate inventory (spis masy upadlosci) for a company's proceedings - real estate, movables, cash, property rights and receivables, each with the trustee's own valuation, quantity and status. Pass entityName and/or identifier (proceedings are resolved for you) or a proceedingId; estateInventoryPublished:false means the register reports zero assets for that proceeding - a verified zero, not a failed lookup. For distressed-asset sourcing and creditor recovery-prospect assessment. Build a credit-risk watchlist or insolvency workflow. Pay-per-result. Advanced fields beyond this schema are also accepted (regdata_describe lists them).
| Name | Required | Description | Default |
|---|---|---|---|
| dateTo | No | End date for announcement search (YYYY-MM-DD). Only used in announcements mode. | |
| dateFrom | No | Start date for announcement search (YYYY-MM-DD). Only used in announcements mode. | |
| maxItems | No | Optional cap on billed dataset items returned. | |
| entityName | No | Company name, business name, or advisor surname (partial match). Used for entity, soleTrader, announcements, shareholders, bankruptcyEstate, and advisors modes. | |
| identifier | No | Entity identifier: KRS (10 digits), NIP, REGON. For persons: PESEL or NIP. For advisors: license number. | |
| maxResults | No | Maximum number of results to return. Default: 100. Set to 0 for unlimited. | |
| searchMode | No | What to search for. 'entity' = companies by name/KRS/NIP. 'person' = natural persons by PESEL/NIP. 'soleTrader' = sole traders by name/identifier. 'signature' = by court case signature. 'announcements' = court announcements. 'shareholders' = partners in personal companies. 'bankruptcyEstate' = assets for sale from bankruptcy estates. 'advisors' = licensed restructuring advisors. 'proceedingDetails' = deep-dive into a specific proceeding. | entity |
| advisorCity | No | Filter restructuring advisors by city. Only used in advisors mode. | |
| proceedingId | No | Proceeding UUID (postepowanieId), as returned in the `proceedingId` field of an entity/person search. Used by searchMode 'proceedingDetails', and optionally by 'bankruptcyEstate' to read one specific estate. | |
| caseSignature | No | Court case signature in format: CODE/REPERTORY/NUMBER/YEAR (e.g., WA1M/GU/223/2021). Used for signature and announcements modes. | |
| disableSessionCache | No | Advanced. By default the actor caches the KRZ guest token between your own runs (the token lives ~10h) so repeated/monitoring runs skip the slow browser bootstrap and run faster. The cache is private to your account and self-healing (a stale token is detected and refreshed automatically). Turn this on only to force a fresh session every run for debugging. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description discloses pay-per-result model, session caching behavior (in parameter description), that proceedings are resolved automatically, and the meaning of estateInventoryPublished:false. It could mention error handling or rate limits, but overall provides substantial behavioral insight.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured paragraph that front-loads the main purpose and then details key features. It is informative without excessive verbosity, though slightly dense.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (11 params, no output schema), the description covers essential aspects: search modes, core parameter usage, and a key mode's output. It omits full output structure for all modes, but the provided detail suffices for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3. Description adds value by explaining mode semantics (e.g., bankruptcyEstate specifics) and how entityName/identifier interact. This enhances understanding beyond the schema's short descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly identifies the tool as a scraper for Poland KRZ National Debtor Registry, specifying it automates bankruptcy and restructuring checks. It lists nine search modes, making the purpose distinct from sibling tools that cover other registries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description provides use cases (distressed-asset sourcing, creditor recovery, credit-risk watchlist, insolvency workflow) and directs to regdata_describe for advanced fields. It does not explicitly contrast with siblings, but the unique registry focus makes usage context clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
regdata_msigB
Poland MSiG Court Gazette Scraper. Search Polish Court & Economic Gazette (Monitor Sądowy i Gospodarczy) for bankruptcy declarations, liquidation notices, restructuring proceedings, creditor calls. Full-text search across archive from 2001. Structured JSON output. Advanced fields beyond this schema are also accepted (regdata_describe lists them).
| Name | Required | Description | Default |
|---|---|---|---|
| krs | No | Search by KRS number (10 digits) | |
| nip | No | Search by NIP (Tax ID) | |
| dateTo | Yes | Publication date range end (YYYY-MM-DD). Required. | |
| dateFrom | Yes | Publication date range start (YYYY-MM-DD). Required. | |
| maxItems | No | Optional cap on billed dataset items returned. | |
| entityName | No | Search by entity/company name (partial match) | |
| maxResults | No | Maximum number of results to return. Default: 100. Set to 0 for unlimited. | |
| searchType | No | A = Announcements database (bankruptcy, liquidation, restructuring, court notices). B = KRS entries database (company registrations, changes — being phased out since Nov 2025). | A |
| textInBody | No | Full-text search in announcement content (max 1000 chars). Use for finding specific terms like 'upadłość', 'likwidacja', etc. | |
| fetchDetails | No | Fetch full announcement details (body text) for each result. Slower but returns complete content. If false, returns only list data (no body text). | |
| textInPosition | No | Search in announcement header/position text (max 1000 chars) | |
| signatureOfCase | No | Search by court case signature (sygnatura) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, yet description omits critical behavioral traits such as authentication, rate limits, pagination, or error handling. Only mentions fetchDetails slows down but returns complete content. Significant gaps for a parameter-heavy tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, front-loaded with purpose. Could be slightly more structured, but no fluff. The reference to regdata_describe is appropriate but adds a minor complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lacks explanation of output structure (JSON format unspecified) and how date range works. No details on search type differences. With 12 parameters and no output schema, more context would help agent select correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline holds. Description adds little beyond schema: mentions full-text search character limits and partial matching, but already present. The note about accepting advanced fields via regdata_describe is helpful but minor.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it searches Polish Court & Economic Gazette for bankruptcy, liquidation, restructuring, and creditor calls. Distinguishes from siblings by specifying 'Poland MSiG' and referencing archive from 2001.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for Polish economic/legal announcements but lacks explicit when-to-use or comparisons with related tools like regdata_czech_isir_insolvency. No guidance on when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
regdata_nigeria_cacA
Nigeria CAC Company Registry Scraper. Search the official Nigerian CAC register by entity name or RC/BN/IT number. Returns registered name, registration number, classification, nature of business and status for companies, business names and incorporated trustees. A verified "not found in the register" is a real answer. Advanced fields beyond this schema are also accepted (regdata_describe lists them).
| Name | Required | Description | Default |
|---|---|---|---|
| maxItems | No | Optional cap on billed dataset items returned. | |
| companyNames | No | One or more entity names to search, each looked up separately. Matching is the register's own name-similarity search, so partial names work: 'DANGOTE' returns every entity whose name contains it. Broad terms hit the register's 50-result ceiling - see Max results per query. | |
| statusFilter | No | Keep only entities in these registry statuses. Leave empty to export every match, which is the safer default for screening - an INACTIVE or DISSOLVED counterparty is usually the finding you most want to see, not one to filter away. | |
| nameMatchMode | No | How closely an entity name must answer a name query. The register's search matches on single common words, so a search for a company that does NOT exist still returns a full page of unrelated entities - 'NOTAREALFIRM LIMITED' returns 49 results purely because they contain 'LIMITED'. 'Relevant' (default) drops rows that share nothing but boilerplate with your query. 'Strict' keeps only rows containing every identifying word. 'All' returns the register's raw output, including the noise. Registration-number lookups are exact and are never affected by this. | relevant |
| maxResultsPerQuery | No | Maximum records to export per query. The register itself returns at most 50 matches and provides no pagination, so 50 is the ceiling here too - a broader term cannot be paged through. To reach matches beyond the ceiling, narrow the name or search by registration number. | |
| registrationNumbers | No | One or more registration numbers, each looked up separately. Accepts any format: 'RC 71242', 'RC-71242' or just '71242'. Include the prefix to restrict the classification - RC = company, BN = business name, IT = incorporated trustees. A bare number matches those digits across ALL THREE classifications, which is deliberate: the same digits genuinely exist as different entities (RC 71242 and IT 71242 are unrelated organisations). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses behavioral traits: name-similarity matching, partial name support, the register's 50-result ceiling, exact registration-number lookups, and the effect of nameMatchMode. It also explains that broad terms hit the ceiling and how to reach beyond it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately long but well-organized with clear sentences. It could be slightly more concise, but the level of detail is justified given the tool's complexity. No wasted sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of an output schema, the description covers the essential context: input methods, behavior, limitations (50-result ceiling), and the significance of 'not found'. It is comprehensive for a tool with multiple parameters and search modes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds significant value beyond the schema. For example, it explains how nameMatchMode affects results (including the 'LIMITED' example), why leaving statusFilter empty is safer for screening, and the format flexibility of registration numbers. This extra context aids correct parameter usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as a scraper for the Nigerian CAC registry, specifies search by entity name or registration number, and lists the returned fields (registered name, registration number, etc.). It is distinct from sibling tools which target other registries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use the tool (to search the Nigerian CAC register) and mentions advanced fields available via regdata_describe. It also clarifies that a 'not found' result is valid. However, it does not explicitly contrast with sibling tools or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
regdata_poland_krs_financialA
Poland KRS Financial Statements Scraper. Extract structured financial statements - balance sheets, income statements, assets, equity, revenue, net profit - from official public company filings. Parses XML, XHTML, and iXBRL into JSON. Use in credit-risk or M&A due-diligence workflows. Pay-per-result. Advanced fields beyond this schema are also accepted (regdata_describe lists them).
| Name | Required | Description | Default |
|---|---|---|---|
| krs | No | Polish National Court Register (KRS) number. Padded to 10 digits if shorter. If omitted, it is looked up from the NIP. | |
| nip | No | Polish Tax Identification Number (NIP). Used to look up the KRS when no KRS is provided. | |
| maxItems | No | Optional cap on billed dataset items returned. | |
| includeRawXml | No | Include the raw XML/XHTML (iXBRL) statement in the output. Files over 5 MB are linked via the key-value store (rawXmlUrl) instead of inlined. | |
| maxStatementSizeMB | No | Safety cap on the financial statement file size. Statements larger than this are skipped (with no charge) to avoid unexpected cost - a few of the very largest public companies file 15-25 MB statements. Raise this to fetch them. Note: on the Apify Free plan this is capped at 5 MB regardless of the value set here; upgrade to a paid plan for the full range. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description discloses parsing of XML/XHTML/iXBRL, pay-per-result model, and that files over 5MB are linked via key-value store. Also explains that statements larger than maxStatementSizeMB are skipped without charge. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise paragraphs. First sentence states purpose immediately. Every sentence adds value, covering format, use cases, pricing, and additional features. No redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema; description lists key output fields (balance sheets, income statements, etc.) and formats. Lacks full output structure but provides sufficient context for a data extraction tool. Complexity is moderate and description is adequate without exhaustively detailing all return fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all 5 parameters. Description does not add new details about these parameters but mentions advanced fields beyond schema. Baseline score of 3 is appropriate as description provides minimal added parameter context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it extracts structured financial statements (balance sheets, income statements, assets, equity, revenue, net profit) from Polish KRS filings. It specifies the source and output format, distinguishing it from sibling tools that cover other registries or data types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly recommends use in credit-risk or M&A due-diligence workflows. Mentions pay-per-result and that advanced fields beyond schema are listed via regdata_describe. Provides context but lacks explicit when-not-to-use statements.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
regdata_poland_kyb_checkA
Poland KYB Risk Check - one call, one verdict. Run a COMPLETE Polish KYB check from a single NIP or KRS - start here for Poland instead of chaining the individual registry tools. Resolves official company identity, pulls beneficial owners from the national UBO register, and screens the national debtor register for insolvency, restructuring and enforcement proceedings against the company AND every beneficial owner by exact identifier. Returns one normalized verdict - clear, findings, not_found or partial - plus machine-readable risk flags and the underlying registry entries (case signature, classification, court, dates, source). A "partial" verdict means a source could not be reached, not that the company is clean, and is not billed. Poland only; use the per-registry tools for other jurisdictions or for deeper single-source detail. TIMING: this check typically takes 20-30 seconds, but scales with the number of beneficial owners and has been measured up to ~2.5 minutes. If it has not finished in time, the tool returns {status, runId, note} instead of results - the check is running and already billed, so call regdata_run_result with that runId to collect it. Never re-run the check to 'retry': that bills twice. Advanced fields beyond this schema are also accepted (regdata_describe lists them).
| Name | Required | Description | Default |
|---|---|---|---|
| maxItems | No | Optional cap on billed dataset items returned. | |
| identifiers | Yes | The Polish companies to check, by NIP (10 digits) or KRS (10 digits, leading zeros). Each identifier returns one complete KYB check: identity, beneficial owners, and insolvency proceedings against the company and every beneficial owner. | |
| krzConcurrency | No | How many beneficial owners to screen against the insolvency register in parallel. Higher is faster; lower is gentler on the registry. Leave at the default unless a check is timing out. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully discloses behavioral traits: expected timing (20-30 seconds, up to 2.5 minutes), timeout behavior (returns status/runId/note), billing rules (partial verdict not billed, never retry), and that advanced fields are accepted. This level of transparency is critical for an agent to invoke the tool correctly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is comprehensive and front-loaded with the core purpose, but it is relatively long. Each sentence adds value, though some redundancy could be trimmed (e.g., 'one call, one verdict' and 'COMPLETE' emphasis). A slightly tighter version would be more efficient, but it remains clear and well-organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (multiple registries, timeout handling, billing) and the absence of an output schema, the description covers all necessary aspects: purpose, parameters, behavior, return values (verdict types and timeout result), and error handling. It is complete for an agent to use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although schema coverage is 100%, the description adds meaningful context beyond the schema. For 'identifiers', it explains the format (NIP or KRS, 10 digits, leading zeros) and what each identifier returns. For 'maxItems' and 'krzConcurrency', it clarifies the purpose and default behavior. This helps the agent choose appropriate values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs a complete Polish KYB check using a single NIP or KRS, distinguishing it from sibling tools that handle individual registries or other jurisdictions. It specifies the verb 'Run a COMPLETE Polish KYB check' and the resource 'from a single NIP or KRS', making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool ('start here for Poland instead of chaining the individual registry tools') and when not to ('use the per-registry tools for other jurisdictions or for deeper single-source detail'). It also warns about billing and timeout behavior ('Never re-run the check to retry: that bills twice'), which helps the agent avoid costly mistakes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
regdata_poland_parliamentary_pepA
Poland Parliamentary PEP Scraper - Sejm Members for KYC/AML. Structured PEP dataset of Polish Sejm members across terms - names, dates of birth, party, district, profession - for KYC/AML screening. Official Sejm API source Advanced fields beyond this schema are also accepted (regdata_describe lists them).
| Name | Required | Description | Default |
|---|---|---|---|
| term | No | Which Sejm term to fetch: "current" (default), a specific term number (e.g. "9"), or "all" for every term since 1991 (historical PEPs). | current |
| maxItems | No | Optional cap on billed dataset items returned. | |
| activeOnly | No | Return only currently-active members. Leave off to include those who left mid-term (still PEP-relevant). | |
| maxResults | No | Optional cap on the number of records returned. | |
| nameFilter | No | Case-insensitive substring match on the full name. Use to screen a specific person (e.g. "Tusk"). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits. It mentions 'Official Sejm API source' but does not cover rate limits, authentication, or side effects. The tool is likely read-only, but this is not explicitly stated, leaving gaps for the agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences: the first states the tool's purpose, the second elaborates on the dataset, and the third points to additional fields. No redundant information, every sentence contributes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 optional parameters and no output schema, the description adequately states the tool's purpose and data contents. However, it lacks details on output format or structure, and the additionalProperties flag implies flexibility that is only hinted at. Overall, it meets minimum completeness but not exceptional.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 5 parameters are fully described in the schema (100% coverage), meeting the baseline. The description adds value by noting that advanced fields beyond the schema are accepted and directing to regdata_describe for the full list, which aids parameter usage beyond schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it is a Poland Parliamentary PEP scraper for Sejm members, listing specific fields (names, DOB, party, district, profession) and the use case (KYC/AML). It distinguishes itself from sibling tools that cover other Polish registries or data types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for KYC/AML screening but does not explicitly state when to use it versus alternatives like regdata_polish_premises or regdata_polish_regon. The mention of regdata_describe for advanced fields is helpful but not a usage guideline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
regdata_polish_premisesA
Polish Premises Prospector - REGON jednostki lokalne. Build prospect lists at the physical-site level from the Polish REGON registry. One row per premise (jednostka lokalna) with industry (PKD), address, company age, and ownership, filterable by region (TERYT). Advanced fields beyond this schema are also accepted (regdata_describe lists them).
| Name | Required | Description | Default |
|---|---|---|---|
| regions | No | Filter premises to these regions. Use presets (warszawa, lodz, kutno) or objects like {"woj":"10","powiat":"03"} (TERYT symbols). Empty = all of Poland. | |
| maxItems | No | Optional cap on billed dataset items returned. | |
| pkdCodes | No | Explicit PKD code prefixes to match (e.g. "86", "8610", "5210B"). Combined with Site types. | |
| maxEnrich | No | Hard cap on paid LinkedIn calls per run (~$0.02/company-city; 0 = unlimited). The footprint estimator uses free OSM APIs and is NOT counted against this budget. Bounds cost. | |
| siteTypes | No | Filter premises by industry preset: factory, warehouse, clinic, school, coliving. Empty = all industries. (Large offices are not cleanly identifiable by PKD - leave empty or use PKD codes.) | |
| maxResults | No | Maximum premise rows to output (0 = unlimited). | |
| seedIdType | No | How to interpret 10-digit identifiers (NIP and KRS are both 10 digits). | auto |
| fetchSitePkd | No | Fetch each premise's own PKD activity (one extra API call per premise). When off, premises inherit the parent company's main PKD. | |
| linkedinMode | No | Profile detail level (cost): short is cheapest and enough for a headcount count. | short |
| minIntervalMs | No | Politeness delay between REGON requests. Keep >= 300ms to avoid the public site's conditional rate limit. | |
| seedDatasetId | No | Optional Apify dataset ID to read identifiers from (fields: nip / regon / regon14 / krs). Use this to chain in a regional REGON web search or a KRS export as the discovery source. | |
| headcountMethod | No | auto = LinkedIn city-count for office/clinic/school sites and a building-footprint estimate for industrial sites (factory/warehouse/DC). Force a single method if desired. | auto |
| linkedinActorId | No | Apify actor used for LinkedIn employees-by-city counts. | harvestapi/linkedin-company-employees |
| seedIdentifiers | No | List of company identifiers to expand. Auto-detected by shape: 9 or 14 digits = REGON, 10 digits = NIP (override with Seed identifier type). The BIR registry has no geographic search, so you seed the companies to examine here (or via Seed dataset). | |
| includeHeadcount | No | Attach a per-site headcount signal. Each row is labelled with headcountBasis: 'reported-proxy' (LinkedIn employees-by-city, a real sourced count) or 'modeled-estimate' (building footprint ÷ density for industrial sites - computed, ±50-100%). No source publishes a verified per-site count; see README. | |
| linkedinMaxItems | No | Profiles actually scraped per company+city. The headcount COUNT is read from the run log ('Found N profiles total'), so 1 is enough and cheapest (~$0.02/company-city). Raise only if you also want the profile list. | |
| footprintUserAgent | No | Contact User-Agent sent to the free OSM Nominatim/Overpass APIs used by the building-footprint headcount estimator. Their usage policy requires a descriptive identifier with a contact. Leave default unless you want your own contact string. | polish-premises-prospector/1.0 (Apify actor; contact via Apify Store) |
| linkedinResolverActorId | No | Actor that resolves a company name to its canonical LinkedIn page (URL + company-wide employee count). The match is validated (website domain / name overlap) and rejected if low-confidence, so wrong matches become 'unknown' rather than false counts. Leave default. | harvestapi/linkedin-company |
| linkedinDomainResolverActorId | No | Fallback resolver: maps a company's website domain (from REGON) to its LinkedIn page when name resolution fails - fixes companies whose brand differs from their legal name (e.g. pkobp.pl -> /company/pko-bp). Pay-per-success. Leave default; clear to disable. | s-r/free-linkedin-company-finder---linkedin-address-from-any-site |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries the full burden. It discloses key behavioral traits: the paid LinkedIn budget (maxEnrich), rate limiting (minIntervalMs), headcount estimation methods (including limitations like ±50-100% for industrial sites), and that the footprint estimator uses free APIs not counted against budget. It also notes that large offices are not cleanly identifiable. It does not explicitly state read-only or destructive nature, but the context implies data retrieval.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively long but well-structured. It front-loads the purpose and then covers key parameter behaviors. Each sentence adds value, though some details (like the explanation of headcount methods) could be slightly condensed. Overall, it is well-organized and informative without being overly verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 19 parameters and no output schema, the description provides a high-level output description ('One row per premise ... with industry, address, company age, and ownership') and mentions that advanced fields are documented elsewhere. It also leverages sibling context (many Polish regdata tools) to position itself. While output details are not exhaustive, the description adequately covers the tool's functionality.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds substantial meaning beyond the schema: e.g., for 'maxEnrich' it explains cost per call and that the footprint estimator is free; for 'headcountMethod' it explains how 'auto' chooses; for 'minIntervalMs' it gives rate limit rationale. This extra context greatly aids parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Build prospect lists at the physical-site level from the Polish REGON registry.' It specifies the resource (premises/jednostki lokalne), the action (build lists), and key features (filtering by region, industry, etc.). The title and content distinguish it from sibling tools like regdata_polish_regon (company-level).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context on when to use this tool (for physical-site level prospects) and mentions that advanced fields are documented in regdata_describe. However, it does not explicitly contrast it with regdata_polish_regon or other siblings, nor does it state when not to use it. The guidance is clear but lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
regdata_polish_regonA
Polish REGON Scraper - GUS Business Registry (no API key). Scrape Poland's REGON (GUS) registry anonymously: look up by NIP/REGON/KRS, discover companies by address + PKD, and get local units (jednostki lokalne) as separate rows. No API key required. Advanced fields beyond this schema are also accepted (regdata_describe lists them).
| Name | Required | Description | Default |
|---|---|---|---|
| fetchPkd | No | Additionally fetch each entity's PKD activity codes (main + secondary). | |
| maxItems | No | Optional cap on billed dataset items returned. | |
| pkdCodes | No | Keep only records whose PKD code starts with one of these (e.g. "10", "62.01"). Requires fetchPkd. | |
| pkdMatch | No | 'main' = only the main (przeważająca) PKD must match; 'any' = any reported PKD may match. | any |
| legalForms | No | Keep only entities whose legal form contains one of these phrases (e.g. "spółka z ograniczoną", "spółka akcyjna"). | |
| maxResults | No | Maximum records to emit (0 = unlimited). Bounds cost on large regions. | |
| searchMode | No | How to look up companies: by NIP, REGON, or KRS number. | nip |
| identifiers | No | The NIP, REGON, or KRS numbers to look up (one search mode at a time). | |
| pkdSections | No | Keep only records with a PKD code in these PKD 2007 sections. C=Manufacturing, G=Trade, H=Transport, etc. Requires fetchPkd. | |
| minIntervalMs | No | Politeness delay between requests. The site allows ~3/s; keep >= 350ms to avoid the conditional CAPTCHA. | |
| fetchFullReport | No | Fetch each entity's full REGON report (legal form, ownership, dates, contact, full address). Adds one request per record. | |
| includeLocalUnits | No | Include each entity's local units (jednostki lokalne) as separate rows (recordType=LOCAL_UNIT, with parentRegon). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses important behaviors: no API key required, anonymous scraping, acceptance of additional properties, and delay recommendations (minIntervalMs) to avoid CAPTCHAs. It references regdata_describe for advanced fields. However, it does not detail response format or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single focused paragraph that conveys key information efficiently. It is front-loaded with the tool's name and core feature (no API key). Minor improvement could be structuring with bullet points, but it is not verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the main use cases, anonymity, and the possibility to fetch local units. It references regdata_describe for additional fields. Given the lack of output schema, it provides adequate context, though it could mention common error states.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description does not add further meaning to parameters beyond what is in the schema. It mentions extensibility via additional properties but does not elaborate on any specific parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it is a Polish REGON scraper for the GUS Business Registry, explaining it can look up by NIP/REGON/KRS, discover companies by address and PKD, and fetch local units. This distinguishes it from sibling tools which target other countries or specific registries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool over alternative Poland-specific tools like regdata_poland_kyb_check or regdata_poland_krs_financial. It implies use for REGON scraping but lacks comparative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
regdata_portugal_corporate_actsA
Portugal Corporate Acts Scraper. Search the official Portuguese Ministry of Justice register of published corporate acts by NIF or entity name. Returns each published act (incorporation, changes, appointments, dissolution) with date, entity, municipality and type. This is an act/event register, not a company profile. "No acts found" is a real answer. Advanced fields beyond this schema are also accepted (regdata_describe lists them).
| Name | Required | Description | Default |
|---|---|---|---|
| nifs | No | One or more Portuguese tax numbers (NIF/NIPC, 9 digits), each looked up separately. The NIF is the preferred, most precise criterion. Example: '500123456'. | |
| dateTo | No | Only acts published on or before this date. Accepts YYYY-MM-DD. | |
| dateFrom | No | Only acts published on or after this date. Accepts YYYY-MM-DD. Use a date range to narrow a broad search or to monitor recent activity. | |
| district | No | Restrict to a Portuguese district by name, e.g. 'Lisboa', 'Porto', 'Faro'. Leave empty for all districts. A district narrows a broad name search below the 200-result ceiling. | |
| maxItems | No | Optional cap on billed dataset items returned. | |
| entityNames | No | One or more entity names to search, each looked up separately (minimum 2 characters). Name search is broader than a NIF and more likely to hit the register's 200-result ceiling. | |
| publicationType | No | Which class of publication to search. 'All' covers everything. 'Commercial' is company (Registo Comercial) and foundation acts. 'Associations' and 'Solidarity' cover the non-profit registers. | all |
| maxResultsPerQuery | No | Maximum acts to export per query. The register returns at most 200 per search (20 per page, paged automatically), so 200 is the ceiling. To reach acts beyond it, narrow by date range, district or publication type. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the tool retrieves published acts with date, entity, municipality, and type, and warns that it is an act register, not a company profile. It also notes the 200-result ceiling implicitly via parameter descriptions. However, it does not detail pagination, rate limits, or error handling, which would enhance transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main purpose and then adds relevant details. It is slightly longer than necessary but each sentence adds value, such as clarifying the register type and limitation on results. The structure is clear and logical.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of an output schema, the description adequately lists return fields (date, entity, municipality, type) and mentions additional fields via regdata_describe. It also discusses the 200-result ceiling and how to work around it. For a scraper tool with 8 optional parameters, the description provides sufficient context for an agent to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds value beyond schema descriptions by explaining that NIF is preferred, name search is broader and may hit the 200-result ceiling, and that date ranges or district can narrow searches. These insights help agents choose and combine parameters effectively.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Search', the specific resource 'official Portuguese Ministry of Justice register of published corporate acts', and the search criteria 'by NIF or entity name'. It explicitly distinguishes this tool as an act/event register, not a company profile, and the name 'regdata_portugal_corporate_acts' inherently differentiates it from country-specific siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides when to use the tool (searching corporate acts by NIF or entity name) and notes that 'No acts found' is a valid response, guiding agents to handle empty results. It also references regdata_describe for advanced fields. However, it does not explicitly state when not to use it or compare with other country-specific tools, though the tool name and context make this intuitive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
regdata_run_resultA
Collect the result of a regdata check that was still running when its tool call returned. When any regdata tool returns {status, runId, note} instead of results, the check is running and already billed - call THIS tool with that runId rather than re-running the check, which would charge the user twice. Returns the dataset items once the run finishes; if it is still going, returns the same handle so you can call again.
| Name | Required | Description | Default |
|---|---|---|---|
| runId | Yes | The runId returned by the pending tool call, e.g. NAMNqpPch7RFSY1oQ | |
| maxItems | No | Optional cap on billed dataset items returned. | |
| waitSecs | No | Seconds to wait for the run to finish before returning (0-60, default 45). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description fully discloses behavior: returns dataset items when finished, returns same handle if still running, mentions billing implications and waitSecs policy.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three well-structured sentences with no wasted words. Front-loaded with purpose, each sentence adds critical information for agent use.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, description explains return behavior ('dataset items' or 'same handle') adequately. Parameter descriptions are complete. Could mention status codes or error handling, but sufficient for tool use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description adds context: runId is from a pending call, maxItems is optional cap, waitSecs includes range and default. This adds value beyond schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it collects the result of a running regdata check, specifying verb ('collect') and resource ('result of a regdata check'). It distinguishes from siblings by explaining the polling pattern and avoiding double-charging.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use: when any regdata tool returns {status, runId, note} instead of results. Warns not to re-run the check to avoid double charge, and instructs to call with the runId.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
regdata_slovakia_rpvs_uboA
Slovakia RPVS Beneficial Owners (UBO) Scraper. Search Slovakia's public beneficial-ownership register (RPVS) by IČO or company name. Returns beneficial owners with a public-official (PEP) flag, plus the authorised person. No API key. Advanced fields beyond this schema are also accepted (regdata_describe lists them).
| Name | Required | Description | Default |
|---|---|---|---|
| maxItems | No | Optional cap on billed dataset items returned. | |
| exactMatch | No | Off (default): contains-search. On: match the company name exactly. | |
| icoNumbers | No | One or more Slovak IČO registration numbers (e.g. "35763469"). Used when search mode is "By IČO". | |
| maxResults | No | Maximum partner records to export across all queries. | |
| searchMode | No | Look up by Slovak company registration number (IČO), or search by company name. | byIco |
| currentOnly | No | Off (default): include historical beneficial owners and identities. On: keep only currently-valid entries. | |
| searchQuery | No | Company name to search (contains-match on the partner's registered name). Used when search mode is "By company name". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It mentions the tool is a scraper and returns certain data, but lacks details on error handling, rate limits, or authentication needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences, front-loading the core purpose and key details without unnecessary fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there is no output schema and no annotations, the description is reasonably complete. It explains the tool's function, return data, and mentions additional fields, though it could detail output structure more.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions. The tool description adds minimal extra meaning beyond the schema, such as noting advanced fields available via regdata_describe.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches Slovakia's beneficial-ownership register by IČO or company name, returning beneficial owners with PEP flag and authorised person. This distinguishes it from sibling tools focused on other countries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for Slovakia's register but does not explicitly state when to use this tool over alternatives or when not to use it. The 'No API key' note provides minor guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
regdata_societe_comA
France Societe.com Company Scraper. Scrape French company data from Societe.com - directors, simplified financials, shareholders, subsidiaries, and corporate relationships. The richest free French company data source with no API. Advanced fields beyond this schema are also accepted (regdata_describe lists them).
| Name | Required | Description | Default |
|---|---|---|---|
| maxItems | No | Optional cap on billed dataset items returned. | |
| maxResults | No | Maximum number of company records to return from a name/manager search. Default: 50. | |
| managerName | No | Search by manager or director name. Example: 'Dupont Jean', 'Martin Pierre'. Returns companies where this person holds a role. | |
| searchQuery | No | Search by company name (partial match). Example: 'Total Energies', 'Carrefour', 'BNP Paribas' | |
| sirenNumbers | No | List of 9-digit SIREN numbers to look up directly. Each SIREN resolves to an exact-match company record. | |
| maxConcurrency | No | How many companies to scrape in parallel (1-5). Higher finishes faster. Default: 5. | |
| includeDirectors | No | Include the company's board - director names, roles, and appointment dates. | |
| includeFinancials | No | Include simplified financial figures (revenue, net result) when Societe.com exposes them on the company page. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It discloses that the tool scrapes a free source with no API, but does not mention rate limits, data freshness, or potential scraping failures. The maxConcurrency parameter implies parallel scraping, but behavioral constraints like throttling are not addressed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, each contributing unique information: the tool's purpose and data types, its source and richness, and extensibility via advanced fields. No wasted words, and the key information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 8 parameters with no required ones, full schema coverage, and no output schema, the description covers the tool's data sources and capabilities well. However, it does not describe the output format or provide an example, which would enhance completeness for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are already well-documented. The description adds value by noting that advanced fields beyond the schema are accepted and listed by regdata_describe, but this is a minor addition. Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool scrapes French company data from Societe.com, lists specific data types (directors, financials, shareholders, etc.), and distinguishes it from other country-specific sibling tools. It also notes it's the 'richest free French company data source with no API', reinforcing its unique purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for French company data but does not explicitly state when to use this tool versus alternatives (e.g., when real-time data is needed or for specific jurisdictions). It lacks exclusions or when-not-to-use guidance, though the mention of advanced fields hints at consulting regdata_describe for extended capabilities.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
regdata_spain_company_directoryA
Spain Company Directory Scraper - Registro Mercantil. Scrape company data from Spain's official OpenData Registradores directory. Get NIF, officers, CNAE codes, legal form, address, and status from the Registro Mercantil - no API exists for this data. Advanced fields beyond this schema are also accepted (regdata_describe lists them).
| Name | Required | Description | Default |
|---|---|---|---|
| cnaeCode | No | Filter results by CNAE economic activity code. Example: '6201' (computer programming), '4711' (retail sale in non-specialized stores) | |
| maxItems | No | Optional cap on billed dataset items returned. | |
| province | No | Filter results by Spanish province. Matching is case- and accent-insensitive and understands the registry's dual-language names (searching 'Alava' matches 'ARABA/ALAVA'). Companies outside the province are discarded before extraction, so you are never charged for them. Example: 'Madrid', 'Barcelona', 'Valencia', 'Sevilla' | |
| maxResults | No | Maximum number of company records to return. Default: 100. Set higher for broader searches. | |
| nifNumbers | No | List of NIF/CIF tax identification numbers to look up. Each NIF is looked up individually for exact-match results. | |
| irusNumbers | No | List of IRUS numbers for direct company lookup. Skips search and goes straight to detail pages. Find IRUS in company URLs like /directorio/-/sociedad/{irus}/{company-name}. Example: '1000239977797' | |
| searchQuery | No | Search by company name (partial match). Example: 'Telefonica', 'Inditex', 'Banco Santander' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits. It indicates the tool is a scraper but does not mention read-only status, rate limits, data freshness, or potential side effects. The description is too minimal for a scraping tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (3 sentences) with no superfluous content. It front-loads the tool name and purpose, followed by acceptable parameters and a reference to another tool. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lists data fields returned but lacks details on the output format or pagination behavior. Given no output schema and 7 parameters, more detail on how results are structured would improve completeness, though the reference to regdata_describe partially compensates.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100% with each parameter described. The description adds value by noting that advanced fields beyond the schema are accepted and directing users to regdata_describe for details, which enhances understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the tool's purpose: scraping Spain's official company directory (Registro Mercantil) and listing the specific data fields (NIF, officers, CNAE codes, etc.). It differentiates from siblings by targeting Spain and referencing regdata_describe for advanced fields.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions that no API exists for this data, implying this tool is the only means, but it does not explicitly state when to use this tool over alternatives like regdata_spain_concursal or other country-specific tools. No exclusion criteria or alternatives are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
regdata_spain_concursalA
Spain Registro Público Concursal Search. Search Spain's official public insolvency register (Registro Público Concursal) by debtor name or NIF. Returns each matching party with its role - debtor, disqualified, or insolvency administrator. No API key. Advanced fields beyond this schema are also accepted (regdata_describe lists them).
| Name | Required | Description | Default |
|---|---|---|---|
| nif | No | One or more Spanish identifiers to look up. Used when search mode is "By identifier". | |
| name | No | Company name or person name to look up in the insolvency-publicity register (afectado). Leave empty when using a watchlist. | |
| maxItems | No | Optional cap on billed dataset items returned. | |
| watchlist | No | A list of names to check in one run - the monitoring use case. Overrides "name". Each name costs one search. | |
| maxResults | No | Maximum party records to export across all queries. The register serves results in pages, and the Actor pages through until it reaches this limit or runs out of matches. Set to 0 to export every match. | |
| searchMode | No | Search by debtor/affected-party name, or by identifier (NIF/CIF/DNI/NIE). | byName |
| identifierType | No | Type of identifier when searching by NIF. | NIF |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It explains the tool's purpose, mentions no API key requirement, and notes that advanced fields are accepted. It does not disclose rate limits, pagination details (though hinted in maxResults schema), or any other behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at four sentences, front-loading the purpose and key details without any wasted words. It efficiently communicates the tool's function and notes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description provides a useful high-level overview of the return type (matching parties with roles). It is complete enough for a search tool, though additional detail on the output structure would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 100% of parameters with descriptions, so the baseline is 3. The description adds no additional meaning to individual parameters beyond the schema, but it does mention that advanced fields are accepted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches Spain's official public insolvency register, specifying the registry name and the types of searches (by debtor name or NIF). It also distinguishes from siblings by country and register type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for Spanish insolvency searches and mentions alternative advanced fields via regdata_describe, but does not explicitly state when to use or not use this tool versus sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
regdata_uae_adgm_public_registerA
UAE ADGM Public Register Scraper - Company Data. Scrape the Abu Dhabi Global Market (ADGM) public register: company name, registration number, status, type, classification, incorporation date, address and trade names. Search by name, identifier or trade name. No API key. Advanced fields beyond this schema are also accepted (regdata_describe lists them).
| Name | Required | Description | Default |
|---|---|---|---|
| maxItems | No | Optional cap on billed dataset items returned. | |
| pageSize | No | How many results to fetch per request (1-100). Larger pages are faster; the default is fine for most runs. | |
| minIntervalMs | No | Polite delay between requests to the register. 350ms is a safe default. | |
| searchQueries | Yes | Entity names, registration numbers or trade names to search the ADGM public register for. Each query returns all matching entities (paginated up to the limit below). | |
| maxResultsPerQuery | No | Maximum number of entities to extract per search query. 0 means no limit (fetch all matches). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. 'Scrape' implies read-only, but does not explicitly state non-destructive behavior, rate limits, or error handling. Acceptable but minimal disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, no fluff. Front-loaded with purpose and scope. Every sentence adds value. Excellent conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but description lists returned fields and search methods. Mentions regdata_describe for deeper schema. Covers key aspects for a scraper tool. Could add notes on data freshness or pagination behavior, but overall sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, baseline 3. Description adds value by stating search by name/identifier/trade name, but this mostly mirrors schema. Cross-reference to regdata_describe for advanced fields is helpful but minor.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'Scrape', specific resource 'UAE ADGM public register', and lists fields (company name, registration number, etc.). Name and context distinguish it from sibling tools covering other countries/registers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage for ADGM register, but no explicit when/when-not guidance. Mentions 'No API key' as prerequisite and cross-references regdata_describe for advanced fields, but does not clarify when to use this tool over other regdata_* tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
regdata_uokik_clausesA
Poland UOKiK Abusive Clauses Registry Scraper. Rejestr klauzul niedozwolonych UOKiK - 7,500+ zakazanych postanowień umownych. Search court-banned contract clauses by defendant, industry, legal category. No API exists. Legal compliance, consumer protection. JSON. Advanced fields beyond this schema are also accepted (regdata_describe lists them).
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Filter by legal category of the clause violation. Leave empty for all categories. | |
| maxItems | No | Optional cap on billed dataset items returned. | |
| defendant | No | Filter by defendant company name (partial match). | |
| exportAll | No | Export all clauses from the registry (~7,500 entries). Ignores other filters. | |
| plaintiff | No | Filter by plaintiff name (partial match). | |
| maxResults | No | Maximum number of results. Default: 100. Set to 0 for unlimited. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden. It discloses that no API exists (indicating scraping), mentions JSON output, and points to advanced fields via regdata_describe. However, it lacks details on rate limits, pagination, or potential delays inherent to web scraping, leaving gaps in behavioral understanding.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the essential purpose, followed by supporting details (use cases, output format, advanced field reference). Every sentence adds value with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description covers core aspects: purpose, parameters (via schema), output format (JSON), and extensibility. It references regdata_describe for additional fields, but lacks specification of default behavior (e.g., ordering of results) or error handling. Still, it is largely complete for a search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 100% schema description coverage, the description adds value by summarizing search dimensions (defendant, industry, legal category) and noting that additional fields beyond the schema are accepted, which goes beyond the parameter docs and helps users understand flexibility.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as a scraper for the Poland UOKiK registry of abusive clauses, specifying the resource (7,500+ banned contract clauses) and actions (search, scrape) along with use cases (legal compliance, consumer protection). It effectively distinguishes from siblings by naming the specific registry and country.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for searching banned clauses but does not explicitly state when to use this tool over alternatives from the extensive sibling list. No when-not guidance or explicit comparison to similar tools is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
regdata_wko_business_directoryA
Austria WKO Business Directory Scraper. Scrape 620,000+ Austrian businesses from WKO Firmen A-Z - the official Chamber of Commerce directory. Get company names, addresses, phone numbers, emails, websites, industry codes, and trade licenses. No API exists for this data. Advanced fields beyond this schema are also accepted (regdata_describe lists them).
| Name | Required | Description | Default |
|---|---|---|---|
| bezirk | No | Optional district filter, e.g. 'Linz-Land', 'Hallein', 'Moedling'. For Vienna use a district name or its number ('Innere Stadt', 'Landstrasse', or '3'). Needs a searchQuery alongside it - a district on its own returns nothing. Replaces the Bundesland filter rather than adding to it. | |
| branche | No | Industry or trade classification to search for (e.g., 'IT-Dienstleistung', 'Gastronomie', 'Tischlerei', 'Elektrotechnik'). Synonym of searchQuery and used as the primary search term on firmen.wko.at - set either one, not both. | |
| maxItems | No | Optional cap on billed dataset items returned. | |
| bundesland | No | Austrian federal state to filter results. Leave empty for all of Austria. | |
| maxResults | No | Maximum number of company records to return. The actor pages through the directory until it reaches this limit or runs out of matches. Default: 100. | |
| searchQuery | No | Keyword search for company name or service (e.g., 'Software', 'Gastronomie', 'Steuerberater'). Supply this OR bundesland at minimum - 'branche' is an accepted synonym, so filling either one is enough. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It describes the tool as a scraper, indicates it makes multiple requests via paging, and notes that advanced fields are accepted via regdata_describe. However, it doesn't disclose rate limits, billing implications (despite mentioning 'billed dataset items'), or idempotency, leaving gaps for an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a clear introductory sentence, followed by details on what is scraped and notes about advanced fields. Parameter descriptions are detailed. Slightly could be improved with more structured formatting, but overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description explains what data is returned (names, addresses, etc.) and refers to regdata_describe for advanced fields. It covers all 6 parameters with descriptions. However, it does not describe the response format or error handling, which would be helpful for a scraper tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, yet the description adds significant value by explaining relationships between parameters (e.g., bezirk needs searchQuery, branche synonym), providing examples, and describing paging behavior for maxResults. This goes well beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it is a scraper for Austrian businesses from the official WKO directory, listing the data fields obtained. It distinguishes itself from sibling tools by specifying the country and source, making it easy for an agent to select the correct tool for Austrian business data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for Austrian business data and mentions that no API exists, indicating necessity. It provides specific guidance on parameter usage (e.g., bezirk needs searchQuery, branche synonym). However, it lacks explicit when-to-use vs. alternative tools or exclusions, though the context makes it clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
36 tool updates
v1.0.4- Changed
regdata_adverse_media11 fields changed- removed
Input schema / descriptionRemoved value: -"Input for regdata/adverse-media-screener. Freeform - matches the actor's Apify input schema." - added
Input schema / properties / aliasesAdded value: +{ + "description": "Alternative names / transliterations for the entity (only meaningful when screening a single entity).", + "title": "Aliases (optional)", + "type": "array" +} - added
Input schema / properties / categoriesAdded value: +{ + "description": "If set, only return hits in these risk categories. Leave empty to return all.", + "items": { + "type": "string" + }, + "title": "Risk categories filter (optional)", + "type": "array" +} - added
Input schema / properties / countryAdded value: +{ + "description": "ISO country code or name to bias the search and aid disambiguation, e.g. \"de\", \"Germany\".", + "title": "Country (optional)", + "type": "string" +} - added
Input schema / properties / entityNamesAdded value: +{ + "description": "One or more person or company names to screen, e.g. [\"Wirecard AG\", \"Jan Marsalek\"]. Each entity is billed and returned as its own result.", + "title": "Entities to screen", + "type": "array" +} - added
Input schema / properties / entityTypeAdded value: +{ + "default": "auto", + "description": "Whether the entities are people or companies (improves disambiguation). Leave on \"auto\" if mixed.", + "enum": [ + "auto", + "person", + "company" + ], + "title": "Entity type", + "type": "string" +} - added
Input schema / properties / maxHitsAdded value: +{ + "default": 25, + "description": "Maximum number of adverse hits to return per entity. 1-50.", + "title": "Max hits per entity", + "type": "integer" +} - added
Input schema / properties / minSeverityAdded value: +{ + "default": "low", + "description": "Only return hits at or above this severity.", + "enum": [ + "low", + "medium", + "high" + ], + "title": "Minimum severity", + "type": "string" +} - added
Input schema / properties / modelAdded value: +{ + "default": "deepseek/deepseek-chat", + "description": "OpenRouter model id used for classification. Default is a cheap, accurate model.", + "title": "Classification model (advanced)", + "type": "string" +} - added
Input schema / properties / openRouterApiKeyAdded value: +{ + "description": "Optional. The LLM is included; provide your own OpenRouter key only to bill classification to your own account.", + "title": "OpenRouter API Key (optional override)", + "type": "string" +} - added
Input schema / properties / serperApiKeyAdded value: +{ + "description": "Optional. Search is included; provide your own Serper key only to bill search to your own account.", + "title": "Serper API Key (optional override)", + "type": "string" +}
- Changed
regdata_austria_ediktsdatei9 fields changed- removed
Input schema / descriptionRemoved value: -"Input for regdata/austria-ediktsdatei-scraper. Freeform - matches the actor's Apify input schema." - added
Input schema / properties / courtAdded value: +{ + "description": "Filter by court name (e.g. 'Handelsgericht Wien', 'Landesgericht Linz'). Leave empty for all courts. | Nach Gericht filtern. Leer lassen fur alle Gerichte.", + "title": "Court", + "type": "string" +} - added
Input schema / properties / dateFromAdded value: +{ + "description": "Only return publications from this date onward (YYYY-MM-DD). Default: 30 days ago. | Nur Veroffentlichungen ab diesem Datum (JJJJ-MM-TT).", + "title": "Published Since (Date From)", + "type": "string" +} - added
Input schema / properties / dateToAdded value: +{ + "description": "Only return publications up to this date (YYYY-MM-DD). Default: today. | Nur Veroffentlichungen bis zu diesem Datum (JJJJ-MM-TT).", + "title": "Published Until (Date To)", + "type": "string" +} - added
Input schema / properties / entryTypeAdded value: +{ + "default": "all", + "description": "Filter by entry type: 'initial' for new proceedings, 'changes' for updates, 'all' for both. | Ersteintrage, Anderungen, oder beides.", + "enum": [ + "all", + "initial", + "changes" + ], + "title": "Entry Type", + "type": "string" +} - added
Input schema / properties / maxResultsAdded value: +{ + "default": 100, + "description": "Maximum number of results to return. Default: 100. Set to 0 for unlimited. | Maximale Anzahl der Ergebnisse.", + "title": "Max Results", + "type": "integer" +} - added
Input schema / properties / proceedingTypeAdded value: +{ + "default": "all", + "description": "Type of insolvency proceeding to filter. 'all' returns all types. | Art des Insolvenzverfahrens. 'all' gibt alle Verfahrensarten zuruck.", + "enum": [ + "all", + "Konkursverfahren", + "Sanierungsverfahren", + "Schuldenregulierungsverfahren" + ], + "title": "Proceeding Type", + "type": "string" +} - added
Input schema / properties / searchQueryAdded value: +{ + "description": "Name of the debtor or company to search for (minimum 3 characters). Partial match supported. | Name des Schuldners oder Unternehmens (mindestens 3 Zeichen).", + "title": "Debtor / Company Name", + "type": "string" +} - added
Input schema / properties / stateAdded value: +{ + "default": "all", + "description": "Filter by Austrian federal state. | Nach Bundesland filtern.", + "enum": [ + "all", + "Burgenland", + "Kaernten", + "Niederoesterreich", + "Oberoesterreich", + "Salzburg", + "Steiermark", + "Tirol", + "Vorarlberg", + "Wien" + ], + "title": "Federal State (Bundesland)", + "type": "string" +}
- Changed
regdata_bdo_waste_registry5 fields changed- removed
Input schema / descriptionRemoved value: -"Input for regdata/bdo-waste-registry-scraper. Freeform - matches the actor's Apify input schema." - added
Input schema / properties / maxResultsAdded value: +{ + "default": 100, + "description": "Maximum entities to return. The registry serves 50 per page and the actor pages through until it reaches this limit or runs out of matches. Default: 100. Set to 0 to return every match.", + "title": "Max Results", + "type": "integer" +} - added
Input schema / properties / provinceAdded value: +{ + "default": "", + "description": "Filter by province.", + "enum": [ + "", + "Dolnośląskie", + "Kujawsko-pomorskie", + "Lubelskie", + "Lubuskie", + "Łódzkie", + "Małopolskie", + "Mazowieckie", + "Opolskie", + "Podkarpackie", + "Podlaskie", + "Pomorskie", + "Śląskie", + "Świętokrzyskie", + "Warmińsko-mazurskie", + "Wielkopolskie", + "Zachodniopomorskie" + ], + "title": "Province (Województwo)", + "type": "string" +} - added
Input schema / properties / queryAdded value: +{ + "description": "Search by company name, NIP, NIP EU, or BDO registry number.", + "title": "Search Query", + "type": "string" +} - added
Input schema / requiredAdded value: +[ + "query" +]
- Changed
regdata_belgium_kbo_company8 fields changed- removed
Input schema / descriptionRemoved value: -"Input for regdata/belgium-kbo-company-scraper. Freeform - matches the actor's Apify input schema." - added
Input schema / properties / activeOnlyAdded value: +{ + "default": true, + "description": "When searching by name, return only active (non-ceased) entities. Ignored in byNumber mode.", + "title": "Active entities only (name search)", + "type": "boolean" +} - added
Input schema / properties / enterpriseNumbersAdded value: +{ + "description": "Belgian enterprise numbers or VAT numbers to look up (used when searchMode = byNumber). Any common format works: \"0417.497.106\", \"0417497106\" or \"BE0417497106\".", + "title": "Enterprise / VAT numbers", + "type": "array" +} - added
Input schema / properties / languageAdded value: +{ + "default": "en", + "description": "Language of the registry labels/descriptions (NACEBEL activity descriptions, status text). The data itself is identical across languages.", + "enum": [ + "en", + "nl", + "fr", + "de" + ], + "title": "Output language", + "type": "string" +} - added
Input schema / properties / maxResultsAdded value: +{ + "default": 0, + "description": "Maximum number of company records to extract. 0 means no limit. Useful to cap broad name searches.", + "title": "Max results", + "type": "integer" +} - added
Input schema / properties / minIntervalMsAdded value: +{ + "default": 400, + "description": "Polite delay between requests to the registry. Lower is faster but less courteous; 400ms is a safe default.", + "title": "Min interval between requests (ms)", + "type": "integer" +} - added
Input schema / properties / searchModeAdded value: +{ + "default": "byNumber", + "description": "How to look up companies. \"byNumber\" fetches exact companies by enterprise/VAT number (most precise, ideal for KYC/KYB enrichment). \"byName\" runs the official phonetic name search and then fetches each match.", + "enum": [ + "byNumber", + "byName" + ], + "title": "Search mode", + "type": "string" +} - added
Input schema / properties / searchQueryAdded value: +{ + "description": "Company name to search for (used when searchMode = byName). Uses the registry's phonetic search, so minor spelling differences still match. Add a place or legal form to narrow very common names.", + "title": "Company name", + "type": "string" +}
- Changed
regdata_borme_corporate_acts6 fields changed- removed
Input schema / descriptionRemoved value: -"Input for regdata/borme-corporate-acts-scraper. Freeform - matches the actor's Apify input schema." - added
Input schema / properties / actTypesAdded value: +{ + "description": "Filter by act types (e.g. [\"Nombramientos\", \"Constitucion\"]). Leave empty for all act types. Common types: Nombramientos, Ceses/Dimisiones, Constitucion, Disolucion, Ampliacion de capital, Cambio de domicilio social, Modificaciones estatutarias, Reelecciones, Revocaciones.", + "items": { + "type": "string" + }, + "title": "Act Type Filter", + "type": "array" +} - added
Input schema / properties / dateAdded value: +{ + "description": "Specific date to fetch in YYYY-MM-DD format. Defaults to yesterday if no date or date range is provided. BORME publishes on business days only.", + "title": "Date", + "type": "string" +} - added
Input schema / properties / dateFromAdded value: +{ + "description": "Start of date range (YYYY-MM-DD). Use with dateTo for multi-day extraction. Maximum recommended range: 5 days per run.", + "title": "Date From", + "type": "string" +} - added
Input schema / properties / dateToAdded value: +{ + "description": "End of date range (YYYY-MM-DD, inclusive). Use with dateFrom for multi-day extraction.", + "title": "Date To", + "type": "string" +} - added
Input schema / properties / provincesAdded value: +{ + "description": "Filter by province names (e.g. [\"MADRID\", \"BARCELONA\"]). Leave empty for all provinces. Case-insensitive matching.", + "items": { + "type": "string" + }, + "title": "Province Filter", + "type": "array" +}
- Changed
regdata_california_sos_business4 fields changed- removed
Input schema / descriptionRemoved value: -"Input for regdata/california-sos-business-scraper. Freeform - matches the actor's Apify input schema." - added
Input schema / properties / maxResultsPerQueryAdded value: +{ + "default": 50, + "description": "Maximum number of entities to keep per query (default 50 to avoid surprise charges on broad searches). Set 0 for no limit (all matches, typically up to ~500 per search).", + "title": "Max results per query", + "type": "integer" +} - added
Input schema / properties / searchQueriesAdded value: +{ + "description": "Company names or entity/file numbers to look up in the California Secretary of State business registry. Each query returns all matching entities.", + "title": "Search queries", + "type": "array" +} - added
Input schema / requiredAdded value: +[ + "searchQueries" +]
- Changed
regdata_california_ucc_lien7 fields changed- removed
Input schema / descriptionRemoved value: -"Input for regdata/california-ucc-lien-scraper. Freeform - matches the actor's Apify input schema." - added
Input schema / properties / activeOnlyAdded value: +{ + "default": false, + "description": "Keep only filings whose status is Active (drop Lapsed / terminated filings).", + "title": "Active filings only", + "type": "boolean" +} - added
Input schema / properties / filedFromAdded value: +{ + "description": "Keep only filings on or after this date (YYYY-MM-DD).", + "title": "Filed on or after", + "type": "string" +} - added
Input schema / properties / filedToAdded value: +{ + "description": "Keep only filings on or before this date (YYYY-MM-DD).", + "title": "Filed on or before", + "type": "string" +} - added
Input schema / properties / maxResultsPerQueryAdded value: +{ + "default": 50, + "description": "Maximum number of filings to keep per query after filtering (default 50 to avoid surprise charges on broad searches). Set 0 for no limit (all matches, up to the registry's 1,000 cap).", + "title": "Max results per query", + "type": "integer" +} - added
Input schema / properties / searchQueriesAdded value: +{ + "description": "Debtor or secured-party names to look up in the California SoS UCC filing index. The search is a contains-match across both debtor and secured-party names. Use a full, specific name - a term matching more than 1,000 filings is rejected by the registry.", + "title": "Search queries", + "type": "array" +} - added
Input schema / requiredAdded value: +[ + "searchQueries" +]
- Added
regdata_colombia_rues - Changed
regdata_crbr_beneficial_owners7 fields changed- removed
Input schema / descriptionRemoved value: -"Input for regdata/crbr-beneficial-owners-scraper. Freeform - matches the actor's Apify input schema." - added
Input schema / properties / companyNameAdded value: +{ + "description": "Company name to search (partial match).", + "title": "Company Name (single query)", + "type": "string" +} - added
Input schema / properties / dateFromAdded value: +{ + "description": "Start date for historical data (YYYY-MM-DD). Default: 2019-10-13 (CRBR start date). Leave empty for full history.", + "title": "Date From", + "type": "string" +} - added
Input schema / properties / dateToAdded value: +{ + "description": "End date (YYYY-MM-DD). Default: today.", + "title": "Date To", + "type": "string" +} - added
Input schema / properties / krsAdded value: +{ + "description": "KRS number of the company to search.", + "title": "KRS (single query)", + "type": "string" +} - added
Input schema / properties / nipAdded value: +{ + "description": "Polish Tax ID (NIP) of the company to search. For batch queries, use the 'queries' field instead.", + "title": "NIP (single query)", + "type": "string" +} - added
Input schema / properties / queriesAdded value: +{ + "description": "List of queries for batch processing. Each query is an object with 'nip', 'krs', 'name', or 'pesel' field. Example: [{\"nip\": \"6770065406\"}, {\"krs\": \"0000057567\"}]", + "title": "Batch Queries", + "type": "array" +}
- Added
regdata_cyprus_drcor - Changed
regdata_czech_isir_insolvency8 fields changed- removed
Input schema / descriptionRemoved value: -"Input for regdata/czech-isir-insolvency-scraper. Freeform - matches the actor's Apify input schema." - added
Input schema / properties / cityAdded value: +{ + "description": "Optional city (obec) to narrow the search.", + "title": "City", + "type": "string" +} - added
Input schema / properties / firstNameAdded value: +{ + "description": "Optional first name to narrow an individual-debtor search.", + "title": "First name (individuals)", + "type": "string" +} - added
Input schema / properties / icoAdded value: +{ + "description": "One or more Czech IČO registration numbers to look up (e.g. \"41035623\").", + "title": "IČO number(s)", + "type": "array" +} - added
Input schema / properties / includeEndedAdded value: +{ + "default": true, + "description": "On (default): include closed/ended insolvency proceedings as well as active ones. Off: only currently-active proceedings.", + "title": "Include ended proceedings", + "type": "boolean" +} - added
Input schema / properties / maxResultsAdded value: +{ + "default": 100, + "description": "Maximum debtor records to export across all queries (the register returns up to 400 per query).", + "title": "Max results", + "type": "integer" +} - added
Input schema / properties / nameAdded value: +{ + "description": "The debtor to look up: a company name or a person's surname. Matched against the ISIR debtor index. Leave empty when using a watchlist.", + "title": "Company name or surname", + "type": "string" +} - added
Input schema / properties / watchlistAdded value: +{ + "description": "A list of company names or surnames to check in one run - ideal on a schedule to monitor your counterparties for new Czech insolvencies. Overrides \"name\".", + "title": "Watchlist (bulk / monitoring)", + "type": "array" +}
- Changed
regdata_ekw_ksiegi_wieczyste7 fields changed- removed
Input schema / descriptionRemoved value: -"Input for regdata/ekw-ksiegi-wieczyste-scraper. Freeform - matches the actor's Apify input schema." - added
Input schema / properties / includeRawHtmlAdded value: +{ + "default": false, + "description": "Include the raw HTML of each section in the output (useful for custom parsing).", + "title": "Include Raw HTML", + "type": "boolean" +} - added
Input schema / properties / kwNumbersAdded value: +{ + "description": "List of KW numbers to look up. Format: 'CODE/NUMBER/DIGIT' (e.g., 'WR1K/00094598/3'). The check digit (last part) is optional - it will be auto-calculated if omitted. You can also provide just 'CODE/NUMBER'. Note: users on the Apify Free plan get a preview allowance of 25 KW numbers per 30 days; upgrade to any paid Apify plan to run unlimited batches.", + "title": "KW Numbers", + "type": "array" +} - added
Input schema / properties / maxConcurrencyAdded value: +{ + "default": 5, + "description": "How many KW numbers to process in parallel (1-5). Higher = faster batches. Default 5.", + "title": "Max parallel lookups", + "type": "integer" +} - added
Input schema / properties / sectionsAdded value: +{ + "default": [ + "IO", + "ISp", + "II", + "III", + "IV" + ], + "description": "Which sections (działy) to extract. Default: all. Options: 'IO' (property designation), 'ISp' (associated rights), 'II' (ownership), 'III' (restrictions/claims), 'IV' (mortgages).", + "title": "Sections to Extract", + "type": "array" +} - added
Input schema / properties / viewTypeAdded value: +{ + "default": "aktualna", + "description": "'aktualna' = Current content (default, most common). 'zupelna' = Complete content with full history of all entries. 'dotychczasowa' = Current content in legacy format.", + "enum": [ + "aktualna", + "zupelna", + "dotychczasowa" + ], + "title": "View Type", + "type": "string" +} - added
Input schema / requiredAdded value: +[ + "kwNumbers" +]
- Changed
regdata_germany_handelsregister5 fields changed- removed
Input schema / descriptionRemoved value: -"Input for regdata/germany-handelsregister-scraper. Freeform - matches the actor's Apify input schema." - added
Input schema / properties / exactMatchAdded value: +{ + "default": false, + "description": "Match the exact company name (genaue Firmenbezeichnung) instead of keyword containment. Reduces noise for precise lookups.", + "title": "Exact company name", + "type": "boolean" +} - added
Input schema / properties / maxResultsAdded value: +{ + "default": 10, + "description": "Maximum number of matching companies to return structured data for (from the first results page). 1-30.", + "title": "Max results", + "type": "integer" +} - added
Input schema / properties / registerNumberAdded value: +{ + "description": "Optional commercial register number to narrow the search, e.g. \"215511\" (HRB). Must be combined with a company name/keyword - the portal does not allow number-only searches.", + "title": "Register number (optional)", + "type": "string" +} - added
Input schema / properties / searchQueryAdded value: +{ + "description": "Company name or keyword(s) to search for (Schlagwörter). E.g. \"Zalando SE\" or \"BioNTech\".", + "title": "Company name / keyword", + "type": "string" +}
- Changed
regdata_germany_insolvency11 fields changed- removed
Input schema / descriptionRemoved value: -"Input for regdata/germany-insolvency-scraper. Freeform - matches the actor's Apify input schema." - added
Input schema / properties / cityAdded value: +{ + "description": "Optional city to narrow the search (matches the debtor's registered seat or place of residence).", + "title": "Seat / place of residence", + "type": "string" +} - added
Input schema / properties / dateFromAdded value: +{ + "description": "Start of the publication-date window (YYYY-MM-DD). Defaults to two weeks ago. For a one-off historical check, widen this - a targeted name search returns matches from any date. Broad terms over long windows may hit the 1,000-match cap.", + "title": "Published from", + "type": "string" +} - added
Input schema / properties / dateToAdded value: +{ + "description": "End of the publication-date window (YYYY-MM-DD). Defaults to today.", + "title": "Published to", + "type": "string" +} - added
Input schema / properties / exactMatchAdded value: +{ + "default": false, + "description": "Off (default): contains-search - the term is matched anywhere in the name. On: match the term exactly as typed (you may include the portal wildcard * yourself).", + "title": "Exact match", + "type": "boolean" +} - added
Input schema / properties / firstNameAdded value: +{ + "description": "Optional first name, to narrow an individual-debtor search.", + "title": "First name (individuals)", + "type": "string" +} - added
Input schema / properties / maxResultsAdded value: +{ + "default": 200, + "description": "Maximum publications to export across all queries in this run.", + "title": "Max results", + "type": "integer" +} - added
Input schema / properties / nameAdded value: +{ + "description": "The debtor to look up: a company name (e.g. \"Wirecard\") or a person's surname. Matched as a contains-search across the official insolvency register. Leave empty when using a watchlist.", + "title": "Company name or surname", + "type": "string" +} - added
Input schema / properties / stateAdded value: +{ + "default": "NO_CODE", + "description": "Optional filter by German state - narrows the search and helps a broad term stay under the register's 1,000-match cap. Use a name (\"Bayern\", \"Nordrhein-Westfalen\") or a code (\"BY\", \"NW\").", + "enum": [ + "NO_CODE", + "BW", + "BY", + "BE", + "BB", + "HB", + "HH", + "HE", + "MV", + "NI", + "NW", + "RP", + "SL", + "SN", + "ST", + "SH", + "TH" + ], + "title": "Federal state (Bundesland)", + "type": "string" +} - added
Input schema / properties / subjectAdded value: +{ + "default": "NO_CODE", + "description": "Optional filter by the type of decision within the proceeding.", + "enum": [ + "NO_CODE", + "ABWMASS", + "ENT_RSB", + "ENT_VERF", + "ENT_AUF_VERF", + "EROEFF", + "SICHMASS", + "SONST", + "VERTVERZ", + "INSO_PLAN" + ], + "title": "Type of publication (Gegenstand)", + "type": "string" +} - added
Input schema / properties / watchlistAdded value: +{ + "description": "A list of company names or surnames to check in one run. Ideal for scheduled monitoring - run this Actor daily against your counterparties and get any new insolvency publications. Overrides the single \"name\" field when set.", + "title": "Watchlist (bulk / monitoring)", + "type": "array" +}
- Added
regdata_ireland_cro - Changed
regdata_italy_pec3 fields changed- removed
Input schema / descriptionRemoved value: -"Input for regdata/italy-pec-lookup. Freeform - matches the actor's Apify input schema." - added
Input schema / properties / identifiersAdded value: +{ + "description": "One or more Italian VAT numbers (Partita IVA), Codici Fiscali, or company names. One result row per identifier.", + "title": "Identifiers (P.IVA / CF / name)", + "type": "array" +} - added
Input schema / requiredAdded value: +[ + "identifiers" +]
- Changed
regdata_italy_registro_imprese4 fields changed- removed
Input schema / descriptionRemoved value: -"Input for regdata/italy-registro-imprese-scraper. Freeform - matches the actor's Apify input schema." - added
Input schema / properties / maxResultsAdded value: +{ + "default": 5, + "description": "Maximum number of matching companies to return for a name search (1-30).", + "title": "Max results", + "type": "integer" +} - added
Input schema / properties / queryAdded value: +{ + "description": "Company name (denominazione) or Italian VAT number (Partita IVA) to look up, e.g. \"Ferrari S.p.A.\" or \"00159560366\".", + "title": "Company name or VAT (P.IVA)", + "type": "string" +} - added
Input schema / properties / startUrlsAdded value: +{ + "description": "Optional. Direct ufficiocamerale.it company-page URLs to scrape, skipping the name lookup. Use when you already have the page URLs.", + "title": "Direct company URLs (optional)", + "type": "array" +}
- Changed
regdata_knf_registry7 fields changed- removed
Input schema / descriptionRemoved value: -"Input for regdata/knf-registry-scraper. Freeform - matches the actor's Apify input schema." - added
Input schema / properties / entityTypeAdded value: +{ + "description": "Filter by entity type code. e-rup: PSD_PI, PSD_EMI, PSD_ENL, PSD_EPI@BP, PSD_EPI@MIP, PSD_AISP, PSD_AG, PSD_BR. rpkip: RPH, RPK, RHA, RIP. Leave empty for all types.", + "title": "Entity Type Code", + "type": "string" +} - added
Input schema / properties / exportAllAdded value: +{ + "default": false, + "description": "Export all records from the selected registry. Ignores name/NIP/entityType filters. Use for bulk data extraction.", + "title": "Export All Records", + "type": "boolean" +} - added
Input schema / properties / maxResultsAdded value: +{ + "default": 100, + "description": "Maximum number of results to return. Default: 100. Set to 0 for unlimited (use with Export All for full registry dump).", + "title": "Max Results", + "type": "integer" +} - added
Input schema / properties / nameAdded value: +{ + "description": "Search by entity/company name (partial match, case-insensitive)", + "title": "Entity Name", + "type": "string" +} - added
Input schema / properties / nipAdded value: +{ + "description": "Search by Polish Tax Identification Number (NIP) — exact match", + "title": "NIP Number", + "type": "string" +} - added
Input schema / properties / registryAdded value: +{ + "default": "all", + "description": "Which KNF registry to search. e-rup = payment/e-money institutions (~17k entities), rpkip = credit intermediaries & lending institutions (~58k entities), rdl = pawnbroking activities (~250 entities), all = search all three.", + "enum": [ + "e-rup", + "rpkip", + "rdl", + "all" + ], + "title": "Registry", + "type": "string" +}
- Changed
regdata_krs_fullnames4 fields changed- removed
Input schema / descriptionRemoved value: -"Input for regdata/krs-fullnames-scraper. Freeform - matches the actor's Apify input schema." - added
Input schema / properties / extractTypeAdded value: +{ + "default": "aktualny", + "description": "Type of KRS extract to download. 'aktualny' = current state only (faster, smaller). 'pelny' = full history including former board members.", + "enum": [ + "aktualny", + "pelny" + ], + "title": "Extract Type", + "type": "string" +} - added
Input schema / properties / krsNumbersAdded value: +{ + "description": "List of KRS numbers to look up. Each number will be padded to 10 digits automatically.", + "items": { + "type": "string" + }, + "title": "KRS Numbers", + "type": "array" +} - added
Input schema / requiredAdded value: +[ + "krsNumbers" +]
- Changed
regdata_krz_debtor11 fields changed- removed
Input schema / descriptionRemoved value: -"Input for regdata/krz-debtor-scraper. Freeform - matches the actor's Apify input schema." - added
Input schema / properties / advisorCityAdded value: +{ + "description": "Filter restructuring advisors by city. Only used in advisors mode.", + "title": "Advisor City", + "type": "string" +} - added
Input schema / properties / caseSignatureAdded value: +{ + "description": "Court case signature in format: CODE/REPERTORY/NUMBER/YEAR (e.g., WA1M/GU/223/2021). Used for signature and announcements modes.", + "title": "Case Signature (Sygnatura)", + "type": "string" +} - added
Input schema / properties / dateFromAdded value: +{ + "description": "Start date for announcement search (YYYY-MM-DD). Only used in announcements mode.", + "title": "Date From", + "type": "string" +} - added
Input schema / properties / dateToAdded value: +{ + "description": "End date for announcement search (YYYY-MM-DD). Only used in announcements mode.", + "title": "Date To", + "type": "string" +} - added
Input schema / properties / disableSessionCacheAdded value: +{ + "default": false, + "description": "Advanced. By default the actor caches the KRZ guest token between your own runs (the token lives ~10h) so repeated/monitoring runs skip the slow browser bootstrap and run faster. The cache is private to your account and self-healing (a stale token is detected and refreshed automatically). Turn this on only to force a fresh session every run for debugging.", + "title": "Disable session cache (advanced)", + "type": "boolean" +} - added
Input schema / properties / entityNameAdded value: +{ + "description": "Company name, business name, or advisor surname (partial match). Used for entity, soleTrader, announcements, shareholders, bankruptcyEstate, and advisors modes.", + "title": "Entity/Company Name", + "type": "string" +} - added
Input schema / properties / identifierAdded value: +{ + "description": "Entity identifier: KRS (10 digits), NIP, REGON. For persons: PESEL or NIP. For advisors: license number.", + "title": "Identifier (KRS/NIP/REGON/PESEL)", + "type": "string" +} - added
Input schema / properties / maxResultsAdded value: +{ + "default": 100, + "description": "Maximum number of results to return. Default: 100. Set to 0 for unlimited.", + "title": "Max Results", + "type": "integer" +} - added
Input schema / properties / proceedingIdAdded value: +{ + "description": "Proceeding UUID (postepowanieId), as returned in the `proceedingId` field of an entity/person search. Used by searchMode 'proceedingDetails', and optionally by 'bankruptcyEstate' to read one specific estate.", + "title": "Proceeding ID", + "type": "string" +} - added
Input schema / properties / searchModeAdded value: +{ + "default": "entity", + "description": "What to search for. 'entity' = companies by name/KRS/NIP. 'person' = natural persons by PESEL/NIP. 'soleTrader' = sole traders by name/identifier. 'signature' = by court case signature. 'announcements' = court announcements. 'shareholders' = partners in personal companies. 'bankruptcyEstate' = assets for sale from bankruptcy estates. 'advisors' = licensed restructuring advisors. 'proceedingDetails' = deep-dive into a specific proceeding.", + "enum": [ + "entity", + "person", + "soleTrader", + "signature", + "announcements", + "shareholders", + "bankruptcyEstate", + "advisors", + "proceedingDetails" + ], + "title": "Search Mode", + "type": "string" +}
- Changed
regdata_msig13 fields changed- removed
Input schema / descriptionRemoved value: -"Input for regdata/msig-scraper. Freeform - matches the actor's Apify input schema." - added
Input schema / properties / dateFromAdded value: +{ + "description": "Publication date range start (YYYY-MM-DD). Required.", + "title": "Date From", + "type": "string" +} - added
Input schema / properties / dateToAdded value: +{ + "description": "Publication date range end (YYYY-MM-DD). Required.", + "title": "Date To", + "type": "string" +} - added
Input schema / properties / entityNameAdded value: +{ + "description": "Search by entity/company name (partial match)", + "title": "Entity Name", + "type": "string" +} - added
Input schema / properties / fetchDetailsAdded value: +{ + "default": true, + "description": "Fetch full announcement details (body text) for each result. Slower but returns complete content. If false, returns only list data (no body text).", + "title": "Fetch Full Details", + "type": "boolean" +} - added
Input schema / properties / krsAdded value: +{ + "description": "Search by KRS number (10 digits)", + "title": "KRS Number", + "type": "string" +} - added
Input schema / properties / maxResultsAdded value: +{ + "default": 100, + "description": "Maximum number of results to return. Default: 100. Set to 0 for unlimited.", + "title": "Max Results", + "type": "integer" +} - added
Input schema / properties / nipAdded value: +{ + "description": "Search by NIP (Tax ID)", + "title": "NIP Number", + "type": "string" +} - added
Input schema / properties / searchTypeAdded value: +{ + "default": "A", + "description": "A = Announcements database (bankruptcy, liquidation, restructuring, court notices). B = KRS entries database (company registrations, changes — being phased out since Nov 2025).", + "enum": [ + "A", + "B" + ], + "title": "Search Type", + "type": "string" +} - added
Input schema / properties / signatureOfCaseAdded value: +{ + "description": "Search by court case signature (sygnatura)", + "title": "Case Signature", + "type": "string" +} - added
Input schema / properties / textInBodyAdded value: +{ + "description": "Full-text search in announcement content (max 1000 chars). Use for finding specific terms like 'upadłość', 'likwidacja', etc.", + "title": "Text in Body", + "type": "string" +} - added
Input schema / properties / textInPositionAdded value: +{ + "description": "Search in announcement header/position text (max 1000 chars)", + "title": "Text in Position", + "type": "string" +} - added
Input schema / requiredAdded value: +[ + "dateFrom", + "dateTo" +]
- Added
regdata_nigeria_cac - Changed
regdata_poland_krs_financial5 fields changed- removed
Input schema / descriptionRemoved value: -"Input for regdata/poland-krs-financial-scraper. Freeform - matches the actor's Apify input schema." - added
Input schema / properties / includeRawXmlAdded value: +{ + "default": true, + "description": "Include the raw XML/XHTML (iXBRL) statement in the output. Files over 5 MB are linked via the key-value store (rawXmlUrl) instead of inlined.", + "title": "Include raw statement file", + "type": "boolean" +} - added
Input schema / properties / krsAdded value: +{ + "description": "Polish National Court Register (KRS) number. Padded to 10 digits if shorter. If omitted, it is looked up from the NIP.", + "title": "KRS Number", + "type": "string" +} - added
Input schema / properties / maxStatementSizeMBAdded value: +{ + "default": 25, + "description": "Safety cap on the financial statement file size. Statements larger than this are skipped (with no charge) to avoid unexpected cost - a few of the very largest public companies file 15-25 MB statements. Raise this to fetch them. Note: on the Apify Free plan this is capped at 5 MB regardless of the value set here; upgrade to a paid plan for the full range.", + "title": "Max statement size (MB) (free plan capped at 5 MB)", + "type": "integer" +} - added
Input schema / properties / nipAdded value: +{ + "description": "Polish Tax Identification Number (NIP). Used to look up the KRS when no KRS is provided.", + "title": "NIP Number", + "type": "string" +}
- Added
regdata_poland_kyb_check - Changed
regdata_poland_parliamentary_pep5 fields changed- removed
Input schema / descriptionRemoved value: -"Input for regdata/poland-parliamentary-pep-scraper. Freeform - matches the actor's Apify input schema." - added
Input schema / properties / activeOnlyAdded value: +{ + "default": false, + "description": "Return only currently-active members. Leave off to include those who left mid-term (still PEP-relevant).", + "title": "Active members only", + "type": "boolean" +} - added
Input schema / properties / maxResultsAdded value: +{ + "description": "Optional cap on the number of records returned.", + "title": "Max results", + "type": "integer" +} - added
Input schema / properties / nameFilterAdded value: +{ + "description": "Case-insensitive substring match on the full name. Use to screen a specific person (e.g. \"Tusk\").", + "title": "Name filter (optional)", + "type": "string" +} - added
Input schema / properties / termAdded value: +{ + "default": "current", + "description": "Which Sejm term to fetch: \"current\" (default), a specific term number (e.g. \"9\"), or \"all\" for every term since 1991 (historical PEPs).", + "title": "Term of office", + "type": "string" +}
- Changed
regdata_polish_premises19 fields changed- removed
Input schema / descriptionRemoved value: -"Input for regdata/polish-premises-prospector. Freeform - matches the actor's Apify input schema." - added
Input schema / properties / fetchSitePkdAdded value: +{ + "default": true, + "description": "Fetch each premise's own PKD activity (one extra API call per premise). When off, premises inherit the parent company's main PKD.", + "title": "Fetch per-site PKD", + "type": "boolean" +} - added
Input schema / properties / footprintUserAgentAdded value: +{ + "default": "polish-premises-prospector/1.0 (Apify actor; contact via Apify Store)", + "description": "Contact User-Agent sent to the free OSM Nominatim/Overpass APIs used by the building-footprint headcount estimator. Their usage policy requires a descriptive identifier with a contact. Leave default unless you want your own contact string.", + "title": "Footprint contact User-Agent", + "type": "string" +} - added
Input schema / properties / headcountMethodAdded value: +{ + "default": "auto", + "description": "auto = LinkedIn city-count for office/clinic/school sites and a building-footprint estimate for industrial sites (factory/warehouse/DC). Force a single method if desired.", + "enum": [ + "auto", + "linkedin", + "footprint", + "none" + ], + "title": "Headcount method", + "type": "string" +} - added
Input schema / properties / includeHeadcountAdded value: +{ + "default": false, + "description": "Attach a per-site headcount signal. Each row is labelled with headcountBasis: 'reported-proxy' (LinkedIn employees-by-city, a real sourced count) or 'modeled-estimate' (building footprint ÷ density for industrial sites - computed, ±50-100%). No source publishes a verified per-site count; see README.", + "title": "Include headcount enrichment", + "type": "boolean" +} - added
Input schema / properties / linkedinActorIdAdded value: +{ + "default": "harvestapi/linkedin-company-employees", + "description": "Apify actor used for LinkedIn employees-by-city counts.", + "title": "LinkedIn employees actor ID", + "type": "string" +} - added
Input schema / properties / linkedinDomainResolverActorIdAdded value: +{ + "default": "s-r/free-linkedin-company-finder---linkedin-address-from-any-site", + "description": "Fallback resolver: maps a company's website domain (from REGON) to its LinkedIn page when name resolution fails - fixes companies whose brand differs from their legal name (e.g. pkobp.pl -> /company/pko-bp). Pay-per-success. Leave default; clear to disable.", + "title": "LinkedIn domain resolver actor ID", + "type": "string" +} - added
Input schema / properties / linkedinMaxItemsAdded value: +{ + "default": 1, + "description": "Profiles actually scraped per company+city. The headcount COUNT is read from the run log ('Found N profiles total'), so 1 is enough and cheapest (~$0.02/company-city). Raise only if you also want the profile list.", + "title": "LinkedIn max profiles per company-city", + "type": "integer" +} - added
Input schema / properties / linkedinModeAdded value: +{ + "default": "short", + "description": "Profile detail level (cost): short is cheapest and enough for a headcount count.", + "enum": [ + "short", + "full" + ], + "title": "LinkedIn scrape mode", + "type": "string" +} - added
Input schema / properties / linkedinResolverActorIdAdded value: +{ + "default": "harvestapi/linkedin-company", + "description": "Actor that resolves a company name to its canonical LinkedIn page (URL + company-wide employee count). The match is validated (website domain / name overlap) and rejected if low-confidence, so wrong matches become 'unknown' rather than false counts. Leave default.", + "title": "LinkedIn company resolver actor ID", + "type": "string" +} - added
Input schema / properties / maxEnrichAdded value: +{ + "default": 0, + "description": "Hard cap on paid LinkedIn calls per run (~$0.02/company-city; 0 = unlimited). The footprint estimator uses free OSM APIs and is NOT counted against this budget. Bounds cost.", + "title": "Max enrichment calls (shared budget)", + "type": "integer" +} - added
Input schema / properties / maxResultsAdded value: +{ + "default": 0, + "description": "Maximum premise rows to output (0 = unlimited).", + "title": "Max results", + "type": "integer" +} - added
Input schema / properties / minIntervalMsAdded value: +{ + "default": 350, + "description": "Politeness delay between REGON requests. Keep >= 300ms to avoid the public site's conditional rate limit.", + "title": "Min interval between requests (ms)", + "type": "integer" +} - added
Input schema / properties / pkdCodesAdded value: +{ + "description": "Explicit PKD code prefixes to match (e.g. \"86\", \"8610\", \"5210B\"). Combined with Site types.", + "title": "PKD codes (advanced)", + "type": "array" +} - added
Input schema / properties / regionsAdded value: +{ + "description": "Filter premises to these regions. Use presets (warszawa, lodz, kutno) or objects like {\"woj\":\"10\",\"powiat\":\"03\"} (TERYT symbols). Empty = all of Poland.", + "title": "Regions", + "type": "array" +} - added
Input schema / properties / seedDatasetIdAdded value: +{ + "description": "Optional Apify dataset ID to read identifiers from (fields: nip / regon / regon14 / krs). Use this to chain in a regional REGON web search or a KRS export as the discovery source.", + "title": "Seed dataset ID", + "type": "string" +} - added
Input schema / properties / seedIdTypeAdded value: +{ + "default": "auto", + "description": "How to interpret 10-digit identifiers (NIP and KRS are both 10 digits).", + "enum": [ + "auto", + "nip", + "regon", + "krs" + ], + "title": "Seed identifier type", + "type": "string" +} - added
Input schema / properties / seedIdentifiersAdded value: +{ + "description": "List of company identifiers to expand. Auto-detected by shape: 9 or 14 digits = REGON, 10 digits = NIP (override with Seed identifier type). The BIR registry has no geographic search, so you seed the companies to examine here (or via Seed dataset).", + "title": "Seed identifiers (NIP / REGON / KRS)", + "type": "array" +} - added
Input schema / properties / siteTypesAdded value: +{ + "description": "Filter premises by industry preset: factory, warehouse, clinic, school, coliving. Empty = all industries. (Large offices are not cleanly identifiable by PKD - leave empty or use PKD codes.)", + "title": "Site types", + "type": "array" +}
- Changed
regdata_polish_regon12 fields changed- removed
Input schema / descriptionRemoved value: -"Input for regdata/polish-regon-scraper. Freeform - matches the actor's Apify input schema." - added
Input schema / properties / fetchFullReportAdded value: +{ + "default": true, + "description": "Fetch each entity's full REGON report (legal form, ownership, dates, contact, full address). Adds one request per record.", + "title": "Fetch full report", + "type": "boolean" +} - added
Input schema / properties / fetchPkdAdded value: +{ + "default": true, + "description": "Additionally fetch each entity's PKD activity codes (main + secondary).", + "title": "Fetch PKD codes", + "type": "boolean" +} - added
Input schema / properties / identifiersAdded value: +{ + "description": "The NIP, REGON, or KRS numbers to look up (one search mode at a time).", + "title": "Identifiers (NIP / REGON / KRS)", + "type": "array" +} - added
Input schema / properties / includeLocalUnitsAdded value: +{ + "default": true, + "description": "Include each entity's local units (jednostki lokalne) as separate rows (recordType=LOCAL_UNIT, with parentRegon).", + "title": "Include local units (jednostki lokalne)", + "type": "boolean" +} - added
Input schema / properties / legalFormsAdded value: +{ + "description": "Keep only entities whose legal form contains one of these phrases (e.g. \"spółka z ograniczoną\", \"spółka akcyjna\").", + "title": "Filter - legal form", + "type": "array" +} - added
Input schema / properties / maxResultsAdded value: +{ + "default": 0, + "description": "Maximum records to emit (0 = unlimited). Bounds cost on large regions.", + "title": "Max results", + "type": "integer" +} - added
Input schema / properties / minIntervalMsAdded value: +{ + "default": 350, + "description": "Politeness delay between requests. The site allows ~3/s; keep >= 350ms to avoid the conditional CAPTCHA.", + "title": "Min interval between requests (ms)", + "type": "integer" +} - added
Input schema / properties / pkdCodesAdded value: +{ + "description": "Keep only records whose PKD code starts with one of these (e.g. \"10\", \"62.01\"). Requires fetchPkd.", + "title": "Filter - PKD code prefixes", + "type": "array" +} - added
Input schema / properties / pkdMatchAdded value: +{ + "default": "any", + "description": "'main' = only the main (przeważająca) PKD must match; 'any' = any reported PKD may match.", + "enum": [ + "any", + "main" + ], + "title": "PKD match mode", + "type": "string" +} - added
Input schema / properties / pkdSectionsAdded value: +{ + "description": "Keep only records with a PKD code in these PKD 2007 sections. C=Manufacturing, G=Trade, H=Transport, etc. Requires fetchPkd.", + "title": "Filter - PKD sections (A-U)", + "type": "array" +} - added
Input schema / properties / searchModeAdded value: +{ + "default": "nip", + "description": "How to look up companies: by NIP, REGON, or KRS number.", + "enum": [ + "nip", + "regon", + "krs" + ], + "title": "Search mode", + "type": "string" +}
- Added
regdata_portugal_corporate_acts - Added
regdata_run_result - Changed
regdata_slovakia_rpvs_ubo7 fields changed- removed
Input schema / descriptionRemoved value: -"Input for regdata/slovakia-rpvs-ubo-scraper. Freeform - matches the actor's Apify input schema." - added
Input schema / properties / currentOnlyAdded value: +{ + "default": false, + "description": "Off (default): include historical beneficial owners and identities. On: keep only currently-valid entries.", + "title": "Current entries only", + "type": "boolean" +} - added
Input schema / properties / exactMatchAdded value: +{ + "default": false, + "description": "Off (default): contains-search. On: match the company name exactly.", + "title": "Exact name match", + "type": "boolean" +} - added
Input schema / properties / icoNumbersAdded value: +{ + "description": "One or more Slovak IČO registration numbers (e.g. \"35763469\"). Used when search mode is \"By IČO\".", + "title": "IČO numbers", + "type": "array" +} - added
Input schema / properties / maxResultsAdded value: +{ + "default": 50, + "description": "Maximum partner records to export across all queries.", + "title": "Max results", + "type": "integer" +} - added
Input schema / properties / searchModeAdded value: +{ + "default": "byIco", + "description": "Look up by Slovak company registration number (IČO), or search by company name.", + "enum": [ + "byIco", + "byName" + ], + "title": "Search mode", + "type": "string" +} - added
Input schema / properties / searchQueryAdded value: +{ + "description": "Company name to search (contains-match on the partner's registered name). Used when search mode is \"By company name\".", + "title": "Company name", + "type": "string" +}
- Changed
regdata_societe_com8 fields changed- removed
Input schema / descriptionRemoved value: -"Input for regdata/societe-com-scraper. Freeform - matches the actor's Apify input schema." - added
Input schema / properties / includeDirectorsAdded value: +{ + "default": true, + "description": "Include the company's board - director names, roles, and appointment dates.", + "title": "Include Directors", + "type": "boolean" +} - added
Input schema / properties / includeFinancialsAdded value: +{ + "default": true, + "description": "Include simplified financial figures (revenue, net result) when Societe.com exposes them on the company page.", + "title": "Include Financial Data", + "type": "boolean" +} - added
Input schema / properties / managerNameAdded value: +{ + "description": "Search by manager or director name. Example: 'Dupont Jean', 'Martin Pierre'. Returns companies where this person holds a role.", + "title": "Manager / Director Name", + "type": "string" +} - added
Input schema / properties / maxConcurrencyAdded value: +{ + "default": 5, + "description": "How many companies to scrape in parallel (1-5). Higher finishes faster. Default: 5.", + "title": "Max Concurrency", + "type": "integer" +} - added
Input schema / properties / maxResultsAdded value: +{ + "default": 50, + "description": "Maximum number of company records to return from a name/manager search. Default: 50.", + "title": "Max Results", + "type": "integer" +} - added
Input schema / properties / searchQueryAdded value: +{ + "description": "Search by company name (partial match). Example: 'Total Energies', 'Carrefour', 'BNP Paribas'", + "title": "Company Name", + "type": "string" +} - added
Input schema / properties / sirenNumbersAdded value: +{ + "description": "List of 9-digit SIREN numbers to look up directly. Each SIREN resolves to an exact-match company record.", + "items": { + "type": "string" + }, + "title": "SIREN Numbers", + "type": "array" +}
- Changed
regdata_spain_company_directory7 fields changed- removed
Input schema / descriptionRemoved value: -"Input for regdata/spain-company-directory-scraper. Freeform - matches the actor's Apify input schema." - added
Input schema / properties / cnaeCodeAdded value: +{ + "description": "Filter results by CNAE economic activity code. Example: '6201' (computer programming), '4711' (retail sale in non-specialized stores)", + "title": "CNAE Activity Code", + "type": "string" +} - added
Input schema / properties / irusNumbersAdded value: +{ + "description": "List of IRUS numbers for direct company lookup. Skips search and goes straight to detail pages. Find IRUS in company URLs like /directorio/-/sociedad/{irus}/{company-name}. Example: '1000239977797'", + "items": { + "type": "string" + }, + "title": "IRUS Numbers (Direct Lookup)", + "type": "array" +} - added
Input schema / properties / maxResultsAdded value: +{ + "default": 100, + "description": "Maximum number of company records to return. Default: 100. Set higher for broader searches.", + "title": "Max Results", + "type": "integer" +} - added
Input schema / properties / nifNumbersAdded value: +{ + "description": "List of NIF/CIF tax identification numbers to look up. Each NIF is looked up individually for exact-match results.", + "items": { + "type": "string" + }, + "title": "NIF/CIF Numbers", + "type": "array" +} - added
Input schema / properties / provinceAdded value: +{ + "description": "Filter results by Spanish province. Matching is case- and accent-insensitive and understands the registry's dual-language names (searching 'Alava' matches 'ARABA/ALAVA'). Companies outside the province are discarded before extraction, so you are never charged for them. Example: 'Madrid', 'Barcelona', 'Valencia', 'Sevilla'", + "title": "Province", + "type": "string" +} - added
Input schema / properties / searchQueryAdded value: +{ + "description": "Search by company name (partial match). Example: 'Telefonica', 'Inditex', 'Banco Santander'", + "title": "Company Name", + "type": "string" +}
- Changed
regdata_spain_concursal7 fields changed- removed
Input schema / descriptionRemoved value: -"Input for regdata/spain-concursal-scraper. Freeform - matches the actor's Apify input schema." - added
Input schema / properties / identifierTypeAdded value: +{ + "default": "NIF", + "description": "Type of identifier when searching by NIF.", + "enum": [ + "NIF", + "CIF", + "DNI", + "NIE" + ], + "title": "Identifier type", + "type": "string" +} - added
Input schema / properties / maxResultsAdded value: +{ + "default": 100, + "description": "Maximum party records to export across all queries. The register serves results in pages, and the Actor pages through until it reaches this limit or runs out of matches. Set to 0 to export every match.", + "title": "Max results", + "type": "integer" +} - added
Input schema / properties / nameAdded value: +{ + "description": "Company name or person name to look up in the insolvency-publicity register (afectado). Leave empty when using a watchlist.", + "title": "Debtor / party name", + "type": "string" +} - added
Input schema / properties / nifAdded value: +{ + "description": "One or more Spanish identifiers to look up. Used when search mode is \"By identifier\".", + "title": "Identifier(s) (NIF/CIF/DNI/NIE)", + "type": "array" +} - added
Input schema / properties / searchModeAdded value: +{ + "default": "byName", + "description": "Search by debtor/affected-party name, or by identifier (NIF/CIF/DNI/NIE).", + "enum": [ + "byName", + "byNif" + ], + "title": "Search mode", + "type": "string" +} - added
Input schema / properties / watchlistAdded value: +{ + "description": "A list of names to check in one run - the monitoring use case. Overrides \"name\". Each name costs one search.", + "title": "Watchlist (bulk / monitoring)", + "type": "array" +}
- Changed
regdata_uae_adgm_public_register6 fields changed- removed
Input schema / descriptionRemoved value: -"Input for regdata/uae-adgm-public-register-scraper. Freeform - matches the actor's Apify input schema." - added
Input schema / properties / maxResultsPerQueryAdded value: +{ + "default": 100, + "description": "Maximum number of entities to extract per search query. 0 means no limit (fetch all matches).", + "title": "Max results per query", + "type": "integer" +} - added
Input schema / properties / minIntervalMsAdded value: +{ + "default": 350, + "description": "Polite delay between requests to the register. 350ms is a safe default.", + "title": "Min interval between requests (ms)", + "type": "integer" +} - added
Input schema / properties / pageSizeAdded value: +{ + "default": 50, + "description": "How many results to fetch per request (1-100). Larger pages are faster; the default is fine for most runs.", + "title": "Page size", + "type": "integer" +} - added
Input schema / properties / searchQueriesAdded value: +{ + "description": "Entity names, registration numbers or trade names to search the ADGM public register for. Each query returns all matching entities (paginated up to the limit below).", + "title": "Search queries", + "type": "array" +} - added
Input schema / requiredAdded value: +[ + "searchQueries" +]
- Changed
regdata_uokik_clauses6 fields changed- removed
Input schema / descriptionRemoved value: -"Input for regdata/uokik-clauses-scraper. Freeform - matches the actor's Apify input schema." - added
Input schema / properties / categoryAdded value: +{ + "default": "", + "description": "Filter by legal category of the clause violation. Leave empty for all categories.", + "enum": [ + "", + "5", + "4", + "3", + "23", + "22", + "21", + "20", + "19", + "18", + "17", + "16", + "15", + "14", + "13", + "12", + "11", + "10", + "9", + "8", + "7", + "6", + "2", + "1", + "24" + ], + "title": "Category (Zagadnienie)", + "type": "string" +} - added
Input schema / properties / defendantAdded value: +{ + "description": "Filter by defendant company name (partial match).", + "title": "Defendant Name (Pozwany)", + "type": "string" +} - added
Input schema / properties / exportAllAdded value: +{ + "default": false, + "description": "Export all clauses from the registry (~7,500 entries). Ignores other filters.", + "title": "Export All", + "type": "boolean" +} - added
Input schema / properties / maxResultsAdded value: +{ + "default": 100, + "description": "Maximum number of results. Default: 100. Set to 0 for unlimited.", + "title": "Max Results", + "type": "integer" +} - added
Input schema / properties / plaintiffAdded value: +{ + "description": "Filter by plaintiff name (partial match).", + "title": "Plaintiff Name (Powód)", + "type": "string" +}
- Changed
regdata_wko_business_directory6 fields changed- removed
Input schema / descriptionRemoved value: -"Input for regdata/wko-business-directory-scraper. Freeform - matches the actor's Apify input schema." - added
Input schema / properties / bezirkAdded value: +{ + "description": "Optional district filter, e.g. 'Linz-Land', 'Hallein', 'Moedling'. For Vienna use a district name or its number ('Innere Stadt', 'Landstrasse', or '3'). Needs a searchQuery alongside it - a district on its own returns nothing. Replaces the Bundesland filter rather than adding to it.", + "title": "Bezirk (District)", + "type": "string" +} - added
Input schema / properties / brancheAdded value: +{ + "description": "Industry or trade classification to search for (e.g., 'IT-Dienstleistung', 'Gastronomie', 'Tischlerei', 'Elektrotechnik'). Synonym of searchQuery and used as the primary search term on firmen.wko.at - set either one, not both.", + "title": "Industry / Branche", + "type": "string" +} - added
Input schema / properties / bundeslandAdded value: +{ + "default": "", + "description": "Austrian federal state to filter results. Leave empty for all of Austria.", + "enum": [ + "", + "Wien", + "Niederösterreich", + "Oberösterreich", + "Steiermark", + "Tirol", + "Salzburg", + "Kärnten", + "Burgenland", + "Vorarlberg" + ], + "title": "Bundesland (State)", + "type": "string" +} - added
Input schema / properties / maxResultsAdded value: +{ + "default": 100, + "description": "Maximum number of company records to return. The actor pages through the directory until it reaches this limit or runs out of matches. Default: 100.", + "title": "Max Results", + "type": "integer" +} - added
Input schema / properties / searchQueryAdded value: +{ + "description": "Keyword search for company name or service (e.g., 'Software', 'Gastronomie', 'Steuerberater'). Supply this OR bundesland at minimum - 'branche' is an accepted synonym, so filling either one is enough.", + "title": "Search Query", + "type": "string" +}
31 tool updates
v1.0.2- First observed
regdata_adverse_media - First observed
regdata_austria_ediktsdatei - First observed
regdata_bdo_waste_registry - First observed
regdata_belgium_kbo_company - First observed
regdata_borme_corporate_acts - First observed
regdata_california_sos_business - First observed
regdata_california_ucc_lien - First observed
regdata_catalog - First observed
regdata_crbr_beneficial_owners - First observed
regdata_czech_isir_insolvency - First observed
regdata_describe - First observed
regdata_ekw_ksiegi_wieczyste - First observed
regdata_germany_handelsregister - First observed
regdata_germany_insolvency - First observed
regdata_italy_pec - First observed
regdata_italy_registro_imprese - First observed
regdata_knf_registry - First observed
regdata_krs_fullnames - First observed
regdata_krz_debtor - First observed
regdata_msig - First observed
regdata_poland_krs_financial - First observed
regdata_poland_parliamentary_pep - First observed
regdata_polish_premises - First observed
regdata_polish_regon - First observed
regdata_slovakia_rpvs_ubo - First observed
regdata_societe_com - First observed
regdata_spain_company_directory - First observed
regdata_spain_concursal - First observed
regdata_uae_adgm_public_register - First observed
regdata_uokik_clauses - First observed
regdata_wko_business_directory
TDQS
Each tool targets a unique registry (e.g., Austria Ediktsdatei, Belgium KBO, Poland CRBR). Descriptions are detailed and non-overlapping, making it easy to distinguish.
All tools follow a consistent pattern: 'regdata_{country/region}_{registry_name}' in lowercase with underscores. The generic tools regdata_catalog and regdata_describe also fit this pattern.
31 tools cover many jurisdictions and registries. While large, each tool serves a distinct purpose for global KYC/AML due diligence. Slightly heavy but justified by scope.
Covers major European registries and California. Includes company, insolvency, beneficial owner, and lien searches. Missing UK, Canada, and Asia-Pacific registries, but core use cases are well-covered.
Maintenance
Related MCP Connectors
Live data from 27 official national company registries. Unmodified. For KYB and due diligence.
Hosted MCP server for real-world data: business registries, sanctions, companies, domains, crypto.
OpenCorporates MCP — Global company registry data (free, no auth, rate limited)
French & European company registry for AI agents: KYB, sanctions, annual accounts. x402, no API key.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceMCP server for Nordic company registries. Verify companies, check board members, signing authority, and financial data across Norway, Denmark, Finland, and Sweden using official public APIs. 23 tools covering search, details, roles, and batch lookups.198Apache 2.0
- AlicenseNot gradedqualityAmaintenanceProvides real-time company verification and corporate intelligence by accessing global registries like UK Companies House, Singapore ACRA, and OpenCorporates. It enables AI agents to perform KYC tasks, retrieve company profiles, and conduct automated risk assessments for due diligence workflows.249MIT
- AlicenseAqualityCmaintenanceStructured business intelligence for AI agents. 5.5M verified entities across 34 countries, 40.3M BORME mercantile acts, EU VAT validation, GLEIF, healthcare registries. 20 tools.61MIT
- AlicenseAqualityDmaintenanceUnmodified government company data from 27 registries, live. Cross-border UBO chain walker for AI agents. 60+ tools covering GB, IE, NO, FR, DE, NL, PL, BE, CH, LI, MC, IM, IS, CY, AU, NZ, CA, TW, HK, MY, FI, CZ, ES, IT, KR, US — raw upstream fields preserved, no LLM extraction.1017Apache 2.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Nolpak14/getregdata'
If you have feedback or need assistance with the MCP directory API, please join our Discord server