@firmenakte/api-client 2.3.1 → 2.6.1

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
@@ -7,6 +7,11 @@ export declare enum ChangeType {
7
7
  Scheinunternehmen = "scheinunternehmen",
8
8
  Unknown = "unknown"
9
9
  }
10
+ /** The two files an export can produce. Same columns, same rows — only the serialiser differs. */
11
+ export declare enum BusinessExportFormat {
12
+ Csv = "Csv",
13
+ Xlsx = "Xlsx"
14
+ }
10
15
  /** Error body of the responses written before the request reaches an endpoint (401, 429). */
11
16
  export interface ApiError {
12
17
  /** Human-readable description of what was rejected. */
@@ -297,6 +302,29 @@ export interface BusinessDetailResponse {
297
302
  /** OENACE 2008 industry classifications assigned to the company. Filter by oenaceCode on /businesses; the catalogue is GET /oenace. */
298
303
  oenaces?: OenaceDto[];
299
304
  }
305
+ /** The nine columns an export can carry, each on or off. Every one of them is served by the company search, so an export is a projection of rows rather than a detail request per company. */
306
+ export interface BusinessExportColumns {
307
+ /** Company name as registered. */
308
+ firmenname?: boolean;
309
+ /** Firmenbuchnummer. */
310
+ fnr?: boolean;
311
+ /** Whether the company is still active. */
312
+ aktiv?: boolean;
313
+ /** First registered address as one line. */
314
+ adresse?: boolean;
315
+ /** Legal form, spelled out. */
316
+ rechtsform?: boolean;
317
+ /** Primary OENACE 2008 classification as its numeric code. */
318
+ oenace?: boolean;
319
+ /** Latest balance-sheet total. */
320
+ bilanzsumme?: boolean;
321
+ /** Whether an Ediktsdatei notice is on file. */
322
+ edikt?: boolean;
323
+ /** Whether the company is on the BMF's Scheinunternehmen list. */
324
+ scheinunternehmen?: boolean;
325
+ /** True when the export would have no columns at all, which is not a file. */
326
+ none?: boolean;
327
+ }
300
328
  export interface BusinessFacetGroup {
301
329
  /** The group name, echoed back. */
302
330
  group?: string;
@@ -538,6 +566,15 @@ export interface CourtCatalogItemResponse {
538
566
  /** @format int32 */
539
567
  businessCount?: number;
540
568
  }
569
+ /** A new Liste. Everything but the name is optional. */
570
+ export interface CreateListRequest {
571
+ /** Display name. Blank or missing becomes "Neue Liste". */
572
+ name?: string | null;
573
+ /** Icon key, or null for none. */
574
+ icon?: string | null;
575
+ /** Companies to start the Liste with, in the order they should appear. */
576
+ fnrs?: string[] | null;
577
+ }
541
578
  export interface DocumentChange {
542
579
  /** @format int64 */
543
580
  id?: number;
@@ -574,6 +611,10 @@ export interface Edikt {
574
611
  displayName?: string | null;
575
612
  hinweis?: string | null;
576
613
  ergaenzung?: string | null;
614
+ beschreibung?: string | null;
615
+ kategorie?: string | null;
616
+ transaktion?: string | null;
617
+ adresse?: string | null;
577
618
  /** @format date */
578
619
  bekanntmachungsDatum?: string;
579
620
  /** @format date */
@@ -602,6 +643,31 @@ export interface EdiktChange {
602
643
  /** 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. */
603
644
  changeType?: ChangeType;
604
645
  }
646
+ export interface EntityTagHeaderValue {
647
+ tag?: StringSegment;
648
+ isWeak?: boolean;
649
+ }
650
+ /** Which companies to export and in which shape. Exactly one source is read, in the order below: an explicit set of companies, a Liste, or a saved Abfrage. */
651
+ export interface ExportBusinessesRequest {
652
+ /** The companies to export, in the order the file should list them. At most 1000; more is refused rather than cut short. */
653
+ fnrs?: string[] | null;
654
+ /** A Liste of the calling account: its companies, in the order it holds them. Same 1000-company cap as an explicit set, over the FNRs the Liste stores. */
655
+ listId?: string | null;
656
+ /** A saved Abfrage of the calling account: the companies its filters match right now, ordered the way the search orders them. Capped at 1000 rows. */
657
+ queryId?: string | null;
658
+ /** The two files an export can produce. Same columns, same rows — only the serialiser differs. */
659
+ format?: BusinessExportFormat;
660
+ /** The nine columns an export can carry, each on or off. Every one of them is served by the company search, so an export is a projection of rows rather than a detail request per company. */
661
+ columns?: BusinessExportColumns | null;
662
+ }
663
+ export interface FileResult {
664
+ contentType?: string | null;
665
+ fileDownloadName?: string | null;
666
+ /** @format date-time */
667
+ lastModified?: string | null;
668
+ entityTag?: EntityTagHeaderValue | null;
669
+ enableRangeProcessing?: boolean;
670
+ }
605
671
  export interface GisaChange {
606
672
  /** @format int64 */
607
673
  id?: number;
@@ -673,8 +739,22 @@ export interface GlobalChange {
673
739
  export interface GraphEdgeDto {
674
740
  source?: string;
675
741
  target?: string;
742
+ /** Whether the connection still holds today. An "assignment" edge is active while at least one of the person's functions at that company has no end date or ends in the future; a function that ended in the past makes it false. The other two kinds are always true, for two different reasons: an "ownership" edge whose holding has ended is not drawn at all, and an "address" carries no validity date, so a shared address cannot be dated. */
676
743
  isActive?: boolean;
744
+ /** "assignment" (a person holds a function in a company), "ownership" (a company holds shares in another — source is the shareholder, target the company it holds) or "address". */
677
745
  relationshipType?: string;
746
+ /**
747
+ * The shareholder's übernommene Stammeinlage. Null on any edge but "ownership", and on an ownership edge whose Firmenbuch entry carries no KAPITAL.
748
+ * @format double
749
+ */
750
+ capitalAmount?: number | null;
751
+ /** The currency of CapitalAmount — ATS occurs in this data, not only EUR. */
752
+ currency?: string | null;
753
+ /**
754
+ * The stake as a percentage, 0–100. Only where it is a real ownership share: a GmbH or Flexible Kapitalgesellschaft whose Gesellschafter all carry an amount in the same currency and the same Firmenbuch version. Null everywhere else, including on every non-ownership edge.
755
+ * @format double
756
+ */
757
+ sharePercent?: number | null;
678
758
  }
679
759
  export interface GraphNodeDto {
680
760
  id?: string;
@@ -774,12 +854,7 @@ export interface GuvDto {
774
854
  /** @format double */
775
855
  aufloesungGewinnruecklagen?: number | null;
776
856
  }
777
- export interface KeyFigureFilterDto {
778
- /** @format double */
779
- min?: number | null;
780
- /** @format double */
781
- max?: number | null;
782
- }
857
+ export type JsonDocument = any;
783
858
  /** A company's legal form (Rechtsform), as the Firmenbuch's code and its German label. Filter by it with legalFormCode on /businesses; the full catalogue is GET /legalforms. */
784
859
  export interface LegalForm {
785
860
  /** Firmenbuch legal-form code, e.g. "AG" or "GMBH". The value legalFormCode takes. */
@@ -814,6 +889,32 @@ export interface LegalRecordDetailDto {
814
889
  changeType?: string | null;
815
890
  changes?: LegalRecordChangeDto[];
816
891
  }
892
+ /** The companies to add to, or take off, a Liste. */
893
+ export interface ListMembersRequest {
894
+ /** Company numbers. An empty array is accepted and changes nothing. */
895
+ fnrs?: string[] | null;
896
+ }
897
+ /** A Liste: the companies one account watches, as the FNRs it holds. */
898
+ export interface ListResponse {
899
+ /** Stable id of the Liste. */
900
+ id: string;
901
+ /** What the account called it. */
902
+ name: string;
903
+ /** Icon key for the Liste, or null where it has none. */
904
+ icon?: string | null;
905
+ /** The companies on the Liste, in the order they were added. */
906
+ fnrs: string[];
907
+ /** Companies that were taken off again; re-adding one lifts it back out of here. */
908
+ removedFnrs: string[];
909
+ settings: JsonDocument;
910
+ }
911
+ /** The ranked suggestions of one term, split back into the two lists the filter renders. The two together are one ranking, not two: top caps their combined length. */
912
+ export interface LocationSuggestionsResponse {
913
+ /** ZIP+city suggestions, best first. */
914
+ locations?: AddressLocationResponse[];
915
+ /** Whole-city suggestions, best first. */
916
+ cities?: CityResponse[];
917
+ }
817
918
  export interface OenaceCatalogItemResponse {
818
919
  edvCode?: string;
819
920
  code?: string;
@@ -846,7 +947,7 @@ export interface PagedResponseOfAddressLocationResponse {
846
947
  */
847
948
  pageSize: number;
848
949
  /**
849
- * Total number of rows matching the filters, across all pages — not the length of data.
950
+ * 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".
850
951
  * @format int32
851
952
  */
852
953
  totalRecords: number;
@@ -871,7 +972,7 @@ export interface PagedResponseOfBusinessChange {
871
972
  */
872
973
  pageSize: number;
873
974
  /**
874
- * Total number of rows matching the filters, across all pages — not the length of data.
975
+ * 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".
875
976
  * @format int32
876
977
  */
877
978
  totalRecords: number;
@@ -896,7 +997,7 @@ export interface PagedResponseOfBusinessListResponse {
896
997
  */
897
998
  pageSize: number;
898
999
  /**
899
- * Total number of rows matching the filters, across all pages — not the length of data.
1000
+ * 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".
900
1001
  * @format int32
901
1002
  */
902
1003
  totalRecords: number;
@@ -921,7 +1022,7 @@ export interface PagedResponseOfCityResponse {
921
1022
  */
922
1023
  pageSize: number;
923
1024
  /**
924
- * Total number of rows matching the filters, across all pages — not the length of data.
1025
+ * 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".
925
1026
  * @format int32
926
1027
  */
927
1028
  totalRecords: number;
@@ -946,7 +1047,7 @@ export interface PagedResponseOfCourtCatalogItemResponse {
946
1047
  */
947
1048
  pageSize: number;
948
1049
  /**
949
- * Total number of rows matching the filters, across all pages — not the length of data.
1050
+ * 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".
950
1051
  * @format int32
951
1052
  */
952
1053
  totalRecords: number;
@@ -971,7 +1072,7 @@ export interface PagedResponseOfDocumentChange {
971
1072
  */
972
1073
  pageSize: number;
973
1074
  /**
974
- * Total number of rows matching the filters, across all pages — not the length of data.
1075
+ * 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".
975
1076
  * @format int32
976
1077
  */
977
1078
  totalRecords: number;
@@ -996,7 +1097,7 @@ export interface PagedResponseOfEdiktChange {
996
1097
  */
997
1098
  pageSize: number;
998
1099
  /**
999
- * Total number of rows matching the filters, across all pages — not the length of data.
1100
+ * 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".
1000
1101
  * @format int32
1001
1102
  */
1002
1103
  totalRecords: number;
@@ -1021,7 +1122,7 @@ export interface PagedResponseOfGisaChange {
1021
1122
  */
1022
1123
  pageSize: number;
1023
1124
  /**
1024
- * Total number of rows matching the filters, across all pages — not the length of data.
1125
+ * 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".
1025
1126
  * @format int32
1026
1127
  */
1027
1128
  totalRecords: number;
@@ -1046,7 +1147,7 @@ export interface PagedResponseOfGisaLicense {
1046
1147
  */
1047
1148
  pageSize: number;
1048
1149
  /**
1049
- * Total number of rows matching the filters, across all pages — not the length of data.
1150
+ * 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".
1050
1151
  * @format int32
1051
1152
  */
1052
1153
  totalRecords: number;
@@ -1071,7 +1172,7 @@ export interface PagedResponseOfGlobalChange {
1071
1172
  */
1072
1173
  pageSize: number;
1073
1174
  /**
1074
- * Total number of rows matching the filters, across all pages — not the length of data.
1175
+ * 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".
1075
1176
  * @format int32
1076
1177
  */
1077
1178
  totalRecords: number;
@@ -1096,7 +1197,7 @@ export interface PagedResponseOfLegalFormCatalogItemResponse {
1096
1197
  */
1097
1198
  pageSize: number;
1098
1199
  /**
1099
- * Total number of rows matching the filters, across all pages — not the length of data.
1200
+ * 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".
1100
1201
  * @format int32
1101
1202
  */
1102
1203
  totalRecords: number;
@@ -1121,7 +1222,7 @@ export interface PagedResponseOfOenaceCatalogItemResponse {
1121
1222
  */
1122
1223
  pageSize: number;
1123
1224
  /**
1124
- * Total number of rows matching the filters, across all pages — not the length of data.
1225
+ * 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".
1125
1226
  * @format int32
1126
1227
  */
1127
1228
  totalRecords: number;
@@ -1146,7 +1247,7 @@ export interface PagedResponseOfPerson {
1146
1247
  */
1147
1248
  pageSize: number;
1148
1249
  /**
1149
- * Total number of rows matching the filters, across all pages — not the length of data.
1250
+ * 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".
1150
1251
  * @format int32
1151
1252
  */
1152
1253
  totalRecords: number;
@@ -1171,7 +1272,7 @@ export interface PagedResponseOfTradeCatalogItemResponse {
1171
1272
  */
1172
1273
  pageSize: number;
1173
1274
  /**
1174
- * Total number of rows matching the filters, across all pages — not the length of data.
1275
+ * 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".
1175
1276
  * @format int32
1176
1277
  */
1177
1278
  totalRecords: number;
@@ -1196,7 +1297,7 @@ export interface PagedResponseOfZipCodeResponse {
1196
1297
  */
1197
1298
  pageSize: number;
1198
1299
  /**
1199
- * Total number of rows matching the filters, across all pages — not the length of data.
1300
+ * 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".
1200
1301
  * @format int32
1201
1302
  */
1202
1303
  totalRecords: number;
@@ -1304,6 +1405,24 @@ export interface ProblemDetails {
1304
1405
  /** Validation failures per field; present only on a model validation 400. */
1305
1406
  errors?: Record<string, string[]> | null;
1306
1407
  }
1408
+ /** A saved Abfrage: one filter set an account kept, to run again later. */
1409
+ export interface QueryResponse {
1410
+ /** Stable id of the Abfrage. */
1411
+ id: string;
1412
+ /** Icon key for the Abfrage, or null where it has none. */
1413
+ icon?: string | null;
1414
+ query: JsonDocument;
1415
+ /**
1416
+ * How many companies matched when the Abfrage was last saved. A snapshot: it is not recomputed on read and may have drifted.
1417
+ * @format int32
1418
+ */
1419
+ resultCount?: number | null;
1420
+ /**
1421
+ * When the Abfrage was last written, UTC. The Suchverlauf sorts on it.
1422
+ * @format date-time
1423
+ */
1424
+ updatedAt: string;
1425
+ }
1307
1426
  /** Request to resolve company names to FNRs by exact match (1:1). Used for CSV import. */
1308
1427
  export interface ResolveBusinessNamesRequest {
1309
1428
  /** Company names to resolve (trimmed, distinct, max 500). Order is preserved in the response. */
@@ -1318,6 +1437,17 @@ export interface ResolveBusinessNamesResultItem {
1318
1437
  name?: string;
1319
1438
  fnr?: string | null;
1320
1439
  }
1440
+ /** An Abfrage to keep: the filters, and what they matched when they ran. */
1441
+ export interface SaveQueryRequest {
1442
+ query?: JsonDocument | null;
1443
+ /**
1444
+ * How many companies the filters matched. Omit it where the count could not be determined — a missing count leaves the one the Abfrage already carries alone rather than erasing it.
1445
+ * @format int32
1446
+ */
1447
+ resultCount?: number | null;
1448
+ /** The Abfrage being edited. Sending it pins the row that is written, so an edit that changes the filters into another Abfrage's still updates this one instead of merging into that. Without it, a save that filters for the same companies as an existing Abfrage updates that one, which is what keeps throwaway searches out of the Suchverlauf. */
1449
+ updateId?: string | null;
1450
+ }
1321
1451
  /** One entry from the BMF LSU (Scheinunternehmen) RSS feed. Company entries have Fnr; natural-person entries have PersonId. */
1322
1452
  export interface ScheinunternehmenKundmachung {
1323
1453
  /** @format int64 */
@@ -1362,6 +1492,28 @@ export interface ScheinunternehmenKundmachungDto {
1362
1492
  /** @format date-time */
1363
1493
  zeitpunktAlsScheinunternehmen?: string | null;
1364
1494
  }
1495
+ /** One suggestion: a company or a person, whichever type names. The other property is null. */
1496
+ export interface SearchItemResponse {
1497
+ /** "business" or "person". */
1498
+ type?: string;
1499
+ /** One company as it appears in a list or on the map — the subset of the Firmenakte that a screening result needs. Fetch the rest with GET /businesses/{fnr}. */
1500
+ business?: BusinessListResponse | null;
1501
+ person?: Person | null;
1502
+ }
1503
+ /** Companies and people for one term, ranked into a single list. */
1504
+ export interface SearchResponse {
1505
+ /** The suggestions, best first. */
1506
+ data?: SearchItemResponse[];
1507
+ }
1508
+ export interface StringSegment {
1509
+ buffer?: string | null;
1510
+ /** @format int32 */
1511
+ offset?: number;
1512
+ /** @format int32 */
1513
+ length?: number;
1514
+ value?: string | null;
1515
+ hasValue?: boolean;
1516
+ }
1365
1517
  export interface TradeCatalogItemResponse {
1366
1518
  /** @format int32 */
1367
1519
  licenseKey?: number;
@@ -1369,12 +1521,233 @@ export interface TradeCatalogItemResponse {
1369
1521
  /** @format int32 */
1370
1522
  companyCount?: number;
1371
1523
  }
1524
+ /** A partial update of a Liste: every field is optional and only the ones sent are written. "Sent" is the property being present in the body, which is not the same as it being non-null — {"icon": null} clears the icon while an omitted icon leaves it alone. System.Text.Json calls a setter only for a property the body carries, so each setter records that it was called; a nullable property alone could not tell the two apart. */
1525
+ export interface UpdateListRequest {
1526
+ /** New display name. */
1527
+ name?: string | null;
1528
+ /** New icon key, or null to clear it. */
1529
+ icon?: string | null;
1530
+ /** The companies on the Liste, replacing the current set. */
1531
+ fnrs?: string[] | null;
1532
+ /** The companies taken off the Liste, replacing the current set. */
1533
+ removedFnrs?: string[] | null;
1534
+ settings?: JsonDocument | null;
1535
+ }
1372
1536
  export interface ZipCodeResponse {
1373
1537
  zipCode?: string;
1374
1538
  /** @format int32 */
1375
1539
  businessCount?: number;
1376
1540
  }
1377
1541
  export declare namespace Api {
1542
+ /**
1543
+ * @description Every saved Abfrage of the calling account, newest first.
1544
+ * @tags Queries
1545
+ * @name V1QueriesList
1546
+ * @summary Your Abfragen
1547
+ * @request GET:/api/v1/queries
1548
+ * @secure
1549
+ */
1550
+ namespace V1QueriesList {
1551
+ type RequestParams = {};
1552
+ type RequestQuery = {};
1553
+ type RequestBody = never;
1554
+ type RequestHeaders = {};
1555
+ type ResponseBody = QueryResponse[];
1556
+ }
1557
+ /**
1558
+ * @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.
1559
+ * @tags Queries
1560
+ * @name V1QueriesCreate
1561
+ * @summary Save an Abfrage
1562
+ * @request POST:/api/v1/queries
1563
+ * @secure
1564
+ */
1565
+ namespace V1QueriesCreate {
1566
+ type RequestParams = {};
1567
+ type RequestQuery = {};
1568
+ type RequestBody = SaveQueryRequest;
1569
+ type RequestHeaders = {};
1570
+ type ResponseBody = QueryResponse;
1571
+ }
1572
+ /**
1573
+ * @description The saved Abfrage with this id, when it belongs to the calling account.
1574
+ * @tags Queries
1575
+ * @name V1QueriesDetail
1576
+ * @summary One Abfrage
1577
+ * @request GET:/api/v1/queries/{id}
1578
+ * @secure
1579
+ */
1580
+ namespace V1QueriesDetail {
1581
+ type RequestParams = {
1582
+ id: string;
1583
+ };
1584
+ type RequestQuery = {};
1585
+ type RequestBody = never;
1586
+ type RequestHeaders = {};
1587
+ type ResponseBody = QueryResponse;
1588
+ }
1589
+ /**
1590
+ * @description Removes one saved Abfrage from the Suchverlauf.
1591
+ * @tags Queries
1592
+ * @name V1QueriesDelete
1593
+ * @summary Delete an Abfrage
1594
+ * @request DELETE:/api/v1/queries/{id}
1595
+ * @secure
1596
+ */
1597
+ namespace V1QueriesDelete {
1598
+ type RequestParams = {
1599
+ id: string;
1600
+ };
1601
+ type RequestQuery = {};
1602
+ type RequestBody = never;
1603
+ type RequestHeaders = {};
1604
+ type ResponseBody = void;
1605
+ }
1606
+ /**
1607
+ * @description Deletes every saved Abfrage of the calling account.
1608
+ * @tags Queries
1609
+ * @name V1QueriesAllDelete
1610
+ * @summary Clear the Suchverlauf
1611
+ * @request DELETE:/api/v1/queries/all
1612
+ * @secure
1613
+ */
1614
+ namespace V1QueriesAllDelete {
1615
+ type RequestParams = {};
1616
+ type RequestQuery = {};
1617
+ type RequestBody = never;
1618
+ type RequestHeaders = {};
1619
+ type ResponseBody = void;
1620
+ }
1621
+ /**
1622
+ * @description Every Liste of the calling account, oldest first.
1623
+ * @tags Lists
1624
+ * @name V1ListsList
1625
+ * @summary Your Listen
1626
+ * @request GET:/api/v1/lists
1627
+ * @secure
1628
+ */
1629
+ namespace V1ListsList {
1630
+ type RequestParams = {};
1631
+ type RequestQuery = {};
1632
+ type RequestBody = never;
1633
+ type RequestHeaders = {};
1634
+ type ResponseBody = ListResponse[];
1635
+ }
1636
+ /**
1637
+ * @description Creates an empty Liste, or one already holding the companies you pass.
1638
+ * @tags Lists
1639
+ * @name V1ListsCreate
1640
+ * @summary Create a Liste
1641
+ * @request POST:/api/v1/lists
1642
+ * @secure
1643
+ */
1644
+ namespace V1ListsCreate {
1645
+ type RequestParams = {};
1646
+ type RequestQuery = {};
1647
+ type RequestBody = CreateListRequest;
1648
+ type RequestHeaders = {};
1649
+ type ResponseBody = ListResponse;
1650
+ }
1651
+ /**
1652
+ * @description The Liste with this id, when it belongs to the calling account.
1653
+ * @tags Lists
1654
+ * @name V1ListsDetail
1655
+ * @summary One Liste
1656
+ * @request GET:/api/v1/lists/{id}
1657
+ * @secure
1658
+ */
1659
+ namespace V1ListsDetail {
1660
+ type RequestParams = {
1661
+ id: string;
1662
+ };
1663
+ type RequestQuery = {};
1664
+ type RequestBody = never;
1665
+ type RequestHeaders = {};
1666
+ type ResponseBody = ListResponse;
1667
+ }
1668
+ /**
1669
+ * @description A partial update: only the fields the body carries are written, and settings are merged into the stored ones rather than replacing them.
1670
+ * @tags Lists
1671
+ * @name V1ListsPartialUpdate
1672
+ * @summary Update a Liste
1673
+ * @request PATCH:/api/v1/lists/{id}
1674
+ * @secure
1675
+ */
1676
+ namespace V1ListsPartialUpdate {
1677
+ type RequestParams = {
1678
+ id: string;
1679
+ };
1680
+ type RequestQuery = {};
1681
+ type RequestBody = UpdateListRequest;
1682
+ type RequestHeaders = {};
1683
+ type ResponseBody = ListResponse;
1684
+ }
1685
+ /**
1686
+ * @description Deletes the Liste. The companies on it are not touched anywhere else.
1687
+ * @tags Lists
1688
+ * @name V1ListsDelete
1689
+ * @summary Delete a Liste
1690
+ * @request DELETE:/api/v1/lists/{id}
1691
+ * @secure
1692
+ */
1693
+ namespace V1ListsDelete {
1694
+ type RequestParams = {
1695
+ id: string;
1696
+ };
1697
+ type RequestQuery = {};
1698
+ type RequestBody = never;
1699
+ type RequestHeaders = {};
1700
+ type ResponseBody = void;
1701
+ }
1702
+ /**
1703
+ * @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.
1704
+ * @tags Lists
1705
+ * @name V1ListsAddCreate
1706
+ * @summary Add companies to a Liste
1707
+ * @request POST:/api/v1/lists/{id}/add
1708
+ * @secure
1709
+ */
1710
+ namespace V1ListsAddCreate {
1711
+ type RequestParams = {
1712
+ id: string;
1713
+ };
1714
+ type RequestQuery = {};
1715
+ type RequestBody = ListMembersRequest;
1716
+ type RequestHeaders = {};
1717
+ type ResponseBody = ListResponse;
1718
+ }
1719
+ /**
1720
+ * @description Takes the companies off the Liste and records them as removed.
1721
+ * @tags Lists
1722
+ * @name V1ListsRemoveCreate
1723
+ * @summary Remove companies from a Liste
1724
+ * @request POST:/api/v1/lists/{id}/remove
1725
+ * @secure
1726
+ */
1727
+ namespace V1ListsRemoveCreate {
1728
+ type RequestParams = {
1729
+ id: string;
1730
+ };
1731
+ type RequestQuery = {};
1732
+ type RequestBody = ListMembersRequest;
1733
+ type RequestHeaders = {};
1734
+ type ResponseBody = ListResponse;
1735
+ }
1736
+ /**
1737
+ * @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.
1738
+ * @tags Exports
1739
+ * @name V1ExportsBusinessesCreate
1740
+ * @summary Export companies
1741
+ * @request POST:/api/v1/exports/businesses
1742
+ * @secure
1743
+ */
1744
+ namespace V1ExportsBusinessesCreate {
1745
+ type RequestParams = {};
1746
+ type RequestQuery = {};
1747
+ type RequestBody = ExportBusinessesRequest;
1748
+ type RequestHeaders = {};
1749
+ type ResponseBody = FileResult;
1750
+ }
1378
1751
  /**
1379
1752
  * @description Downloads the signed GISA PDF extract for a license (GISA-Zahl). Language defaults to German (De).
1380
1753
  * @tags Trades
@@ -1500,7 +1873,7 @@ export declare namespace Api {
1500
1873
  type ResponseBody = GisaChange;
1501
1874
  }
1502
1875
  /**
1503
- * @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. 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.
1876
+ * @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.
1504
1877
  * @tags Trades
1505
1878
  * @name V1TradesChangesList
1506
1879
  * @summary GISA change feed
@@ -1541,6 +1914,31 @@ export declare namespace Api {
1541
1914
  type RequestHeaders = {};
1542
1915
  type ResponseBody = PagedResponseOfGisaChange;
1543
1916
  }
1917
+ /**
1918
+ * @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.
1919
+ * @tags Search
1920
+ * @name V1SearchList
1921
+ * @summary Companies and people in one ranked list
1922
+ * @request GET:/api/v1/search
1923
+ * @secure
1924
+ */
1925
+ namespace V1SearchList {
1926
+ type RequestParams = {};
1927
+ type RequestQuery = {
1928
+ /** The term. Empty answers an empty list — this endpoint suggests, it does not list. */
1929
+ search?: string;
1930
+ /**
1931
+ * How many rows to take from each side before they are ranked together, so the answer holds at most twice this many; defaults to 10 when omitted.
1932
+ * @format int32
1933
+ * @min 1
1934
+ * @max 100
1935
+ */
1936
+ pageSize?: number;
1937
+ };
1938
+ type RequestBody = never;
1939
+ type RequestHeaders = {};
1940
+ type ResponseBody = SearchResponse;
1941
+ }
1544
1942
  /**
1545
1943
  * @description Returns (id, name) pairs for all people with at least one business assignment. For client-side name index.
1546
1944
  * @tags People
@@ -1695,7 +2093,7 @@ export declare namespace Api {
1695
2093
  type ResponseBody = PagedResponseOfLegalFormCatalogItemResponse;
1696
2094
  }
1697
2095
  /**
1698
- * @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. ("address", two companies registered at the same street address, is a second edge type the deployment can enable; it is off today, so expect only assignment edges.) 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.
2096
+ * @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.
1699
2097
  * @tags Graph
1700
2098
  * @name V1GraphList
1701
2099
  * @summary Relationship graph
@@ -1715,7 +2113,7 @@ export declare namespace Api {
1715
2113
  type ResponseBody = GraphResponse;
1716
2114
  }
1717
2115
  /**
1718
- * @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. 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.
2116
+ * @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.
1719
2117
  * @tags GlobalChanges
1720
2118
  * @name V1GlobalchangesList
1721
2119
  * @summary All-register change feed
@@ -1822,7 +2220,7 @@ export declare namespace Api {
1822
2220
  type ResponseBody = EdiktChange;
1823
2221
  }
1824
2222
  /**
1825
- * @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. 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.
2223
+ * @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.
1826
2224
  * @tags Edikte
1827
2225
  * @name V1EdikteChangesList
1828
2226
  * @summary Ediktsdatei change feed
@@ -1899,7 +2297,7 @@ export declare namespace Api {
1899
2297
  type ResponseBody = DocumentChange;
1900
2298
  }
1901
2299
  /**
1902
- * @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. 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.
2300
+ * @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.
1903
2301
  * @tags Documents
1904
2302
  * @name V1DocumentsChangesList
1905
2303
  * @summary Document change feed
@@ -3739,7 +4137,7 @@ export declare namespace Api {
3739
4137
  type ResponseBody = BusinessFacetsResponse;
3740
4138
  }
3741
4139
  /**
3742
- * @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 towns holding the most companies 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. Cached for an hour rather than the day GET /businesses gets: view counts move.
4140
+ * @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.
3743
4141
  * @tags Businesses
3744
4142
  * @name V1BusinessesMapTopList
3745
4143
  * @summary Top company per Bundesland or city
@@ -4361,7 +4759,7 @@ export declare namespace Api {
4361
4759
  type ResponseBody = BusinessChange;
4362
4760
  }
4363
4761
  /**
4364
- * @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. 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.
4762
+ * @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.
4365
4763
  * @tags Businesses
4366
4764
  * @name V1BusinessesChangesList
4367
4765
  * @summary Firmenbuch change feed
@@ -4479,6 +4877,29 @@ export declare namespace Api {
4479
4877
  type RequestHeaders = {};
4480
4878
  type ResponseBody = PagedResponseOfCityResponse;
4481
4879
  }
4880
+ /**
4881
+ * @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.
4882
+ * @tags Addresses
4883
+ * @name V1AddressesSuggestList
4884
+ * @summary Location autocomplete
4885
+ * @request GET:/api/v1/addresses/suggest
4886
+ * @secure
4887
+ */
4888
+ namespace V1AddressesSuggestList {
4889
+ type RequestParams = {};
4890
+ type RequestQuery = {
4891
+ /** The term to rank against. Shorter than two characters it is ignored entirely and the biggest groups come back instead. */
4892
+ search?: string;
4893
+ /**
4894
+ * How many suggestions to answer, across both lists; defaults to 10 when omitted.
4895
+ * @format int32
4896
+ */
4897
+ top?: number;
4898
+ };
4899
+ type RequestBody = never;
4900
+ type RequestHeaders = {};
4901
+ type ResponseBody = LocationSuggestionsResponse;
4902
+ }
4482
4903
  /**
4483
4904
  * @description Returns unique zip codes from addresses with pagination and optional search.
4484
4905
  * @tags Addresses
@@ -4577,6 +4998,136 @@ export declare class HttpClient<SecurityDataType = unknown> {
4577
4998
  */
4578
4999
  export declare class Api<SecurityDataType extends unknown> extends HttpClient<SecurityDataType> {
4579
5000
  api: {
5001
+ /**
5002
+ * @description Every saved Abfrage of the calling account, newest first.
5003
+ *
5004
+ * @tags Queries
5005
+ * @name V1QueriesList
5006
+ * @summary Your Abfragen
5007
+ * @request GET:/api/v1/queries
5008
+ * @secure
5009
+ */
5010
+ v1QueriesList: (params?: RequestParams) => Promise<HttpResponse<QueryResponse[], ApiError | ProblemDetails>>;
5011
+ /**
5012
+ * @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.
5013
+ *
5014
+ * @tags Queries
5015
+ * @name V1QueriesCreate
5016
+ * @summary Save an Abfrage
5017
+ * @request POST:/api/v1/queries
5018
+ * @secure
5019
+ */
5020
+ v1QueriesCreate: (data: SaveQueryRequest, params?: RequestParams) => Promise<HttpResponse<QueryResponse, ApiError | ProblemDetails>>;
5021
+ /**
5022
+ * @description The saved Abfrage with this id, when it belongs to the calling account.
5023
+ *
5024
+ * @tags Queries
5025
+ * @name V1QueriesDetail
5026
+ * @summary One Abfrage
5027
+ * @request GET:/api/v1/queries/{id}
5028
+ * @secure
5029
+ */
5030
+ v1QueriesDetail: (id: string, params?: RequestParams) => Promise<HttpResponse<QueryResponse, ApiError | ProblemDetails>>;
5031
+ /**
5032
+ * @description Removes one saved Abfrage from the Suchverlauf.
5033
+ *
5034
+ * @tags Queries
5035
+ * @name V1QueriesDelete
5036
+ * @summary Delete an Abfrage
5037
+ * @request DELETE:/api/v1/queries/{id}
5038
+ * @secure
5039
+ */
5040
+ v1QueriesDelete: (id: string, params?: RequestParams) => Promise<HttpResponse<void, ApiError | ProblemDetails>>;
5041
+ /**
5042
+ * @description Deletes every saved Abfrage of the calling account.
5043
+ *
5044
+ * @tags Queries
5045
+ * @name V1QueriesAllDelete
5046
+ * @summary Clear the Suchverlauf
5047
+ * @request DELETE:/api/v1/queries/all
5048
+ * @secure
5049
+ */
5050
+ v1QueriesAllDelete: (params?: RequestParams) => Promise<HttpResponse<void, ApiError | ProblemDetails>>;
5051
+ /**
5052
+ * @description Every Liste of the calling account, oldest first.
5053
+ *
5054
+ * @tags Lists
5055
+ * @name V1ListsList
5056
+ * @summary Your Listen
5057
+ * @request GET:/api/v1/lists
5058
+ * @secure
5059
+ */
5060
+ v1ListsList: (params?: RequestParams) => Promise<HttpResponse<ListResponse[], ApiError | ProblemDetails>>;
5061
+ /**
5062
+ * @description Creates an empty Liste, or one already holding the companies you pass.
5063
+ *
5064
+ * @tags Lists
5065
+ * @name V1ListsCreate
5066
+ * @summary Create a Liste
5067
+ * @request POST:/api/v1/lists
5068
+ * @secure
5069
+ */
5070
+ v1ListsCreate: (data: CreateListRequest, params?: RequestParams) => Promise<HttpResponse<ListResponse, ApiError | ProblemDetails>>;
5071
+ /**
5072
+ * @description The Liste with this id, when it belongs to the calling account.
5073
+ *
5074
+ * @tags Lists
5075
+ * @name V1ListsDetail
5076
+ * @summary One Liste
5077
+ * @request GET:/api/v1/lists/{id}
5078
+ * @secure
5079
+ */
5080
+ v1ListsDetail: (id: string, params?: RequestParams) => Promise<HttpResponse<ListResponse, ApiError | ProblemDetails>>;
5081
+ /**
5082
+ * @description A partial update: only the fields the body carries are written, and settings are merged into the stored ones rather than replacing them.
5083
+ *
5084
+ * @tags Lists
5085
+ * @name V1ListsPartialUpdate
5086
+ * @summary Update a Liste
5087
+ * @request PATCH:/api/v1/lists/{id}
5088
+ * @secure
5089
+ */
5090
+ v1ListsPartialUpdate: (id: string, data: UpdateListRequest, params?: RequestParams) => Promise<HttpResponse<ListResponse, ApiError | ProblemDetails>>;
5091
+ /**
5092
+ * @description Deletes the Liste. The companies on it are not touched anywhere else.
5093
+ *
5094
+ * @tags Lists
5095
+ * @name V1ListsDelete
5096
+ * @summary Delete a Liste
5097
+ * @request DELETE:/api/v1/lists/{id}
5098
+ * @secure
5099
+ */
5100
+ v1ListsDelete: (id: string, params?: RequestParams) => Promise<HttpResponse<void, ApiError | ProblemDetails>>;
5101
+ /**
5102
+ * @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.
5103
+ *
5104
+ * @tags Lists
5105
+ * @name V1ListsAddCreate
5106
+ * @summary Add companies to a Liste
5107
+ * @request POST:/api/v1/lists/{id}/add
5108
+ * @secure
5109
+ */
5110
+ v1ListsAddCreate: (id: string, data: ListMembersRequest, params?: RequestParams) => Promise<HttpResponse<ListResponse, ApiError | ProblemDetails>>;
5111
+ /**
5112
+ * @description Takes the companies off the Liste and records them as removed.
5113
+ *
5114
+ * @tags Lists
5115
+ * @name V1ListsRemoveCreate
5116
+ * @summary Remove companies from a Liste
5117
+ * @request POST:/api/v1/lists/{id}/remove
5118
+ * @secure
5119
+ */
5120
+ v1ListsRemoveCreate: (id: string, data: ListMembersRequest, params?: RequestParams) => Promise<HttpResponse<ListResponse, ApiError | ProblemDetails>>;
5121
+ /**
5122
+ * @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.
5123
+ *
5124
+ * @tags Exports
5125
+ * @name V1ExportsBusinessesCreate
5126
+ * @summary Export companies
5127
+ * @request POST:/api/v1/exports/businesses
5128
+ * @secure
5129
+ */
5130
+ v1ExportsBusinessesCreate: (data: ExportBusinessesRequest, params?: RequestParams) => Promise<HttpResponse<FileResult, ApiError | ProblemDetails>>;
4580
5131
  /**
4581
5132
  * @description Downloads the signed GISA PDF extract for a license (GISA-Zahl). Language defaults to German (De).
4582
5133
  *
@@ -4591,7 +5142,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
4591
5142
  historical?: boolean;
4592
5143
  /** @default "De" */
4593
5144
  language?: "De" | "En";
4594
- }, params?: RequestParams) => Promise<HttpResponse<Blob, ProblemDetails | ApiError>>;
5145
+ }, params?: RequestParams) => Promise<HttpResponse<Blob, ApiError | ProblemDetails>>;
4595
5146
  /**
4596
5147
  * @description Returns the global catalog of GISA Trade Definitions with pagination.
4597
5148
  *
@@ -4619,7 +5170,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
4619
5170
  * @max 100
4620
5171
  */
4621
5172
  pageSize?: number;
4622
- }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfTradeCatalogItemResponse, ProblemDetails | ApiError>>;
5173
+ }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfTradeCatalogItemResponse, ApiError | ProblemDetails>>;
4623
5174
  /**
4624
5175
  * @description Returns all company licenses for a specific trade definition with pagination.
4625
5176
  *
@@ -4644,7 +5195,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
4644
5195
  * @max 100
4645
5196
  */
4646
5197
  pageSize?: number;
4647
- }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfGisaLicense, ProblemDetails | ApiError>>;
5198
+ }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfGisaLicense, ApiError | ProblemDetails>>;
4648
5199
  /**
4649
5200
  * @description Returns all licenses for a specific company (FNR).
4650
5201
  *
@@ -4654,7 +5205,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
4654
5205
  * @request GET:/api/v1/trades/company/{fnr}
4655
5206
  * @secure
4656
5207
  */
4657
- v1TradesCompanyDetail: (fnr: string, params?: RequestParams) => Promise<HttpResponse<GisaLicense[], ProblemDetails | ApiError>>;
5208
+ v1TradesCompanyDetail: (fnr: string, params?: RequestParams) => Promise<HttpResponse<GisaLicense[], ApiError | ProblemDetails>>;
4658
5209
  /**
4659
5210
  * @description Returns a single GISA change by id.
4660
5211
  *
@@ -4664,9 +5215,9 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
4664
5215
  * @request GET:/api/v1/trades/changes/{id}
4665
5216
  * @secure
4666
5217
  */
4667
- v1TradesChangesDetail: (id: number, params?: RequestParams) => Promise<HttpResponse<GisaChange, ProblemDetails | ApiError>>;
5218
+ v1TradesChangesDetail: (id: number, params?: RequestParams) => Promise<HttpResponse<GisaChange, ApiError | ProblemDetails>>;
4668
5219
  /**
4669
- * @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. 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.
5220
+ * @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.
4670
5221
  *
4671
5222
  * @tags Trades
4672
5223
  * @name V1TradesChangesList
@@ -4701,7 +5252,27 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
4701
5252
  * @max 100
4702
5253
  */
4703
5254
  pageSize?: number;
4704
- }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfGisaChange, ProblemDetails | ApiError>>;
5255
+ }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfGisaChange, ApiError | ProblemDetails>>;
5256
+ /**
5257
+ * @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.
5258
+ *
5259
+ * @tags Search
5260
+ * @name V1SearchList
5261
+ * @summary Companies and people in one ranked list
5262
+ * @request GET:/api/v1/search
5263
+ * @secure
5264
+ */
5265
+ v1SearchList: (query?: {
5266
+ /** The term. Empty answers an empty list — this endpoint suggests, it does not list. */
5267
+ search?: string;
5268
+ /**
5269
+ * How many rows to take from each side before they are ranked together, so the answer holds at most twice this many; defaults to 10 when omitted.
5270
+ * @format int32
5271
+ * @min 1
5272
+ * @max 100
5273
+ */
5274
+ pageSize?: number;
5275
+ }, params?: RequestParams) => Promise<HttpResponse<SearchResponse, ApiError | ProblemDetails>>;
4705
5276
  /**
4706
5277
  * @description Returns (id, name) pairs for all people with at least one business assignment. For client-side name index.
4707
5278
  *
@@ -4711,7 +5282,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
4711
5282
  * @request GET:/api/v1/people/names
4712
5283
  * @secure
4713
5284
  */
4714
- v1PeopleNamesList: (params?: RequestParams) => Promise<HttpResponse<PersonNameItem[], ProblemDetails | ApiError>>;
5285
+ v1PeopleNamesList: (params?: RequestParams) => Promise<HttpResponse<PersonNameItem[], ApiError | ProblemDetails>>;
4715
5286
  /**
4716
5287
  * @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
4717
5288
  *
@@ -4757,7 +5328,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
4757
5328
  * @max 100
4758
5329
  */
4759
5330
  pageSize?: number;
4760
- }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfPerson, ProblemDetails | ApiError>>;
5331
+ }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfPerson, ApiError | ProblemDetails>>;
4761
5332
  /**
4762
5333
  * @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.
4763
5334
  *
@@ -4767,7 +5338,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
4767
5338
  * @request GET:/api/v1/people/{personId}
4768
5339
  * @secure
4769
5340
  */
4770
- v1PeopleDetail: (personId: string, params?: RequestParams) => Promise<HttpResponse<PersonDetailResponse, ProblemDetails | ApiError>>;
5341
+ v1PeopleDetail: (personId: string, params?: RequestParams) => Promise<HttpResponse<PersonDetailResponse, ApiError | ProblemDetails>>;
4771
5342
  /**
4772
5343
  * @description Returns the OeNACE classification catalog with company counts. Results are ordered by company count descending — most used first.
4773
5344
  *
@@ -4800,7 +5371,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
4800
5371
  * @max 100
4801
5372
  */
4802
5373
  pageSize?: number;
4803
- }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfOenaceCatalogItemResponse, ProblemDetails | ApiError>>;
5374
+ }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfOenaceCatalogItemResponse, ApiError | ProblemDetails>>;
4804
5375
  /**
4805
5376
  * @description Returns all legal forms with pagination and optional search, sorted by business count descending.
4806
5377
  *
@@ -4827,9 +5398,9 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
4827
5398
  * @max 100
4828
5399
  */
4829
5400
  pageSize?: number;
4830
- }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfLegalFormCatalogItemResponse, ProblemDetails | ApiError>>;
5401
+ }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfLegalFormCatalogItemResponse, ApiError | ProblemDetails>>;
4831
5402
  /**
4832
- * @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. ("address", two companies registered at the same street address, is a second edge type the deployment can enable; it is off today, so expect only assignment edges.) 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.
5403
+ * @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.
4833
5404
  *
4834
5405
  * @tags Graph
4835
5406
  * @name V1GraphList
@@ -4842,9 +5413,9 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
4842
5413
  personId?: string;
4843
5414
  /** Start from this company. Normalised before matching — trimmed, spaces and leading zeros removed — so 034853 f and 34853f are the same company; case is not folded. Mutually exclusive with personId. */
4844
5415
  fnr?: string;
4845
- }, params?: RequestParams) => Promise<HttpResponse<GraphResponse, ProblemDetails | ApiError>>;
5416
+ }, params?: RequestParams) => Promise<HttpResponse<GraphResponse, ApiError | ProblemDetails>>;
4846
5417
  /**
4847
- * @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. 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.
5418
+ * @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.
4848
5419
  *
4849
5420
  * @tags GlobalChanges
4850
5421
  * @name V1GlobalchangesList
@@ -4879,7 +5450,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
4879
5450
  * @max 100
4880
5451
  */
4881
5452
  pageSize?: number;
4882
- }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfGlobalChange, ProblemDetails | ApiError>>;
5453
+ }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfGlobalChange, ApiError | ProblemDetails>>;
4883
5454
  /**
4884
5455
  * @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.
4885
5456
  *
@@ -4903,7 +5474,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
4903
5474
  * @max 2000
4904
5475
  */
4905
5476
  maxResultsPerType?: number;
4906
- }, params?: RequestParams) => Promise<HttpResponse<AggregatedChangesResponse, ProblemDetails | ApiError>>;
5477
+ }, params?: RequestParams) => Promise<HttpResponse<AggregatedChangesResponse, ApiError | ProblemDetails>>;
4907
5478
  /**
4908
5479
  * @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.
4909
5480
  *
@@ -4913,7 +5484,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
4913
5484
  * @request GET:/api/v1/globalchanges/{id}
4914
5485
  * @secure
4915
5486
  */
4916
- v1GlobalchangesDetail: (id: number, params?: RequestParams) => Promise<HttpResponse<ChangeDetailResponse, ProblemDetails | ApiError>>;
5487
+ v1GlobalchangesDetail: (id: number, params?: RequestParams) => Promise<HttpResponse<ChangeDetailResponse, ApiError | ProblemDetails>>;
4917
5488
  /**
4918
5489
  * @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.
4919
5490
  *
@@ -4923,9 +5494,9 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
4923
5494
  * @request GET:/api/v1/edikte/changes/{id}
4924
5495
  * @secure
4925
5496
  */
4926
- v1EdikteChangesDetail: (id: number, params?: RequestParams) => Promise<HttpResponse<EdiktChange, ProblemDetails | ApiError>>;
5497
+ v1EdikteChangesDetail: (id: number, params?: RequestParams) => Promise<HttpResponse<EdiktChange, ApiError | ProblemDetails>>;
4927
5498
  /**
4928
- * @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. 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.
5499
+ * @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.
4929
5500
  *
4930
5501
  * @tags Edikte
4931
5502
  * @name V1EdikteChangesList
@@ -4960,7 +5531,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
4960
5531
  * @max 100
4961
5532
  */
4962
5533
  pageSize?: number;
4963
- }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfEdiktChange, ProblemDetails | ApiError>>;
5534
+ }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfEdiktChange, ApiError | ProblemDetails>>;
4964
5535
  /**
4965
5536
  * @description Downloads a Firmenbuch document (PDF/XML) by its document key.
4966
5537
  *
@@ -4970,7 +5541,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
4970
5541
  * @request GET:/api/v1/documents/download/{documentKey}
4971
5542
  * @secure
4972
5543
  */
4973
- v1DocumentsDownloadDetail: (documentKey: string, params?: RequestParams) => Promise<HttpResponse<void, string | ProblemDetails | ApiError>>;
5544
+ v1DocumentsDownloadDetail: (documentKey: string, params?: RequestParams) => Promise<HttpResponse<void, string | ApiError | ProblemDetails>>;
4974
5545
  /**
4975
5546
  * @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.
4976
5547
  *
@@ -4980,9 +5551,9 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
4980
5551
  * @request GET:/api/v1/documents/changes/{id}
4981
5552
  * @secure
4982
5553
  */
4983
- v1DocumentsChangesDetail: (id: number, params?: RequestParams) => Promise<HttpResponse<DocumentChange, ProblemDetails | ApiError>>;
5554
+ v1DocumentsChangesDetail: (id: number, params?: RequestParams) => Promise<HttpResponse<DocumentChange, ApiError | ProblemDetails>>;
4984
5555
  /**
4985
- * @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. 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.
5556
+ * @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.
4986
5557
  *
4987
5558
  * @tags Documents
4988
5559
  * @name V1DocumentsChangesList
@@ -5017,7 +5588,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5017
5588
  * @max 100
5018
5589
  */
5019
5590
  pageSize?: number;
5020
- }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfDocumentChange, ProblemDetails | ApiError>>;
5591
+ }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfDocumentChange, ApiError | ProblemDetails>>;
5021
5592
  /**
5022
5593
  * @description Returns all courts with pagination and optional search, sorted by business count descending.
5023
5594
  *
@@ -5044,7 +5615,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5044
5615
  * @max 100
5045
5616
  */
5046
5617
  pageSize?: number;
5047
- }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfCourtCatalogItemResponse, ProblemDetails | ApiError>>;
5618
+ }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfCourtCatalogItemResponse, ApiError | ProblemDetails>>;
5048
5619
  /**
5049
5620
  * @description Resolve company names to FNRs by exact name match (1:1). Used for CSV import.
5050
5621
  *
@@ -5054,7 +5625,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5054
5625
  * @request POST:/api/v1/businesses/resolve-names
5055
5626
  * @secure
5056
5627
  */
5057
- v1BusinessesResolveNamesCreate: (data: ResolveBusinessNamesRequest, params?: RequestParams) => Promise<HttpResponse<ResolveBusinessNamesResponse, ProblemDetails | ApiError>>;
5628
+ v1BusinessesResolveNamesCreate: (data: ResolveBusinessNamesRequest, params?: RequestParams) => Promise<HttpResponse<ResolveBusinessNamesResponse, ApiError | ProblemDetails>>;
5058
5629
  /**
5059
5630
  * @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. Pass countOnly=true for totalRecords without the rows, and use /businesses/aggregate to group the same filter set instead of paging through it.
5060
5631
  *
@@ -5615,7 +6186,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5615
6186
  * @format decimal
5616
6187
  */
5617
6188
  "guv.ZinsenUndAehnlicheAufwendungen_lte"?: number | null;
5618
- }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfBusinessListResponse, ProblemDetails | ApiError>>;
6189
+ }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfBusinessListResponse, ApiError | ProblemDetails>>;
5619
6190
  /**
5620
6191
  * @description Returns all business (fnr, name) pairs for client-side name index. No pagination.
5621
6192
  *
@@ -5625,7 +6196,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5625
6196
  * @request GET:/api/v1/businesses/names
5626
6197
  * @secure
5627
6198
  */
5628
- v1BusinessesNamesList: (params?: RequestParams) => Promise<HttpResponse<BusinessNameItem[], ProblemDetails | ApiError>>;
6199
+ v1BusinessesNamesList: (params?: RequestParams) => Promise<HttpResponse<BusinessNameItem[], ApiError | ProblemDetails>>;
5629
6200
  /**
5630
6201
  * @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.
5631
6202
  *
@@ -5635,7 +6206,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
5635
6206
  * @request GET:/api/v1/businesses/count
5636
6207
  * @secure
5637
6208
  */
5638
- v1BusinessesCountList: (params?: RequestParams) => Promise<HttpResponse<number, ProblemDetails | ApiError>>;
6209
+ v1BusinessesCountList: (params?: RequestParams) => Promise<HttpResponse<number, ApiError | ProblemDetails>>;
5639
6210
  /**
5640
6211
  * @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.
5641
6212
  *
@@ -6210,7 +6781,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
6210
6781
  * @format decimal
6211
6782
  */
6212
6783
  "guv.ZinsenUndAehnlicheAufwendungen_lte"?: number | null;
6213
- }, params?: RequestParams) => Promise<HttpResponse<BusinessAggregateResponse, ProblemDetails | ApiError>>;
6784
+ }, params?: RequestParams) => Promise<HttpResponse<BusinessAggregateResponse, ApiError | ProblemDetails>>;
6214
6785
  /**
6215
6786
  * @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.
6216
6787
  *
@@ -6780,9 +7351,9 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
6780
7351
  * @format decimal
6781
7352
  */
6782
7353
  "guv.ZinsenUndAehnlicheAufwendungen_lte"?: number | null;
6783
- }, params?: RequestParams) => Promise<HttpResponse<BusinessFacetsResponse, ProblemDetails | ApiError>>;
7354
+ }, params?: RequestParams) => Promise<HttpResponse<BusinessFacetsResponse, ApiError | ProblemDetails>>;
6784
7355
  /**
6785
- * @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 towns holding the most companies 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. Cached for an hour rather than the day GET /businesses gets: view counts move.
7356
+ * @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.
6786
7357
  *
6787
7358
  * @tags Businesses
6788
7359
  * @name V1BusinessesMapTopList
@@ -7345,7 +7916,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
7345
7916
  * @format decimal
7346
7917
  */
7347
7918
  "guv.ZinsenUndAehnlicheAufwendungen_lte"?: number | null;
7348
- }, params?: RequestParams) => Promise<HttpResponse<BusinessMapTopItem[], ProblemDetails | ApiError>>;
7919
+ }, params?: RequestParams) => Promise<HttpResponse<BusinessMapTopItem[], ApiError | ProblemDetails>>;
7349
7920
  /**
7350
7921
  * @description Active businesses similar to the given one (same OeNACE branch, same region preferred).
7351
7922
  *
@@ -7355,7 +7926,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
7355
7926
  * @request GET:/api/v1/businesses/{fnr}/similar
7356
7927
  * @secure
7357
7928
  */
7358
- v1BusinessesSimilarList: (fnr: string, params?: RequestParams) => Promise<HttpResponse<BusinessListResponse[], ProblemDetails | ApiError>>;
7929
+ v1BusinessesSimilarList: (fnr: string, params?: RequestParams) => Promise<HttpResponse<BusinessListResponse[], ApiError | ProblemDetails>>;
7359
7930
  /**
7360
7931
  * @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.
7361
7932
  *
@@ -7365,7 +7936,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
7365
7936
  * @request GET:/api/v1/businesses/{fnr}
7366
7937
  * @secure
7367
7938
  */
7368
- v1BusinessesDetail: (fnr: string, params?: RequestParams) => Promise<HttpResponse<BusinessDetailResponse, ProblemDetails | ApiError>>;
7939
+ v1BusinessesDetail: (fnr: string, params?: RequestParams) => Promise<HttpResponse<BusinessDetailResponse, ApiError | ProblemDetails>>;
7369
7940
  /**
7370
7941
  * @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.
7371
7942
  *
@@ -7375,9 +7946,9 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
7375
7946
  * @request GET:/api/v1/businesses/changes/{id}
7376
7947
  * @secure
7377
7948
  */
7378
- v1BusinessesChangesDetail: (id: number, params?: RequestParams) => Promise<HttpResponse<BusinessChange, ProblemDetails | ApiError>>;
7949
+ v1BusinessesChangesDetail: (id: number, params?: RequestParams) => Promise<HttpResponse<BusinessChange, ApiError | ProblemDetails>>;
7379
7950
  /**
7380
- * @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. 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.
7951
+ * @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.
7381
7952
  *
7382
7953
  * @tags Businesses
7383
7954
  * @name V1BusinessesChangesList
@@ -7412,7 +7983,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
7412
7983
  * @max 100
7413
7984
  */
7414
7985
  pageSize?: number;
7415
- }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfBusinessChange, ProblemDetails | ApiError>>;
7986
+ }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfBusinessChange, ApiError | ProblemDetails>>;
7416
7987
  /**
7417
7988
  * @description Returns all assignment functions (code/text lookup) for display. Cached 24h.
7418
7989
  *
@@ -7422,7 +7993,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
7422
7993
  * @request GET:/api/v1/assignmentfunctions
7423
7994
  * @secure
7424
7995
  */
7425
- v1AssignmentfunctionsList: (params?: RequestParams) => Promise<HttpResponse<AssignmentFunctionItemResponse[], ProblemDetails | ApiError>>;
7996
+ v1AssignmentfunctionsList: (params?: RequestParams) => Promise<HttpResponse<AssignmentFunctionItemResponse[], ApiError | ProblemDetails>>;
7426
7997
  /**
7427
7998
  * @description Returns unique City+ZipCode combinations from addresses with pagination and optional search.
7428
7999
  *
@@ -7448,7 +8019,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
7448
8019
  * @max 100
7449
8020
  */
7450
8021
  pageSize?: number;
7451
- }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfAddressLocationResponse, ProblemDetails | ApiError>>;
8022
+ }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfAddressLocationResponse, ApiError | ProblemDetails>>;
7452
8023
  /**
7453
8024
  * @description Returns unique cities from addresses with pagination and optional search.
7454
8025
  *
@@ -7474,7 +8045,25 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
7474
8045
  * @max 100
7475
8046
  */
7476
8047
  pageSize?: number;
7477
- }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfCityResponse, ProblemDetails | ApiError>>;
8048
+ }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfCityResponse, ApiError | ProblemDetails>>;
8049
+ /**
8050
+ * @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.
8051
+ *
8052
+ * @tags Addresses
8053
+ * @name V1AddressesSuggestList
8054
+ * @summary Location autocomplete
8055
+ * @request GET:/api/v1/addresses/suggest
8056
+ * @secure
8057
+ */
8058
+ v1AddressesSuggestList: (query?: {
8059
+ /** The term to rank against. Shorter than two characters it is ignored entirely and the biggest groups come back instead. */
8060
+ search?: string;
8061
+ /**
8062
+ * How many suggestions to answer, across both lists; defaults to 10 when omitted.
8063
+ * @format int32
8064
+ */
8065
+ top?: number;
8066
+ }, params?: RequestParams) => Promise<HttpResponse<LocationSuggestionsResponse, ApiError | ProblemDetails>>;
7478
8067
  /**
7479
8068
  * @description Returns unique zip codes from addresses with pagination and optional search.
7480
8069
  *
@@ -7500,7 +8089,7 @@ export declare class Api<SecurityDataType extends unknown> extends HttpClient<Se
7500
8089
  * @max 100
7501
8090
  */
7502
8091
  pageSize?: number;
7503
- }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfZipCodeResponse, ProblemDetails | ApiError>>;
8092
+ }, params?: RequestParams) => Promise<HttpResponse<PagedResponseOfZipCodeResponse, ApiError | ProblemDetails>>;
7504
8093
  };
7505
8094
  }
7506
8095
  export {};