@firmenakte/api-client 2.9.0 → 2.11.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +35 -0
- package/client.d.ts +460 -122
- package/client.d.ts.map +1 -1
- package/client.js +119 -53
- package/index.d.ts +17 -4
- package/index.d.ts.map +1 -1
- package/index.js +10 -5
- package/package.json +1 -1
package/client.js
CHANGED
|
@@ -29,7 +29,7 @@ var InsolvencyCourtEventType;
|
|
|
29
29
|
InsolvencyCourtEventType["Closure"] = "closure";
|
|
30
30
|
InsolvencyCourtEventType["NonStatus"] = "nonStatus";
|
|
31
31
|
})(InsolvencyCourtEventType || (exports.InsolvencyCourtEventType = InsolvencyCourtEventType = {}));
|
|
32
|
-
/** 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. */
|
|
32
|
+
/** Which register a change came from, and therefore which typed feed and payload it belongs to: "business" the Firmenbuch, "document" a newly filed document, "edikt" the Ediktsdatei, "gisa" the trade register, "foerderung" published funding, "scheinunternehmen" the BMF list. "unknown" is a change we could not classify. */
|
|
33
33
|
var ChangeType;
|
|
34
34
|
(function (ChangeType) {
|
|
35
35
|
ChangeType["Business"] = "business";
|
|
@@ -38,6 +38,7 @@ var ChangeType;
|
|
|
38
38
|
ChangeType["Gisa"] = "gisa";
|
|
39
39
|
ChangeType["Scheinunternehmen"] = "scheinunternehmen";
|
|
40
40
|
ChangeType["Unknown"] = "unknown";
|
|
41
|
+
ChangeType["Foerderung"] = "foerderung";
|
|
41
42
|
})(ChangeType || (exports.ChangeType = ChangeType = {}));
|
|
42
43
|
/** The two files an export can produce. Same columns, same rows — only the serialiser differs. */
|
|
43
44
|
var BusinessExportFormat;
|
|
@@ -215,7 +216,7 @@ class Api extends HttpClient {
|
|
|
215
216
|
super(...arguments);
|
|
216
217
|
this.api = {
|
|
217
218
|
/**
|
|
218
|
-
* @description Every saved Abfrage of the calling account, newest first.
|
|
219
|
+
* @description Every saved Abfrage of the calling account, newest first. Kostet 1 Credit.
|
|
219
220
|
*
|
|
220
221
|
* @tags Queries
|
|
221
222
|
* @name V1QueriesList
|
|
@@ -231,7 +232,7 @@ class Api extends HttpClient {
|
|
|
231
232
|
...params,
|
|
232
233
|
}),
|
|
233
234
|
/**
|
|
234
|
-
* @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.
|
|
235
|
+
* @description Keeps a filter set. A save whose filters match an Abfrage the account already has updates that one instead of adding a second — pass updateId to pin the row being edited. Kostet 1 Credit.
|
|
235
236
|
*
|
|
236
237
|
* @tags Queries
|
|
237
238
|
* @name V1QueriesCreate
|
|
@@ -249,7 +250,7 @@ class Api extends HttpClient {
|
|
|
249
250
|
...params,
|
|
250
251
|
}),
|
|
251
252
|
/**
|
|
252
|
-
* @description The saved Abfrage with this id, when it belongs to the calling account.
|
|
253
|
+
* @description The saved Abfrage with this id, when it belongs to the calling account. Kostet 1 Credit.
|
|
253
254
|
*
|
|
254
255
|
* @tags Queries
|
|
255
256
|
* @name V1QueriesDetail
|
|
@@ -265,7 +266,7 @@ class Api extends HttpClient {
|
|
|
265
266
|
...params,
|
|
266
267
|
}),
|
|
267
268
|
/**
|
|
268
|
-
* @description Removes one saved Abfrage from the Suchverlauf.
|
|
269
|
+
* @description Removes one saved Abfrage from the Suchverlauf. Kostet 1 Credit.
|
|
269
270
|
*
|
|
270
271
|
* @tags Queries
|
|
271
272
|
* @name V1QueriesDelete
|
|
@@ -280,7 +281,7 @@ class Api extends HttpClient {
|
|
|
280
281
|
...params,
|
|
281
282
|
}),
|
|
282
283
|
/**
|
|
283
|
-
* @description Deletes every saved Abfrage of the calling account.
|
|
284
|
+
* @description Deletes every saved Abfrage of the calling account. Kostet 1 Credit.
|
|
284
285
|
*
|
|
285
286
|
* @tags Queries
|
|
286
287
|
* @name V1QueriesAllDelete
|
|
@@ -295,7 +296,7 @@ class Api extends HttpClient {
|
|
|
295
296
|
...params,
|
|
296
297
|
}),
|
|
297
298
|
/**
|
|
298
|
-
* @description Every Liste of the calling account, oldest first.
|
|
299
|
+
* @description Every Liste of the calling account, oldest first. Kostet 1 Credit.
|
|
299
300
|
*
|
|
300
301
|
* @tags Lists
|
|
301
302
|
* @name V1ListsList
|
|
@@ -311,7 +312,7 @@ class Api extends HttpClient {
|
|
|
311
312
|
...params,
|
|
312
313
|
}),
|
|
313
314
|
/**
|
|
314
|
-
* @description Creates an empty Liste, or one already holding the companies you pass.
|
|
315
|
+
* @description Creates an empty Liste, or one already holding the companies you pass. Kostet 1 Credit.
|
|
315
316
|
*
|
|
316
317
|
* @tags Lists
|
|
317
318
|
* @name V1ListsCreate
|
|
@@ -329,7 +330,7 @@ class Api extends HttpClient {
|
|
|
329
330
|
...params,
|
|
330
331
|
}),
|
|
331
332
|
/**
|
|
332
|
-
* @description The Liste with this id, when it belongs to the calling account.
|
|
333
|
+
* @description The Liste with this id, when it belongs to the calling account. Kostet 1 Credit.
|
|
333
334
|
*
|
|
334
335
|
* @tags Lists
|
|
335
336
|
* @name V1ListsDetail
|
|
@@ -345,7 +346,7 @@ class Api extends HttpClient {
|
|
|
345
346
|
...params,
|
|
346
347
|
}),
|
|
347
348
|
/**
|
|
348
|
-
* @description A partial update: only the fields the body carries are written, and settings are merged into the stored ones rather than replacing them.
|
|
349
|
+
* @description A partial update: only the fields the body carries are written, and settings are merged into the stored ones rather than replacing them. Kostet 1 Credit.
|
|
349
350
|
*
|
|
350
351
|
* @tags Lists
|
|
351
352
|
* @name V1ListsPartialUpdate
|
|
@@ -363,7 +364,7 @@ class Api extends HttpClient {
|
|
|
363
364
|
...params,
|
|
364
365
|
}),
|
|
365
366
|
/**
|
|
366
|
-
* @description Deletes the Liste. The companies on it are not touched anywhere else.
|
|
367
|
+
* @description Deletes the Liste. The companies on it are not touched anywhere else. Kostet 1 Credit.
|
|
367
368
|
*
|
|
368
369
|
* @tags Lists
|
|
369
370
|
* @name V1ListsDelete
|
|
@@ -378,7 +379,7 @@ class Api extends HttpClient {
|
|
|
378
379
|
...params,
|
|
379
380
|
}),
|
|
380
381
|
/**
|
|
381
|
-
* @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.
|
|
382
|
+
* @description Appends the companies that are not on it yet, keeping the order of the ones that are. A company that had been taken off comes back off the removed set. Kostet 1 Credit.
|
|
382
383
|
*
|
|
383
384
|
* @tags Lists
|
|
384
385
|
* @name V1ListsAddCreate
|
|
@@ -396,7 +397,7 @@ class Api extends HttpClient {
|
|
|
396
397
|
...params,
|
|
397
398
|
}),
|
|
398
399
|
/**
|
|
399
|
-
* @description Takes the companies off the Liste and records them as removed.
|
|
400
|
+
* @description Takes the companies off the Liste and records them as removed. Kostet 1 Credit.
|
|
400
401
|
*
|
|
401
402
|
* @tags Lists
|
|
402
403
|
* @name V1ListsRemoveCreate
|
|
@@ -414,7 +415,7 @@ class Api extends HttpClient {
|
|
|
414
415
|
...params,
|
|
415
416
|
}),
|
|
416
417
|
/**
|
|
417
|
-
* @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.
|
|
418
|
+
* @description Builds a CSV or an Excel workbook over the companies you name: an explicit set of FNRs, a Liste, or a saved Abfrage. Nothing is stored and no link is handed back: the CSV is written out as it is produced, the workbook is built in memory first. One export carries at most 1000 companies: a set of FNRs or a Liste that holds more is refused with a 400 rather than cut short, and a saved Abfrage exports its first 1000 matches. An export that would hold no rows answers 204 rather than an empty file. Kostet 3 Credits.
|
|
418
419
|
*
|
|
419
420
|
* @tags Exports
|
|
420
421
|
* @name V1ExportsBusinessesCreate
|
|
@@ -431,7 +432,7 @@ class Api extends HttpClient {
|
|
|
431
432
|
...params,
|
|
432
433
|
}),
|
|
433
434
|
/**
|
|
434
|
-
* @description Downloads the signed GISA PDF extract for a license (GISA-Zahl). Language defaults to German (De).
|
|
435
|
+
* @description Downloads the signed GISA PDF extract for a license (GISA-Zahl). Language defaults to German (De). Kostet 3 Credits.
|
|
435
436
|
*
|
|
436
437
|
* @tags Trades
|
|
437
438
|
* @name V1TradesDocumentsDetail
|
|
@@ -447,7 +448,7 @@ class Api extends HttpClient {
|
|
|
447
448
|
...params,
|
|
448
449
|
}),
|
|
449
450
|
/**
|
|
450
|
-
* @description Returns the global catalog of GISA Trade Definitions with pagination.
|
|
451
|
+
* @description Returns the global catalog of GISA Trade Definitions with pagination. Ohne API-Key abrufbar und kostet keine Credits.
|
|
451
452
|
*
|
|
452
453
|
* @tags Trades
|
|
453
454
|
* @name V1TradesList
|
|
@@ -464,7 +465,7 @@ class Api extends HttpClient {
|
|
|
464
465
|
...params,
|
|
465
466
|
}),
|
|
466
467
|
/**
|
|
467
|
-
* @description Returns all company licenses for a specific trade definition with pagination.
|
|
468
|
+
* @description Returns all company licenses for a specific trade definition with pagination. Kostet 1 Credit.
|
|
468
469
|
*
|
|
469
470
|
* @tags Trades
|
|
470
471
|
* @name V1TradesLicensesList
|
|
@@ -481,7 +482,7 @@ class Api extends HttpClient {
|
|
|
481
482
|
...params,
|
|
482
483
|
}),
|
|
483
484
|
/**
|
|
484
|
-
* @description Returns all licenses for a specific company (FNR).
|
|
485
|
+
* @description Returns all licenses for a specific company (FNR). Kostet 1 Credit.
|
|
485
486
|
*
|
|
486
487
|
* @tags Trades
|
|
487
488
|
* @name V1TradesCompanyDetail
|
|
@@ -497,7 +498,7 @@ class Api extends HttpClient {
|
|
|
497
498
|
...params,
|
|
498
499
|
}),
|
|
499
500
|
/**
|
|
500
|
-
* @description Returns a single GISA change by id.
|
|
501
|
+
* @description Returns a single GISA change by id. Kostet 1 Credit.
|
|
501
502
|
*
|
|
502
503
|
* @tags Trades
|
|
503
504
|
* @name V1TradesChangesDetail
|
|
@@ -513,7 +514,7 @@ class Api extends HttpClient {
|
|
|
513
514
|
...params,
|
|
514
515
|
}),
|
|
515
516
|
/**
|
|
516
|
-
* @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.
|
|
517
|
+
* @description Feed of GISA changes — one entry per change to a company's trade licences. Ordered by ascending id, and that id is the cursor: request with sinceId set to the highest id you have stored, walk page=1,2,… at a fixed pageSize until a page comes back with fewer than pageSize rows, keep the highest id you saw, and start the next poll from it. sinceId is exclusive, so nothing is delivered twice, and a new change always takes a higher id than every change already in the feed, so it appends to the end and never shifts a page you have already read. since is inclusive, filters on when we recorded the change rather than on changedDate, and applies together with sinceId when both are sent. Paging without sinceId is not a reliable feed: an offset is not a watermark, and page stops at 1000. totalRecords stops there too — it is counted only as far as page 1000 reaches, so it caps at 1000 × pageSize and means "at least this many" once it is that; stop on a short page, not on a count. Under concurrent writes a change can become visible just after a higher id, so a consumer that must not miss one resumes from the previous poll's watermark and de-duplicates by id. fnr is normalised before matching — trimmed, spaces and leading zeros removed, case left alone — so 034853 f and 34853f are the same company, exactly as on GET /businesses. Kostet 1 Credit.
|
|
517
518
|
*
|
|
518
519
|
* @tags Trades
|
|
519
520
|
* @name V1TradesChangesList
|
|
@@ -530,7 +531,7 @@ class Api extends HttpClient {
|
|
|
530
531
|
...params,
|
|
531
532
|
}),
|
|
532
533
|
/**
|
|
533
|
-
* @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.
|
|
534
|
+
* @description The autocomplete read: /businesses and /people for one term, ranked together, so a search field costs one request per keystroke rather than two and does not have to merge two orders itself. Each row carries either business or person, whichever type names. Ordered by where the term sits in the name, then by the shorter name, then companies before people. pageSize is per side, so the answer holds up to twice as many rows. An empty search answers an empty list; use /businesses to page through the whole dataset. Ohne API-Key abrufbar und kostet keine Credits.
|
|
534
535
|
*
|
|
535
536
|
* @tags Search
|
|
536
537
|
* @name V1SearchList
|
|
@@ -547,7 +548,7 @@ class Api extends HttpClient {
|
|
|
547
548
|
...params,
|
|
548
549
|
}),
|
|
549
550
|
/**
|
|
550
|
-
* @description Returns (id, name) pairs for all people with at least one business assignment. For client-side name index.
|
|
551
|
+
* @description Returns (id, name) pairs for all people with at least one business assignment. For client-side name index. Kostet 1 Credit.
|
|
551
552
|
*
|
|
552
553
|
* @tags People
|
|
553
554
|
* @name V1PeopleNamesList
|
|
@@ -563,7 +564,7 @@ class Api extends HttpClient {
|
|
|
563
564
|
...params,
|
|
564
565
|
}),
|
|
565
566
|
/**
|
|
566
|
-
* @description Lists people who hold a function in, or a GISA licence for, an Austrian company. name and search behave identically here — both split the term on spaces and keep people whose "firstName lastName" contains every token, case-insensitively — except that search wins when both are given. Ordered by last name, then first name unless orderBy says otherwise. Combine with fnr or businessName to get the officers of one company, or with functionCode for one role. fnr, functionCode, businessName, businessCity and businessRegisteredSince_gte all describe one and the same assignment: a person comes back only if a single company of theirs satisfies every one of them. So the youngest owners of this year's new Viennese companies are one page: ?businessCity=Wien&businessRegisteredSince_gte=2026-01-01&functionCode=IN&functionCode=KP&functionCode=GS&functionCode=PG&orderBy=birthDate&orderByDescending=true&pageSize=3 A row's assignments are a sample, not the person's whole collection: at most 25, and only the ones matching the fnr, functionCode, businessName, businessCity and businessRegisteredSince_gte you sent, so ?fnr=34853f gives you that company's row and nothing else. Ask GET /people/{personId} for all of them.
|
|
567
|
+
* @description Lists people who hold a function in, or a GISA licence for, an Austrian company. name and search behave identically here — both split the term on spaces and keep people whose "firstName lastName" contains every token, case-insensitively — except that search wins when both are given. Ordered by last name, then first name unless orderBy says otherwise. Combine with fnr or businessName to get the officers of one company, or with functionCode for one role. fnr, functionCode, businessName, businessCity and businessRegisteredSince_gte all describe one and the same assignment: a person comes back only if a single company of theirs satisfies every one of them. So the youngest owners of this year's new Viennese companies are one page: ?businessCity=Wien&businessRegisteredSince_gte=2026-01-01&functionCode=IN&functionCode=KP&functionCode=GS&functionCode=PG&orderBy=birthDate&orderByDescending=true&pageSize=3 A row's assignments are a sample, not the person's whole collection: at most 25, and only the ones matching the fnr, functionCode, businessName, businessCity and businessRegisteredSince_gte you sent, so ?fnr=34853f gives you that company's row and nothing else. Ask GET /people/{personId} for all of them. Kostet 1 Credit.
|
|
567
568
|
*
|
|
568
569
|
* @tags People
|
|
569
570
|
* @name V1PeopleList
|
|
@@ -580,7 +581,7 @@ class Api extends HttpClient {
|
|
|
580
581
|
...params,
|
|
581
582
|
}),
|
|
582
583
|
/**
|
|
583
|
-
* @description Returns one person with every company function, GISA licence and Edikt attached to them. personId is the synthetic id described in the glossary — "firstname-lastname-birthdate", lower case, inner spaces replaced by hyphens and "x" for a part the register does not give, e.g. "max-mustermann-1970-01-01". It is matched exactly. Take it from a list row or from an assignment on a company rather than composing it yourself. An id beginning with "--" carries neither first nor last name, and that is not a person but the bucket every nameless assignment in the register lands in. It answers 404 like any id nobody holds, and it is left out of GET /people for the same reason.
|
|
584
|
+
* @description Returns one person with every company function, GISA licence and Edikt attached to them. personId is the synthetic id described in the glossary — "firstname-lastname-birthdate", lower case, inner spaces replaced by hyphens and "x" for a part the register does not give, e.g. "max-mustermann-1970-01-01". It is matched exactly. Take it from a list row or from an assignment on a company rather than composing it yourself. An id beginning with "--" carries neither first nor last name, and that is not a person but the bucket every nameless assignment in the register lands in. It answers 404 like any id nobody holds, and it is left out of GET /people for the same reason. Kostet 1 Credit.
|
|
584
585
|
*
|
|
585
586
|
* @tags People
|
|
586
587
|
* @name V1PeopleDetail
|
|
@@ -596,7 +597,7 @@ class Api extends HttpClient {
|
|
|
596
597
|
...params,
|
|
597
598
|
}),
|
|
598
599
|
/**
|
|
599
|
-
* @description Returns the OeNACE classification catalog with company counts. Results are ordered by company count descending — most used first.
|
|
600
|
+
* @description Returns the OeNACE classification catalog with company counts. Results are ordered by company count descending — most used first. Ohne API-Key abrufbar und kostet keine Credits.
|
|
600
601
|
*
|
|
601
602
|
* @tags Oenace
|
|
602
603
|
* @name V1OenaceList
|
|
@@ -613,7 +614,7 @@ class Api extends HttpClient {
|
|
|
613
614
|
...params,
|
|
614
615
|
}),
|
|
615
616
|
/**
|
|
616
|
-
* @description Returns all legal forms with pagination and optional search, sorted by business count descending.
|
|
617
|
+
* @description Returns all legal forms with pagination and optional search, sorted by business count descending. Ohne API-Key abrufbar und kostet keine Credits.
|
|
617
618
|
*
|
|
618
619
|
* @tags LegalForms
|
|
619
620
|
* @name V1LegalformsList
|
|
@@ -630,7 +631,7 @@ class Api extends HttpClient {
|
|
|
630
631
|
...params,
|
|
631
632
|
}),
|
|
632
633
|
/**
|
|
633
|
-
* @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.
|
|
634
|
+
* @description Returns the graph (nodes and edges) within 2 hops of the start entity. Exactly one of personId or fnr must be provided. The network of people and companies around one starting point — who sits on which board with whom. nodes are people ("person") and companies ("business"), each carrying the id you would pass to /people/{personId} or /businesses/{fnr}; edges are source/target pairs of those ids whose relationshipType is "assignment", a person holding a function in a company. Two further edge types the deployment can enable: "address", two companies registered at the same street address, and "ownership", a company holding shares in another — source is the shareholder, target the company it holds, and capitalAmount, currency and sharePercent carry the stake where the register gives one. Ownership edges are drawn only for companies crawled since the shareholder mapping went live, so a company not yet re-crawled reports none rather than implying it has none. The traversal depth is fixed at 2 hops and is not a parameter — a node with further connections outside that boundary carries hasMore=true, and isCentralNode marks the entity you started from. personId and fnr are mutually exclusive, not combinable: supplying both, or neither, is a 400, and an id that exists in neither register is a 404. Kostet 3 Credits.
|
|
634
635
|
*
|
|
635
636
|
* @tags Graph
|
|
636
637
|
* @name V1GraphList
|
|
@@ -647,7 +648,7 @@ class Api extends HttpClient {
|
|
|
647
648
|
...params,
|
|
648
649
|
}),
|
|
649
650
|
/**
|
|
650
|
-
* @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.
|
|
651
|
+
* @description The single feed of every change across all registers — Firmenbuch, GISA, Ediktsdatei and the BMF Scheinunternehmen list — as lightweight reference rows. Each row carries only id, fnr, changeType and the dates; fetch the payload with GET /globalchanges/{id}, or poll one register's typed feed instead (/businesses/changes, /documents/changes, /edikte/changes, /trades/changes). Ordered by ascending id, and that id is the cursor: request with sinceId set to the highest id you have stored, walk page=1,2,… at a fixed pageSize until a page comes back with fewer than pageSize rows, keep the highest id you saw, and start the next poll from it. sinceId is exclusive, so nothing is delivered twice, and a new change always takes a higher id than every change already in the feed, so it appends to the end and never shifts a page you have already read. since is inclusive, filters on when we recorded the change rather than on changedDate, and applies together with sinceId when both are sent. Paging without sinceId is not a reliable feed: an offset is not a watermark, and page stops at 1000. totalRecords stops there too — it is counted only as far as page 1000 reaches, so it caps at 1000 × pageSize and means "at least this many" once it is that; stop on a short page, not on a count. Under concurrent writes a change can become visible just after a higher id, so a consumer that must not miss one resumes from the previous poll's watermark and de-duplicates by id. Kostet 1 Credit.
|
|
651
652
|
*
|
|
652
653
|
* @tags GlobalChanges
|
|
653
654
|
* @name V1GlobalchangesList
|
|
@@ -664,7 +665,7 @@ class Api extends HttpClient {
|
|
|
664
665
|
...params,
|
|
665
666
|
}),
|
|
666
667
|
/**
|
|
667
|
-
* @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.
|
|
668
|
+
* @description Changes for a watchlist of companies, all four change types in one unpaged response. Built for watchlist polling: pass up to 1000 fnr values (repeat the parameter) and one cursor, and get back four arrays — businessChanges, documentChanges, ediktChanges, globalChanges — each ordered by ascending id and capped at maxResultsPerType. Not paged: raise maxResultsPerType or advance sinceId instead. sinceId is exclusive and since is inclusive, exactly as on the paged feeds, but one sinceId covers all four arrays: an array that comes back full at maxResultsPerType has more behind it and bounds the cursor, so advance sinceId only to the lowest of the full arrays' highest ids, and to the highest id of all four once none comes back full. Passing no fnr returns four empty arrays, not the whole feed. Kostet 3 Credits.
|
|
668
669
|
*
|
|
669
670
|
* @tags GlobalChanges
|
|
670
671
|
* @name V1GlobalchangesAggregatedList
|
|
@@ -681,7 +682,7 @@ class Api extends HttpClient {
|
|
|
681
682
|
...params,
|
|
682
683
|
}),
|
|
683
684
|
/**
|
|
684
|
-
* @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.
|
|
685
|
+
* @description Returns one change with its typed payload, whichever register it came from. The envelope is a discriminator plus the payload: changeType says which register, and data is the matching object — a BusinessChange, DocumentChange, EdiktChange, GisaChange, FoerderungChange or ScheinunternehmenChange. Since data is a union, read changeType before it. Kostet 1 Credit.
|
|
685
686
|
*
|
|
686
687
|
* @tags GlobalChanges
|
|
687
688
|
* @name V1GlobalchangesDetail
|
|
@@ -697,7 +698,40 @@ class Api extends HttpClient {
|
|
|
697
698
|
...params,
|
|
698
699
|
}),
|
|
699
700
|
/**
|
|
700
|
-
* @description
|
|
701
|
+
* @description Kostet 1 Credit.
|
|
702
|
+
*
|
|
703
|
+
* @tags Foerderungen
|
|
704
|
+
* @name V1FoerderungenChangesDetail
|
|
705
|
+
* @summary Funding change by id
|
|
706
|
+
* @request GET:/api/v1/foerderungen/changes/{id}
|
|
707
|
+
* @secure
|
|
708
|
+
*/
|
|
709
|
+
v1FoerderungenChangesDetail: (id, params = {}) => this.request({
|
|
710
|
+
path: `/api/v1/foerderungen/changes/${id}`,
|
|
711
|
+
method: "GET",
|
|
712
|
+
secure: true,
|
|
713
|
+
format: "json",
|
|
714
|
+
...params,
|
|
715
|
+
}),
|
|
716
|
+
/**
|
|
717
|
+
* @description New payments and amount corrections for matched companies. A source's initial import is excluded. Ordered by ascending id. Poll with sinceId set to the previous watermark, deduplicate by id, and stop on a short page. since is inclusive and filters the recorded date, not the payment year. Both cursors apply together. fnr is normalised as on GET /businesses. totalRecords is capped at 1000 × pageSize; at that cap it means at least that many. Kostet 1 Credit.
|
|
718
|
+
*
|
|
719
|
+
* @tags Foerderungen
|
|
720
|
+
* @name V1FoerderungenChangesList
|
|
721
|
+
* @summary Funding change feed
|
|
722
|
+
* @request GET:/api/v1/foerderungen/changes
|
|
723
|
+
* @secure
|
|
724
|
+
*/
|
|
725
|
+
v1FoerderungenChangesList: (query, params = {}) => this.request({
|
|
726
|
+
path: `/api/v1/foerderungen/changes`,
|
|
727
|
+
method: "GET",
|
|
728
|
+
query: query,
|
|
729
|
+
secure: true,
|
|
730
|
+
format: "json",
|
|
731
|
+
...params,
|
|
732
|
+
}),
|
|
733
|
+
/**
|
|
734
|
+
* @description Returns one Ediktsdatei change by id. The id is the shared change id from GET /globalchanges, so an id that exists but whose changeType is not "edikt" answers 404 here. Kostet 1 Credit.
|
|
701
735
|
*
|
|
702
736
|
* @tags Edikte
|
|
703
737
|
* @name V1EdikteChangesDetail
|
|
@@ -713,7 +747,7 @@ class Api extends HttpClient {
|
|
|
713
747
|
...params,
|
|
714
748
|
}),
|
|
715
749
|
/**
|
|
716
|
-
* @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.
|
|
750
|
+
* @description Feed of Ediktsdatei changes — insolvency and other court notices published about a company or a person. Ordered by ascending id, and that id is the cursor: request with sinceId set to the highest id you have stored, walk page=1,2,… at a fixed pageSize until a page comes back with fewer than pageSize rows, keep the highest id you saw, and start the next poll from it. sinceId is exclusive, so nothing is delivered twice, and a new change always takes a higher id than every change already in the feed, so it appends to the end and never shifts a page you have already read. since is inclusive, filters on when we recorded the change rather than on the publication date, and applies together with sinceId when both are sent. Paging without sinceId is not a reliable feed: an offset is not a watermark, and page stops at 1000. totalRecords stops there too — it is counted only as far as page 1000 reaches, so it caps at 1000 × pageSize and means "at least this many" once it is that; stop on a short page, not on a count. Under concurrent writes a change can become visible just after a higher id, so a consumer that must not miss an insolvency notice resumes from the previous poll's watermark and de-duplicates by id. fnr is normalised before matching — trimmed, spaces and leading zeros removed, case left alone — so 034853 f and 34853f are the same company, exactly as on GET /businesses. Kostet 1 Credit.
|
|
717
751
|
*
|
|
718
752
|
* @tags Edikte
|
|
719
753
|
* @name V1EdikteChangesList
|
|
@@ -730,7 +764,7 @@ class Api extends HttpClient {
|
|
|
730
764
|
...params,
|
|
731
765
|
}),
|
|
732
766
|
/**
|
|
733
|
-
* @description Downloads a Firmenbuch document (PDF/XML) by its document key.
|
|
767
|
+
* @description Downloads a Firmenbuch document (PDF/XML) by its document key. Kostet 3 Credits.
|
|
734
768
|
*
|
|
735
769
|
* @tags Documents
|
|
736
770
|
* @name V1DocumentsDownloadDetail
|
|
@@ -745,7 +779,7 @@ class Api extends HttpClient {
|
|
|
745
779
|
...params,
|
|
746
780
|
}),
|
|
747
781
|
/**
|
|
748
|
-
* @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.
|
|
782
|
+
* @description Returns one document change by id, with the document's metadata. The id is the shared change id from GET /globalchanges, so an id that exists but whose changeType is not "document" answers 404 here. Kostet 1 Credit.
|
|
749
783
|
*
|
|
750
784
|
* @tags Documents
|
|
751
785
|
* @name V1DocumentsChangesDetail
|
|
@@ -761,7 +795,7 @@ class Api extends HttpClient {
|
|
|
761
795
|
...params,
|
|
762
796
|
}),
|
|
763
797
|
/**
|
|
764
|
-
* @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.
|
|
798
|
+
* @description Feed of newly filed Firmenbuch documents — this is how you learn that a company has published a new Jahresabschluss. Each entry names a documentKey; fetch the file itself with GET /documents/download/{documentKey}. Ordered by ascending id, and that id is the cursor: request with sinceId set to the highest id you have stored, walk page=1,2,… at a fixed pageSize until a page comes back with fewer than pageSize rows, keep the highest id you saw, and start the next poll from it. sinceId is exclusive, so nothing is delivered twice, and a new change always takes a higher id than every change already in the feed, so it appends to the end and never shifts a page you have already read. since is inclusive, filters on when we recorded the change rather than on the document date, and applies together with sinceId when both are sent. Paging without sinceId is not a reliable feed: an offset is not a watermark, and page stops at 1000. totalRecords stops there too — it is counted only as far as page 1000 reaches, so it caps at 1000 × pageSize and means "at least this many" once it is that; stop on a short page, not on a count. Under concurrent writes a change can become visible just after a higher id, so a consumer that must not miss one resumes from the previous poll's watermark and de-duplicates by id. fnr is normalised before matching — trimmed, spaces and leading zeros removed, case left alone — so 034853 f and 34853f are the same company, exactly as on GET /businesses. Kostet 1 Credit.
|
|
765
799
|
*
|
|
766
800
|
* @tags Documents
|
|
767
801
|
* @name V1DocumentsChangesList
|
|
@@ -778,7 +812,7 @@ class Api extends HttpClient {
|
|
|
778
812
|
...params,
|
|
779
813
|
}),
|
|
780
814
|
/**
|
|
781
|
-
* @description Returns all courts with pagination and optional search, sorted by business count descending.
|
|
815
|
+
* @description Returns all courts with pagination and optional search, sorted by business count descending. Kostet 1 Credit.
|
|
782
816
|
*
|
|
783
817
|
* @tags Courts
|
|
784
818
|
* @name V1CourtsList
|
|
@@ -795,7 +829,7 @@ class Api extends HttpClient {
|
|
|
795
829
|
...params,
|
|
796
830
|
}),
|
|
797
831
|
/**
|
|
798
|
-
* @description Resolve company names to FNRs by exact name match (1:1). Used for CSV import.
|
|
832
|
+
* @description Resolve company names to FNRs by exact name match (1:1). Used for CSV import. Kostet 1 Credit.
|
|
799
833
|
*
|
|
800
834
|
* @tags Businesses
|
|
801
835
|
* @name V1BusinessesResolveNamesCreate
|
|
@@ -813,7 +847,7 @@ class Api extends HttpClient {
|
|
|
813
847
|
...params,
|
|
814
848
|
}),
|
|
815
849
|
/**
|
|
816
|
-
* @description Lists companies matching the filters, one page of list rows per call. name and search are different tools. name is a case-insensitive substring match on the company name and nothing else. search splits the term on spaces and keeps only companies matching every token, where a token matches the name, the fnr, or — when the whole term is a number — a GISA licence key or GISA-Zahl; it additionally lifts companies whose name starts with the term to the top of the default (name) ordering. So name narrows a known name, search finds an unknown one. Inactive companies always sort after active ones, whatever orderBy says. inInsolvency is a Firmenbuch evidence filter, not an Ediktsdatei or Insolvenzdatei one. True matches a classified open court record or an active administrator role (MW, IW, AW, VW). False includes closed evidence without an active role, missing evidence and unclassified or uncertain evidence without another opening or role. Omit the parameter to leave this state unfiltered. A false value means no current positive evidence in this dataset, not verified legal assurance that no proceeding exists. The proceedings are published in the Insolvenzdatei, which this API does not read. Examples: ?inInsolvency=true; ?inInsolvency=false&name=Graf; ?inInsolvency=true&countOnly=true. The same values combine with every other filter. Pass countOnly=true for totalRecords without the rows, and use /businesses/aggregate to group the same filter set instead of paging through it.
|
|
850
|
+
* @description Lists companies matching the filters, one page of list rows per call. name and search are different tools. name is a case-insensitive substring match on the company name and nothing else. search splits the term on spaces and keeps only companies matching every token, where a token matches the name, the fnr, or — when the whole term is a number — a GISA licence key or GISA-Zahl; it additionally lifts companies whose name starts with the term to the top of the default (name) ordering. So name narrows a known name, search finds an unknown one. Inactive companies always sort after active ones, whatever orderBy says. inInsolvency is a Firmenbuch evidence filter, not an Ediktsdatei or Insolvenzdatei one. True matches a classified open court record or an active administrator role (MW, IW, AW, VW). False includes closed evidence without an active role, missing evidence and unclassified or uncertain evidence without another opening or role. Omit the parameter to leave this state unfiltered. A false value means no current positive evidence in this dataset, not verified legal assurance that no proceeding exists. The proceedings are published in the Insolvenzdatei, which this API does not read. Examples: ?inInsolvency=true; ?inInsolvency=false&name=Graf; ?inInsolvency=true&countOnly=true. The same values combine with every other filter. Pass countOnly=true for totalRecords without the rows, and use /businesses/aggregate to group the same filter set instead of paging through it. Place filters: the Firmenbuch records no Bundesland and no Gemeinde, only the Sitzgericht, so both state and gemeinde are derived from the PLZ of the Geschäftsanschrift. state is exact except for the Innviertel PLZ 5120–5399, which are postally Salzburg but politically Oberösterreich and are counted as Salzburg. gemeinde takes the slug of a Gemeinde, and because it reads the PLZ it answers every spelling of a place at once — "Klagenfurt am Wörthersee", "Klagenfurt" and "Klagenfurt-Viktring" are one Gemeinde, where city= would be three separate filters over free text. GET /addresses/gemeinden is the catalogue of the slugs, their aliases, their Bundesland and their PLZ; a company with a foreign or unusable PLZ is in no Gemeinde and no gemeinde= filter finds it. Ohne API-Key abrufbar und kostet keine Credits.
|
|
817
851
|
*
|
|
818
852
|
* @tags Businesses
|
|
819
853
|
* @name V1BusinessesList
|
|
@@ -830,7 +864,7 @@ class Api extends HttpClient {
|
|
|
830
864
|
...params,
|
|
831
865
|
}),
|
|
832
866
|
/**
|
|
833
|
-
* @description Returns all business (fnr, name) pairs for client-side name index. No pagination.
|
|
867
|
+
* @description Returns all business (fnr, name) pairs for client-side name index. No pagination. Ohne API-Key abrufbar und kostet keine Credits.
|
|
834
868
|
*
|
|
835
869
|
* @tags Businesses
|
|
836
870
|
* @name V1BusinessesNamesList
|
|
@@ -846,7 +880,7 @@ class Api extends HttpClient {
|
|
|
846
880
|
...params,
|
|
847
881
|
}),
|
|
848
882
|
/**
|
|
849
|
-
* @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.
|
|
883
|
+
* @description Returns the number of companies in the dataset, as a bare integer. Unfiltered — it is the size of the whole dataset, not of a search. For a count over filters, call GET /businesses with countOnly=true and read totalRecords. Kostet 1 Credit.
|
|
850
884
|
*
|
|
851
885
|
* @tags Businesses
|
|
852
886
|
* @name V1BusinessesCountList
|
|
@@ -862,7 +896,7 @@ class Api extends HttpClient {
|
|
|
862
896
|
...params,
|
|
863
897
|
}),
|
|
864
898
|
/**
|
|
865
|
-
* @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.
|
|
899
|
+
* @description Counts over the same filter set as GET /businesses, grouped by one dimension — the server-side GROUP BY that a caller would otherwise page the whole result set to compute. Every /businesses filter means exactly what it means there; page, pageSize, orderBy, orderByDescending and countOnly are ignored — top and minCount cap the bucket list instead. totalRecords equals /businesses?countOnly=true for the same filter; how the buckets relate to it is documented on BusinessAggregateResponse. Kostet 1 Credit.
|
|
866
900
|
*
|
|
867
901
|
* @tags Businesses
|
|
868
902
|
* @name V1BusinessesAggregateList
|
|
@@ -879,7 +913,7 @@ class Api extends HttpClient {
|
|
|
879
913
|
...params,
|
|
880
914
|
}),
|
|
881
915
|
/**
|
|
882
|
-
* @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.
|
|
916
|
+
* @description Counts for every value of every filter group at once — what a filter builder puts on its chips. Takes the same filters as GET /businesses and means them the same way; page, pageSize, orderBy, orderByDescending and countOnly are ignored. Faceted semantics: a group is counted with all *other* active filters applied but its own lifted, so a value's count answers "how many results if I also select this", and selecting one never empties its own group. totalRecords is the current result count, with every filter applied. Each group returns its top values (top, default 10) plus every value the request already filters on, marked selected — a "Mehr" expander is a second call for that one group with a larger top, e.g. ?groups=city&top=50. city and zipCode count a business once per distinct value, so those counts can sum above totalRecords. One caveat worth knowing before wiring a chip up: the city filter matches a substring, while a city facet key is a whole city name, so selecting "Wien" also keeps "Wien-Umgebung" and can return more than the chip promised. Every other group matches its key exactly. Every group costs its own count, so ask for the groups you are rendering rather than all ten; the answer is cacheable for a day and varies on the whole query string. Ohne API-Key abrufbar und kostet keine Credits.
|
|
883
917
|
*
|
|
884
918
|
* @tags Businesses
|
|
885
919
|
* @name V1BusinessesFacetsList
|
|
@@ -896,7 +930,7 @@ class Api extends HttpClient {
|
|
|
896
930
|
...params,
|
|
897
931
|
}),
|
|
898
932
|
/**
|
|
899
|
-
* @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.
|
|
933
|
+
* @description The single largest company of every place in the viewport, by one metric — what a map draws as one pin per place instead of every dot in the box. groupBy picks the place: state (the nine Bundesländer, the default) or city (the towns in view). metric is one of detailViews (Aufrufe), bilanzSumme or employees (Mitarbeiter). minLat, maxLat, minLng and maxLng are required for groupBy=city and ignored for groupBy=state: the nine Bundesländer are the same nine wherever the map is looking, so that call takes no viewport at all — which is what lets one URL serve every pan and actually be cached, here and in the browser. Every /businesses filter additionally applies and means exactly what it means there; page, pageSize, orderBy, orderByDescending and countOnly are ignored. groupLabel is the place's name — "Tirol", "Innsbruck" — and is what the pin's card is headed with. A company carrying no value for the metric is skipped rather than counted as 0, so a place holding only such companies — like an empty one — returns nothing at all and the array is shorter than the number of places. Each item carries everything a popover card shows, so no second call per pin is needed. groupBy=city answers at most 16 pins, the biggest of the towns in view; the rest is what zooming in is for. Bundesländer are derived from the PLZ of the Geschäftsanschrift, the same rule the state filter on GET /businesses uses, because the Firmenbuch carries no Land. A company that is the biggest of two places in view wins both, each pin carrying an address that is actually on screen and in the town it won. Cached for an hour rather than the day GET /businesses gets: view counts move. Ohne API-Key abrufbar und kostet keine Credits.
|
|
900
934
|
*
|
|
901
935
|
* @tags Businesses
|
|
902
936
|
* @name V1BusinessesMapTopList
|
|
@@ -913,7 +947,7 @@ class Api extends HttpClient {
|
|
|
913
947
|
...params,
|
|
914
948
|
}),
|
|
915
949
|
/**
|
|
916
|
-
* @description Active businesses similar to the given one (same OeNACE branch, same region preferred).
|
|
950
|
+
* @description Active businesses similar to the given one (same OeNACE branch, same region preferred). Kostet 3 Credits.
|
|
917
951
|
*
|
|
918
952
|
* @tags Businesses
|
|
919
953
|
* @name V1BusinessesSimilarList
|
|
@@ -929,7 +963,7 @@ class Api extends HttpClient {
|
|
|
929
963
|
...params,
|
|
930
964
|
}),
|
|
931
965
|
/**
|
|
932
|
-
* @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.
|
|
966
|
+
* @description Returns the whole Firmenakte of one company: master data, addresses, people, GISA licences, Edikte, documents and the parsed annual accounts. fnr is matched exactly against the stored, normalised Firmenbuchnummer — lower case, no spaces, no leading zeros and no "FN" prefix, e.g. 34853f. Nothing is normalised on the way in, so "FN 34853 f" answers 404 rather than the company. 404 also means the company is not in the dataset yet. Kostet 1 Credit.
|
|
933
967
|
*
|
|
934
968
|
* @tags Businesses
|
|
935
969
|
* @name V1BusinessesDetail
|
|
@@ -945,7 +979,7 @@ class Api extends HttpClient {
|
|
|
945
979
|
...params,
|
|
946
980
|
}),
|
|
947
981
|
/**
|
|
948
|
-
* @description Every parsed Jahresabschluss of one company, one entry per calendar year, newest first. The Firmenakte itself (GET /businesses/{fnr}) carries only the last five years. 404 only where the company itself is unknown, exactly as on GET /businesses/{fnr}.
|
|
982
|
+
* @description Every parsed Jahresabschluss of one company, one entry per calendar year, newest first. The Firmenakte itself (GET /businesses/{fnr}) carries only the last five years. 404 only where the company itself is unknown, exactly as on GET /businesses/{fnr}. Kostet 1 Credit.
|
|
949
983
|
*
|
|
950
984
|
* @tags Businesses
|
|
951
985
|
* @name V1BusinessesJahresabschluesseList
|
|
@@ -961,7 +995,23 @@ class Api extends HttpClient {
|
|
|
961
995
|
...params,
|
|
962
996
|
}),
|
|
963
997
|
/**
|
|
964
|
-
* @description
|
|
998
|
+
* @description The state aid published for one company by the Transparenzportal des BMF (§ 40k TDBG), newest year first and the largest amount first within a year, plus a summary of count, sum, the years and the freshest Stichtag. Published are Leistungen from 1.500 € per calendar year to non-natural persons; the COVID-19 reports start at 10.000 €. So an empty list means "nothing published for this company", never "this company received nothing" — and a company the portal names but that could not be matched to a Firmenbuchnummer is not here either. 404 only where the company itself is unknown, exactly as on GET /businesses/{fnr}. Kostet 1 Credit.
|
|
999
|
+
*
|
|
1000
|
+
* @tags Businesses
|
|
1001
|
+
* @name V1BusinessesFoerderungenList
|
|
1002
|
+
* @summary Company Foerderungen
|
|
1003
|
+
* @request GET:/api/v1/businesses/{fnr}/foerderungen
|
|
1004
|
+
* @secure
|
|
1005
|
+
*/
|
|
1006
|
+
v1BusinessesFoerderungenList: (fnr, params = {}) => this.request({
|
|
1007
|
+
path: `/api/v1/businesses/${fnr}/foerderungen`,
|
|
1008
|
+
method: "GET",
|
|
1009
|
+
secure: true,
|
|
1010
|
+
format: "json",
|
|
1011
|
+
...params,
|
|
1012
|
+
}),
|
|
1013
|
+
/**
|
|
1014
|
+
* @description Returns one Firmenbuch change by id. The id is the shared change id from GET /globalchanges, so an id that exists but whose changeType is not "business" answers 404 here. Kostet 1 Credit.
|
|
965
1015
|
*
|
|
966
1016
|
* @tags Businesses
|
|
967
1017
|
* @name V1BusinessesChangesDetail
|
|
@@ -977,7 +1027,7 @@ class Api extends HttpClient {
|
|
|
977
1027
|
...params,
|
|
978
1028
|
}),
|
|
979
1029
|
/**
|
|
980
|
-
* @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.
|
|
1030
|
+
* @description Feed of Firmenbuch changes — one entry per new legal record (Eintragung). Ordered by ascending id, and that id is the cursor: request with sinceId set to the highest id you have stored, walk page=1,2,… at a fixed pageSize until a page comes back with fewer than pageSize rows, keep the highest id you saw, and start the next poll from it. sinceId is exclusive, so nothing is delivered twice, and a new change always takes a higher id than every change already in the feed, so it appends to the end and never shifts a page you have already read. since is inclusive, filters on when we recorded the change rather than on changedDate — so a back-dated entry is not missed — and applies together with sinceId when both are sent. Paging without sinceId is not a reliable feed: an offset is not a watermark, and page stops at 1000. totalRecords stops there too — it is counted only as far as page 1000 reaches, so it caps at 1000 × pageSize and means "at least this many" once it is that; stop on a short page, not on a count. Under concurrent writes a change can become visible just after a higher id, so a consumer that must not miss one resumes from the previous poll's watermark and de-duplicates by id. fnr is normalised before matching — trimmed, spaces and leading zeros removed, case left alone — so 034853 f and 34853f are the same company, exactly as on GET /businesses. Use GET /globalchanges for the same feed across all four registers. Kostet 1 Credit.
|
|
981
1031
|
*
|
|
982
1032
|
* @tags Businesses
|
|
983
1033
|
* @name V1BusinessesChangesList
|
|
@@ -994,7 +1044,7 @@ class Api extends HttpClient {
|
|
|
994
1044
|
...params,
|
|
995
1045
|
}),
|
|
996
1046
|
/**
|
|
997
|
-
* @description Returns all assignment functions (code/text lookup) for display. Cached 24h.
|
|
1047
|
+
* @description Returns all assignment functions (code/text lookup) for display. Cached 24h. Ohne API-Key abrufbar und kostet keine Credits.
|
|
998
1048
|
*
|
|
999
1049
|
* @tags AssignmentFunctions
|
|
1000
1050
|
* @name V1AssignmentfunctionsList
|
|
@@ -1010,7 +1060,7 @@ class Api extends HttpClient {
|
|
|
1010
1060
|
...params,
|
|
1011
1061
|
}),
|
|
1012
1062
|
/**
|
|
1013
|
-
* @description Returns unique City+ZipCode combinations from addresses with pagination and optional search.
|
|
1063
|
+
* @description Returns unique City+ZipCode combinations from addresses with pagination and optional search. Kostet 1 Credit.
|
|
1014
1064
|
*
|
|
1015
1065
|
* @tags Addresses
|
|
1016
1066
|
* @name V1AddressesLocationsList
|
|
@@ -1027,7 +1077,7 @@ class Api extends HttpClient {
|
|
|
1027
1077
|
...params,
|
|
1028
1078
|
}),
|
|
1029
1079
|
/**
|
|
1030
|
-
* @description Returns unique cities from addresses with pagination and optional search.
|
|
1080
|
+
* @description Returns unique cities from addresses with pagination and optional search. Kostet 1 Credit.
|
|
1031
1081
|
*
|
|
1032
1082
|
* @tags Addresses
|
|
1033
1083
|
* @name V1AddressesCitiesList
|
|
@@ -1044,7 +1094,7 @@ class Api extends HttpClient {
|
|
|
1044
1094
|
...params,
|
|
1045
1095
|
}),
|
|
1046
1096
|
/**
|
|
1047
|
-
* @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.
|
|
1097
|
+
* @description Ranks cities and City+ZipCode combinations against one term and answers the best few of both, as one ranking split into two lists — what a location filter's type-ahead needs, where /addresses/locations and /addresses/cities are the paged catalogues behind it. Ordered by where the term sits in the label, then by the shorter label, then by company count, so "wien" answers Wien before Wiener Neustadt and before every 1xxx ZIP that carries it. A term shorter than two characters is ignored and the biggest groups come back instead. top caps both lists together, not each. Ohne API-Key abrufbar und kostet keine Credits.
|
|
1048
1098
|
*
|
|
1049
1099
|
* @tags Addresses
|
|
1050
1100
|
* @name V1AddressesSuggestList
|
|
@@ -1061,7 +1111,7 @@ class Api extends HttpClient {
|
|
|
1061
1111
|
...params,
|
|
1062
1112
|
}),
|
|
1063
1113
|
/**
|
|
1064
|
-
* @description Returns unique zip codes from addresses with pagination and optional search.
|
|
1114
|
+
* @description Returns unique zip codes from addresses with pagination and optional search. Kostet 1 Credit.
|
|
1065
1115
|
*
|
|
1066
1116
|
* @tags Addresses
|
|
1067
1117
|
* @name V1AddressesZipcodesList
|
|
@@ -1077,6 +1127,22 @@ class Api extends HttpClient {
|
|
|
1077
1127
|
format: "json",
|
|
1078
1128
|
...params,
|
|
1079
1129
|
}),
|
|
1130
|
+
/**
|
|
1131
|
+
* @description The Gemeinde catalogue: one row per Austrian Gemeinde the register can address, with its official name, its URL slug, its Bundesland, the PLZ that resolve to it and the alias slugs that name it. This is the one source for a place's identity. The city column of an address is Firmenbuch free text and carries "Klagenfurt am Wörthersee", "Klagenfurt", "Klagenfurt-Viktring" and "Klagenfurt-Wölfnitz" side by side, so it cannot be a key; a Gemeinde is derived from the PLZ of the Geschäftsanschrift instead, and GET /businesses?gemeinde=<slug> answers every one of those spellings at once. Fold the zipCode buckets of GET /businesses/aggregate through zipCodes to count companies per Gemeinde. Unpaged and without a filter on purpose: 1.893 rows that change only with a new Gebietsstand, so one cacheable answer is cheaper for every caller than paging a list they all want whole. Companies with a foreign or unusable PLZ resolve to no Gemeinde and appear under none. Kostet 1 Credit.
|
|
1132
|
+
*
|
|
1133
|
+
* @tags Addresses
|
|
1134
|
+
* @name V1AddressesGemeindenList
|
|
1135
|
+
* @summary Gemeinden
|
|
1136
|
+
* @request GET:/api/v1/addresses/gemeinden
|
|
1137
|
+
* @secure
|
|
1138
|
+
*/
|
|
1139
|
+
v1AddressesGemeindenList: (params = {}) => this.request({
|
|
1140
|
+
path: `/api/v1/addresses/gemeinden`,
|
|
1141
|
+
method: "GET",
|
|
1142
|
+
secure: true,
|
|
1143
|
+
format: "json",
|
|
1144
|
+
...params,
|
|
1145
|
+
}),
|
|
1080
1146
|
};
|
|
1081
1147
|
}
|
|
1082
1148
|
}
|