@firmenakte/api-client 2.9.0 → 2.11.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/client.d.ts CHANGED
@@ -13,14 +13,15 @@ export declare enum InsolvencyCourtEventType {
13
13
  Closure = "closure",
14
14
  NonStatus = "nonStatus"
15
15
  }
16
- /** Which register a change came from, and therefore which typed feed and payload it belongs to: "business" the Firmenbuch, "document" a newly filed document, "edikt" the Ediktsdatei, "gisa" the trade register, "scheinunternehmen" the BMF list. "unknown" is a change we could not classify. */
16
+ /** Which register a change came from, and therefore which typed feed and payload it belongs to: "business" the Firmenbuch, "document" a newly filed document, "edikt" the Ediktsdatei, "gisa" the trade register, "foerderung" published funding, "scheinunternehmen" the BMF list. "unknown" is a change we could not classify. */
17
17
  export declare enum ChangeType {
18
18
  Business = "business",
19
19
  Edikt = "edikt",
20
20
  Document = "document",
21
21
  Gisa = "gisa",
22
22
  Scheinunternehmen = "scheinunternehmen",
23
- Unknown = "unknown"
23
+ Unknown = "unknown",
24
+ Foerderung = "foerderung"
24
25
  }
25
26
  /** The two files an export can produce. Same columns, same rows — only the serialiser differs. */
26
27
  export declare enum BusinessExportFormat {
@@ -61,11 +62,12 @@ export interface AddressLocationResponse {
61
62
  /** @format int32 */
62
63
  businessCount?: number;
63
64
  }
64
- /** Response for the aggregated changes endpoint. Contains all four change types for the requested FNRs. */
65
+ /** Response for the aggregated changes endpoint. Contains typed payloads and global reference rows for the requested FNRs. */
65
66
  export interface AggregatedChangesResponse {
66
67
  businessChanges?: BusinessChange[];
67
68
  documentChanges?: DocumentChange[];
68
69
  ediktChanges?: EdiktChange[];
70
+ foerderungChanges?: FoerderungChange[];
69
71
  globalChanges?: GlobalChange[];
70
72
  }
71
73
  export interface AssignmentFunctionItemResponse {
@@ -260,7 +262,7 @@ export interface BusinessChange {
260
262
  * @format date-time
261
263
  */
262
264
  changedDate?: string | null;
263
- /** Which register a change came from, and therefore which typed feed and payload it belongs to: "business" the Firmenbuch, "document" a newly filed document, "edikt" the Ediktsdatei, "gisa" the trade register, "scheinunternehmen" the BMF list. "unknown" is a change we could not classify. */
265
+ /** Which register a change came from, and therefore which typed feed and payload it belongs to: "business" the Firmenbuch, "document" a newly filed document, "edikt" the Ediktsdatei, "gisa" the trade register, "foerderung" published funding, "scheinunternehmen" the BMF list. "unknown" is a change we could not classify. */
264
266
  changeType?: ChangeType;
265
267
  }
266
268
  /** The complete Firmenakte of one company: Firmenbuch master data, addresses, officers, GISA licences, Ediktsdatei notices, filed documents and the parsed annual accounts. */
@@ -335,6 +337,8 @@ export interface BusinessDetailResponse {
335
337
  latestKeyFigures?: BusinessLatestKeyFiguresDto | null;
336
338
  /** OENACE 2008 industry classifications assigned to the company. Filter by oenaceCode on /businesses; the catalogue is GET /oenace. */
337
339
  oenaces?: OenaceDto[];
340
+ /** The Förderungen line on a Firmenakte: enough for the Überblick and the Zusammenfassung to state it without a second call, and no more. Null where the company has none. */
341
+ foerderungen?: BusinessFoerderungenSummary | null;
338
342
  }
339
343
  /** The eleven columns an export can carry, each on or off. The first nine are served by the company search, so an export is a projection of rows rather than a detail request per company; the two webscraper columns are read once for the whole export (#1270), never per company. */
340
344
  export interface BusinessExportColumns {
@@ -391,6 +395,31 @@ export interface BusinessFacetValue {
391
395
  /** True when the request already filters this group on this value. */
392
396
  selected?: boolean;
393
397
  }
398
+ /** The published state aid of one company. An empty list means nothing is published for it, which is the normal case — the Transparenzportal publishes from 1.500 € a year, and the COVID reports from 10.000 €. */
399
+ export interface BusinessFoerderungenResponse {
400
+ /** Newest year first, and the largest amount first within a year. */
401
+ items?: FoerderungDto[];
402
+ /** What one company's published state aid adds up to. */
403
+ summary?: FoerderungenSummaryDto;
404
+ }
405
+ /** The Förderungen line on a Firmenakte: enough for the Überblick and the Zusammenfassung to state it without a second call, and no more. Null where the company has none. */
406
+ export interface BusinessFoerderungenSummary {
407
+ /**
408
+ * Number of published payments.
409
+ * @format int32
410
+ */
411
+ count?: number;
412
+ /**
413
+ * Their sum in euro.
414
+ * @format double
415
+ */
416
+ sum?: number;
417
+ /**
418
+ * The most recent year among them.
419
+ * @format int32
420
+ */
421
+ latestYear?: number;
422
+ }
394
423
  /** Balance-sheet and P&L figures read from the company's most recent filed Jahresabschluss — the ones keyFigureFilters, orderBy and the map dot size all read. They come from one filing, the one named by documentKey and dated documentDate, so two companies here are only comparable if their documentDate is comparable. Every figure is nullable and null means the same thing throughout: that position was not reported in that filing (small companies file abridged accounts). Null is never a zero, and never "the company has none" — do not sum or average it as 0. Amounts are EUR; employees is a headcount. GET /businesses/{fnr}/jahresabschluesse returns the full per-year history; the detail response carries the latest five years. */
395
424
  export interface BusinessLatestKeyFiguresDto {
396
425
  /** Firmenbuchnummer of the company these figures belong to. */
@@ -631,9 +660,9 @@ export interface BusinessWebsiteDto {
631
660
  }
632
661
  /** Envelope for GET /api/v1/globalchanges/{id}. Exposes the resolved change type and the typed payload. */
633
662
  export interface ChangeDetailResponse {
634
- /** Discriminator: "business", "document", "edikt", "gisa", "scheinunternehmen", or "unknown". Read it before data. */
663
+ /** Discriminator: "business", "document", "edikt", "gisa", "foerderung", "scheinunternehmen", or "unknown". Read it before data. */
635
664
  changeType?: string;
636
- /** The resolved payload: a BusinessChange, DocumentChange, EdiktChange, GisaChange or ScheinunternehmenChange, according to changeType. */
665
+ /** The resolved payload: a BusinessChange, DocumentChange, EdiktChange, GisaChange, FoerderungChange or ScheinunternehmenChange, according to changeType. */
637
666
  data?: any;
638
667
  }
639
668
  export interface CityResponse {
@@ -675,7 +704,7 @@ export interface DocumentChange {
675
704
  /** @format date-time */
676
705
  changedDate?: string | null;
677
706
  document?: DocumentMetadata | null;
678
- /** Which register a change came from, and therefore which typed feed and payload it belongs to: "business" the Firmenbuch, "document" a newly filed document, "edikt" the Ediktsdatei, "gisa" the trade register, "scheinunternehmen" the BMF list. "unknown" is a change we could not classify. */
707
+ /** Which register a change came from, and therefore which typed feed and payload it belongs to: "business" the Firmenbuch, "document" a newly filed document, "edikt" the Ediktsdatei, "gisa" the trade register, "foerderung" published funding, "scheinunternehmen" the BMF list. "unknown" is a change we could not classify. */
679
708
  changeType?: ChangeType;
680
709
  }
681
710
  export interface DocumentMetadata {
@@ -732,7 +761,7 @@ export interface EdiktChange {
732
761
  /** @format date-time */
733
762
  changedDate?: string | null;
734
763
  edikt?: Edikt | null;
735
- /** Which register a change came from, and therefore which typed feed and payload it belongs to: "business" the Firmenbuch, "document" a newly filed document, "edikt" the Ediktsdatei, "gisa" the trade register, "scheinunternehmen" the BMF list. "unknown" is a change we could not classify. */
764
+ /** Which register a change came from, and therefore which typed feed and payload it belongs to: "business" the Firmenbuch, "document" a newly filed document, "edikt" the Ediktsdatei, "gisa" the trade register, "foerderung" published funding, "scheinunternehmen" the BMF list. "unknown" is a change we could not classify. */
736
765
  changeType?: ChangeType;
737
766
  }
738
767
  export interface EntityTagHeaderValue {
@@ -760,6 +789,115 @@ export interface FileResult {
760
789
  entityTag?: EntityTagHeaderValue | null;
761
790
  enableRangeProcessing?: boolean;
762
791
  }
792
+ export interface FoerderungChange {
793
+ /** @format int64 */
794
+ id?: number;
795
+ fnr?: string;
796
+ /**
797
+ * When the import detected this change, not the payment year.
798
+ * @format date-time
799
+ */
800
+ changedDate?: string | null;
801
+ /** @format int64 */
802
+ foerderungId?: number;
803
+ /** new for a newly imported payment, updated for an amount correction. */
804
+ kind?: string;
805
+ /**
806
+ * The newly reported amount in euro.
807
+ * @format double
808
+ */
809
+ betrag?: number;
810
+ /**
811
+ * The previous amount in euro; null for a new payment.
812
+ * @format double
813
+ */
814
+ betragVorher?: number | null;
815
+ massnahme?: string;
816
+ /** @format int32 */
817
+ jahr?: number;
818
+ ressort?: string | null;
819
+ /** Publication: covid, energiekrise, arf, ifg or ama. */
820
+ source?: string;
821
+ /** Which register a change came from, and therefore which typed feed and payload it belongs to: "business" the Firmenbuch, "document" a newly filed document, "edikt" the Ediktsdatei, "gisa" the trade register, "foerderung" published funding, "scheinunternehmen" the BMF list. "unknown" is a change we could not classify. */
822
+ changeType?: ChangeType;
823
+ }
824
+ /** One published state aid payment, as the Transparenzportal des BMF publishes it under § 40k TDBG. */
825
+ export interface FoerderungDto {
826
+ /** Which publication this line was read from: covid, energiekrise, arf, ifg or ama. */
827
+ source?: string;
828
+ /** Kennzahl des Unternehmensregisters — the portal's own key per Rechtsträger, stable across its data sets. The Firmenbuch does not carry it. */
829
+ kur?: string;
830
+ /** Recipient name as the portal spells it. For the COVID reports that is the name the company carried in 2020–2023, which may differ from its current one. */
831
+ empfaenger?: string;
832
+ /** Legal form as free text, the portal's own wording. Not a legalForm code. */
833
+ rechtsform?: string | null;
834
+ plz?: string | null;
835
+ /** Municipality. Only the Energiekrise and ARF reports carry one. */
836
+ gemeinde?: string | null;
837
+ /**
838
+ * The year the payment is reported for.
839
+ * @format int32
840
+ */
841
+ jahr?: number;
842
+ /** The paying ministry, e.g. "BMAW - BM für Arbeit und Wirtschaft". */
843
+ ressort?: string | null;
844
+ /** The Leistungsangebot, e.g. "Energiekostenzuschuss für Unternehmen (2022-2023)". */
845
+ massnahme?: string;
846
+ /** The portal's Leistungsangebots-ID, where the source carries one. None of the three CSV reports does. */
847
+ massnahmeId?: string | null;
848
+ /** Kind of aid, where the source names one. None of the three CSV reports does. */
849
+ leistungsart?: string | null;
850
+ wirtschaftszweig?: string | null;
851
+ /** ÖNACE 2008 code as the portal prints it, five digits. Not necessarily one of the codes on GET /oenace — the portal classifies the recipient itself. */
852
+ oenace?: string | null;
853
+ /** A remark the source prints beside the amount. None of the three CSV reports does. */
854
+ hinweis?: string | null;
855
+ /**
856
+ * Amount in euro.
857
+ * @format double
858
+ */
859
+ betrag?: number;
860
+ /**
861
+ * "Stichtag der Daten" — when the portal last recomputed the report this line comes from.
862
+ * @format date
863
+ */
864
+ stichtag?: string;
865
+ }
866
+ /** What one company's published state aid adds up to. */
867
+ export interface FoerderungenSummaryDto {
868
+ /**
869
+ * Number of published payments.
870
+ * @format int32
871
+ */
872
+ count?: number;
873
+ /**
874
+ * Their sum in euro.
875
+ * @format double
876
+ */
877
+ sum?: number;
878
+ /** The years they fall in, newest first. */
879
+ years?: number[];
880
+ /**
881
+ * The freshest "Stichtag der Daten" among them — what a citation of these figures names.
882
+ * @format date
883
+ */
884
+ stichtag?: string | null;
885
+ }
886
+ /** One row of the Gemeinde catalogue — see AustrianGemeinden for where it comes from. */
887
+ export interface GemeindeResponse {
888
+ /** The Gemeinde's path segment, unique across the catalogue: "klagenfurt-am-woerthersee". */
889
+ slug?: string;
890
+ /** The official name, as STATISTIK AUSTRIA spells it: "Klagenfurt am Wörthersee". */
891
+ name?: string;
892
+ /** Bundesland, the same nine names the state filter on GET /businesses takes. */
893
+ state?: string;
894
+ /** The Gemeindekennziffer of STATISTIK AUSTRIA, five digits. */
895
+ kennziffer?: string;
896
+ /** The PLZ that resolve to this Gemeinde, the Gemeindeamt's first. Fold a zipCode bucket of GET /businesses/aggregate through these to count companies per Gemeinde without a second query. */
897
+ zipCodes?: string[];
898
+ /** Slugs that name this Gemeinde without being its canonical one — "klagenfurt", "sankt-poelten". A Gemeinde page redirects these to Slug; no alias is shared by two Gemeinden. */
899
+ aliases?: string[];
900
+ }
763
901
  export interface GisaChange {
764
902
  /** @format int64 */
765
903
  id?: number;
@@ -769,7 +907,7 @@ export interface GisaChange {
769
907
  stateHash?: string;
770
908
  /** @format date-time */
771
909
  changedDate?: string | null;
772
- /** Which register a change came from, and therefore which typed feed and payload it belongs to: "business" the Firmenbuch, "document" a newly filed document, "edikt" the Ediktsdatei, "gisa" the trade register, "scheinunternehmen" the BMF list. "unknown" is a change we could not classify. */
910
+ /** Which register a change came from, and therefore which typed feed and payload it belongs to: "business" the Firmenbuch, "document" a newly filed document, "edikt" the Ediktsdatei, "gisa" the trade register, "foerderung" published funding, "scheinunternehmen" the BMF list. "unknown" is a change we could not classify. */
773
911
  changeType?: ChangeType;
774
912
  }
775
913
  export interface GisaLicense {
@@ -818,7 +956,7 @@ export interface GisaTradeSummaryDto {
818
956
  export interface GlobalChange {
819
957
  /** @format int64 */
820
958
  id?: number;
821
- /** Which register a change came from, and therefore which typed feed and payload it belongs to: "business" the Firmenbuch, "document" a newly filed document, "edikt" the Ediktsdatei, "gisa" the trade register, "scheinunternehmen" the BMF list. "unknown" is a change we could not classify. */
959
+ /** Which register a change came from, and therefore which typed feed and payload it belongs to: "business" the Firmenbuch, "document" a newly filed document, "edikt" the Ediktsdatei, "gisa" the trade register, "foerderung" published funding, "scheinunternehmen" the BMF list. "unknown" is a change we could not classify. */
822
960
  changeType?: ChangeType;
823
961
  fnr?: string | null;
824
962
  /** @format date-time */
@@ -1202,6 +1340,31 @@ export interface PagedResponseOfEdiktChange {
1202
1340
  totalPages?: number;
1203
1341
  }
1204
1342
  /** One page of a list endpoint's result, plus the counters needed to fetch the rest. */
1343
+ export interface PagedResponseOfFoerderungChange {
1344
+ /** The rows on this page. Empty when the page is past the end, or when countOnly was requested. */
1345
+ data: FoerderungChange[];
1346
+ /**
1347
+ * The 1-based page this response is, echoing the page parameter.
1348
+ * @format int32
1349
+ */
1350
+ pageNumber: number;
1351
+ /**
1352
+ * The page size this response was built with, echoing the pageSize parameter.
1353
+ * @format int32
1354
+ */
1355
+ pageSize: number;
1356
+ /**
1357
+ * Total number of rows matching the filters, across all pages — not the length of data. The change feeds count it only as far as page reaches — 1000 × pageSize — where that exact value means "at least this many".
1358
+ * @format int32
1359
+ */
1360
+ totalRecords: number;
1361
+ /**
1362
+ * Number of pages at this pageSize: ceil(totalRecords / pageSize). Zero when nothing matched.
1363
+ * @format int32
1364
+ */
1365
+ totalPages?: number;
1366
+ }
1367
+ /** One page of a list endpoint's result, plus the counters needed to fetch the rest. */
1205
1368
  export interface PagedResponseOfGisaChange {
1206
1369
  /** The rows on this page. Empty when the page is past the end, or when countOnly was requested. */
1207
1370
  data: GisaChange[];
@@ -1634,7 +1797,7 @@ export interface ZipCodeResponse {
1634
1797
  }
1635
1798
  export declare namespace Api {
1636
1799
  /**
1637
- * @description Every saved Abfrage of the calling account, newest first.
1800
+ * @description Every saved Abfrage of the calling account, newest first. Kostet 1 Credit.
1638
1801
  * @tags Queries
1639
1802
  * @name V1QueriesList
1640
1803
  * @summary Your Abfragen
@@ -1649,7 +1812,7 @@ export declare namespace Api {
1649
1812
  type ResponseBody = QueryResponse[];
1650
1813
  }
1651
1814
  /**
1652
- * @description Keeps a filter set. A save whose filters match an Abfrage the account already has updates that one instead of adding a second — pass updateId to pin the row being edited.
1815
+ * @description Keeps a filter set. A save whose filters match an Abfrage the account already has updates that one instead of adding a second — pass updateId to pin the row being edited. Kostet 1 Credit.
1653
1816
  * @tags Queries
1654
1817
  * @name V1QueriesCreate
1655
1818
  * @summary Save an Abfrage
@@ -1664,7 +1827,7 @@ export declare namespace Api {
1664
1827
  type ResponseBody = QueryResponse;
1665
1828
  }
1666
1829
  /**
1667
- * @description The saved Abfrage with this id, when it belongs to the calling account.
1830
+ * @description The saved Abfrage with this id, when it belongs to the calling account. Kostet 1 Credit.
1668
1831
  * @tags Queries
1669
1832
  * @name V1QueriesDetail
1670
1833
  * @summary One Abfrage
@@ -1681,7 +1844,7 @@ export declare namespace Api {
1681
1844
  type ResponseBody = QueryResponse;
1682
1845
  }
1683
1846
  /**
1684
- * @description Removes one saved Abfrage from the Suchverlauf.
1847
+ * @description Removes one saved Abfrage from the Suchverlauf. Kostet 1 Credit.
1685
1848
  * @tags Queries
1686
1849
  * @name V1QueriesDelete
1687
1850
  * @summary Delete an Abfrage
@@ -1698,7 +1861,7 @@ export declare namespace Api {
1698
1861
  type ResponseBody = void;
1699
1862
  }
1700
1863
  /**
1701
- * @description Deletes every saved Abfrage of the calling account.
1864
+ * @description Deletes every saved Abfrage of the calling account. Kostet 1 Credit.
1702
1865
  * @tags Queries
1703
1866
  * @name V1QueriesAllDelete
1704
1867
  * @summary Clear the Suchverlauf
@@ -1713,7 +1876,7 @@ export declare namespace Api {
1713
1876
  type ResponseBody = void;
1714
1877
  }
1715
1878
  /**
1716
- * @description Every Liste of the calling account, oldest first.
1879
+ * @description Every Liste of the calling account, oldest first. Kostet 1 Credit.
1717
1880
  * @tags Lists
1718
1881
  * @name V1ListsList
1719
1882
  * @summary Your Listen
@@ -1728,7 +1891,7 @@ export declare namespace Api {
1728
1891
  type ResponseBody = ListResponse[];
1729
1892
  }
1730
1893
  /**
1731
- * @description Creates an empty Liste, or one already holding the companies you pass.
1894
+ * @description Creates an empty Liste, or one already holding the companies you pass. Kostet 1 Credit.
1732
1895
  * @tags Lists
1733
1896
  * @name V1ListsCreate
1734
1897
  * @summary Create a Liste
@@ -1743,7 +1906,7 @@ export declare namespace Api {
1743
1906
  type ResponseBody = ListResponse;
1744
1907
  }
1745
1908
  /**
1746
- * @description The Liste with this id, when it belongs to the calling account.
1909
+ * @description The Liste with this id, when it belongs to the calling account. Kostet 1 Credit.
1747
1910
  * @tags Lists
1748
1911
  * @name V1ListsDetail
1749
1912
  * @summary One Liste
@@ -1760,7 +1923,7 @@ export declare namespace Api {
1760
1923
  type ResponseBody = ListResponse;
1761
1924
  }
1762
1925
  /**
1763
- * @description A partial update: only the fields the body carries are written, and settings are merged into the stored ones rather than replacing them.
1926
+ * @description A partial update: only the fields the body carries are written, and settings are merged into the stored ones rather than replacing them. Kostet 1 Credit.
1764
1927
  * @tags Lists
1765
1928
  * @name V1ListsPartialUpdate
1766
1929
  * @summary Update a Liste
@@ -1777,7 +1940,7 @@ export declare namespace Api {
1777
1940
  type ResponseBody = ListResponse;
1778
1941
  }
1779
1942
  /**
1780
- * @description Deletes the Liste. The companies on it are not touched anywhere else.
1943
+ * @description Deletes the Liste. The companies on it are not touched anywhere else. Kostet 1 Credit.
1781
1944
  * @tags Lists
1782
1945
  * @name V1ListsDelete
1783
1946
  * @summary Delete a Liste
@@ -1794,7 +1957,7 @@ export declare namespace Api {
1794
1957
  type ResponseBody = void;
1795
1958
  }
1796
1959
  /**
1797
- * @description Appends the companies that are not on it yet, keeping the order of the ones that are. A company that had been taken off comes back off the removed set.
1960
+ * @description Appends the companies that are not on it yet, keeping the order of the ones that are. A company that had been taken off comes back off the removed set. Kostet 1 Credit.
1798
1961
  * @tags Lists
1799
1962
  * @name V1ListsAddCreate
1800
1963
  * @summary Add companies to a Liste
@@ -1811,7 +1974,7 @@ export declare namespace Api {
1811
1974
  type ResponseBody = ListResponse;
1812
1975
  }
1813
1976
  /**
1814
- * @description Takes the companies off the Liste and records them as removed.
1977
+ * @description Takes the companies off the Liste and records them as removed. Kostet 1 Credit.
1815
1978
  * @tags Lists
1816
1979
  * @name V1ListsRemoveCreate
1817
1980
  * @summary Remove companies from a Liste
@@ -1828,7 +1991,7 @@ export declare namespace Api {
1828
1991
  type ResponseBody = ListResponse;
1829
1992
  }
1830
1993
  /**
1831
- * @description Builds a CSV or an Excel workbook over the companies you name: an explicit set of FNRs, a Liste, or a saved Abfrage. Nothing is stored and no link is handed back: the CSV is written out as it is produced, the workbook is built in memory first. One export carries at most 1000 companies: a set of FNRs or a Liste that holds more is refused with a 400 rather than cut short, and a saved Abfrage exports its first 1000 matches. An export that would hold no rows answers 204 rather than an empty file.
1994
+ * @description Builds a CSV or an Excel workbook over the companies you name: an explicit set of FNRs, a Liste, or a saved Abfrage. Nothing is stored and no link is handed back: the CSV is written out as it is produced, the workbook is built in memory first. One export carries at most 1000 companies: a set of FNRs or a Liste that holds more is refused with a 400 rather than cut short, and a saved Abfrage exports its first 1000 matches. An export that would hold no rows answers 204 rather than an empty file. Kostet 3 Credits.
1832
1995
  * @tags Exports
1833
1996
  * @name V1ExportsBusinessesCreate
1834
1997
  * @summary Export companies
@@ -1843,7 +2006,7 @@ export declare namespace Api {
1843
2006
  type ResponseBody = FileResult;
1844
2007
  }
1845
2008
  /**
1846
- * @description Downloads the signed GISA PDF extract for a license (GISA-Zahl). Language defaults to German (De).
2009
+ * @description Downloads the signed GISA PDF extract for a license (GISA-Zahl). Language defaults to German (De). Kostet 3 Credits.
1847
2010
  * @tags Trades
1848
2011
  * @name V1TradesDocumentsDetail
1849
2012
  * @summary GISA PDF extract
@@ -1866,7 +2029,7 @@ export declare namespace Api {
1866
2029
  type ResponseBody = Blob;
1867
2030
  }
1868
2031
  /**
1869
- * @description Returns the global catalog of GISA Trade Definitions with pagination.
2032
+ * @description Returns the global catalog of GISA Trade Definitions with pagination. Ohne API-Key abrufbar und kostet keine Credits.
1870
2033
  * @tags Trades
1871
2034
  * @name V1TradesList
1872
2035
  * @summary GISA trade catalog
@@ -1899,7 +2062,7 @@ export declare namespace Api {
1899
2062
  type ResponseBody = PagedResponseOfTradeCatalogItemResponse;
1900
2063
  }
1901
2064
  /**
1902
- * @description Returns all company licenses for a specific trade definition with pagination.
2065
+ * @description Returns all company licenses for a specific trade definition with pagination. Kostet 1 Credit.
1903
2066
  * @tags Trades
1904
2067
  * @name V1TradesLicensesList
1905
2068
  * @summary Licenses by trade
@@ -1932,7 +2095,7 @@ export declare namespace Api {
1932
2095
  type ResponseBody = PagedResponseOfGisaLicense;
1933
2096
  }
1934
2097
  /**
1935
- * @description Returns all licenses for a specific company (FNR).
2098
+ * @description Returns all licenses for a specific company (FNR). Kostet 1 Credit.
1936
2099
  * @tags Trades
1937
2100
  * @name V1TradesCompanyDetail
1938
2101
  * @summary Company GISA licenses
@@ -1949,7 +2112,7 @@ export declare namespace Api {
1949
2112
  type ResponseBody = GisaLicense[];
1950
2113
  }
1951
2114
  /**
1952
- * @description Returns a single GISA change by id.
2115
+ * @description Returns a single GISA change by id. Kostet 1 Credit.
1953
2116
  * @tags Trades
1954
2117
  * @name V1TradesChangesDetail
1955
2118
  * @summary GISA change by id
@@ -1967,7 +2130,7 @@ export declare namespace Api {
1967
2130
  type ResponseBody = GisaChange;
1968
2131
  }
1969
2132
  /**
1970
- * @description Feed of GISA changes — one entry per change to a company's trade licences. Ordered by ascending id, and that id is the cursor: request with sinceId set to the highest id you have stored, walk page=1,2,… at a fixed pageSize until a page comes back with fewer than pageSize rows, keep the highest id you saw, and start the next poll from it. sinceId is exclusive, so nothing is delivered twice, and a new change always takes a higher id than every change already in the feed, so it appends to the end and never shifts a page you have already read. since is inclusive, filters on when we recorded the change rather than on changedDate, and applies together with sinceId when both are sent. Paging without sinceId is not a reliable feed: an offset is not a watermark, and page stops at 1000. totalRecords stops there too — it is counted only as far as page 1000 reaches, so it caps at 1000 × pageSize and means "at least this many" once it is that; stop on a short page, not on a count. Under concurrent writes a change can become visible just after a higher id, so a consumer that must not miss one resumes from the previous poll's watermark and de-duplicates by id. fnr is normalised before matching — trimmed, spaces and leading zeros removed, case left alone — so 034853 f and 34853f are the same company, exactly as on GET /businesses.
2133
+ * @description Feed of GISA changes — one entry per change to a company's trade licences. Ordered by ascending id, and that id is the cursor: request with sinceId set to the highest id you have stored, walk page=1,2,… at a fixed pageSize until a page comes back with fewer than pageSize rows, keep the highest id you saw, and start the next poll from it. sinceId is exclusive, so nothing is delivered twice, and a new change always takes a higher id than every change already in the feed, so it appends to the end and never shifts a page you have already read. since is inclusive, filters on when we recorded the change rather than on changedDate, and applies together with sinceId when both are sent. Paging without sinceId is not a reliable feed: an offset is not a watermark, and page stops at 1000. totalRecords stops there too — it is counted only as far as page 1000 reaches, so it caps at 1000 × pageSize and means "at least this many" once it is that; stop on a short page, not on a count. Under concurrent writes a change can become visible just after a higher id, so a consumer that must not miss one resumes from the previous poll's watermark and de-duplicates by id. fnr is normalised before matching — trimmed, spaces and leading zeros removed, case left alone — so 034853 f and 34853f are the same company, exactly as on GET /businesses. Kostet 1 Credit.
1971
2134
  * @tags Trades
1972
2135
  * @name V1TradesChangesList
1973
2136
  * @summary GISA change feed
@@ -2009,7 +2172,7 @@ export declare namespace Api {
2009
2172
  type ResponseBody = PagedResponseOfGisaChange;
2010
2173
  }
2011
2174
  /**
2012
- * @description The autocomplete read: /businesses and /people for one term, ranked together, so a search field costs one request per keystroke rather than two and does not have to merge two orders itself. Each row carries either business or person, whichever type names. Ordered by where the term sits in the name, then by the shorter name, then companies before people. pageSize is per side, so the answer holds up to twice as many rows. An empty search answers an empty list; use /businesses to page through the whole dataset.
2175
+ * @description The autocomplete read: /businesses and /people for one term, ranked together, so a search field costs one request per keystroke rather than two and does not have to merge two orders itself. Each row carries either business or person, whichever type names. Ordered by where the term sits in the name, then by the shorter name, then companies before people. pageSize is per side, so the answer holds up to twice as many rows. An empty search answers an empty list; use /businesses to page through the whole dataset. Ohne API-Key abrufbar und kostet keine Credits.
2013
2176
  * @tags Search
2014
2177
  * @name V1SearchList
2015
2178
  * @summary Companies and people in one ranked list
@@ -2034,7 +2197,7 @@ export declare namespace Api {
2034
2197
  type ResponseBody = SearchResponse;
2035
2198
  }
2036
2199
  /**
2037
- * @description Returns (id, name) pairs for all people with at least one business assignment. For client-side name index.
2200
+ * @description Returns (id, name) pairs for all people with at least one business assignment. For client-side name index. Kostet 1 Credit.
2038
2201
  * @tags People
2039
2202
  * @name V1PeopleNamesList
2040
2203
  * @summary Person name index
@@ -2049,7 +2212,7 @@ export declare namespace Api {
2049
2212
  type ResponseBody = PersonNameItem[];
2050
2213
  }
2051
2214
  /**
2052
- * @description Lists people who hold a function in, or a GISA licence for, an Austrian company. name and search behave identically here — both split the term on spaces and keep people whose "firstName lastName" contains every token, case-insensitively — except that search wins when both are given. Ordered by last name, then first name unless orderBy says otherwise. Combine with fnr or businessName to get the officers of one company, or with functionCode for one role. fnr, functionCode, businessName, businessCity and businessRegisteredSince_gte all describe one and the same assignment: a person comes back only if a single company of theirs satisfies every one of them. So the youngest owners of this year's new Viennese companies are one page: ?businessCity=Wien&businessRegisteredSince_gte=2026-01-01&functionCode=IN&functionCode=KP&functionCode=GS&functionCode=PG&orderBy=birthDate&orderByDescending=true&pageSize=3 A row's assignments are a sample, not the person's whole collection: at most 25, and only the ones matching the fnr, functionCode, businessName, businessCity and businessRegisteredSince_gte you sent, so ?fnr=34853f gives you that company's row and nothing else. Ask GET /people/{personId} for all of them.
2215
+ * @description Lists people who hold a function in, or a GISA licence for, an Austrian company. name and search behave identically here — both split the term on spaces and keep people whose "firstName lastName" contains every token, case-insensitively — except that search wins when both are given. Ordered by last name, then first name unless orderBy says otherwise. Combine with fnr or businessName to get the officers of one company, or with functionCode for one role. fnr, functionCode, businessName, businessCity and businessRegisteredSince_gte all describe one and the same assignment: a person comes back only if a single company of theirs satisfies every one of them. So the youngest owners of this year's new Viennese companies are one page: ?businessCity=Wien&businessRegisteredSince_gte=2026-01-01&functionCode=IN&functionCode=KP&functionCode=GS&functionCode=PG&orderBy=birthDate&orderByDescending=true&pageSize=3 A row's assignments are a sample, not the person's whole collection: at most 25, and only the ones matching the fnr, functionCode, businessName, businessCity and businessRegisteredSince_gte you sent, so ?fnr=34853f gives you that company's row and nothing else. Ask GET /people/{personId} for all of them. Kostet 1 Credit.
2053
2216
  * @tags People
2054
2217
  * @name V1PeopleList
2055
2218
  * @summary People search
@@ -2101,7 +2264,7 @@ export declare namespace Api {
2101
2264
  type ResponseBody = PagedResponseOfPerson;
2102
2265
  }
2103
2266
  /**
2104
- * @description Returns one person with every company function, GISA licence and Edikt attached to them. personId is the synthetic id described in the glossary — "firstname-lastname-birthdate", lower case, inner spaces replaced by hyphens and "x" for a part the register does not give, e.g. "max-mustermann-1970-01-01". It is matched exactly. Take it from a list row or from an assignment on a company rather than composing it yourself. An id beginning with "--" carries neither first nor last name, and that is not a person but the bucket every nameless assignment in the register lands in. It answers 404 like any id nobody holds, and it is left out of GET /people for the same reason.
2267
+ * @description Returns one person with every company function, GISA licence and Edikt attached to them. personId is the synthetic id described in the glossary — "firstname-lastname-birthdate", lower case, inner spaces replaced by hyphens and "x" for a part the register does not give, e.g. "max-mustermann-1970-01-01". It is matched exactly. Take it from a list row or from an assignment on a company rather than composing it yourself. An id beginning with "--" carries neither first nor last name, and that is not a person but the bucket every nameless assignment in the register lands in. It answers 404 like any id nobody holds, and it is left out of GET /people for the same reason. Kostet 1 Credit.
2105
2268
  * @tags People
2106
2269
  * @name V1PeopleDetail
2107
2270
  * @summary Person detail
@@ -2118,7 +2281,7 @@ export declare namespace Api {
2118
2281
  type ResponseBody = PersonDetailResponse;
2119
2282
  }
2120
2283
  /**
2121
- * @description Returns the OeNACE classification catalog with company counts. Results are ordered by company count descending — most used first.
2284
+ * @description Returns the OeNACE classification catalog with company counts. Results are ordered by company count descending — most used first. Ohne API-Key abrufbar und kostet keine Credits.
2122
2285
  * @tags Oenace
2123
2286
  * @name V1OenaceList
2124
2287
  * @summary OeNACE classification catalog
@@ -2156,7 +2319,7 @@ export declare namespace Api {
2156
2319
  type ResponseBody = PagedResponseOfOenaceCatalogItemResponse;
2157
2320
  }
2158
2321
  /**
2159
- * @description Returns all legal forms with pagination and optional search, sorted by business count descending.
2322
+ * @description Returns all legal forms with pagination and optional search, sorted by business count descending. Ohne API-Key abrufbar und kostet keine Credits.
2160
2323
  * @tags LegalForms
2161
2324
  * @name V1LegalformsList
2162
2325
  * @summary Legal form catalog
@@ -2188,7 +2351,7 @@ export declare namespace Api {
2188
2351
  type ResponseBody = PagedResponseOfLegalFormCatalogItemResponse;
2189
2352
  }
2190
2353
  /**
2191
- * @description Returns the graph (nodes and edges) within 2 hops of the start entity. Exactly one of personId or fnr must be provided. The network of people and companies around one starting point — who sits on which board with whom. nodes are people ("person") and companies ("business"), each carrying the id you would pass to /people/{personId} or /businesses/{fnr}; edges are source/target pairs of those ids whose relationshipType is "assignment", a person holding a function in a company. Two further edge types the deployment can enable: "address", two companies registered at the same street address, and "ownership", a company holding shares in another — source is the shareholder, target the company it holds, and capitalAmount, currency and sharePercent carry the stake where the register gives one. Ownership edges are drawn only for companies crawled since the shareholder mapping went live, so a company not yet re-crawled reports none rather than implying it has none. The traversal depth is fixed at 2 hops and is not a parameter — a node with further connections outside that boundary carries hasMore=true, and isCentralNode marks the entity you started from. personId and fnr are mutually exclusive, not combinable: supplying both, or neither, is a 400, and an id that exists in neither register is a 404.
2354
+ * @description Returns the graph (nodes and edges) within 2 hops of the start entity. Exactly one of personId or fnr must be provided. The network of people and companies around one starting point — who sits on which board with whom. nodes are people ("person") and companies ("business"), each carrying the id you would pass to /people/{personId} or /businesses/{fnr}; edges are source/target pairs of those ids whose relationshipType is "assignment", a person holding a function in a company. Two further edge types the deployment can enable: "address", two companies registered at the same street address, and "ownership", a company holding shares in another — source is the shareholder, target the company it holds, and capitalAmount, currency and sharePercent carry the stake where the register gives one. Ownership edges are drawn only for companies crawled since the shareholder mapping went live, so a company not yet re-crawled reports none rather than implying it has none. The traversal depth is fixed at 2 hops and is not a parameter — a node with further connections outside that boundary carries hasMore=true, and isCentralNode marks the entity you started from. personId and fnr are mutually exclusive, not combinable: supplying both, or neither, is a 400, and an id that exists in neither register is a 404. Kostet 3 Credits.
2192
2355
  * @tags Graph
2193
2356
  * @name V1GraphList
2194
2357
  * @summary Relationship graph
@@ -2208,7 +2371,7 @@ export declare namespace Api {
2208
2371
  type ResponseBody = GraphResponse;
2209
2372
  }
2210
2373
  /**
2211
- * @description The single feed of every change across all registers — Firmenbuch, GISA, Ediktsdatei and the BMF Scheinunternehmen list — as lightweight reference rows. Each row carries only id, fnr, changeType and the dates; fetch the payload with GET /globalchanges/{id}, or poll one register's typed feed instead (/businesses/changes, /documents/changes, /edikte/changes, /trades/changes). Ordered by ascending id, and that id is the cursor: request with sinceId set to the highest id you have stored, walk page=1,2,… at a fixed pageSize until a page comes back with fewer than pageSize rows, keep the highest id you saw, and start the next poll from it. sinceId is exclusive, so nothing is delivered twice, and a new change always takes a higher id than every change already in the feed, so it appends to the end and never shifts a page you have already read. since is inclusive, filters on when we recorded the change rather than on changedDate, and applies together with sinceId when both are sent. Paging without sinceId is not a reliable feed: an offset is not a watermark, and page stops at 1000. totalRecords stops there too — it is counted only as far as page 1000 reaches, so it caps at 1000 × pageSize and means "at least this many" once it is that; stop on a short page, not on a count. Under concurrent writes a change can become visible just after a higher id, so a consumer that must not miss one resumes from the previous poll's watermark and de-duplicates by id.
2374
+ * @description The single feed of every change across all registers — Firmenbuch, GISA, Ediktsdatei and the BMF Scheinunternehmen list — as lightweight reference rows. Each row carries only id, fnr, changeType and the dates; fetch the payload with GET /globalchanges/{id}, or poll one register's typed feed instead (/businesses/changes, /documents/changes, /edikte/changes, /trades/changes). Ordered by ascending id, and that id is the cursor: request with sinceId set to the highest id you have stored, walk page=1,2,… at a fixed pageSize until a page comes back with fewer than pageSize rows, keep the highest id you saw, and start the next poll from it. sinceId is exclusive, so nothing is delivered twice, and a new change always takes a higher id than every change already in the feed, so it appends to the end and never shifts a page you have already read. since is inclusive, filters on when we recorded the change rather than on changedDate, and applies together with sinceId when both are sent. Paging without sinceId is not a reliable feed: an offset is not a watermark, and page stops at 1000. totalRecords stops there too — it is counted only as far as page 1000 reaches, so it caps at 1000 × pageSize and means "at least this many" once it is that; stop on a short page, not on a count. Under concurrent writes a change can become visible just after a higher id, so a consumer that must not miss one resumes from the previous poll's watermark and de-duplicates by id. Kostet 1 Credit.
2212
2375
  * @tags GlobalChanges
2213
2376
  * @name V1GlobalchangesList
2214
2377
  * @summary All-register change feed
@@ -2250,7 +2413,7 @@ export declare namespace Api {
2250
2413
  type ResponseBody = PagedResponseOfGlobalChange;
2251
2414
  }
2252
2415
  /**
2253
- * @description Changes for a watchlist of companies, all four change types in one unpaged response. Built for watchlist polling: pass up to 1000 fnr values (repeat the parameter) and one cursor, and get back four arrays — businessChanges, documentChanges, ediktChanges, globalChanges — each ordered by ascending id and capped at maxResultsPerType. Not paged: raise maxResultsPerType or advance sinceId instead. sinceId is exclusive and since is inclusive, exactly as on the paged feeds, but one sinceId covers all four arrays: an array that comes back full at maxResultsPerType has more behind it and bounds the cursor, so advance sinceId only to the lowest of the full arrays' highest ids, and to the highest id of all four once none comes back full. Passing no fnr returns four empty arrays, not the whole feed.
2416
+ * @description Changes for a watchlist of companies, all four change types in one unpaged response. Built for watchlist polling: pass up to 1000 fnr values (repeat the parameter) and one cursor, and get back four arrays — businessChanges, documentChanges, ediktChanges, globalChanges — each ordered by ascending id and capped at maxResultsPerType. Not paged: raise maxResultsPerType or advance sinceId instead. sinceId is exclusive and since is inclusive, exactly as on the paged feeds, but one sinceId covers all four arrays: an array that comes back full at maxResultsPerType has more behind it and bounds the cursor, so advance sinceId only to the lowest of the full arrays' highest ids, and to the highest id of all four once none comes back full. Passing no fnr returns four empty arrays, not the whole feed. Kostet 3 Credits.
2254
2417
  * @tags GlobalChanges
2255
2418
  * @name V1GlobalchangesAggregatedList
2256
2419
  * @summary Aggregated watchlist changes
@@ -2279,7 +2442,7 @@ export declare namespace Api {
2279
2442
  type ResponseBody = AggregatedChangesResponse;
2280
2443
  }
2281
2444
  /**
2282
- * @description Returns one change with its typed payload, whichever register it came from. The envelope is a discriminator plus the payload: changeType says which register, and data is the matching object — a BusinessChange, DocumentChange, EdiktChange, GisaChange or ScheinunternehmenChange. Since data is a union, read changeType before it.
2445
+ * @description Returns one change with its typed payload, whichever register it came from. The envelope is a discriminator plus the payload: changeType says which register, and data is the matching object — a BusinessChange, DocumentChange, EdiktChange, GisaChange, FoerderungChange or ScheinunternehmenChange. Since data is a union, read changeType before it. Kostet 1 Credit.
2283
2446
  * @tags GlobalChanges
2284
2447
  * @name V1GlobalchangesDetail
2285
2448
  * @summary Change by id
@@ -2297,7 +2460,67 @@ export declare namespace Api {
2297
2460
  type ResponseBody = ChangeDetailResponse;
2298
2461
  }
2299
2462
  /**
2300
- * @description Returns one Ediktsdatei change by id. The id is the shared change id from GET /globalchanges, so an id that exists but whose changeType is not "edikt" answers 404 here.
2463
+ * @description Kostet 1 Credit.
2464
+ * @tags Foerderungen
2465
+ * @name V1FoerderungenChangesDetail
2466
+ * @summary Funding change by id
2467
+ * @request GET:/api/v1/foerderungen/changes/{id}
2468
+ * @secure
2469
+ */
2470
+ namespace V1FoerderungenChangesDetail {
2471
+ type RequestParams = {
2472
+ /** @format int64 */
2473
+ id: number;
2474
+ };
2475
+ type RequestQuery = {};
2476
+ type RequestBody = never;
2477
+ type RequestHeaders = {};
2478
+ type ResponseBody = FoerderungChange;
2479
+ }
2480
+ /**
2481
+ * @description New payments and amount corrections for matched companies. A source's initial import is excluded. Ordered by ascending id. Poll with sinceId set to the previous watermark, deduplicate by id, and stop on a short page. since is inclusive and filters the recorded date, not the payment year. Both cursors apply together. fnr is normalised as on GET /businesses. totalRecords is capped at 1000 × pageSize; at that cap it means at least that many. Kostet 1 Credit.
2482
+ * @tags Foerderungen
2483
+ * @name V1FoerderungenChangesList
2484
+ * @summary Funding change feed
2485
+ * @request GET:/api/v1/foerderungen/changes
2486
+ * @secure
2487
+ */
2488
+ namespace V1FoerderungenChangesList {
2489
+ type RequestParams = {};
2490
+ type RequestQuery = {
2491
+ /** Only changes for this Firmenbuchnummer. Normalised before matching — trimmed, spaces and leading zeros removed — so 034853 f and 34853f are the same company. Case is not folded: pass the lower-case form the API gives you. */
2492
+ fnr?: string;
2493
+ /**
2494
+ * Only changes we recorded at or after this instant — inclusive, and ANDed with sinceId when both are sent. A timestamp is not a cursor: poll on sinceId.
2495
+ * @format date-time
2496
+ */
2497
+ since?: string;
2498
+ /**
2499
+ * Only changes with a higher id than this — exclusive, so pass back the highest id you have stored. This is the cursor to poll the feed on.
2500
+ * @format int64
2501
+ */
2502
+ sinceId?: number;
2503
+ /**
2504
+ * 1-based page number; defaults to 1 when omitted. Walk it upwards within one poll, holding sinceId fixed, until a page comes back with fewer than pageSize rows.
2505
+ * @format int32
2506
+ * @min 1
2507
+ * @max 1000
2508
+ */
2509
+ page?: number;
2510
+ /**
2511
+ * Number of items per page; defaults to 100 when omitted. A page shorter than this is the end of the feed.
2512
+ * @format int32
2513
+ * @min 1
2514
+ * @max 100
2515
+ */
2516
+ pageSize?: number;
2517
+ };
2518
+ type RequestBody = never;
2519
+ type RequestHeaders = {};
2520
+ type ResponseBody = PagedResponseOfFoerderungChange;
2521
+ }
2522
+ /**
2523
+ * @description Returns one Ediktsdatei change by id. The id is the shared change id from GET /globalchanges, so an id that exists but whose changeType is not "edikt" answers 404 here. Kostet 1 Credit.
2301
2524
  * @tags Edikte
2302
2525
  * @name V1EdikteChangesDetail
2303
2526
  * @summary Edikt change by id
@@ -2315,7 +2538,7 @@ export declare namespace Api {
2315
2538
  type ResponseBody = EdiktChange;
2316
2539
  }
2317
2540
  /**
2318
- * @description Feed of Ediktsdatei changes — insolvency and other court notices published about a company or a person. Ordered by ascending id, and that id is the cursor: request with sinceId set to the highest id you have stored, walk page=1,2,… at a fixed pageSize until a page comes back with fewer than pageSize rows, keep the highest id you saw, and start the next poll from it. sinceId is exclusive, so nothing is delivered twice, and a new change always takes a higher id than every change already in the feed, so it appends to the end and never shifts a page you have already read. since is inclusive, filters on when we recorded the change rather than on the publication date, and applies together with sinceId when both are sent. Paging without sinceId is not a reliable feed: an offset is not a watermark, and page stops at 1000. totalRecords stops there too — it is counted only as far as page 1000 reaches, so it caps at 1000 × pageSize and means "at least this many" once it is that; stop on a short page, not on a count. Under concurrent writes a change can become visible just after a higher id, so a consumer that must not miss an insolvency notice resumes from the previous poll's watermark and de-duplicates by id. fnr is normalised before matching — trimmed, spaces and leading zeros removed, case left alone — so 034853 f and 34853f are the same company, exactly as on GET /businesses.
2541
+ * @description Feed of Ediktsdatei changes — insolvency and other court notices published about a company or a person. Ordered by ascending id, and that id is the cursor: request with sinceId set to the highest id you have stored, walk page=1,2,… at a fixed pageSize until a page comes back with fewer than pageSize rows, keep the highest id you saw, and start the next poll from it. sinceId is exclusive, so nothing is delivered twice, and a new change always takes a higher id than every change already in the feed, so it appends to the end and never shifts a page you have already read. since is inclusive, filters on when we recorded the change rather than on the publication date, and applies together with sinceId when both are sent. Paging without sinceId is not a reliable feed: an offset is not a watermark, and page stops at 1000. totalRecords stops there too — it is counted only as far as page 1000 reaches, so it caps at 1000 × pageSize and means "at least this many" once it is that; stop on a short page, not on a count. Under concurrent writes a change can become visible just after a higher id, so a consumer that must not miss an insolvency notice resumes from the previous poll's watermark and de-duplicates by id. fnr is normalised before matching — trimmed, spaces and leading zeros removed, case left alone — so 034853 f and 34853f are the same company, exactly as on GET /businesses. Kostet 1 Credit.
2319
2542
  * @tags Edikte
2320
2543
  * @name V1EdikteChangesList
2321
2544
  * @summary Ediktsdatei change feed
@@ -2357,7 +2580,7 @@ export declare namespace Api {
2357
2580
  type ResponseBody = PagedResponseOfEdiktChange;
2358
2581
  }
2359
2582
  /**
2360
- * @description Downloads a Firmenbuch document (PDF/XML) by its document key.
2583
+ * @description Downloads a Firmenbuch document (PDF/XML) by its document key. Kostet 3 Credits.
2361
2584
  * @tags Documents
2362
2585
  * @name V1DocumentsDownloadDetail
2363
2586
  * @summary Firmenbuch document download
@@ -2374,7 +2597,7 @@ export declare namespace Api {
2374
2597
  type ResponseBody = void;
2375
2598
  }
2376
2599
  /**
2377
- * @description Returns one document change by id, with the document's metadata. The id is the shared change id from GET /globalchanges, so an id that exists but whose changeType is not "document" answers 404 here.
2600
+ * @description Returns one document change by id, with the document's metadata. The id is the shared change id from GET /globalchanges, so an id that exists but whose changeType is not "document" answers 404 here. Kostet 1 Credit.
2378
2601
  * @tags Documents
2379
2602
  * @name V1DocumentsChangesDetail
2380
2603
  * @summary Document change by id
@@ -2392,7 +2615,7 @@ export declare namespace Api {
2392
2615
  type ResponseBody = DocumentChange;
2393
2616
  }
2394
2617
  /**
2395
- * @description Feed of newly filed Firmenbuch documents — this is how you learn that a company has published a new Jahresabschluss. Each entry names a documentKey; fetch the file itself with GET /documents/download/{documentKey}. Ordered by ascending id, and that id is the cursor: request with sinceId set to the highest id you have stored, walk page=1,2,… at a fixed pageSize until a page comes back with fewer than pageSize rows, keep the highest id you saw, and start the next poll from it. sinceId is exclusive, so nothing is delivered twice, and a new change always takes a higher id than every change already in the feed, so it appends to the end and never shifts a page you have already read. since is inclusive, filters on when we recorded the change rather than on the document date, and applies together with sinceId when both are sent. Paging without sinceId is not a reliable feed: an offset is not a watermark, and page stops at 1000. totalRecords stops there too — it is counted only as far as page 1000 reaches, so it caps at 1000 × pageSize and means "at least this many" once it is that; stop on a short page, not on a count. Under concurrent writes a change can become visible just after a higher id, so a consumer that must not miss one resumes from the previous poll's watermark and de-duplicates by id. fnr is normalised before matching — trimmed, spaces and leading zeros removed, case left alone — so 034853 f and 34853f are the same company, exactly as on GET /businesses.
2618
+ * @description Feed of newly filed Firmenbuch documents — this is how you learn that a company has published a new Jahresabschluss. Each entry names a documentKey; fetch the file itself with GET /documents/download/{documentKey}. Ordered by ascending id, and that id is the cursor: request with sinceId set to the highest id you have stored, walk page=1,2,… at a fixed pageSize until a page comes back with fewer than pageSize rows, keep the highest id you saw, and start the next poll from it. sinceId is exclusive, so nothing is delivered twice, and a new change always takes a higher id than every change already in the feed, so it appends to the end and never shifts a page you have already read. since is inclusive, filters on when we recorded the change rather than on the document date, and applies together with sinceId when both are sent. Paging without sinceId is not a reliable feed: an offset is not a watermark, and page stops at 1000. totalRecords stops there too — it is counted only as far as page 1000 reaches, so it caps at 1000 × pageSize and means "at least this many" once it is that; stop on a short page, not on a count. Under concurrent writes a change can become visible just after a higher id, so a consumer that must not miss one resumes from the previous poll's watermark and de-duplicates by id. fnr is normalised before matching — trimmed, spaces and leading zeros removed, case left alone — so 034853 f and 34853f are the same company, exactly as on GET /businesses. Kostet 1 Credit.
2396
2619
  * @tags Documents
2397
2620
  * @name V1DocumentsChangesList
2398
2621
  * @summary Document change feed
@@ -2434,7 +2657,7 @@ export declare namespace Api {
2434
2657
  type ResponseBody = PagedResponseOfDocumentChange;
2435
2658
  }
2436
2659
  /**
2437
- * @description Returns all courts with pagination and optional search, sorted by business count descending.
2660
+ * @description Returns all courts with pagination and optional search, sorted by business count descending. Kostet 1 Credit.
2438
2661
  * @tags Courts
2439
2662
  * @name V1CourtsList
2440
2663
  * @summary Court catalog
@@ -2466,7 +2689,7 @@ export declare namespace Api {
2466
2689
  type ResponseBody = PagedResponseOfCourtCatalogItemResponse;
2467
2690
  }
2468
2691
  /**
2469
- * @description Resolve company names to FNRs by exact name match (1:1). Used for CSV import.
2692
+ * @description Resolve company names to FNRs by exact name match (1:1). Used for CSV import. Kostet 1 Credit.
2470
2693
  * @tags Businesses
2471
2694
  * @name V1BusinessesResolveNamesCreate
2472
2695
  * @summary Name to FNR resolution
@@ -2481,7 +2704,7 @@ export declare namespace Api {
2481
2704
  type ResponseBody = ResolveBusinessNamesResponse;
2482
2705
  }
2483
2706
  /**
2484
- * @description Lists companies matching the filters, one page of list rows per call. name and search are different tools. name is a case-insensitive substring match on the company name and nothing else. search splits the term on spaces and keeps only companies matching every token, where a token matches the name, the fnr, or — when the whole term is a number — a GISA licence key or GISA-Zahl; it additionally lifts companies whose name starts with the term to the top of the default (name) ordering. So name narrows a known name, search finds an unknown one. Inactive companies always sort after active ones, whatever orderBy says. inInsolvency is a Firmenbuch evidence filter, not an Ediktsdatei or Insolvenzdatei one. True matches a classified open court record or an active administrator role (MW, IW, AW, VW). False includes closed evidence without an active role, missing evidence and unclassified or uncertain evidence without another opening or role. Omit the parameter to leave this state unfiltered. A false value means no current positive evidence in this dataset, not verified legal assurance that no proceeding exists. The proceedings are published in the Insolvenzdatei, which this API does not read. Examples: ?inInsolvency=true; ?inInsolvency=false&name=Graf; ?inInsolvency=true&countOnly=true. The same values combine with every other filter. Pass countOnly=true for totalRecords without the rows, and use /businesses/aggregate to group the same filter set instead of paging through it.
2707
+ * @description Lists companies matching the filters, one page of list rows per call. name and search are different tools. name is a case-insensitive substring match on the company name and nothing else. search splits the term on spaces and keeps only companies matching every token, where a token matches the name, the fnr, or — when the whole term is a number — a GISA licence key or GISA-Zahl; it additionally lifts companies whose name starts with the term to the top of the default (name) ordering. So name narrows a known name, search finds an unknown one. Inactive companies always sort after active ones, whatever orderBy says. inInsolvency is a Firmenbuch evidence filter, not an Ediktsdatei or Insolvenzdatei one. True matches a classified open court record or an active administrator role (MW, IW, AW, VW). False includes closed evidence without an active role, missing evidence and unclassified or uncertain evidence without another opening or role. Omit the parameter to leave this state unfiltered. A false value means no current positive evidence in this dataset, not verified legal assurance that no proceeding exists. The proceedings are published in the Insolvenzdatei, which this API does not read. Examples: ?inInsolvency=true; ?inInsolvency=false&name=Graf; ?inInsolvency=true&countOnly=true. The same values combine with every other filter. Pass countOnly=true for totalRecords without the rows, and use /businesses/aggregate to group the same filter set instead of paging through it. Place filters: the Firmenbuch records no Bundesland and no Gemeinde, only the Sitzgericht, so both state and gemeinde are derived from the PLZ of the Geschäftsanschrift. state is exact except for the Innviertel PLZ 5120–5399, which are postally Salzburg but politically Oberösterreich and are counted as Salzburg. gemeinde takes the slug of a Gemeinde, and because it reads the PLZ it answers every spelling of a place at once — "Klagenfurt am Wörthersee", "Klagenfurt" and "Klagenfurt-Viktring" are one Gemeinde, where city= would be three separate filters over free text. GET /addresses/gemeinden is the catalogue of the slugs, their aliases, their Bundesland and their PLZ; a company with a foreign or unusable PLZ is in no Gemeinde and no gemeinde= filter finds it. Ohne API-Key abrufbar und kostet keine Credits.
2485
2708
  * @tags Businesses
2486
2709
  * @name V1BusinessesList
2487
2710
  * @summary Company search
@@ -2498,8 +2721,10 @@ export declare namespace Api {
2498
2721
  courtCode?: string[];
2499
2722
  legalFormCode?: string[];
2500
2723
  zipCode?: string[];
2501
- /** Filter by Bundesland: Burgenland, Kärnten, Niederösterreich, Oberösterreich, Salzburg, Steiermark, Tirol, Vorarlberg, Wien. The Firmenbuch stores no Bundesland, so the assignment is derived from the PLZ of the Geschäftsanschrift; it is exact except for the Innviertel PLZ 5120–5399, which are postally Salzburg but politically Oberösterreich. An unknown name is a 400. */
2724
+ /** Filter by Bundesland: Burgenland, Kärnten, Niederösterreich, Oberösterreich, Salzburg, Steiermark, Tirol, Vorarlberg, Wien. Derived from the PLZ of the Geschäftsanschrift; see this endpoint's description. An unknown name is a 400. */
2502
2725
  state?: string[];
2726
+ /** Filter by Gemeinde slug, derived from the PLZ. GET /addresses/gemeinden lists them. Unknown slug is a 400. */
2727
+ gemeinde?: string[];
2503
2728
  hasEdikt?: boolean;
2504
2729
  active?: boolean;
2505
2730
  /** Filter by BMF Scheinunternehmen (LSU) list: true = only businesses on the list, false = only not on the list. */
@@ -3049,7 +3274,7 @@ export declare namespace Api {
3049
3274
  type ResponseBody = PagedResponseOfBusinessListResponse;
3050
3275
  }
3051
3276
  /**
3052
- * @description Returns all business (fnr, name) pairs for client-side name index. No pagination.
3277
+ * @description Returns all business (fnr, name) pairs for client-side name index. No pagination. Ohne API-Key abrufbar und kostet keine Credits.
3053
3278
  * @tags Businesses
3054
3279
  * @name V1BusinessesNamesList
3055
3280
  * @summary Company name index
@@ -3064,7 +3289,7 @@ export declare namespace Api {
3064
3289
  type ResponseBody = BusinessNameItem[];
3065
3290
  }
3066
3291
  /**
3067
- * @description Returns the number of companies in the dataset, as a bare integer. Unfiltered — it is the size of the whole dataset, not of a search. For a count over filters, call GET /businesses with countOnly=true and read totalRecords.
3292
+ * @description Returns the number of companies in the dataset, as a bare integer. Unfiltered — it is the size of the whole dataset, not of a search. For a count over filters, call GET /businesses with countOnly=true and read totalRecords. Kostet 1 Credit.
3068
3293
  * @tags Businesses
3069
3294
  * @name V1BusinessesCountList
3070
3295
  * @summary Company count
@@ -3079,7 +3304,7 @@ export declare namespace Api {
3079
3304
  type ResponseBody = number;
3080
3305
  }
3081
3306
  /**
3082
- * @description Counts over the same filter set as GET /businesses, grouped by one dimension — the server-side GROUP BY that a caller would otherwise page the whole result set to compute. Every /businesses filter means exactly what it means there; page, pageSize, orderBy, orderByDescending and countOnly are ignored — top and minCount cap the bucket list instead. totalRecords equals /businesses?countOnly=true for the same filter; how the buckets relate to it is documented on BusinessAggregateResponse.
3307
+ * @description Counts over the same filter set as GET /businesses, grouped by one dimension — the server-side GROUP BY that a caller would otherwise page the whole result set to compute. Every /businesses filter means exactly what it means there; page, pageSize, orderBy, orderByDescending and countOnly are ignored — top and minCount cap the bucket list instead. totalRecords equals /businesses?countOnly=true for the same filter; how the buckets relate to it is documented on BusinessAggregateResponse. Kostet 1 Credit.
3083
3308
  * @tags Businesses
3084
3309
  * @name V1BusinessesAggregateList
3085
3310
  * @summary Grouped company counts
@@ -3110,8 +3335,10 @@ export declare namespace Api {
3110
3335
  courtCode?: string[];
3111
3336
  legalFormCode?: string[];
3112
3337
  zipCode?: string[];
3113
- /** Filter by Bundesland: Burgenland, Kärnten, Niederösterreich, Oberösterreich, Salzburg, Steiermark, Tirol, Vorarlberg, Wien. The Firmenbuch stores no Bundesland, so the assignment is derived from the PLZ of the Geschäftsanschrift; it is exact except for the Innviertel PLZ 5120–5399, which are postally Salzburg but politically Oberösterreich. An unknown name is a 400. */
3338
+ /** Filter by Bundesland: Burgenland, Kärnten, Niederösterreich, Oberösterreich, Salzburg, Steiermark, Tirol, Vorarlberg, Wien. Derived from the PLZ of the Geschäftsanschrift; see this endpoint's description. An unknown name is a 400. */
3114
3339
  state?: string[];
3340
+ /** Filter by Gemeinde slug, derived from the PLZ. GET /addresses/gemeinden lists them. Unknown slug is a 400. */
3341
+ gemeinde?: string[];
3115
3342
  hasEdikt?: boolean;
3116
3343
  active?: boolean;
3117
3344
  /** Filter by BMF Scheinunternehmen (LSU) list: true = only businesses on the list, false = only not on the list. */
@@ -3661,7 +3888,7 @@ export declare namespace Api {
3661
3888
  type ResponseBody = BusinessAggregateResponse;
3662
3889
  }
3663
3890
  /**
3664
- * @description Counts for every value of every filter group at once — what a filter builder puts on its chips. Takes the same filters as GET /businesses and means them the same way; page, pageSize, orderBy, orderByDescending and countOnly are ignored. Faceted semantics: a group is counted with all *other* active filters applied but its own lifted, so a value's count answers "how many results if I also select this", and selecting one never empties its own group. totalRecords is the current result count, with every filter applied. Each group returns its top values (top, default 10) plus every value the request already filters on, marked selected — a "Mehr" expander is a second call for that one group with a larger top, e.g. ?groups=city&top=50. city and zipCode count a business once per distinct value, so those counts can sum above totalRecords. One caveat worth knowing before wiring a chip up: the city filter matches a substring, while a city facet key is a whole city name, so selecting "Wien" also keeps "Wien-Umgebung" and can return more than the chip promised. Every other group matches its key exactly. Every group costs its own count, so ask for the groups you are rendering rather than all ten; the answer is cacheable for a day and varies on the whole query string.
3891
+ * @description Counts for every value of every filter group at once — what a filter builder puts on its chips. Takes the same filters as GET /businesses and means them the same way; page, pageSize, orderBy, orderByDescending and countOnly are ignored. Faceted semantics: a group is counted with all *other* active filters applied but its own lifted, so a value's count answers "how many results if I also select this", and selecting one never empties its own group. totalRecords is the current result count, with every filter applied. Each group returns its top values (top, default 10) plus every value the request already filters on, marked selected — a "Mehr" expander is a second call for that one group with a larger top, e.g. ?groups=city&top=50. city and zipCode count a business once per distinct value, so those counts can sum above totalRecords. One caveat worth knowing before wiring a chip up: the city filter matches a substring, while a city facet key is a whole city name, so selecting "Wien" also keeps "Wien-Umgebung" and can return more than the chip promised. Every other group matches its key exactly. Every group costs its own count, so ask for the groups you are rendering rather than all ten; the answer is cacheable for a day and varies on the whole query string. Ohne API-Key abrufbar und kostet keine Credits.
3665
3892
  * @tags Businesses
3666
3893
  * @name V1BusinessesFacetsList
3667
3894
  * @summary Filter-builder facet counts
@@ -3687,8 +3914,10 @@ export declare namespace Api {
3687
3914
  courtCode?: string[];
3688
3915
  legalFormCode?: string[];
3689
3916
  zipCode?: string[];
3690
- /** Filter by Bundesland: Burgenland, Kärnten, Niederösterreich, Oberösterreich, Salzburg, Steiermark, Tirol, Vorarlberg, Wien. The Firmenbuch stores no Bundesland, so the assignment is derived from the PLZ of the Geschäftsanschrift; it is exact except for the Innviertel PLZ 5120–5399, which are postally Salzburg but politically Oberösterreich. An unknown name is a 400. */
3917
+ /** Filter by Bundesland: Burgenland, Kärnten, Niederösterreich, Oberösterreich, Salzburg, Steiermark, Tirol, Vorarlberg, Wien. Derived from the PLZ of the Geschäftsanschrift; see this endpoint's description. An unknown name is a 400. */
3691
3918
  state?: string[];
3919
+ /** Filter by Gemeinde slug, derived from the PLZ. GET /addresses/gemeinden lists them. Unknown slug is a 400. */
3920
+ gemeinde?: string[];
3692
3921
  hasEdikt?: boolean;
3693
3922
  active?: boolean;
3694
3923
  /** Filter by BMF Scheinunternehmen (LSU) list: true = only businesses on the list, false = only not on the list. */
@@ -4238,7 +4467,7 @@ export declare namespace Api {
4238
4467
  type ResponseBody = BusinessFacetsResponse;
4239
4468
  }
4240
4469
  /**
4241
- * @description The single largest company of every place in the viewport, by one metric — what a map draws as one pin per place instead of every dot in the box. groupBy picks the place: state (the nine Bundesländer, the default) or city (the towns in view). metric is one of detailViews (Aufrufe), bilanzSumme or employees (Mitarbeiter). minLat, maxLat, minLng and maxLng are required for groupBy=city and ignored for groupBy=state: the nine Bundesländer are the same nine wherever the map is looking, so that call takes no viewport at all — which is what lets one URL serve every pan and actually be cached, here and in the browser. Every /businesses filter additionally applies and means exactly what it means there; page, pageSize, orderBy, orderByDescending and countOnly are ignored. groupLabel is the place's name — "Tirol", "Innsbruck" — and is what the pin's card is headed with. A company carrying no value for the metric is skipped rather than counted as 0, so a place holding only such companies — like an empty one — returns nothing at all and the array is shorter than the number of places. Each item carries everything a popover card shows, so no second call per pin is needed. groupBy=city answers at most 16 pins, the biggest of the towns in view; the rest is what zooming in is for. Bundesländer are derived from the PLZ of the Geschäftsanschrift, the same rule the state filter on GET /businesses uses, because the Firmenbuch carries no Land. A company that is the biggest of two places in view wins both, each pin carrying an address that is actually on screen and in the town it won. Cached for an hour rather than the day GET /businesses gets: view counts move.
4470
+ * @description The single largest company of every place in the viewport, by one metric — what a map draws as one pin per place instead of every dot in the box. groupBy picks the place: state (the nine Bundesländer, the default) or city (the towns in view). metric is one of detailViews (Aufrufe), bilanzSumme or employees (Mitarbeiter). minLat, maxLat, minLng and maxLng are required for groupBy=city and ignored for groupBy=state: the nine Bundesländer are the same nine wherever the map is looking, so that call takes no viewport at all — which is what lets one URL serve every pan and actually be cached, here and in the browser. Every /businesses filter additionally applies and means exactly what it means there; page, pageSize, orderBy, orderByDescending and countOnly are ignored. groupLabel is the place's name — "Tirol", "Innsbruck" — and is what the pin's card is headed with. A company carrying no value for the metric is skipped rather than counted as 0, so a place holding only such companies — like an empty one — returns nothing at all and the array is shorter than the number of places. Each item carries everything a popover card shows, so no second call per pin is needed. groupBy=city answers at most 16 pins, the biggest of the towns in view; the rest is what zooming in is for. Bundesländer are derived from the PLZ of the Geschäftsanschrift, the same rule the state filter on GET /businesses uses, because the Firmenbuch carries no Land. A company that is the biggest of two places in view wins both, each pin carrying an address that is actually on screen and in the town it won. Cached for an hour rather than the day GET /businesses gets: view counts move. Ohne API-Key abrufbar und kostet keine Credits.
4242
4471
  * @tags Businesses
4243
4472
  * @name V1BusinessesMapTopList
4244
4473
  * @summary Top company per Bundesland or city
@@ -4259,8 +4488,10 @@ export declare namespace Api {
4259
4488
  courtCode?: string[];
4260
4489
  legalFormCode?: string[];
4261
4490
  zipCode?: string[];
4262
- /** Filter by Bundesland: Burgenland, Kärnten, Niederösterreich, Oberösterreich, Salzburg, Steiermark, Tirol, Vorarlberg, Wien. The Firmenbuch stores no Bundesland, so the assignment is derived from the PLZ of the Geschäftsanschrift; it is exact except for the Innviertel PLZ 5120–5399, which are postally Salzburg but politically Oberösterreich. An unknown name is a 400. */
4491
+ /** Filter by Bundesland: Burgenland, Kärnten, Niederösterreich, Oberösterreich, Salzburg, Steiermark, Tirol, Vorarlberg, Wien. Derived from the PLZ of the Geschäftsanschrift; see this endpoint's description. An unknown name is a 400. */
4263
4492
  state?: string[];
4493
+ /** Filter by Gemeinde slug, derived from the PLZ. GET /addresses/gemeinden lists them. Unknown slug is a 400. */
4494
+ gemeinde?: string[];
4264
4495
  hasEdikt?: boolean;
4265
4496
  active?: boolean;
4266
4497
  /** Filter by BMF Scheinunternehmen (LSU) list: true = only businesses on the list, false = only not on the list. */
@@ -4810,7 +5041,7 @@ export declare namespace Api {
4810
5041
  type ResponseBody = BusinessMapTopItem[];
4811
5042
  }
4812
5043
  /**
4813
- * @description Active businesses similar to the given one (same OeNACE branch, same region preferred).
5044
+ * @description Active businesses similar to the given one (same OeNACE branch, same region preferred). Kostet 3 Credits.
4814
5045
  * @tags Businesses
4815
5046
  * @name V1BusinessesSimilarList
4816
5047
  * @summary Similar companies
@@ -4827,7 +5058,7 @@ export declare namespace Api {
4827
5058
  type ResponseBody = BusinessListResponse[];
4828
5059
  }
4829
5060
  /**
4830
- * @description Returns the whole Firmenakte of one company: master data, addresses, people, GISA licences, Edikte, documents and the parsed annual accounts. fnr is matched exactly against the stored, normalised Firmenbuchnummer — lower case, no spaces, no leading zeros and no "FN" prefix, e.g. 34853f. Nothing is normalised on the way in, so "FN 34853 f" answers 404 rather than the company. 404 also means the company is not in the dataset yet.
5061
+ * @description Returns the whole Firmenakte of one company: master data, addresses, people, GISA licences, Edikte, documents and the parsed annual accounts. fnr is matched exactly against the stored, normalised Firmenbuchnummer — lower case, no spaces, no leading zeros and no "FN" prefix, e.g. 34853f. Nothing is normalised on the way in, so "FN 34853 f" answers 404 rather than the company. 404 also means the company is not in the dataset yet. Kostet 1 Credit.
4831
5062
  * @tags Businesses
4832
5063
  * @name V1BusinessesDetail
4833
5064
  * @summary Company Firmenakte
@@ -4844,7 +5075,7 @@ export declare namespace Api {
4844
5075
  type ResponseBody = BusinessDetailResponse;
4845
5076
  }
4846
5077
  /**
4847
- * @description Every parsed Jahresabschluss of one company, one entry per calendar year, newest first. The Firmenakte itself (GET /businesses/{fnr}) carries only the last five years. 404 only where the company itself is unknown, exactly as on GET /businesses/{fnr}.
5078
+ * @description Every parsed Jahresabschluss of one company, one entry per calendar year, newest first. The Firmenakte itself (GET /businesses/{fnr}) carries only the last five years. 404 only where the company itself is unknown, exactly as on GET /businesses/{fnr}. Kostet 1 Credit.
4848
5079
  * @tags Businesses
4849
5080
  * @name V1BusinessesJahresabschluesseList
4850
5081
  * @summary Company annual accounts
@@ -4861,7 +5092,24 @@ export declare namespace Api {
4861
5092
  type ResponseBody = ParsedJahresabschlussDto[];
4862
5093
  }
4863
5094
  /**
4864
- * @description Returns one Firmenbuch change by id. The id is the shared change id from GET /globalchanges, so an id that exists but whose changeType is not "business" answers 404 here.
5095
+ * @description The state aid published for one company by the Transparenzportal des BMF (§ 40k TDBG), newest year first and the largest amount first within a year, plus a summary of count, sum, the years and the freshest Stichtag. Published are Leistungen from 1.500 € per calendar year to non-natural persons; the COVID-19 reports start at 10.000 €. So an empty list means "nothing published for this company", never "this company received nothing" — and a company the portal names but that could not be matched to a Firmenbuchnummer is not here either. 404 only where the company itself is unknown, exactly as on GET /businesses/{fnr}. Kostet 1 Credit.
5096
+ * @tags Businesses
5097
+ * @name V1BusinessesFoerderungenList
5098
+ * @summary Company Foerderungen
5099
+ * @request GET:/api/v1/businesses/{fnr}/foerderungen
5100
+ * @secure
5101
+ */
5102
+ namespace V1BusinessesFoerderungenList {
5103
+ type RequestParams = {
5104
+ fnr: string;
5105
+ };
5106
+ type RequestQuery = {};
5107
+ type RequestBody = never;
5108
+ type RequestHeaders = {};
5109
+ type ResponseBody = BusinessFoerderungenResponse;
5110
+ }
5111
+ /**
5112
+ * @description Returns one Firmenbuch change by id. The id is the shared change id from GET /globalchanges, so an id that exists but whose changeType is not "business" answers 404 here. Kostet 1 Credit.
4865
5113
  * @tags Businesses
4866
5114
  * @name V1BusinessesChangesDetail
4867
5115
  * @summary Firmenbuch change by id
@@ -4879,7 +5127,7 @@ export declare namespace Api {
4879
5127
  type ResponseBody = BusinessChange;
4880
5128
  }
4881
5129
  /**
4882
- * @description Feed of Firmenbuch changes — one entry per new legal record (Eintragung). Ordered by ascending id, and that id is the cursor: request with sinceId set to the highest id you have stored, walk page=1,2,… at a fixed pageSize until a page comes back with fewer than pageSize rows, keep the highest id you saw, and start the next poll from it. sinceId is exclusive, so nothing is delivered twice, and a new change always takes a higher id than every change already in the feed, so it appends to the end and never shifts a page you have already read. since is inclusive, filters on when we recorded the change rather than on changedDate — so a back-dated entry is not missed — and applies together with sinceId when both are sent. Paging without sinceId is not a reliable feed: an offset is not a watermark, and page stops at 1000. totalRecords stops there too — it is counted only as far as page 1000 reaches, so it caps at 1000 × pageSize and means "at least this many" once it is that; stop on a short page, not on a count. Under concurrent writes a change can become visible just after a higher id, so a consumer that must not miss one resumes from the previous poll's watermark and de-duplicates by id. fnr is normalised before matching — trimmed, spaces and leading zeros removed, case left alone — so 034853 f and 34853f are the same company, exactly as on GET /businesses. Use GET /globalchanges for the same feed across all four registers.
5130
+ * @description Feed of Firmenbuch changes — one entry per new legal record (Eintragung). Ordered by ascending id, and that id is the cursor: request with sinceId set to the highest id you have stored, walk page=1,2,… at a fixed pageSize until a page comes back with fewer than pageSize rows, keep the highest id you saw, and start the next poll from it. sinceId is exclusive, so nothing is delivered twice, and a new change always takes a higher id than every change already in the feed, so it appends to the end and never shifts a page you have already read. since is inclusive, filters on when we recorded the change rather than on changedDate — so a back-dated entry is not missed — and applies together with sinceId when both are sent. Paging without sinceId is not a reliable feed: an offset is not a watermark, and page stops at 1000. totalRecords stops there too — it is counted only as far as page 1000 reaches, so it caps at 1000 × pageSize and means "at least this many" once it is that; stop on a short page, not on a count. Under concurrent writes a change can become visible just after a higher id, so a consumer that must not miss one resumes from the previous poll's watermark and de-duplicates by id. fnr is normalised before matching — trimmed, spaces and leading zeros removed, case left alone — so 034853 f and 34853f are the same company, exactly as on GET /businesses. Use GET /globalchanges for the same feed across all four registers. Kostet 1 Credit.
4883
5131
  * @tags Businesses
4884
5132
  * @name V1BusinessesChangesList
4885
5133
  * @summary Firmenbuch change feed
@@ -4921,7 +5169,7 @@ export declare namespace Api {
4921
5169
  type ResponseBody = PagedResponseOfBusinessChange;
4922
5170
  }
4923
5171
  /**
4924
- * @description Returns all assignment functions (code/text lookup) for display. Cached 24h.
5172
+ * @description Returns all assignment functions (code/text lookup) for display. Cached 24h. Ohne API-Key abrufbar und kostet keine Credits.
4925
5173
  * @tags AssignmentFunctions
4926
5174
  * @name V1AssignmentfunctionsList
4927
5175
  * @summary Assignment function catalog
@@ -4936,7 +5184,7 @@ export declare namespace Api {
4936
5184
  type ResponseBody = AssignmentFunctionItemResponse[];
4937
5185
  }
4938
5186
  /**
4939
- * @description Returns unique City+ZipCode combinations from addresses with pagination and optional search.
5187
+ * @description Returns unique City+ZipCode combinations from addresses with pagination and optional search. Kostet 1 Credit.
4940
5188
  * @tags Addresses
4941
5189
  * @name V1AddressesLocationsList
4942
5190
  * @summary City and ZIP combinations
@@ -4967,7 +5215,7 @@ export declare namespace Api {
4967
5215
  type ResponseBody = PagedResponseOfAddressLocationResponse;
4968
5216
  }
4969
5217
  /**
4970
- * @description Returns unique cities from addresses with pagination and optional search.
5218
+ * @description Returns unique cities from addresses with pagination and optional search. Kostet 1 Credit.
4971
5219
  * @tags Addresses
4972
5220
  * @name V1AddressesCitiesList
4973
5221
  * @summary Cities
@@ -4998,7 +5246,7 @@ export declare namespace Api {
4998
5246
  type ResponseBody = PagedResponseOfCityResponse;
4999
5247
  }
5000
5248
  /**
5001
- * @description Ranks cities and City+ZipCode combinations against one term and answers the best few of both, as one ranking split into two lists — what a location filter's type-ahead needs, where /addresses/locations and /addresses/cities are the paged catalogues behind it. Ordered by where the term sits in the label, then by the shorter label, then by company count, so "wien" answers Wien before Wiener Neustadt and before every 1xxx ZIP that carries it. A term shorter than two characters is ignored and the biggest groups come back instead. top caps both lists together, not each.
5249
+ * @description Ranks cities and City+ZipCode combinations against one term and answers the best few of both, as one ranking split into two lists — what a location filter's type-ahead needs, where /addresses/locations and /addresses/cities are the paged catalogues behind it. Ordered by where the term sits in the label, then by the shorter label, then by company count, so "wien" answers Wien before Wiener Neustadt and before every 1xxx ZIP that carries it. A term shorter than two characters is ignored and the biggest groups come back instead. top caps both lists together, not each. Ohne API-Key abrufbar und kostet keine Credits.
5002
5250
  * @tags Addresses
5003
5251
  * @name V1AddressesSuggestList
5004
5252
  * @summary Location autocomplete
@@ -5021,7 +5269,7 @@ export declare namespace Api {
5021
5269
  type ResponseBody = LocationSuggestionsResponse;
5022
5270
  }
5023
5271
  /**
5024
- * @description Returns unique zip codes from addresses with pagination and optional search.
5272
+ * @description Returns unique zip codes from addresses with pagination and optional search. Kostet 1 Credit.
5025
5273
  * @tags Addresses
5026
5274
  * @name V1AddressesZipcodesList
5027
5275
  * @summary ZIP codes
@@ -5051,6 +5299,21 @@ export declare namespace Api {
5051
5299
  type RequestHeaders = {};
5052
5300
  type ResponseBody = PagedResponseOfZipCodeResponse;
5053
5301
  }
5302
+ /**
5303
+ * @description The Gemeinde catalogue: one row per Austrian Gemeinde the register can address, with its official name, its URL slug, its Bundesland, the PLZ that resolve to it and the alias slugs that name it. This is the one source for a place's identity. The city column of an address is Firmenbuch free text and carries "Klagenfurt am Wörthersee", "Klagenfurt", "Klagenfurt-Viktring" and "Klagenfurt-Wölfnitz" side by side, so it cannot be a key; a Gemeinde is derived from the PLZ of the Geschäftsanschrift instead, and GET /businesses?gemeinde=<slug> answers every one of those spellings at once. Fold the zipCode buckets of GET /businesses/aggregate through zipCodes to count companies per Gemeinde. Unpaged and without a filter on purpose: 1.893 rows that change only with a new Gebietsstand, so one cacheable answer is cheaper for every caller than paging a list they all want whole. Companies with a foreign or unusable PLZ resolve to no Gemeinde and appear under none. Kostet 1 Credit.
5304
+ * @tags Addresses
5305
+ * @name V1AddressesGemeindenList
5306
+ * @summary Gemeinden
5307
+ * @request GET:/api/v1/addresses/gemeinden
5308
+ * @secure
5309
+ */
5310
+ namespace V1AddressesGemeindenList {
5311
+ type RequestParams = {};
5312
+ type RequestQuery = {};
5313
+ type RequestBody = never;
5314
+ type RequestHeaders = {};
5315
+ type ResponseBody = GemeindeResponse[];
5316
+ }
5054
5317
  }
5055
5318
  export type QueryParamsType = Record<string | number, any>;
5056
5319
  export type ResponseFormat = keyof Omit<Body, "body" | "bodyUsed">;
@@ -5119,7 +5382,7 @@ export declare class HttpClient<SecurityDataType = unknown> {
5119
5382
  export declare class Api<SecurityDataType extends unknown> extends HttpClient<SecurityDataType> {
5120
5383
  api: {
5121
5384
  /**
5122
- * @description Every saved Abfrage of the calling account, newest first.
5385
+ * @description Every saved Abfrage of the calling account, newest first. Kostet 1 Credit.
5123
5386
  *
5124
5387
  * @tags Queries
5125
5388
  * @name V1QueriesList
@@ -5129,7 +5392,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5129
5392
  */
5130
5393
  v1QueriesList: (params?: RequestParams) => Promise<HttpResponse<QueryResponse[], ApiError | ProblemDetails>>;
5131
5394
  /**
5132
- * @description Keeps a filter set. A save whose filters match an Abfrage the account already has updates that one instead of adding a second — pass updateId to pin the row being edited.
5395
+ * @description Keeps a filter set. A save whose filters match an Abfrage the account already has updates that one instead of adding a second — pass updateId to pin the row being edited. Kostet 1 Credit.
5133
5396
  *
5134
5397
  * @tags Queries
5135
5398
  * @name V1QueriesCreate
@@ -5139,7 +5402,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5139
5402
  */
5140
5403
  v1QueriesCreate: (data: SaveQueryRequest, params?: RequestParams) => Promise<HttpResponse<QueryResponse, ApiError | ProblemDetails>>;
5141
5404
  /**
5142
- * @description The saved Abfrage with this id, when it belongs to the calling account.
5405
+ * @description The saved Abfrage with this id, when it belongs to the calling account. Kostet 1 Credit.
5143
5406
  *
5144
5407
  * @tags Queries
5145
5408
  * @name V1QueriesDetail
@@ -5149,7 +5412,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5149
5412
  */
5150
5413
  v1QueriesDetail: (id: string, params?: RequestParams) => Promise<HttpResponse<QueryResponse, ApiError | ProblemDetails>>;
5151
5414
  /**
5152
- * @description Removes one saved Abfrage from the Suchverlauf.
5415
+ * @description Removes one saved Abfrage from the Suchverlauf. Kostet 1 Credit.
5153
5416
  *
5154
5417
  * @tags Queries
5155
5418
  * @name V1QueriesDelete
@@ -5159,7 +5422,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5159
5422
  */
5160
5423
  v1QueriesDelete: (id: string, params?: RequestParams) => Promise<HttpResponse<void, ApiError | ProblemDetails>>;
5161
5424
  /**
5162
- * @description Deletes every saved Abfrage of the calling account.
5425
+ * @description Deletes every saved Abfrage of the calling account. Kostet 1 Credit.
5163
5426
  *
5164
5427
  * @tags Queries
5165
5428
  * @name V1QueriesAllDelete
@@ -5169,7 +5432,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5169
5432
  */
5170
5433
  v1QueriesAllDelete: (params?: RequestParams) => Promise<HttpResponse<void, ApiError | ProblemDetails>>;
5171
5434
  /**
5172
- * @description Every Liste of the calling account, oldest first.
5435
+ * @description Every Liste of the calling account, oldest first. Kostet 1 Credit.
5173
5436
  *
5174
5437
  * @tags Lists
5175
5438
  * @name V1ListsList
@@ -5179,7 +5442,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5179
5442
  */
5180
5443
  v1ListsList: (params?: RequestParams) => Promise<HttpResponse<ListResponse[], ApiError | ProblemDetails>>;
5181
5444
  /**
5182
- * @description Creates an empty Liste, or one already holding the companies you pass.
5445
+ * @description Creates an empty Liste, or one already holding the companies you pass. Kostet 1 Credit.
5183
5446
  *
5184
5447
  * @tags Lists
5185
5448
  * @name V1ListsCreate
@@ -5189,7 +5452,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5189
5452
  */
5190
5453
  v1ListsCreate: (data: CreateListRequest, params?: RequestParams) => Promise<HttpResponse<ListResponse, ApiError | ProblemDetails>>;
5191
5454
  /**
5192
- * @description The Liste with this id, when it belongs to the calling account.
5455
+ * @description The Liste with this id, when it belongs to the calling account. Kostet 1 Credit.
5193
5456
  *
5194
5457
  * @tags Lists
5195
5458
  * @name V1ListsDetail
@@ -5199,7 +5462,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5199
5462
  */
5200
5463
  v1ListsDetail: (id: string, params?: RequestParams) => Promise<HttpResponse<ListResponse, ApiError | ProblemDetails>>;
5201
5464
  /**
5202
- * @description A partial update: only the fields the body carries are written, and settings are merged into the stored ones rather than replacing them.
5465
+ * @description A partial update: only the fields the body carries are written, and settings are merged into the stored ones rather than replacing them. Kostet 1 Credit.
5203
5466
  *
5204
5467
  * @tags Lists
5205
5468
  * @name V1ListsPartialUpdate
@@ -5209,7 +5472,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5209
5472
  */
5210
5473
  v1ListsPartialUpdate: (id: string, data: UpdateListRequest, params?: RequestParams) => Promise<HttpResponse<ListResponse, ApiError | ProblemDetails>>;
5211
5474
  /**
5212
- * @description Deletes the Liste. The companies on it are not touched anywhere else.
5475
+ * @description Deletes the Liste. The companies on it are not touched anywhere else. Kostet 1 Credit.
5213
5476
  *
5214
5477
  * @tags Lists
5215
5478
  * @name V1ListsDelete
@@ -5219,7 +5482,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5219
5482
  */
5220
5483
  v1ListsDelete: (id: string, params?: RequestParams) => Promise<HttpResponse<void, ApiError | ProblemDetails>>;
5221
5484
  /**
5222
- * @description Appends the companies that are not on it yet, keeping the order of the ones that are. A company that had been taken off comes back off the removed set.
5485
+ * @description Appends the companies that are not on it yet, keeping the order of the ones that are. A company that had been taken off comes back off the removed set. Kostet 1 Credit.
5223
5486
  *
5224
5487
  * @tags Lists
5225
5488
  * @name V1ListsAddCreate
@@ -5229,7 +5492,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5229
5492
  */
5230
5493
  v1ListsAddCreate: (id: string, data: ListMembersRequest, params?: RequestParams) => Promise<HttpResponse<ListResponse, ApiError | ProblemDetails>>;
5231
5494
  /**
5232
- * @description Takes the companies off the Liste and records them as removed.
5495
+ * @description Takes the companies off the Liste and records them as removed. Kostet 1 Credit.
5233
5496
  *
5234
5497
  * @tags Lists
5235
5498
  * @name V1ListsRemoveCreate
@@ -5239,7 +5502,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5239
5502
  */
5240
5503
  v1ListsRemoveCreate: (id: string, data: ListMembersRequest, params?: RequestParams) => Promise<HttpResponse<ListResponse, ApiError | ProblemDetails>>;
5241
5504
  /**
5242
- * @description Builds a CSV or an Excel workbook over the companies you name: an explicit set of FNRs, a Liste, or a saved Abfrage. Nothing is stored and no link is handed back: the CSV is written out as it is produced, the workbook is built in memory first. One export carries at most 1000 companies: a set of FNRs or a Liste that holds more is refused with a 400 rather than cut short, and a saved Abfrage exports its first 1000 matches. An export that would hold no rows answers 204 rather than an empty file.
5505
+ * @description Builds a CSV or an Excel workbook over the companies you name: an explicit set of FNRs, a Liste, or a saved Abfrage. Nothing is stored and no link is handed back: the CSV is written out as it is produced, the workbook is built in memory first. One export carries at most 1000 companies: a set of FNRs or a Liste that holds more is refused with a 400 rather than cut short, and a saved Abfrage exports its first 1000 matches. An export that would hold no rows answers 204 rather than an empty file. Kostet 3 Credits.
5243
5506
  *
5244
5507
  * @tags Exports
5245
5508
  * @name V1ExportsBusinessesCreate
@@ -5249,7 +5512,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5249
5512
  */
5250
5513
  v1ExportsBusinessesCreate: (data: ExportBusinessesRequest, params?: RequestParams) => Promise<HttpResponse<FileResult, ApiError | ProblemDetails>>;
5251
5514
  /**
5252
- * @description Downloads the signed GISA PDF extract for a license (GISA-Zahl). Language defaults to German (De).
5515
+ * @description Downloads the signed GISA PDF extract for a license (GISA-Zahl). Language defaults to German (De). Kostet 3 Credits.
5253
5516
  *
5254
5517
  * @tags Trades
5255
5518
  * @name V1TradesDocumentsDetail
@@ -5264,7 +5527,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5264
5527
  language?: "De" | "En";
5265
5528
  }, params?: RequestParams) => Promise<HttpResponse<Blob, ApiError | ProblemDetails>>;
5266
5529
  /**
5267
- * @description Returns the global catalog of GISA Trade Definitions with pagination.
5530
+ * @description Returns the global catalog of GISA Trade Definitions with pagination. Ohne API-Key abrufbar und kostet keine Credits.
5268
5531
  *
5269
5532
  * @tags Trades
5270
5533
  * @name V1TradesList
@@ -5292,7 +5555,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5292
5555
  pageSize?: number;
5293
5556
  }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfTradeCatalogItemResponse, ApiError | ProblemDetails>>;
5294
5557
  /**
5295
- * @description Returns all company licenses for a specific trade definition with pagination.
5558
+ * @description Returns all company licenses for a specific trade definition with pagination. Kostet 1 Credit.
5296
5559
  *
5297
5560
  * @tags Trades
5298
5561
  * @name V1TradesLicensesList
@@ -5317,7 +5580,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5317
5580
  pageSize?: number;
5318
5581
  }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfGisaLicense, ApiError | ProblemDetails>>;
5319
5582
  /**
5320
- * @description Returns all licenses for a specific company (FNR).
5583
+ * @description Returns all licenses for a specific company (FNR). Kostet 1 Credit.
5321
5584
  *
5322
5585
  * @tags Trades
5323
5586
  * @name V1TradesCompanyDetail
@@ -5327,7 +5590,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5327
5590
  */
5328
5591
  v1TradesCompanyDetail: (fnr: string, params?: RequestParams) => Promise<HttpResponse<GisaLicense[], ApiError | ProblemDetails>>;
5329
5592
  /**
5330
- * @description Returns a single GISA change by id.
5593
+ * @description Returns a single GISA change by id. Kostet 1 Credit.
5331
5594
  *
5332
5595
  * @tags Trades
5333
5596
  * @name V1TradesChangesDetail
@@ -5337,7 +5600,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5337
5600
  */
5338
5601
  v1TradesChangesDetail: (id: number, params?: RequestParams) => Promise<HttpResponse<GisaChange, ApiError | ProblemDetails>>;
5339
5602
  /**
5340
- * @description Feed of GISA changes — one entry per change to a company's trade licences. Ordered by ascending id, and that id is the cursor: request with sinceId set to the highest id you have stored, walk page=1,2,… at a fixed pageSize until a page comes back with fewer than pageSize rows, keep the highest id you saw, and start the next poll from it. sinceId is exclusive, so nothing is delivered twice, and a new change always takes a higher id than every change already in the feed, so it appends to the end and never shifts a page you have already read. since is inclusive, filters on when we recorded the change rather than on changedDate, and applies together with sinceId when both are sent. Paging without sinceId is not a reliable feed: an offset is not a watermark, and page stops at 1000. totalRecords stops there too — it is counted only as far as page 1000 reaches, so it caps at 1000 × pageSize and means "at least this many" once it is that; stop on a short page, not on a count. Under concurrent writes a change can become visible just after a higher id, so a consumer that must not miss one resumes from the previous poll's watermark and de-duplicates by id. fnr is normalised before matching — trimmed, spaces and leading zeros removed, case left alone — so 034853 f and 34853f are the same company, exactly as on GET /businesses.
5603
+ * @description Feed of GISA changes — one entry per change to a company's trade licences. Ordered by ascending id, and that id is the cursor: request with sinceId set to the highest id you have stored, walk page=1,2,… at a fixed pageSize until a page comes back with fewer than pageSize rows, keep the highest id you saw, and start the next poll from it. sinceId is exclusive, so nothing is delivered twice, and a new change always takes a higher id than every change already in the feed, so it appends to the end and never shifts a page you have already read. since is inclusive, filters on when we recorded the change rather than on changedDate, and applies together with sinceId when both are sent. Paging without sinceId is not a reliable feed: an offset is not a watermark, and page stops at 1000. totalRecords stops there too — it is counted only as far as page 1000 reaches, so it caps at 1000 × pageSize and means "at least this many" once it is that; stop on a short page, not on a count. Under concurrent writes a change can become visible just after a higher id, so a consumer that must not miss one resumes from the previous poll's watermark and de-duplicates by id. fnr is normalised before matching — trimmed, spaces and leading zeros removed, case left alone — so 034853 f and 34853f are the same company, exactly as on GET /businesses. Kostet 1 Credit.
5341
5604
  *
5342
5605
  * @tags Trades
5343
5606
  * @name V1TradesChangesList
@@ -5374,7 +5637,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5374
5637
  pageSize?: number;
5375
5638
  }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfGisaChange, ApiError | ProblemDetails>>;
5376
5639
  /**
5377
- * @description The autocomplete read: /businesses and /people for one term, ranked together, so a search field costs one request per keystroke rather than two and does not have to merge two orders itself. Each row carries either business or person, whichever type names. Ordered by where the term sits in the name, then by the shorter name, then companies before people. pageSize is per side, so the answer holds up to twice as many rows. An empty search answers an empty list; use /businesses to page through the whole dataset.
5640
+ * @description The autocomplete read: /businesses and /people for one term, ranked together, so a search field costs one request per keystroke rather than two and does not have to merge two orders itself. Each row carries either business or person, whichever type names. Ordered by where the term sits in the name, then by the shorter name, then companies before people. pageSize is per side, so the answer holds up to twice as many rows. An empty search answers an empty list; use /businesses to page through the whole dataset. Ohne API-Key abrufbar und kostet keine Credits.
5378
5641
  *
5379
5642
  * @tags Search
5380
5643
  * @name V1SearchList
@@ -5394,7 +5657,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5394
5657
  pageSize?: number;
5395
5658
  }, params?: RequestParams) => Promise<HttpResponse<SearchResponse, ApiError | ProblemDetails>>;
5396
5659
  /**
5397
- * @description Returns (id, name) pairs for all people with at least one business assignment. For client-side name index.
5660
+ * @description Returns (id, name) pairs for all people with at least one business assignment. For client-side name index. Kostet 1 Credit.
5398
5661
  *
5399
5662
  * @tags People
5400
5663
  * @name V1PeopleNamesList
@@ -5404,7 +5667,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5404
5667
  */
5405
5668
  v1PeopleNamesList: (params?: RequestParams) => Promise<HttpResponse<PersonNameItem[], ApiError | ProblemDetails>>;
5406
5669
  /**
5407
- * @description Lists people who hold a function in, or a GISA licence for, an Austrian company. name and search behave identically here — both split the term on spaces and keep people whose "firstName lastName" contains every token, case-insensitively — except that search wins when both are given. Ordered by last name, then first name unless orderBy says otherwise. Combine with fnr or businessName to get the officers of one company, or with functionCode for one role. fnr, functionCode, businessName, businessCity and businessRegisteredSince_gte all describe one and the same assignment: a person comes back only if a single company of theirs satisfies every one of them. So the youngest owners of this year's new Viennese companies are one page: ?businessCity=Wien&businessRegisteredSince_gte=2026-01-01&functionCode=IN&functionCode=KP&functionCode=GS&functionCode=PG&orderBy=birthDate&orderByDescending=true&pageSize=3 A row's assignments are a sample, not the person's whole collection: at most 25, and only the ones matching the fnr, functionCode, businessName, businessCity and businessRegisteredSince_gte you sent, so ?fnr=34853f gives you that company's row and nothing else. Ask GET /people/{personId} for all of them.
5670
+ * @description Lists people who hold a function in, or a GISA licence for, an Austrian company. name and search behave identically here — both split the term on spaces and keep people whose "firstName lastName" contains every token, case-insensitively — except that search wins when both are given. Ordered by last name, then first name unless orderBy says otherwise. Combine with fnr or businessName to get the officers of one company, or with functionCode for one role. fnr, functionCode, businessName, businessCity and businessRegisteredSince_gte all describe one and the same assignment: a person comes back only if a single company of theirs satisfies every one of them. So the youngest owners of this year's new Viennese companies are one page: ?businessCity=Wien&businessRegisteredSince_gte=2026-01-01&functionCode=IN&functionCode=KP&functionCode=GS&functionCode=PG&orderBy=birthDate&orderByDescending=true&pageSize=3 A row's assignments are a sample, not the person's whole collection: at most 25, and only the ones matching the fnr, functionCode, businessName, businessCity and businessRegisteredSince_gte you sent, so ?fnr=34853f gives you that company's row and nothing else. Ask GET /people/{personId} for all of them. Kostet 1 Credit.
5408
5671
  *
5409
5672
  * @tags People
5410
5673
  * @name V1PeopleList
@@ -5451,7 +5714,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5451
5714
  pageSize?: number;
5452
5715
  }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfPerson, ApiError | ProblemDetails>>;
5453
5716
  /**
5454
- * @description Returns one person with every company function, GISA licence and Edikt attached to them. personId is the synthetic id described in the glossary — "firstname-lastname-birthdate", lower case, inner spaces replaced by hyphens and "x" for a part the register does not give, e.g. "max-mustermann-1970-01-01". It is matched exactly. Take it from a list row or from an assignment on a company rather than composing it yourself. An id beginning with "--" carries neither first nor last name, and that is not a person but the bucket every nameless assignment in the register lands in. It answers 404 like any id nobody holds, and it is left out of GET /people for the same reason.
5717
+ * @description Returns one person with every company function, GISA licence and Edikt attached to them. personId is the synthetic id described in the glossary — "firstname-lastname-birthdate", lower case, inner spaces replaced by hyphens and "x" for a part the register does not give, e.g. "max-mustermann-1970-01-01". It is matched exactly. Take it from a list row or from an assignment on a company rather than composing it yourself. An id beginning with "--" carries neither first nor last name, and that is not a person but the bucket every nameless assignment in the register lands in. It answers 404 like any id nobody holds, and it is left out of GET /people for the same reason. Kostet 1 Credit.
5455
5718
  *
5456
5719
  * @tags People
5457
5720
  * @name V1PeopleDetail
@@ -5461,7 +5724,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5461
5724
  */
5462
5725
  v1PeopleDetail: (personId: string, params?: RequestParams) => Promise<HttpResponse<PersonDetailResponse, ApiError | ProblemDetails>>;
5463
5726
  /**
5464
- * @description Returns the OeNACE classification catalog with company counts. Results are ordered by company count descending — most used first.
5727
+ * @description Returns the OeNACE classification catalog with company counts. Results are ordered by company count descending — most used first. Ohne API-Key abrufbar und kostet keine Credits.
5465
5728
  *
5466
5729
  * @tags Oenace
5467
5730
  * @name V1OenaceList
@@ -5494,7 +5757,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5494
5757
  pageSize?: number;
5495
5758
  }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfOenaceCatalogItemResponse, ApiError | ProblemDetails>>;
5496
5759
  /**
5497
- * @description Returns all legal forms with pagination and optional search, sorted by business count descending.
5760
+ * @description Returns all legal forms with pagination and optional search, sorted by business count descending. Ohne API-Key abrufbar und kostet keine Credits.
5498
5761
  *
5499
5762
  * @tags LegalForms
5500
5763
  * @name V1LegalformsList
@@ -5521,7 +5784,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5521
5784
  pageSize?: number;
5522
5785
  }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfLegalFormCatalogItemResponse, ApiError | ProblemDetails>>;
5523
5786
  /**
5524
- * @description Returns the graph (nodes and edges) within 2 hops of the start entity. Exactly one of personId or fnr must be provided. The network of people and companies around one starting point — who sits on which board with whom. nodes are people ("person") and companies ("business"), each carrying the id you would pass to /people/{personId} or /businesses/{fnr}; edges are source/target pairs of those ids whose relationshipType is "assignment", a person holding a function in a company. Two further edge types the deployment can enable: "address", two companies registered at the same street address, and "ownership", a company holding shares in another — source is the shareholder, target the company it holds, and capitalAmount, currency and sharePercent carry the stake where the register gives one. Ownership edges are drawn only for companies crawled since the shareholder mapping went live, so a company not yet re-crawled reports none rather than implying it has none. The traversal depth is fixed at 2 hops and is not a parameter — a node with further connections outside that boundary carries hasMore=true, and isCentralNode marks the entity you started from. personId and fnr are mutually exclusive, not combinable: supplying both, or neither, is a 400, and an id that exists in neither register is a 404.
5787
+ * @description Returns the graph (nodes and edges) within 2 hops of the start entity. Exactly one of personId or fnr must be provided. The network of people and companies around one starting point — who sits on which board with whom. nodes are people ("person") and companies ("business"), each carrying the id you would pass to /people/{personId} or /businesses/{fnr}; edges are source/target pairs of those ids whose relationshipType is "assignment", a person holding a function in a company. Two further edge types the deployment can enable: "address", two companies registered at the same street address, and "ownership", a company holding shares in another — source is the shareholder, target the company it holds, and capitalAmount, currency and sharePercent carry the stake where the register gives one. Ownership edges are drawn only for companies crawled since the shareholder mapping went live, so a company not yet re-crawled reports none rather than implying it has none. The traversal depth is fixed at 2 hops and is not a parameter — a node with further connections outside that boundary carries hasMore=true, and isCentralNode marks the entity you started from. personId and fnr are mutually exclusive, not combinable: supplying both, or neither, is a 400, and an id that exists in neither register is a 404. Kostet 3 Credits.
5525
5788
  *
5526
5789
  * @tags Graph
5527
5790
  * @name V1GraphList
@@ -5536,7 +5799,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5536
5799
  fnr?: string;
5537
5800
  }, params?: RequestParams) => Promise<HttpResponse<GraphResponse, ApiError | ProblemDetails>>;
5538
5801
  /**
5539
- * @description The single feed of every change across all registers — Firmenbuch, GISA, Ediktsdatei and the BMF Scheinunternehmen list — as lightweight reference rows. Each row carries only id, fnr, changeType and the dates; fetch the payload with GET /globalchanges/{id}, or poll one register's typed feed instead (/businesses/changes, /documents/changes, /edikte/changes, /trades/changes). Ordered by ascending id, and that id is the cursor: request with sinceId set to the highest id you have stored, walk page=1,2,… at a fixed pageSize until a page comes back with fewer than pageSize rows, keep the highest id you saw, and start the next poll from it. sinceId is exclusive, so nothing is delivered twice, and a new change always takes a higher id than every change already in the feed, so it appends to the end and never shifts a page you have already read. since is inclusive, filters on when we recorded the change rather than on changedDate, and applies together with sinceId when both are sent. Paging without sinceId is not a reliable feed: an offset is not a watermark, and page stops at 1000. totalRecords stops there too — it is counted only as far as page 1000 reaches, so it caps at 1000 × pageSize and means "at least this many" once it is that; stop on a short page, not on a count. Under concurrent writes a change can become visible just after a higher id, so a consumer that must not miss one resumes from the previous poll's watermark and de-duplicates by id.
5802
+ * @description The single feed of every change across all registers — Firmenbuch, GISA, Ediktsdatei and the BMF Scheinunternehmen list — as lightweight reference rows. Each row carries only id, fnr, changeType and the dates; fetch the payload with GET /globalchanges/{id}, or poll one register's typed feed instead (/businesses/changes, /documents/changes, /edikte/changes, /trades/changes). Ordered by ascending id, and that id is the cursor: request with sinceId set to the highest id you have stored, walk page=1,2,… at a fixed pageSize until a page comes back with fewer than pageSize rows, keep the highest id you saw, and start the next poll from it. sinceId is exclusive, so nothing is delivered twice, and a new change always takes a higher id than every change already in the feed, so it appends to the end and never shifts a page you have already read. since is inclusive, filters on when we recorded the change rather than on changedDate, and applies together with sinceId when both are sent. Paging without sinceId is not a reliable feed: an offset is not a watermark, and page stops at 1000. totalRecords stops there too — it is counted only as far as page 1000 reaches, so it caps at 1000 × pageSize and means "at least this many" once it is that; stop on a short page, not on a count. Under concurrent writes a change can become visible just after a higher id, so a consumer that must not miss one resumes from the previous poll's watermark and de-duplicates by id. Kostet 1 Credit.
5540
5803
  *
5541
5804
  * @tags GlobalChanges
5542
5805
  * @name V1GlobalchangesList
@@ -5573,7 +5836,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5573
5836
  pageSize?: number;
5574
5837
  }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfGlobalChange, ApiError | ProblemDetails>>;
5575
5838
  /**
5576
- * @description Changes for a watchlist of companies, all four change types in one unpaged response. Built for watchlist polling: pass up to 1000 fnr values (repeat the parameter) and one cursor, and get back four arrays — businessChanges, documentChanges, ediktChanges, globalChanges — each ordered by ascending id and capped at maxResultsPerType. Not paged: raise maxResultsPerType or advance sinceId instead. sinceId is exclusive and since is inclusive, exactly as on the paged feeds, but one sinceId covers all four arrays: an array that comes back full at maxResultsPerType has more behind it and bounds the cursor, so advance sinceId only to the lowest of the full arrays' highest ids, and to the highest id of all four once none comes back full. Passing no fnr returns four empty arrays, not the whole feed.
5839
+ * @description Changes for a watchlist of companies, all four change types in one unpaged response. Built for watchlist polling: pass up to 1000 fnr values (repeat the parameter) and one cursor, and get back four arrays — businessChanges, documentChanges, ediktChanges, globalChanges — each ordered by ascending id and capped at maxResultsPerType. Not paged: raise maxResultsPerType or advance sinceId instead. sinceId is exclusive and since is inclusive, exactly as on the paged feeds, but one sinceId covers all four arrays: an array that comes back full at maxResultsPerType has more behind it and bounds the cursor, so advance sinceId only to the lowest of the full arrays' highest ids, and to the highest id of all four once none comes back full. Passing no fnr returns four empty arrays, not the whole feed. Kostet 3 Credits.
5577
5840
  *
5578
5841
  * @tags GlobalChanges
5579
5842
  * @name V1GlobalchangesAggregatedList
@@ -5597,7 +5860,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5597
5860
  maxResultsPerType?: number;
5598
5861
  }, params?: RequestParams) => Promise<HttpResponse<AggregatedChangesResponse, ApiError | ProblemDetails>>;
5599
5862
  /**
5600
- * @description Returns one change with its typed payload, whichever register it came from. The envelope is a discriminator plus the payload: changeType says which register, and data is the matching object — a BusinessChange, DocumentChange, EdiktChange, GisaChange or ScheinunternehmenChange. Since data is a union, read changeType before it.
5863
+ * @description Returns one change with its typed payload, whichever register it came from. The envelope is a discriminator plus the payload: changeType says which register, and data is the matching object — a BusinessChange, DocumentChange, EdiktChange, GisaChange, FoerderungChange or ScheinunternehmenChange. Since data is a union, read changeType before it. Kostet 1 Credit.
5601
5864
  *
5602
5865
  * @tags GlobalChanges
5603
5866
  * @name V1GlobalchangesDetail
@@ -5607,7 +5870,54 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5607
5870
  */
5608
5871
  v1GlobalchangesDetail: (id: number, params?: RequestParams) => Promise<HttpResponse<ChangeDetailResponse, ApiError | ProblemDetails>>;
5609
5872
  /**
5610
- * @description Returns one Ediktsdatei change by id. The id is the shared change id from GET /globalchanges, so an id that exists but whose changeType is not "edikt" answers 404 here.
5873
+ * @description Kostet 1 Credit.
5874
+ *
5875
+ * @tags Foerderungen
5876
+ * @name V1FoerderungenChangesDetail
5877
+ * @summary Funding change by id
5878
+ * @request GET:/api/v1/foerderungen/changes/{id}
5879
+ * @secure
5880
+ */
5881
+ v1FoerderungenChangesDetail: (id: number, params?: RequestParams) => Promise<HttpResponse<FoerderungChange, ApiError | ProblemDetails>>;
5882
+ /**
5883
+ * @description New payments and amount corrections for matched companies. A source's initial import is excluded. Ordered by ascending id. Poll with sinceId set to the previous watermark, deduplicate by id, and stop on a short page. since is inclusive and filters the recorded date, not the payment year. Both cursors apply together. fnr is normalised as on GET /businesses. totalRecords is capped at 1000 × pageSize; at that cap it means at least that many. Kostet 1 Credit.
5884
+ *
5885
+ * @tags Foerderungen
5886
+ * @name V1FoerderungenChangesList
5887
+ * @summary Funding change feed
5888
+ * @request GET:/api/v1/foerderungen/changes
5889
+ * @secure
5890
+ */
5891
+ v1FoerderungenChangesList: (query?: {
5892
+ /** Only changes for this Firmenbuchnummer. Normalised before matching — trimmed, spaces and leading zeros removed — so 034853 f and 34853f are the same company. Case is not folded: pass the lower-case form the API gives you. */
5893
+ fnr?: string;
5894
+ /**
5895
+ * Only changes we recorded at or after this instant — inclusive, and ANDed with sinceId when both are sent. A timestamp is not a cursor: poll on sinceId.
5896
+ * @format date-time
5897
+ */
5898
+ since?: string;
5899
+ /**
5900
+ * Only changes with a higher id than this — exclusive, so pass back the highest id you have stored. This is the cursor to poll the feed on.
5901
+ * @format int64
5902
+ */
5903
+ sinceId?: number;
5904
+ /**
5905
+ * 1-based page number; defaults to 1 when omitted. Walk it upwards within one poll, holding sinceId fixed, until a page comes back with fewer than pageSize rows.
5906
+ * @format int32
5907
+ * @min 1
5908
+ * @max 1000
5909
+ */
5910
+ page?: number;
5911
+ /**
5912
+ * Number of items per page; defaults to 100 when omitted. A page shorter than this is the end of the feed.
5913
+ * @format int32
5914
+ * @min 1
5915
+ * @max 100
5916
+ */
5917
+ pageSize?: number;
5918
+ }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfFoerderungChange, ApiError | ProblemDetails>>;
5919
+ /**
5920
+ * @description Returns one Ediktsdatei change by id. The id is the shared change id from GET /globalchanges, so an id that exists but whose changeType is not "edikt" answers 404 here. Kostet 1 Credit.
5611
5921
  *
5612
5922
  * @tags Edikte
5613
5923
  * @name V1EdikteChangesDetail
@@ -5617,7 +5927,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5617
5927
  */
5618
5928
  v1EdikteChangesDetail: (id: number, params?: RequestParams) => Promise<HttpResponse<EdiktChange, ApiError | ProblemDetails>>;
5619
5929
  /**
5620
- * @description Feed of Ediktsdatei changes — insolvency and other court notices published about a company or a person. Ordered by ascending id, and that id is the cursor: request with sinceId set to the highest id you have stored, walk page=1,2,… at a fixed pageSize until a page comes back with fewer than pageSize rows, keep the highest id you saw, and start the next poll from it. sinceId is exclusive, so nothing is delivered twice, and a new change always takes a higher id than every change already in the feed, so it appends to the end and never shifts a page you have already read. since is inclusive, filters on when we recorded the change rather than on the publication date, and applies together with sinceId when both are sent. Paging without sinceId is not a reliable feed: an offset is not a watermark, and page stops at 1000. totalRecords stops there too — it is counted only as far as page 1000 reaches, so it caps at 1000 × pageSize and means "at least this many" once it is that; stop on a short page, not on a count. Under concurrent writes a change can become visible just after a higher id, so a consumer that must not miss an insolvency notice resumes from the previous poll's watermark and de-duplicates by id. fnr is normalised before matching — trimmed, spaces and leading zeros removed, case left alone — so 034853 f and 34853f are the same company, exactly as on GET /businesses.
5930
+ * @description Feed of Ediktsdatei changes — insolvency and other court notices published about a company or a person. Ordered by ascending id, and that id is the cursor: request with sinceId set to the highest id you have stored, walk page=1,2,… at a fixed pageSize until a page comes back with fewer than pageSize rows, keep the highest id you saw, and start the next poll from it. sinceId is exclusive, so nothing is delivered twice, and a new change always takes a higher id than every change already in the feed, so it appends to the end and never shifts a page you have already read. since is inclusive, filters on when we recorded the change rather than on the publication date, and applies together with sinceId when both are sent. Paging without sinceId is not a reliable feed: an offset is not a watermark, and page stops at 1000. totalRecords stops there too — it is counted only as far as page 1000 reaches, so it caps at 1000 × pageSize and means "at least this many" once it is that; stop on a short page, not on a count. Under concurrent writes a change can become visible just after a higher id, so a consumer that must not miss an insolvency notice resumes from the previous poll's watermark and de-duplicates by id. fnr is normalised before matching — trimmed, spaces and leading zeros removed, case left alone — so 034853 f and 34853f are the same company, exactly as on GET /businesses. Kostet 1 Credit.
5621
5931
  *
5622
5932
  * @tags Edikte
5623
5933
  * @name V1EdikteChangesList
@@ -5654,7 +5964,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5654
5964
  pageSize?: number;
5655
5965
  }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfEdiktChange, ApiError | ProblemDetails>>;
5656
5966
  /**
5657
- * @description Downloads a Firmenbuch document (PDF/XML) by its document key.
5967
+ * @description Downloads a Firmenbuch document (PDF/XML) by its document key. Kostet 3 Credits.
5658
5968
  *
5659
5969
  * @tags Documents
5660
5970
  * @name V1DocumentsDownloadDetail
@@ -5664,7 +5974,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5664
5974
  */
5665
5975
  v1DocumentsDownloadDetail: (documentKey: string, params?: RequestParams) => Promise<HttpResponse<void, string | ApiError | ProblemDetails>>;
5666
5976
  /**
5667
- * @description Returns one document change by id, with the document's metadata. The id is the shared change id from GET /globalchanges, so an id that exists but whose changeType is not "document" answers 404 here.
5977
+ * @description Returns one document change by id, with the document's metadata. The id is the shared change id from GET /globalchanges, so an id that exists but whose changeType is not "document" answers 404 here. Kostet 1 Credit.
5668
5978
  *
5669
5979
  * @tags Documents
5670
5980
  * @name V1DocumentsChangesDetail
@@ -5674,7 +5984,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5674
5984
  */
5675
5985
  v1DocumentsChangesDetail: (id: number, params?: RequestParams) => Promise<HttpResponse<DocumentChange, ApiError | ProblemDetails>>;
5676
5986
  /**
5677
- * @description Feed of newly filed Firmenbuch documents — this is how you learn that a company has published a new Jahresabschluss. Each entry names a documentKey; fetch the file itself with GET /documents/download/{documentKey}. Ordered by ascending id, and that id is the cursor: request with sinceId set to the highest id you have stored, walk page=1,2,… at a fixed pageSize until a page comes back with fewer than pageSize rows, keep the highest id you saw, and start the next poll from it. sinceId is exclusive, so nothing is delivered twice, and a new change always takes a higher id than every change already in the feed, so it appends to the end and never shifts a page you have already read. since is inclusive, filters on when we recorded the change rather than on the document date, and applies together with sinceId when both are sent. Paging without sinceId is not a reliable feed: an offset is not a watermark, and page stops at 1000. totalRecords stops there too — it is counted only as far as page 1000 reaches, so it caps at 1000 × pageSize and means "at least this many" once it is that; stop on a short page, not on a count. Under concurrent writes a change can become visible just after a higher id, so a consumer that must not miss one resumes from the previous poll's watermark and de-duplicates by id. fnr is normalised before matching — trimmed, spaces and leading zeros removed, case left alone — so 034853 f and 34853f are the same company, exactly as on GET /businesses.
5987
+ * @description Feed of newly filed Firmenbuch documents — this is how you learn that a company has published a new Jahresabschluss. Each entry names a documentKey; fetch the file itself with GET /documents/download/{documentKey}. Ordered by ascending id, and that id is the cursor: request with sinceId set to the highest id you have stored, walk page=1,2,… at a fixed pageSize until a page comes back with fewer than pageSize rows, keep the highest id you saw, and start the next poll from it. sinceId is exclusive, so nothing is delivered twice, and a new change always takes a higher id than every change already in the feed, so it appends to the end and never shifts a page you have already read. since is inclusive, filters on when we recorded the change rather than on the document date, and applies together with sinceId when both are sent. Paging without sinceId is not a reliable feed: an offset is not a watermark, and page stops at 1000. totalRecords stops there too — it is counted only as far as page 1000 reaches, so it caps at 1000 × pageSize and means "at least this many" once it is that; stop on a short page, not on a count. Under concurrent writes a change can become visible just after a higher id, so a consumer that must not miss one resumes from the previous poll's watermark and de-duplicates by id. fnr is normalised before matching — trimmed, spaces and leading zeros removed, case left alone — so 034853 f and 34853f are the same company, exactly as on GET /businesses. Kostet 1 Credit.
5678
5988
  *
5679
5989
  * @tags Documents
5680
5990
  * @name V1DocumentsChangesList
@@ -5711,7 +6021,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5711
6021
  pageSize?: number;
5712
6022
  }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfDocumentChange, ApiError | ProblemDetails>>;
5713
6023
  /**
5714
- * @description Returns all courts with pagination and optional search, sorted by business count descending.
6024
+ * @description Returns all courts with pagination and optional search, sorted by business count descending. Kostet 1 Credit.
5715
6025
  *
5716
6026
  * @tags Courts
5717
6027
  * @name V1CourtsList
@@ -5738,7 +6048,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5738
6048
  pageSize?: number;
5739
6049
  }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfCourtCatalogItemResponse, ApiError | ProblemDetails>>;
5740
6050
  /**
5741
- * @description Resolve company names to FNRs by exact name match (1:1). Used for CSV import.
6051
+ * @description Resolve company names to FNRs by exact name match (1:1). Used for CSV import. Kostet 1 Credit.
5742
6052
  *
5743
6053
  * @tags Businesses
5744
6054
  * @name V1BusinessesResolveNamesCreate
@@ -5748,7 +6058,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5748
6058
  */
5749
6059
  v1BusinessesResolveNamesCreate: (data: ResolveBusinessNamesRequest, params?: RequestParams) => Promise<HttpResponse<ResolveBusinessNamesResponse, ApiError | ProblemDetails>>;
5750
6060
  /**
5751
- * @description Lists companies matching the filters, one page of list rows per call. name and search are different tools. name is a case-insensitive substring match on the company name and nothing else. search splits the term on spaces and keeps only companies matching every token, where a token matches the name, the fnr, or — when the whole term is a number — a GISA licence key or GISA-Zahl; it additionally lifts companies whose name starts with the term to the top of the default (name) ordering. So name narrows a known name, search finds an unknown one. Inactive companies always sort after active ones, whatever orderBy says. inInsolvency is a Firmenbuch evidence filter, not an Ediktsdatei or Insolvenzdatei one. True matches a classified open court record or an active administrator role (MW, IW, AW, VW). False includes closed evidence without an active role, missing evidence and unclassified or uncertain evidence without another opening or role. Omit the parameter to leave this state unfiltered. A false value means no current positive evidence in this dataset, not verified legal assurance that no proceeding exists. The proceedings are published in the Insolvenzdatei, which this API does not read. Examples: ?inInsolvency=true; ?inInsolvency=false&name=Graf; ?inInsolvency=true&countOnly=true. The same values combine with every other filter. Pass countOnly=true for totalRecords without the rows, and use /businesses/aggregate to group the same filter set instead of paging through it.
6061
+ * @description Lists companies matching the filters, one page of list rows per call. name and search are different tools. name is a case-insensitive substring match on the company name and nothing else. search splits the term on spaces and keeps only companies matching every token, where a token matches the name, the fnr, or — when the whole term is a number — a GISA licence key or GISA-Zahl; it additionally lifts companies whose name starts with the term to the top of the default (name) ordering. So name narrows a known name, search finds an unknown one. Inactive companies always sort after active ones, whatever orderBy says. inInsolvency is a Firmenbuch evidence filter, not an Ediktsdatei or Insolvenzdatei one. True matches a classified open court record or an active administrator role (MW, IW, AW, VW). False includes closed evidence without an active role, missing evidence and unclassified or uncertain evidence without another opening or role. Omit the parameter to leave this state unfiltered. A false value means no current positive evidence in this dataset, not verified legal assurance that no proceeding exists. The proceedings are published in the Insolvenzdatei, which this API does not read. Examples: ?inInsolvency=true; ?inInsolvency=false&name=Graf; ?inInsolvency=true&countOnly=true. The same values combine with every other filter. Pass countOnly=true for totalRecords without the rows, and use /businesses/aggregate to group the same filter set instead of paging through it. Place filters: the Firmenbuch records no Bundesland and no Gemeinde, only the Sitzgericht, so both state and gemeinde are derived from the PLZ of the Geschäftsanschrift. state is exact except for the Innviertel PLZ 5120–5399, which are postally Salzburg but politically Oberösterreich and are counted as Salzburg. gemeinde takes the slug of a Gemeinde, and because it reads the PLZ it answers every spelling of a place at once — "Klagenfurt am Wörthersee", "Klagenfurt" and "Klagenfurt-Viktring" are one Gemeinde, where city= would be three separate filters over free text. GET /addresses/gemeinden is the catalogue of the slugs, their aliases, their Bundesland and their PLZ; a company with a foreign or unusable PLZ is in no Gemeinde and no gemeinde= filter finds it. Ohne API-Key abrufbar und kostet keine Credits.
5752
6062
  *
5753
6063
  * @tags Businesses
5754
6064
  * @name V1BusinessesList
@@ -5764,8 +6074,10 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5764
6074
  courtCode?: string[];
5765
6075
  legalFormCode?: string[];
5766
6076
  zipCode?: string[];
5767
- /** Filter by Bundesland: Burgenland, Kärnten, Niederösterreich, Oberösterreich, Salzburg, Steiermark, Tirol, Vorarlberg, Wien. The Firmenbuch stores no Bundesland, so the assignment is derived from the PLZ of the Geschäftsanschrift; it is exact except for the Innviertel PLZ 5120–5399, which are postally Salzburg but politically Oberösterreich. An unknown name is a 400. */
6077
+ /** Filter by Bundesland: Burgenland, Kärnten, Niederösterreich, Oberösterreich, Salzburg, Steiermark, Tirol, Vorarlberg, Wien. Derived from the PLZ of the Geschäftsanschrift; see this endpoint's description. An unknown name is a 400. */
5768
6078
  state?: string[];
6079
+ /** Filter by Gemeinde slug, derived from the PLZ. GET /addresses/gemeinden lists them. Unknown slug is a 400. */
6080
+ gemeinde?: string[];
5769
6081
  hasEdikt?: boolean;
5770
6082
  active?: boolean;
5771
6083
  /** Filter by BMF Scheinunternehmen (LSU) list: true = only businesses on the list, false = only not on the list. */
@@ -6311,7 +6623,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
6311
6623
  "guv.ZinsenUndAehnlicheAufwendungen_lte"?: number | null;
6312
6624
  }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfBusinessListResponse, ApiError | ProblemDetails>>;
6313
6625
  /**
6314
- * @description Returns all business (fnr, name) pairs for client-side name index. No pagination.
6626
+ * @description Returns all business (fnr, name) pairs for client-side name index. No pagination. Ohne API-Key abrufbar und kostet keine Credits.
6315
6627
  *
6316
6628
  * @tags Businesses
6317
6629
  * @name V1BusinessesNamesList
@@ -6321,7 +6633,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
6321
6633
  */
6322
6634
  v1BusinessesNamesList: (params?: RequestParams) => Promise<HttpResponse<BusinessNameItem[], ApiError | ProblemDetails>>;
6323
6635
  /**
6324
- * @description Returns the number of companies in the dataset, as a bare integer. Unfiltered — it is the size of the whole dataset, not of a search. For a count over filters, call GET /businesses with countOnly=true and read totalRecords.
6636
+ * @description Returns the number of companies in the dataset, as a bare integer. Unfiltered — it is the size of the whole dataset, not of a search. For a count over filters, call GET /businesses with countOnly=true and read totalRecords. Kostet 1 Credit.
6325
6637
  *
6326
6638
  * @tags Businesses
6327
6639
  * @name V1BusinessesCountList
@@ -6331,7 +6643,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
6331
6643
  */
6332
6644
  v1BusinessesCountList: (params?: RequestParams) => Promise<HttpResponse<number, ApiError | ProblemDetails>>;
6333
6645
  /**
6334
- * @description Counts over the same filter set as GET /businesses, grouped by one dimension — the server-side GROUP BY that a caller would otherwise page the whole result set to compute. Every /businesses filter means exactly what it means there; page, pageSize, orderBy, orderByDescending and countOnly are ignored — top and minCount cap the bucket list instead. totalRecords equals /businesses?countOnly=true for the same filter; how the buckets relate to it is documented on BusinessAggregateResponse.
6646
+ * @description Counts over the same filter set as GET /businesses, grouped by one dimension — the server-side GROUP BY that a caller would otherwise page the whole result set to compute. Every /businesses filter means exactly what it means there; page, pageSize, orderBy, orderByDescending and countOnly are ignored — top and minCount cap the bucket list instead. totalRecords equals /businesses?countOnly=true for the same filter; how the buckets relate to it is documented on BusinessAggregateResponse. Kostet 1 Credit.
6335
6647
  *
6336
6648
  * @tags Businesses
6337
6649
  * @name V1BusinessesAggregateList
@@ -6361,8 +6673,10 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
6361
6673
  courtCode?: string[];
6362
6674
  legalFormCode?: string[];
6363
6675
  zipCode?: string[];
6364
- /** Filter by Bundesland: Burgenland, Kärnten, Niederösterreich, Oberösterreich, Salzburg, Steiermark, Tirol, Vorarlberg, Wien. The Firmenbuch stores no Bundesland, so the assignment is derived from the PLZ of the Geschäftsanschrift; it is exact except for the Innviertel PLZ 5120–5399, which are postally Salzburg but politically Oberösterreich. An unknown name is a 400. */
6676
+ /** Filter by Bundesland: Burgenland, Kärnten, Niederösterreich, Oberösterreich, Salzburg, Steiermark, Tirol, Vorarlberg, Wien. Derived from the PLZ of the Geschäftsanschrift; see this endpoint's description. An unknown name is a 400. */
6365
6677
  state?: string[];
6678
+ /** Filter by Gemeinde slug, derived from the PLZ. GET /addresses/gemeinden lists them. Unknown slug is a 400. */
6679
+ gemeinde?: string[];
6366
6680
  hasEdikt?: boolean;
6367
6681
  active?: boolean;
6368
6682
  /** Filter by BMF Scheinunternehmen (LSU) list: true = only businesses on the list, false = only not on the list. */
@@ -6908,7 +7222,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
6908
7222
  "guv.ZinsenUndAehnlicheAufwendungen_lte"?: number | null;
6909
7223
  }, params?: RequestParams) => Promise<HttpResponse<BusinessAggregateResponse, ApiError | ProblemDetails>>;
6910
7224
  /**
6911
- * @description Counts for every value of every filter group at once — what a filter builder puts on its chips. Takes the same filters as GET /businesses and means them the same way; page, pageSize, orderBy, orderByDescending and countOnly are ignored. Faceted semantics: a group is counted with all *other* active filters applied but its own lifted, so a value's count answers "how many results if I also select this", and selecting one never empties its own group. totalRecords is the current result count, with every filter applied. Each group returns its top values (top, default 10) plus every value the request already filters on, marked selected — a "Mehr" expander is a second call for that one group with a larger top, e.g. ?groups=city&top=50. city and zipCode count a business once per distinct value, so those counts can sum above totalRecords. One caveat worth knowing before wiring a chip up: the city filter matches a substring, while a city facet key is a whole city name, so selecting "Wien" also keeps "Wien-Umgebung" and can return more than the chip promised. Every other group matches its key exactly. Every group costs its own count, so ask for the groups you are rendering rather than all ten; the answer is cacheable for a day and varies on the whole query string.
7225
+ * @description Counts for every value of every filter group at once — what a filter builder puts on its chips. Takes the same filters as GET /businesses and means them the same way; page, pageSize, orderBy, orderByDescending and countOnly are ignored. Faceted semantics: a group is counted with all *other* active filters applied but its own lifted, so a value's count answers "how many results if I also select this", and selecting one never empties its own group. totalRecords is the current result count, with every filter applied. Each group returns its top values (top, default 10) plus every value the request already filters on, marked selected — a "Mehr" expander is a second call for that one group with a larger top, e.g. ?groups=city&top=50. city and zipCode count a business once per distinct value, so those counts can sum above totalRecords. One caveat worth knowing before wiring a chip up: the city filter matches a substring, while a city facet key is a whole city name, so selecting "Wien" also keeps "Wien-Umgebung" and can return more than the chip promised. Every other group matches its key exactly. Every group costs its own count, so ask for the groups you are rendering rather than all ten; the answer is cacheable for a day and varies on the whole query string. Ohne API-Key abrufbar und kostet keine Credits.
6912
7226
  *
6913
7227
  * @tags Businesses
6914
7228
  * @name V1BusinessesFacetsList
@@ -6933,8 +7247,10 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
6933
7247
  courtCode?: string[];
6934
7248
  legalFormCode?: string[];
6935
7249
  zipCode?: string[];
6936
- /** Filter by Bundesland: Burgenland, Kärnten, Niederösterreich, Oberösterreich, Salzburg, Steiermark, Tirol, Vorarlberg, Wien. The Firmenbuch stores no Bundesland, so the assignment is derived from the PLZ of the Geschäftsanschrift; it is exact except for the Innviertel PLZ 5120–5399, which are postally Salzburg but politically Oberösterreich. An unknown name is a 400. */
7250
+ /** Filter by Bundesland: Burgenland, Kärnten, Niederösterreich, Oberösterreich, Salzburg, Steiermark, Tirol, Vorarlberg, Wien. Derived from the PLZ of the Geschäftsanschrift; see this endpoint's description. An unknown name is a 400. */
6937
7251
  state?: string[];
7252
+ /** Filter by Gemeinde slug, derived from the PLZ. GET /addresses/gemeinden lists them. Unknown slug is a 400. */
7253
+ gemeinde?: string[];
6938
7254
  hasEdikt?: boolean;
6939
7255
  active?: boolean;
6940
7256
  /** Filter by BMF Scheinunternehmen (LSU) list: true = only businesses on the list, false = only not on the list. */
@@ -7480,7 +7796,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
7480
7796
  "guv.ZinsenUndAehnlicheAufwendungen_lte"?: number | null;
7481
7797
  }, params?: RequestParams) => Promise<HttpResponse<BusinessFacetsResponse, ApiError | ProblemDetails>>;
7482
7798
  /**
7483
- * @description The single largest company of every place in the viewport, by one metric — what a map draws as one pin per place instead of every dot in the box. groupBy picks the place: state (the nine Bundesländer, the default) or city (the towns in view). metric is one of detailViews (Aufrufe), bilanzSumme or employees (Mitarbeiter). minLat, maxLat, minLng and maxLng are required for groupBy=city and ignored for groupBy=state: the nine Bundesländer are the same nine wherever the map is looking, so that call takes no viewport at all — which is what lets one URL serve every pan and actually be cached, here and in the browser. Every /businesses filter additionally applies and means exactly what it means there; page, pageSize, orderBy, orderByDescending and countOnly are ignored. groupLabel is the place's name — "Tirol", "Innsbruck" — and is what the pin's card is headed with. A company carrying no value for the metric is skipped rather than counted as 0, so a place holding only such companies — like an empty one — returns nothing at all and the array is shorter than the number of places. Each item carries everything a popover card shows, so no second call per pin is needed. groupBy=city answers at most 16 pins, the biggest of the towns in view; the rest is what zooming in is for. Bundesländer are derived from the PLZ of the Geschäftsanschrift, the same rule the state filter on GET /businesses uses, because the Firmenbuch carries no Land. A company that is the biggest of two places in view wins both, each pin carrying an address that is actually on screen and in the town it won. Cached for an hour rather than the day GET /businesses gets: view counts move.
7799
+ * @description The single largest company of every place in the viewport, by one metric — what a map draws as one pin per place instead of every dot in the box. groupBy picks the place: state (the nine Bundesländer, the default) or city (the towns in view). metric is one of detailViews (Aufrufe), bilanzSumme or employees (Mitarbeiter). minLat, maxLat, minLng and maxLng are required for groupBy=city and ignored for groupBy=state: the nine Bundesländer are the same nine wherever the map is looking, so that call takes no viewport at all — which is what lets one URL serve every pan and actually be cached, here and in the browser. Every /businesses filter additionally applies and means exactly what it means there; page, pageSize, orderBy, orderByDescending and countOnly are ignored. groupLabel is the place's name — "Tirol", "Innsbruck" — and is what the pin's card is headed with. A company carrying no value for the metric is skipped rather than counted as 0, so a place holding only such companies — like an empty one — returns nothing at all and the array is shorter than the number of places. Each item carries everything a popover card shows, so no second call per pin is needed. groupBy=city answers at most 16 pins, the biggest of the towns in view; the rest is what zooming in is for. Bundesländer are derived from the PLZ of the Geschäftsanschrift, the same rule the state filter on GET /businesses uses, because the Firmenbuch carries no Land. A company that is the biggest of two places in view wins both, each pin carrying an address that is actually on screen and in the town it won. Cached for an hour rather than the day GET /businesses gets: view counts move. Ohne API-Key abrufbar und kostet keine Credits.
7484
7800
  *
7485
7801
  * @tags Businesses
7486
7802
  * @name V1BusinessesMapTopList
@@ -7500,8 +7816,10 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
7500
7816
  courtCode?: string[];
7501
7817
  legalFormCode?: string[];
7502
7818
  zipCode?: string[];
7503
- /** Filter by Bundesland: Burgenland, Kärnten, Niederösterreich, Oberösterreich, Salzburg, Steiermark, Tirol, Vorarlberg, Wien. The Firmenbuch stores no Bundesland, so the assignment is derived from the PLZ of the Geschäftsanschrift; it is exact except for the Innviertel PLZ 5120–5399, which are postally Salzburg but politically Oberösterreich. An unknown name is a 400. */
7819
+ /** Filter by Bundesland: Burgenland, Kärnten, Niederösterreich, Oberösterreich, Salzburg, Steiermark, Tirol, Vorarlberg, Wien. Derived from the PLZ of the Geschäftsanschrift; see this endpoint's description. An unknown name is a 400. */
7504
7820
  state?: string[];
7821
+ /** Filter by Gemeinde slug, derived from the PLZ. GET /addresses/gemeinden lists them. Unknown slug is a 400. */
7822
+ gemeinde?: string[];
7505
7823
  hasEdikt?: boolean;
7506
7824
  active?: boolean;
7507
7825
  /** Filter by BMF Scheinunternehmen (LSU) list: true = only businesses on the list, false = only not on the list. */
@@ -8047,7 +8365,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
8047
8365
  "guv.ZinsenUndAehnlicheAufwendungen_lte"?: number | null;
8048
8366
  }, params?: RequestParams) => Promise<HttpResponse<BusinessMapTopItem[], ApiError | ProblemDetails>>;
8049
8367
  /**
8050
- * @description Active businesses similar to the given one (same OeNACE branch, same region preferred).
8368
+ * @description Active businesses similar to the given one (same OeNACE branch, same region preferred). Kostet 3 Credits.
8051
8369
  *
8052
8370
  * @tags Businesses
8053
8371
  * @name V1BusinessesSimilarList
@@ -8057,7 +8375,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
8057
8375
  */
8058
8376
  v1BusinessesSimilarList: (fnr: string, params?: RequestParams) => Promise<HttpResponse<BusinessListResponse[], ApiError | ProblemDetails>>;
8059
8377
  /**
8060
- * @description Returns the whole Firmenakte of one company: master data, addresses, people, GISA licences, Edikte, documents and the parsed annual accounts. fnr is matched exactly against the stored, normalised Firmenbuchnummer — lower case, no spaces, no leading zeros and no "FN" prefix, e.g. 34853f. Nothing is normalised on the way in, so "FN 34853 f" answers 404 rather than the company. 404 also means the company is not in the dataset yet.
8378
+ * @description Returns the whole Firmenakte of one company: master data, addresses, people, GISA licences, Edikte, documents and the parsed annual accounts. fnr is matched exactly against the stored, normalised Firmenbuchnummer — lower case, no spaces, no leading zeros and no "FN" prefix, e.g. 34853f. Nothing is normalised on the way in, so "FN 34853 f" answers 404 rather than the company. 404 also means the company is not in the dataset yet. Kostet 1 Credit.
8061
8379
  *
8062
8380
  * @tags Businesses
8063
8381
  * @name V1BusinessesDetail
@@ -8067,7 +8385,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
8067
8385
  */
8068
8386
  v1BusinessesDetail: (fnr: string, params?: RequestParams) => Promise<HttpResponse<BusinessDetailResponse, ApiError | ProblemDetails>>;
8069
8387
  /**
8070
- * @description Every parsed Jahresabschluss of one company, one entry per calendar year, newest first. The Firmenakte itself (GET /businesses/{fnr}) carries only the last five years. 404 only where the company itself is unknown, exactly as on GET /businesses/{fnr}.
8388
+ * @description Every parsed Jahresabschluss of one company, one entry per calendar year, newest first. The Firmenakte itself (GET /businesses/{fnr}) carries only the last five years. 404 only where the company itself is unknown, exactly as on GET /businesses/{fnr}. Kostet 1 Credit.
8071
8389
  *
8072
8390
  * @tags Businesses
8073
8391
  * @name V1BusinessesJahresabschluesseList
@@ -8077,7 +8395,17 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
8077
8395
  */
8078
8396
  v1BusinessesJahresabschluesseList: (fnr: string, params?: RequestParams) => Promise<HttpResponse<ParsedJahresabschlussDto[], ApiError | ProblemDetails>>;
8079
8397
  /**
8080
- * @description Returns one Firmenbuch change by id. The id is the shared change id from GET /globalchanges, so an id that exists but whose changeType is not "business" answers 404 here.
8398
+ * @description The state aid published for one company by the Transparenzportal des BMF (§ 40k TDBG), newest year first and the largest amount first within a year, plus a summary of count, sum, the years and the freshest Stichtag. Published are Leistungen from 1.500 € per calendar year to non-natural persons; the COVID-19 reports start at 10.000 €. So an empty list means "nothing published for this company", never "this company received nothing" — and a company the portal names but that could not be matched to a Firmenbuchnummer is not here either. 404 only where the company itself is unknown, exactly as on GET /businesses/{fnr}. Kostet 1 Credit.
8399
+ *
8400
+ * @tags Businesses
8401
+ * @name V1BusinessesFoerderungenList
8402
+ * @summary Company Foerderungen
8403
+ * @request GET:/api/v1/businesses/{fnr}/foerderungen
8404
+ * @secure
8405
+ */
8406
+ v1BusinessesFoerderungenList: (fnr: string, params?: RequestParams) => Promise<HttpResponse<BusinessFoerderungenResponse, ApiError | ProblemDetails>>;
8407
+ /**
8408
+ * @description Returns one Firmenbuch change by id. The id is the shared change id from GET /globalchanges, so an id that exists but whose changeType is not "business" answers 404 here. Kostet 1 Credit.
8081
8409
  *
8082
8410
  * @tags Businesses
8083
8411
  * @name V1BusinessesChangesDetail
@@ -8087,7 +8415,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
8087
8415
  */
8088
8416
  v1BusinessesChangesDetail: (id: number, params?: RequestParams) => Promise<HttpResponse<BusinessChange, ApiError | ProblemDetails>>;
8089
8417
  /**
8090
- * @description Feed of Firmenbuch changes — one entry per new legal record (Eintragung). Ordered by ascending id, and that id is the cursor: request with sinceId set to the highest id you have stored, walk page=1,2,… at a fixed pageSize until a page comes back with fewer than pageSize rows, keep the highest id you saw, and start the next poll from it. sinceId is exclusive, so nothing is delivered twice, and a new change always takes a higher id than every change already in the feed, so it appends to the end and never shifts a page you have already read. since is inclusive, filters on when we recorded the change rather than on changedDate — so a back-dated entry is not missed — and applies together with sinceId when both are sent. Paging without sinceId is not a reliable feed: an offset is not a watermark, and page stops at 1000. totalRecords stops there too — it is counted only as far as page 1000 reaches, so it caps at 1000 × pageSize and means "at least this many" once it is that; stop on a short page, not on a count. Under concurrent writes a change can become visible just after a higher id, so a consumer that must not miss one resumes from the previous poll's watermark and de-duplicates by id. fnr is normalised before matching — trimmed, spaces and leading zeros removed, case left alone — so 034853 f and 34853f are the same company, exactly as on GET /businesses. Use GET /globalchanges for the same feed across all four registers.
8418
+ * @description Feed of Firmenbuch changes — one entry per new legal record (Eintragung). Ordered by ascending id, and that id is the cursor: request with sinceId set to the highest id you have stored, walk page=1,2,… at a fixed pageSize until a page comes back with fewer than pageSize rows, keep the highest id you saw, and start the next poll from it. sinceId is exclusive, so nothing is delivered twice, and a new change always takes a higher id than every change already in the feed, so it appends to the end and never shifts a page you have already read. since is inclusive, filters on when we recorded the change rather than on changedDate — so a back-dated entry is not missed — and applies together with sinceId when both are sent. Paging without sinceId is not a reliable feed: an offset is not a watermark, and page stops at 1000. totalRecords stops there too — it is counted only as far as page 1000 reaches, so it caps at 1000 × pageSize and means "at least this many" once it is that; stop on a short page, not on a count. Under concurrent writes a change can become visible just after a higher id, so a consumer that must not miss one resumes from the previous poll's watermark and de-duplicates by id. fnr is normalised before matching — trimmed, spaces and leading zeros removed, case left alone — so 034853 f and 34853f are the same company, exactly as on GET /businesses. Use GET /globalchanges for the same feed across all four registers. Kostet 1 Credit.
8091
8419
  *
8092
8420
  * @tags Businesses
8093
8421
  * @name V1BusinessesChangesList
@@ -8124,7 +8452,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
8124
8452
  pageSize?: number;
8125
8453
  }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfBusinessChange, ApiError | ProblemDetails>>;
8126
8454
  /**
8127
- * @description Returns all assignment functions (code/text lookup) for display. Cached 24h.
8455
+ * @description Returns all assignment functions (code/text lookup) for display. Cached 24h. Ohne API-Key abrufbar und kostet keine Credits.
8128
8456
  *
8129
8457
  * @tags AssignmentFunctions
8130
8458
  * @name V1AssignmentfunctionsList
@@ -8134,7 +8462,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
8134
8462
  */
8135
8463
  v1AssignmentfunctionsList: (params?: RequestParams) => Promise<HttpResponse<AssignmentFunctionItemResponse[], ApiError | ProblemDetails>>;
8136
8464
  /**
8137
- * @description Returns unique City+ZipCode combinations from addresses with pagination and optional search.
8465
+ * @description Returns unique City+ZipCode combinations from addresses with pagination and optional search. Kostet 1 Credit.
8138
8466
  *
8139
8467
  * @tags Addresses
8140
8468
  * @name V1AddressesLocationsList
@@ -8160,7 +8488,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
8160
8488
  pageSize?: number;
8161
8489
  }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfAddressLocationResponse, ApiError | ProblemDetails>>;
8162
8490
  /**
8163
- * @description Returns unique cities from addresses with pagination and optional search.
8491
+ * @description Returns unique cities from addresses with pagination and optional search. Kostet 1 Credit.
8164
8492
  *
8165
8493
  * @tags Addresses
8166
8494
  * @name V1AddressesCitiesList
@@ -8186,7 +8514,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
8186
8514
  pageSize?: number;
8187
8515
  }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfCityResponse, ApiError | ProblemDetails>>;
8188
8516
  /**
8189
- * @description Ranks cities and City+ZipCode combinations against one term and answers the best few of both, as one ranking split into two lists — what a location filter's type-ahead needs, where /addresses/locations and /addresses/cities are the paged catalogues behind it. Ordered by where the term sits in the label, then by the shorter label, then by company count, so "wien" answers Wien before Wiener Neustadt and before every 1xxx ZIP that carries it. A term shorter than two characters is ignored and the biggest groups come back instead. top caps both lists together, not each.
8517
+ * @description Ranks cities and City+ZipCode combinations against one term and answers the best few of both, as one ranking split into two lists — what a location filter's type-ahead needs, where /addresses/locations and /addresses/cities are the paged catalogues behind it. Ordered by where the term sits in the label, then by the shorter label, then by company count, so "wien" answers Wien before Wiener Neustadt and before every 1xxx ZIP that carries it. A term shorter than two characters is ignored and the biggest groups come back instead. top caps both lists together, not each. Ohne API-Key abrufbar und kostet keine Credits.
8190
8518
  *
8191
8519
  * @tags Addresses
8192
8520
  * @name V1AddressesSuggestList
@@ -8204,7 +8532,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
8204
8532
  top?: number;
8205
8533
  }, params?: RequestParams) => Promise<HttpResponse<LocationSuggestionsResponse, ApiError | ProblemDetails>>;
8206
8534
  /**
8207
- * @description Returns unique zip codes from addresses with pagination and optional search.
8535
+ * @description Returns unique zip codes from addresses with pagination and optional search. Kostet 1 Credit.
8208
8536
  *
8209
8537
  * @tags Addresses
8210
8538
  * @name V1AddressesZipcodesList
@@ -8229,6 +8557,16 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
8229
8557
  */
8230
8558
  pageSize?: number;
8231
8559
  }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfZipCodeResponse, ApiError | ProblemDetails>>;
8560
+ /**
8561
+ * @description The Gemeinde catalogue: one row per Austrian Gemeinde the register can address, with its official name, its URL slug, its Bundesland, the PLZ that resolve to it and the alias slugs that name it. This is the one source for a place's identity. The city column of an address is Firmenbuch free text and carries "Klagenfurt am Wörthersee", "Klagenfurt", "Klagenfurt-Viktring" and "Klagenfurt-Wölfnitz" side by side, so it cannot be a key; a Gemeinde is derived from the PLZ of the Geschäftsanschrift instead, and GET /businesses?gemeinde=<slug> answers every one of those spellings at once. Fold the zipCode buckets of GET /businesses/aggregate through zipCodes to count companies per Gemeinde. Unpaged and without a filter on purpose: 1.893 rows that change only with a new Gebietsstand, so one cacheable answer is cheaper for every caller than paging a list they all want whole. Companies with a foreign or unusable PLZ resolve to no Gemeinde and appear under none. Kostet 1 Credit.
8562
+ *
8563
+ * @tags Addresses
8564
+ * @name V1AddressesGemeindenList
8565
+ * @summary Gemeinden
8566
+ * @request GET:/api/v1/addresses/gemeinden
8567
+ * @secure
8568
+ */
8569
+ v1AddressesGemeindenList: (params?: RequestParams) => Promise<HttpResponse<GemeindeResponse[], ApiError | ProblemDetails>>;
8232
8570
  };
8233
8571
  }
8234
8572
  export {};