Export companies to CSV
export_companies_csvExport the full result set of a company search as one downloadable, ready-to-open CSV list for Excel or import, instead of paging through 25 rows at a time.
Instructions
Export a whole search result set as ONE downloadable CSV file (a lead list) instead of paging through search_companies 25 rows at a time. Read-only over company data; each call writes a new short-lived export file (auto-deleted after ~1 day).
Use this when the user wants a list to open in Excel / import elsewhere ("exportiere",
"als CSV/Liste", "alle GmbHs in … herunterladen"). For browsing or ranking on screen use
search_companies; for one company's full profile use get_company_details.
Parameters:
- filters (optional): a SearchFilters object — EXACTLY the same filters as search_companies
(name; legal_form; bundesland/city/postal_code; near radius; oenace_division/group /
geschaeftszweig; size_gkl; bilanzsumme / revenue / equity_ratio / employees ranges
(equity_ratio as a fraction, 0.35 = 35 %; percent values auto-converted);
growth_profile; founded/last-filing years; gf_age_min; manager_name; status). AND-joined.
- sort (optional): {field, descending}, same fields as search_companies (default bilanzsumme
descending; "distance" with a near filter).
- max_rows (optional, default 1000, hard maximum 10000): row ceiling. Free plan is capped at
100 rows with basic columns only. For a set larger than 10000, refine the filters
(Bundesland/Branche/Größe) and export in parts.
CSV format: semicolon-separated, UTF-8 with BOM (opens cleanly in Excel-DE, umlauts intact).
Columns are exactly the search card fields: fnr, name, legal_form, street, postal_code,
city, bundesland, industry_section, oenace_division(+label), geschaeftszweig, size_gkl,
bilanzsumme_latest, equity_ratio_latest, revenue_latest, growth_profile, manager_name, and
distance_km when a near filter is used. Empty values are blank cells. No fields beyond the
card — the same personal-data gating applies.
Returns {rows, download_url, expires_minutes (60), columns, truncated, note}. The
download_url is a signed link valid for 60 minutes (3600 s; exact expiry in
`download.expires_at` — open it promptly, don't expect bytes inline); the underlying
file is deleted after about one day. When the result was capped (truncated=true), the
note says so and asks you to refine.
Field reference: https://www.agentic-firmenbuch.at/felder.html
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | ||
| filters | No | ||
| max_rows | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||