@firmenakte/api-client 2.1.0 → 2.3.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 +3050 -707
- package/client.d.ts.map +1 -1
- package/client.js +102 -68
- package/index.d.ts +248 -0
- package/index.d.ts.map +1 -1
- package/package.json +1 -1
package/client.js
CHANGED
|
@@ -192,11 +192,11 @@ class Api extends HttpClient {
|
|
|
192
192
|
super(...arguments);
|
|
193
193
|
this.api = {
|
|
194
194
|
/**
|
|
195
|
-
*
|
|
195
|
+
* @description Downloads the signed GISA PDF extract for a license (GISA-Zahl). Language defaults to German (De).
|
|
196
196
|
*
|
|
197
197
|
* @tags Trades
|
|
198
198
|
* @name V1TradesDocumentsDetail
|
|
199
|
-
* @summary
|
|
199
|
+
* @summary GISA PDF extract
|
|
200
200
|
* @request GET:/api/v1/trades/documents/{gisaZahl}
|
|
201
201
|
* @secure
|
|
202
202
|
*/
|
|
@@ -208,11 +208,11 @@ class Api extends HttpClient {
|
|
|
208
208
|
...params,
|
|
209
209
|
}),
|
|
210
210
|
/**
|
|
211
|
-
*
|
|
211
|
+
* @description Returns the global catalog of GISA Trade Definitions with pagination.
|
|
212
212
|
*
|
|
213
213
|
* @tags Trades
|
|
214
214
|
* @name V1TradesList
|
|
215
|
-
* @summary
|
|
215
|
+
* @summary GISA trade catalog
|
|
216
216
|
* @request GET:/api/v1/trades
|
|
217
217
|
* @secure
|
|
218
218
|
*/
|
|
@@ -225,11 +225,11 @@ class Api extends HttpClient {
|
|
|
225
225
|
...params,
|
|
226
226
|
}),
|
|
227
227
|
/**
|
|
228
|
-
*
|
|
228
|
+
* @description Returns all company licenses for a specific trade definition with pagination.
|
|
229
229
|
*
|
|
230
230
|
* @tags Trades
|
|
231
231
|
* @name V1TradesLicensesList
|
|
232
|
-
* @summary
|
|
232
|
+
* @summary Licenses by trade
|
|
233
233
|
* @request GET:/api/v1/trades/{tradeKey}/licenses
|
|
234
234
|
* @secure
|
|
235
235
|
*/
|
|
@@ -242,11 +242,11 @@ class Api extends HttpClient {
|
|
|
242
242
|
...params,
|
|
243
243
|
}),
|
|
244
244
|
/**
|
|
245
|
-
*
|
|
245
|
+
* @description Returns all licenses for a specific company (FNR).
|
|
246
246
|
*
|
|
247
247
|
* @tags Trades
|
|
248
248
|
* @name V1TradesCompanyDetail
|
|
249
|
-
* @summary
|
|
249
|
+
* @summary Company GISA licenses
|
|
250
250
|
* @request GET:/api/v1/trades/company/{fnr}
|
|
251
251
|
* @secure
|
|
252
252
|
*/
|
|
@@ -258,11 +258,11 @@ class Api extends HttpClient {
|
|
|
258
258
|
...params,
|
|
259
259
|
}),
|
|
260
260
|
/**
|
|
261
|
-
*
|
|
261
|
+
* @description Returns a single GISA change by id.
|
|
262
262
|
*
|
|
263
263
|
* @tags Trades
|
|
264
264
|
* @name V1TradesChangesDetail
|
|
265
|
-
* @summary
|
|
265
|
+
* @summary GISA change by id
|
|
266
266
|
* @request GET:/api/v1/trades/changes/{id}
|
|
267
267
|
* @secure
|
|
268
268
|
*/
|
|
@@ -274,11 +274,11 @@ class Api extends HttpClient {
|
|
|
274
274
|
...params,
|
|
275
275
|
}),
|
|
276
276
|
/**
|
|
277
|
-
* @description 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.
|
|
277
|
+
* @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.
|
|
278
278
|
*
|
|
279
279
|
* @tags Trades
|
|
280
280
|
* @name V1TradesChangesList
|
|
281
|
-
* @summary
|
|
281
|
+
* @summary GISA change feed
|
|
282
282
|
* @request GET:/api/v1/trades/changes
|
|
283
283
|
* @secure
|
|
284
284
|
*/
|
|
@@ -291,11 +291,11 @@ class Api extends HttpClient {
|
|
|
291
291
|
...params,
|
|
292
292
|
}),
|
|
293
293
|
/**
|
|
294
|
-
*
|
|
294
|
+
* @description Returns (id, name) pairs for all people with at least one business assignment. For client-side name index.
|
|
295
295
|
*
|
|
296
296
|
* @tags People
|
|
297
297
|
* @name V1PeopleNamesList
|
|
298
|
-
* @summary
|
|
298
|
+
* @summary Person name index
|
|
299
299
|
* @request GET:/api/v1/people/names
|
|
300
300
|
* @secure
|
|
301
301
|
*/
|
|
@@ -307,11 +307,11 @@ class Api extends HttpClient {
|
|
|
307
307
|
...params,
|
|
308
308
|
}),
|
|
309
309
|
/**
|
|
310
|
-
* @description 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
|
|
310
|
+
* @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
|
|
311
311
|
*
|
|
312
312
|
* @tags People
|
|
313
313
|
* @name V1PeopleList
|
|
314
|
-
* @summary
|
|
314
|
+
* @summary People search
|
|
315
315
|
* @request GET:/api/v1/people
|
|
316
316
|
* @secure
|
|
317
317
|
*/
|
|
@@ -324,11 +324,11 @@ class Api extends HttpClient {
|
|
|
324
324
|
...params,
|
|
325
325
|
}),
|
|
326
326
|
/**
|
|
327
|
-
* @description 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.
|
|
327
|
+
* @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.
|
|
328
328
|
*
|
|
329
329
|
* @tags People
|
|
330
330
|
* @name V1PeopleDetail
|
|
331
|
-
* @summary
|
|
331
|
+
* @summary Person detail
|
|
332
332
|
* @request GET:/api/v1/people/{personId}
|
|
333
333
|
* @secure
|
|
334
334
|
*/
|
|
@@ -340,11 +340,11 @@ class Api extends HttpClient {
|
|
|
340
340
|
...params,
|
|
341
341
|
}),
|
|
342
342
|
/**
|
|
343
|
-
*
|
|
343
|
+
* @description Returns the OeNACE classification catalog with company counts. Results are ordered by company count descending — most used first.
|
|
344
344
|
*
|
|
345
345
|
* @tags Oenace
|
|
346
346
|
* @name V1OenaceList
|
|
347
|
-
* @summary
|
|
347
|
+
* @summary OeNACE classification catalog
|
|
348
348
|
* @request GET:/api/v1/oenace
|
|
349
349
|
* @secure
|
|
350
350
|
*/
|
|
@@ -357,11 +357,11 @@ class Api extends HttpClient {
|
|
|
357
357
|
...params,
|
|
358
358
|
}),
|
|
359
359
|
/**
|
|
360
|
-
*
|
|
360
|
+
* @description Returns all legal forms with pagination and optional search, sorted by business count descending.
|
|
361
361
|
*
|
|
362
362
|
* @tags LegalForms
|
|
363
363
|
* @name V1LegalformsList
|
|
364
|
-
* @summary
|
|
364
|
+
* @summary Legal form catalog
|
|
365
365
|
* @request GET:/api/v1/legalforms
|
|
366
366
|
* @secure
|
|
367
367
|
*/
|
|
@@ -374,11 +374,11 @@ class Api extends HttpClient {
|
|
|
374
374
|
...params,
|
|
375
375
|
}),
|
|
376
376
|
/**
|
|
377
|
-
* @description 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.
|
|
377
|
+
* @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.
|
|
378
378
|
*
|
|
379
379
|
* @tags Graph
|
|
380
380
|
* @name V1GraphList
|
|
381
|
-
* @summary
|
|
381
|
+
* @summary Relationship graph
|
|
382
382
|
* @request GET:/api/v1/graph
|
|
383
383
|
* @secure
|
|
384
384
|
*/
|
|
@@ -391,11 +391,11 @@ class Api extends HttpClient {
|
|
|
391
391
|
...params,
|
|
392
392
|
}),
|
|
393
393
|
/**
|
|
394
|
-
* @description 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.
|
|
394
|
+
* @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.
|
|
395
395
|
*
|
|
396
396
|
* @tags GlobalChanges
|
|
397
397
|
* @name V1GlobalchangesList
|
|
398
|
-
* @summary
|
|
398
|
+
* @summary All-register change feed
|
|
399
399
|
* @request GET:/api/v1/globalchanges
|
|
400
400
|
* @secure
|
|
401
401
|
*/
|
|
@@ -408,11 +408,11 @@ class Api extends HttpClient {
|
|
|
408
408
|
...params,
|
|
409
409
|
}),
|
|
410
410
|
/**
|
|
411
|
-
* @description 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.
|
|
411
|
+
* @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.
|
|
412
412
|
*
|
|
413
413
|
* @tags GlobalChanges
|
|
414
414
|
* @name V1GlobalchangesAggregatedList
|
|
415
|
-
* @summary
|
|
415
|
+
* @summary Aggregated watchlist changes
|
|
416
416
|
* @request GET:/api/v1/globalchanges/aggregated
|
|
417
417
|
* @secure
|
|
418
418
|
*/
|
|
@@ -425,11 +425,11 @@ class Api extends HttpClient {
|
|
|
425
425
|
...params,
|
|
426
426
|
}),
|
|
427
427
|
/**
|
|
428
|
-
* @description 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.
|
|
428
|
+
* @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.
|
|
429
429
|
*
|
|
430
430
|
* @tags GlobalChanges
|
|
431
431
|
* @name V1GlobalchangesDetail
|
|
432
|
-
* @summary
|
|
432
|
+
* @summary Change by id
|
|
433
433
|
* @request GET:/api/v1/globalchanges/{id}
|
|
434
434
|
* @secure
|
|
435
435
|
*/
|
|
@@ -441,11 +441,11 @@ class Api extends HttpClient {
|
|
|
441
441
|
...params,
|
|
442
442
|
}),
|
|
443
443
|
/**
|
|
444
|
-
* @description The id is the shared change id from GET /globalchanges, so an id that exists but whose changeType is not "edikt" answers 404 here.
|
|
444
|
+
* @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.
|
|
445
445
|
*
|
|
446
446
|
* @tags Edikte
|
|
447
447
|
* @name V1EdikteChangesDetail
|
|
448
|
-
* @summary
|
|
448
|
+
* @summary Edikt change by id
|
|
449
449
|
* @request GET:/api/v1/edikte/changes/{id}
|
|
450
450
|
* @secure
|
|
451
451
|
*/
|
|
@@ -457,11 +457,11 @@ class Api extends HttpClient {
|
|
|
457
457
|
...params,
|
|
458
458
|
}),
|
|
459
459
|
/**
|
|
460
|
-
* @description 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.
|
|
460
|
+
* @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.
|
|
461
461
|
*
|
|
462
462
|
* @tags Edikte
|
|
463
463
|
* @name V1EdikteChangesList
|
|
464
|
-
* @summary
|
|
464
|
+
* @summary Ediktsdatei change feed
|
|
465
465
|
* @request GET:/api/v1/edikte/changes
|
|
466
466
|
* @secure
|
|
467
467
|
*/
|
|
@@ -474,11 +474,11 @@ class Api extends HttpClient {
|
|
|
474
474
|
...params,
|
|
475
475
|
}),
|
|
476
476
|
/**
|
|
477
|
-
*
|
|
477
|
+
* @description Downloads a Firmenbuch document (PDF/XML) by its document key.
|
|
478
478
|
*
|
|
479
479
|
* @tags Documents
|
|
480
480
|
* @name V1DocumentsDownloadDetail
|
|
481
|
-
* @summary
|
|
481
|
+
* @summary Firmenbuch document download
|
|
482
482
|
* @request GET:/api/v1/documents/download/{documentKey}
|
|
483
483
|
* @secure
|
|
484
484
|
*/
|
|
@@ -489,11 +489,11 @@ class Api extends HttpClient {
|
|
|
489
489
|
...params,
|
|
490
490
|
}),
|
|
491
491
|
/**
|
|
492
|
-
* @description The id is the shared change id from GET /globalchanges, so an id that exists but whose changeType is not "document" answers 404 here.
|
|
492
|
+
* @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.
|
|
493
493
|
*
|
|
494
494
|
* @tags Documents
|
|
495
495
|
* @name V1DocumentsChangesDetail
|
|
496
|
-
* @summary
|
|
496
|
+
* @summary Document change by id
|
|
497
497
|
* @request GET:/api/v1/documents/changes/{id}
|
|
498
498
|
* @secure
|
|
499
499
|
*/
|
|
@@ -505,11 +505,11 @@ class Api extends HttpClient {
|
|
|
505
505
|
...params,
|
|
506
506
|
}),
|
|
507
507
|
/**
|
|
508
|
-
* @description 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.
|
|
508
|
+
* @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.
|
|
509
509
|
*
|
|
510
510
|
* @tags Documents
|
|
511
511
|
* @name V1DocumentsChangesList
|
|
512
|
-
* @summary
|
|
512
|
+
* @summary Document change feed
|
|
513
513
|
* @request GET:/api/v1/documents/changes
|
|
514
514
|
* @secure
|
|
515
515
|
*/
|
|
@@ -522,11 +522,11 @@ class Api extends HttpClient {
|
|
|
522
522
|
...params,
|
|
523
523
|
}),
|
|
524
524
|
/**
|
|
525
|
-
*
|
|
525
|
+
* @description Returns all courts with pagination and optional search, sorted by business count descending.
|
|
526
526
|
*
|
|
527
527
|
* @tags Courts
|
|
528
528
|
* @name V1CourtsList
|
|
529
|
-
* @summary
|
|
529
|
+
* @summary Court catalog
|
|
530
530
|
* @request GET:/api/v1/courts
|
|
531
531
|
* @secure
|
|
532
532
|
*/
|
|
@@ -539,11 +539,11 @@ class Api extends HttpClient {
|
|
|
539
539
|
...params,
|
|
540
540
|
}),
|
|
541
541
|
/**
|
|
542
|
-
*
|
|
542
|
+
* @description Resolve company names to FNRs by exact name match (1:1). Used for CSV import.
|
|
543
543
|
*
|
|
544
544
|
* @tags Businesses
|
|
545
545
|
* @name V1BusinessesResolveNamesCreate
|
|
546
|
-
* @summary
|
|
546
|
+
* @summary Name to FNR resolution
|
|
547
547
|
* @request POST:/api/v1/businesses/resolve-names
|
|
548
548
|
* @secure
|
|
549
549
|
*/
|
|
@@ -557,11 +557,11 @@ class Api extends HttpClient {
|
|
|
557
557
|
...params,
|
|
558
558
|
}),
|
|
559
559
|
/**
|
|
560
|
-
* @description 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.
|
|
560
|
+
* @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.
|
|
561
561
|
*
|
|
562
562
|
* @tags Businesses
|
|
563
563
|
* @name V1BusinessesList
|
|
564
|
-
* @summary
|
|
564
|
+
* @summary Company search
|
|
565
565
|
* @request GET:/api/v1/businesses
|
|
566
566
|
* @secure
|
|
567
567
|
*/
|
|
@@ -574,11 +574,11 @@ class Api extends HttpClient {
|
|
|
574
574
|
...params,
|
|
575
575
|
}),
|
|
576
576
|
/**
|
|
577
|
-
* No
|
|
577
|
+
* @description Returns all business (fnr, name) pairs for client-side name index. No pagination.
|
|
578
578
|
*
|
|
579
579
|
* @tags Businesses
|
|
580
580
|
* @name V1BusinessesNamesList
|
|
581
|
-
* @summary
|
|
581
|
+
* @summary Company name index
|
|
582
582
|
* @request GET:/api/v1/businesses/names
|
|
583
583
|
* @secure
|
|
584
584
|
*/
|
|
@@ -590,11 +590,11 @@ class Api extends HttpClient {
|
|
|
590
590
|
...params,
|
|
591
591
|
}),
|
|
592
592
|
/**
|
|
593
|
-
* @description 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.
|
|
593
|
+
* @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.
|
|
594
594
|
*
|
|
595
595
|
* @tags Businesses
|
|
596
596
|
* @name V1BusinessesCountList
|
|
597
|
-
* @summary
|
|
597
|
+
* @summary Company count
|
|
598
598
|
* @request GET:/api/v1/businesses/count
|
|
599
599
|
* @secure
|
|
600
600
|
*/
|
|
@@ -606,11 +606,11 @@ class Api extends HttpClient {
|
|
|
606
606
|
...params,
|
|
607
607
|
}),
|
|
608
608
|
/**
|
|
609
|
-
*
|
|
609
|
+
* @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.
|
|
610
610
|
*
|
|
611
611
|
* @tags Businesses
|
|
612
612
|
* @name V1BusinessesAggregateList
|
|
613
|
-
* @summary
|
|
613
|
+
* @summary Grouped company counts
|
|
614
614
|
* @request GET:/api/v1/businesses/aggregate
|
|
615
615
|
* @secure
|
|
616
616
|
*/
|
|
@@ -623,11 +623,45 @@ class Api extends HttpClient {
|
|
|
623
623
|
...params,
|
|
624
624
|
}),
|
|
625
625
|
/**
|
|
626
|
-
*
|
|
626
|
+
* @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.
|
|
627
|
+
*
|
|
628
|
+
* @tags Businesses
|
|
629
|
+
* @name V1BusinessesFacetsList
|
|
630
|
+
* @summary Filter-builder facet counts
|
|
631
|
+
* @request GET:/api/v1/businesses/facets
|
|
632
|
+
* @secure
|
|
633
|
+
*/
|
|
634
|
+
v1BusinessesFacetsList: (query, params = {}) => this.request({
|
|
635
|
+
path: `/api/v1/businesses/facets`,
|
|
636
|
+
method: "GET",
|
|
637
|
+
query: query,
|
|
638
|
+
secure: true,
|
|
639
|
+
format: "json",
|
|
640
|
+
...params,
|
|
641
|
+
}),
|
|
642
|
+
/**
|
|
643
|
+
* @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.
|
|
644
|
+
*
|
|
645
|
+
* @tags Businesses
|
|
646
|
+
* @name V1BusinessesMapTopList
|
|
647
|
+
* @summary Top company per Bundesland or city
|
|
648
|
+
* @request GET:/api/v1/businesses/map-top
|
|
649
|
+
* @secure
|
|
650
|
+
*/
|
|
651
|
+
v1BusinessesMapTopList: (query, params = {}) => this.request({
|
|
652
|
+
path: `/api/v1/businesses/map-top`,
|
|
653
|
+
method: "GET",
|
|
654
|
+
query: query,
|
|
655
|
+
secure: true,
|
|
656
|
+
format: "json",
|
|
657
|
+
...params,
|
|
658
|
+
}),
|
|
659
|
+
/**
|
|
660
|
+
* @description Active businesses similar to the given one (same OeNACE branch, same region preferred).
|
|
627
661
|
*
|
|
628
662
|
* @tags Businesses
|
|
629
663
|
* @name V1BusinessesSimilarList
|
|
630
|
-
* @summary
|
|
664
|
+
* @summary Similar companies
|
|
631
665
|
* @request GET:/api/v1/businesses/{fnr}/similar
|
|
632
666
|
* @secure
|
|
633
667
|
*/
|
|
@@ -639,11 +673,11 @@ class Api extends HttpClient {
|
|
|
639
673
|
...params,
|
|
640
674
|
}),
|
|
641
675
|
/**
|
|
642
|
-
* @description 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.
|
|
676
|
+
* @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.
|
|
643
677
|
*
|
|
644
678
|
* @tags Businesses
|
|
645
679
|
* @name V1BusinessesDetail
|
|
646
|
-
* @summary
|
|
680
|
+
* @summary Company Firmenakte
|
|
647
681
|
* @request GET:/api/v1/businesses/{fnr}
|
|
648
682
|
* @secure
|
|
649
683
|
*/
|
|
@@ -655,11 +689,11 @@ class Api extends HttpClient {
|
|
|
655
689
|
...params,
|
|
656
690
|
}),
|
|
657
691
|
/**
|
|
658
|
-
* @description The id is the shared change id from GET /globalchanges, so an id that exists but whose changeType is not "business" answers 404 here.
|
|
692
|
+
* @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.
|
|
659
693
|
*
|
|
660
694
|
* @tags Businesses
|
|
661
695
|
* @name V1BusinessesChangesDetail
|
|
662
|
-
* @summary
|
|
696
|
+
* @summary Firmenbuch change by id
|
|
663
697
|
* @request GET:/api/v1/businesses/changes/{id}
|
|
664
698
|
* @secure
|
|
665
699
|
*/
|
|
@@ -671,11 +705,11 @@ class Api extends HttpClient {
|
|
|
671
705
|
...params,
|
|
672
706
|
}),
|
|
673
707
|
/**
|
|
674
|
-
* @description 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.
|
|
708
|
+
* @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.
|
|
675
709
|
*
|
|
676
710
|
* @tags Businesses
|
|
677
711
|
* @name V1BusinessesChangesList
|
|
678
|
-
* @summary
|
|
712
|
+
* @summary Firmenbuch change feed
|
|
679
713
|
* @request GET:/api/v1/businesses/changes
|
|
680
714
|
* @secure
|
|
681
715
|
*/
|
|
@@ -688,11 +722,11 @@ class Api extends HttpClient {
|
|
|
688
722
|
...params,
|
|
689
723
|
}),
|
|
690
724
|
/**
|
|
691
|
-
*
|
|
725
|
+
* @description Returns all assignment functions (code/text lookup) for display. Cached 24h.
|
|
692
726
|
*
|
|
693
727
|
* @tags AssignmentFunctions
|
|
694
728
|
* @name V1AssignmentfunctionsList
|
|
695
|
-
* @summary
|
|
729
|
+
* @summary Assignment function catalog
|
|
696
730
|
* @request GET:/api/v1/assignmentfunctions
|
|
697
731
|
* @secure
|
|
698
732
|
*/
|
|
@@ -704,11 +738,11 @@ class Api extends HttpClient {
|
|
|
704
738
|
...params,
|
|
705
739
|
}),
|
|
706
740
|
/**
|
|
707
|
-
*
|
|
741
|
+
* @description Returns unique City+ZipCode combinations from addresses with pagination and optional search.
|
|
708
742
|
*
|
|
709
743
|
* @tags Addresses
|
|
710
744
|
* @name V1AddressesLocationsList
|
|
711
|
-
* @summary
|
|
745
|
+
* @summary City and ZIP combinations
|
|
712
746
|
* @request GET:/api/v1/addresses/locations
|
|
713
747
|
* @secure
|
|
714
748
|
*/
|
|
@@ -721,11 +755,11 @@ class Api extends HttpClient {
|
|
|
721
755
|
...params,
|
|
722
756
|
}),
|
|
723
757
|
/**
|
|
724
|
-
*
|
|
758
|
+
* @description Returns unique cities from addresses with pagination and optional search.
|
|
725
759
|
*
|
|
726
760
|
* @tags Addresses
|
|
727
761
|
* @name V1AddressesCitiesList
|
|
728
|
-
* @summary
|
|
762
|
+
* @summary Cities
|
|
729
763
|
* @request GET:/api/v1/addresses/cities
|
|
730
764
|
* @secure
|
|
731
765
|
*/
|
|
@@ -738,11 +772,11 @@ class Api extends HttpClient {
|
|
|
738
772
|
...params,
|
|
739
773
|
}),
|
|
740
774
|
/**
|
|
741
|
-
*
|
|
775
|
+
* @description Returns unique zip codes from addresses with pagination and optional search.
|
|
742
776
|
*
|
|
743
777
|
* @tags Addresses
|
|
744
778
|
* @name V1AddressesZipcodesList
|
|
745
|
-
* @summary
|
|
779
|
+
* @summary ZIP codes
|
|
746
780
|
* @request GET:/api/v1/addresses/zipcodes
|
|
747
781
|
* @secure
|
|
748
782
|
*/
|