@firmenakte/api-client 2.11.8 → 2.22.0
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 +27 -0
- package/client.d.ts +1256 -1084
- package/client.d.ts.map +1 -1
- package/client.js +247 -224
- package/index.d.ts +82 -79
- package/index.d.ts.map +1 -1
- package/keyfigure-labels.d.ts +10 -6
- package/keyfigure-labels.d.ts.map +1 -1
- package/keyfigure-labels.js +10 -6
- package/package.json +13 -2
- package/v2/generated/client/client.gen.d.ts +3 -0
- package/v2/generated/client/client.gen.d.ts.map +1 -0
- package/v2/generated/client/client.gen.js +220 -0
- package/v2/generated/client/index.d.ts +11 -0
- package/v2/generated/client/index.d.ts.map +1 -0
- package/v2/generated/client/index.js +17 -0
- package/v2/generated/client/types.gen.d.ts +121 -0
- package/v2/generated/client/types.gen.d.ts.map +1 -0
- package/v2/generated/client/types.gen.js +3 -0
- package/v2/generated/client/utils.gen.d.ts +38 -0
- package/v2/generated/client/utils.gen.d.ts.map +1 -0
- package/v2/generated/client/utils.gen.js +241 -0
- package/v2/generated/client.gen.d.ts +13 -0
- package/v2/generated/client.gen.d.ts.map +1 -0
- package/v2/generated/client.gen.js +6 -0
- package/v2/generated/core/auth.gen.d.ts +26 -0
- package/v2/generated/core/auth.gen.d.ts.map +1 -0
- package/v2/generated/core/auth.gen.js +18 -0
- package/v2/generated/core/bodySerializer.gen.d.ts +26 -0
- package/v2/generated/core/bodySerializer.gen.d.ts.map +1 -0
- package/v2/generated/core/bodySerializer.gen.js +60 -0
- package/v2/generated/core/params.gen.d.ts +44 -0
- package/v2/generated/core/params.gen.d.ts.map +1 -0
- package/v2/generated/core/params.gen.js +112 -0
- package/v2/generated/core/pathSerializer.gen.d.ts +34 -0
- package/v2/generated/core/pathSerializer.gen.d.ts.map +1 -0
- package/v2/generated/core/pathSerializer.gen.js +115 -0
- package/v2/generated/core/queryKeySerializer.gen.d.ts +19 -0
- package/v2/generated/core/queryKeySerializer.gen.d.ts.map +1 -0
- package/v2/generated/core/queryKeySerializer.gen.js +98 -0
- package/v2/generated/core/serverSentEvents.gen.d.ts +72 -0
- package/v2/generated/core/serverSentEvents.gen.d.ts.map +1 -0
- package/v2/generated/core/serverSentEvents.gen.js +135 -0
- package/v2/generated/core/types.gen.d.ts +84 -0
- package/v2/generated/core/types.gen.d.ts.map +1 -0
- package/v2/generated/core/types.gen.js +3 -0
- package/v2/generated/core/utils.gen.d.ts +20 -0
- package/v2/generated/core/utils.gen.d.ts.map +1 -0
- package/v2/generated/core/utils.gen.js +93 -0
- package/v2/generated/index.d.ts +3 -0
- package/v2/generated/index.d.ts.map +1 -0
- package/v2/generated/index.js +6 -0
- package/v2/generated/sdk.gen.d.ts +674 -0
- package/v2/generated/sdk.gen.d.ts.map +1 -0
- package/v2/generated/sdk.gen.js +1433 -0
- package/v2/generated/types.gen.d.ts +9439 -0
- package/v2/generated/types.gen.d.ts.map +1 -0
- package/v2/generated/types.gen.js +3 -0
- package/v2/index.d.ts +46 -0
- package/v2/index.d.ts.map +1 -0
- package/v2/index.js +80 -0
package/client.js
CHANGED
|
@@ -11,7 +11,14 @@
|
|
|
11
11
|
* ---------------------------------------------------------------
|
|
12
12
|
*/
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
-
exports.Api = exports.HttpClient = exports.ContentType = exports.BusinessExportFormat = exports.ChangeType = exports.InsolvencyCourtEventType = exports.InsolvencyEvidenceStatus = void 0;
|
|
14
|
+
exports.Api = exports.HttpClient = exports.ContentType = exports.BusinessExportFormat = exports.ChangeType = exports.InsolvencyCourtEventType = exports.InsolvencyEvidenceStatus = exports.PassivpostenNach = void 0;
|
|
15
|
+
/** The standard Passiva position a WeitererPassivposten follows in the filing. */
|
|
16
|
+
var PassivpostenNach;
|
|
17
|
+
(function (PassivpostenNach) {
|
|
18
|
+
PassivpostenNach["Eigenkapital"] = "eigenkapital";
|
|
19
|
+
PassivpostenNach["Rueckstellungen"] = "rueckstellungen";
|
|
20
|
+
PassivpostenNach["Verbindlichkeiten"] = "verbindlichkeiten";
|
|
21
|
+
})(PassivpostenNach || (exports.PassivpostenNach = PassivpostenNach = {}));
|
|
15
22
|
/** Conservative Firmenbuch evidence state: open, closed, absent, uncertain or conflicting. Conflicting means a known court closure and an active administrator role coexist. Absent means no classified court event and no active role, not certified solvency. */
|
|
16
23
|
var InsolvencyEvidenceStatus;
|
|
17
24
|
(function (InsolvencyEvidenceStatus) {
|
|
@@ -207,7 +214,7 @@ class HttpClient {
|
|
|
207
214
|
}
|
|
208
215
|
exports.HttpClient = HttpClient;
|
|
209
216
|
/**
|
|
210
|
-
* @title
|
|
217
|
+
* @title Firmenakte API
|
|
211
218
|
* @version v1
|
|
212
219
|
* @baseUrl https://api.firmenakte.at
|
|
213
220
|
*/
|
|
@@ -530,173 +537,6 @@ class Api extends HttpClient {
|
|
|
530
537
|
format: "json",
|
|
531
538
|
...params,
|
|
532
539
|
}),
|
|
533
|
-
/**
|
|
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. Kostet 1 Credit.
|
|
535
|
-
*
|
|
536
|
-
* @tags Search
|
|
537
|
-
* @name V1SearchList
|
|
538
|
-
* @summary Companies and people in one ranked list
|
|
539
|
-
* @request GET:/api/v1/search
|
|
540
|
-
* @secure
|
|
541
|
-
*/
|
|
542
|
-
v1SearchList: (query, params = {}) => this.request({
|
|
543
|
-
path: `/api/v1/search`,
|
|
544
|
-
method: "GET",
|
|
545
|
-
query: query,
|
|
546
|
-
secure: true,
|
|
547
|
-
format: "json",
|
|
548
|
-
...params,
|
|
549
|
-
}),
|
|
550
|
-
/**
|
|
551
|
-
* @description Returns (id, name) pairs for all people with at least one business assignment. For client-side name index. Kostet 1 Credit.
|
|
552
|
-
*
|
|
553
|
-
* @tags People
|
|
554
|
-
* @name V1PeopleNamesList
|
|
555
|
-
* @summary Person name index
|
|
556
|
-
* @request GET:/api/v1/people/names
|
|
557
|
-
* @secure
|
|
558
|
-
*/
|
|
559
|
-
v1PeopleNamesList: (params = {}) => this.request({
|
|
560
|
-
path: `/api/v1/people/names`,
|
|
561
|
-
method: "GET",
|
|
562
|
-
secure: true,
|
|
563
|
-
format: "json",
|
|
564
|
-
...params,
|
|
565
|
-
}),
|
|
566
|
-
/**
|
|
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.
|
|
568
|
-
*
|
|
569
|
-
* @tags People
|
|
570
|
-
* @name V1PeopleList
|
|
571
|
-
* @summary People search
|
|
572
|
-
* @request GET:/api/v1/people
|
|
573
|
-
* @secure
|
|
574
|
-
*/
|
|
575
|
-
v1PeopleList: (query, params = {}) => this.request({
|
|
576
|
-
path: `/api/v1/people`,
|
|
577
|
-
method: "GET",
|
|
578
|
-
query: query,
|
|
579
|
-
secure: true,
|
|
580
|
-
format: "json",
|
|
581
|
-
...params,
|
|
582
|
-
}),
|
|
583
|
-
/**
|
|
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.
|
|
585
|
-
*
|
|
586
|
-
* @tags People
|
|
587
|
-
* @name V1PeopleDetail
|
|
588
|
-
* @summary Person detail
|
|
589
|
-
* @request GET:/api/v1/people/{personId}
|
|
590
|
-
* @secure
|
|
591
|
-
*/
|
|
592
|
-
v1PeopleDetail: (personId, params = {}) => this.request({
|
|
593
|
-
path: `/api/v1/people/${personId}`,
|
|
594
|
-
method: "GET",
|
|
595
|
-
secure: true,
|
|
596
|
-
format: "json",
|
|
597
|
-
...params,
|
|
598
|
-
}),
|
|
599
|
-
/**
|
|
600
|
-
* @description Returns the OeNACE classification catalog with company counts. Results are ordered by company count descending — most used first. Kostet 1 Credit.
|
|
601
|
-
*
|
|
602
|
-
* @tags Oenace
|
|
603
|
-
* @name V1OenaceList
|
|
604
|
-
* @summary OeNACE classification catalog
|
|
605
|
-
* @request GET:/api/v1/oenace
|
|
606
|
-
* @secure
|
|
607
|
-
*/
|
|
608
|
-
v1OenaceList: (query, params = {}) => this.request({
|
|
609
|
-
path: `/api/v1/oenace`,
|
|
610
|
-
method: "GET",
|
|
611
|
-
query: query,
|
|
612
|
-
secure: true,
|
|
613
|
-
format: "json",
|
|
614
|
-
...params,
|
|
615
|
-
}),
|
|
616
|
-
/**
|
|
617
|
-
* @description Returns all legal forms with pagination and optional search, sorted by business count descending. Kostet 1 Credit.
|
|
618
|
-
*
|
|
619
|
-
* @tags LegalForms
|
|
620
|
-
* @name V1LegalformsList
|
|
621
|
-
* @summary Legal form catalog
|
|
622
|
-
* @request GET:/api/v1/legalforms
|
|
623
|
-
* @secure
|
|
624
|
-
*/
|
|
625
|
-
v1LegalformsList: (query, params = {}) => this.request({
|
|
626
|
-
path: `/api/v1/legalforms`,
|
|
627
|
-
method: "GET",
|
|
628
|
-
query: query,
|
|
629
|
-
secure: true,
|
|
630
|
-
format: "json",
|
|
631
|
-
...params,
|
|
632
|
-
}),
|
|
633
|
-
/**
|
|
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.
|
|
635
|
-
*
|
|
636
|
-
* @tags Graph
|
|
637
|
-
* @name V1GraphList
|
|
638
|
-
* @summary Relationship graph
|
|
639
|
-
* @request GET:/api/v1/graph
|
|
640
|
-
* @secure
|
|
641
|
-
*/
|
|
642
|
-
v1GraphList: (query, params = {}) => this.request({
|
|
643
|
-
path: `/api/v1/graph`,
|
|
644
|
-
method: "GET",
|
|
645
|
-
query: query,
|
|
646
|
-
secure: true,
|
|
647
|
-
format: "json",
|
|
648
|
-
...params,
|
|
649
|
-
}),
|
|
650
|
-
/**
|
|
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.
|
|
652
|
-
*
|
|
653
|
-
* @tags GlobalChanges
|
|
654
|
-
* @name V1GlobalchangesList
|
|
655
|
-
* @summary All-register change feed
|
|
656
|
-
* @request GET:/api/v1/globalchanges
|
|
657
|
-
* @secure
|
|
658
|
-
*/
|
|
659
|
-
v1GlobalchangesList: (query, params = {}) => this.request({
|
|
660
|
-
path: `/api/v1/globalchanges`,
|
|
661
|
-
method: "GET",
|
|
662
|
-
query: query,
|
|
663
|
-
secure: true,
|
|
664
|
-
format: "json",
|
|
665
|
-
...params,
|
|
666
|
-
}),
|
|
667
|
-
/**
|
|
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.
|
|
669
|
-
*
|
|
670
|
-
* @tags GlobalChanges
|
|
671
|
-
* @name V1GlobalchangesAggregatedList
|
|
672
|
-
* @summary Aggregated watchlist changes
|
|
673
|
-
* @request GET:/api/v1/globalchanges/aggregated
|
|
674
|
-
* @secure
|
|
675
|
-
*/
|
|
676
|
-
v1GlobalchangesAggregatedList: (query, params = {}) => this.request({
|
|
677
|
-
path: `/api/v1/globalchanges/aggregated`,
|
|
678
|
-
method: "GET",
|
|
679
|
-
query: query,
|
|
680
|
-
secure: true,
|
|
681
|
-
format: "json",
|
|
682
|
-
...params,
|
|
683
|
-
}),
|
|
684
|
-
/**
|
|
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.
|
|
686
|
-
*
|
|
687
|
-
* @tags GlobalChanges
|
|
688
|
-
* @name V1GlobalchangesDetail
|
|
689
|
-
* @summary Change by id
|
|
690
|
-
* @request GET:/api/v1/globalchanges/{id}
|
|
691
|
-
* @secure
|
|
692
|
-
*/
|
|
693
|
-
v1GlobalchangesDetail: (id, params = {}) => this.request({
|
|
694
|
-
path: `/api/v1/globalchanges/${id}`,
|
|
695
|
-
method: "GET",
|
|
696
|
-
secure: true,
|
|
697
|
-
format: "json",
|
|
698
|
-
...params,
|
|
699
|
-
}),
|
|
700
540
|
/**
|
|
701
541
|
* @description Kostet 1 Credit.
|
|
702
542
|
*
|
|
@@ -764,47 +604,32 @@ class Api extends HttpClient {
|
|
|
764
604
|
...params,
|
|
765
605
|
}),
|
|
766
606
|
/**
|
|
767
|
-
* @description
|
|
768
|
-
*
|
|
769
|
-
* @tags Documents
|
|
770
|
-
* @name V1DocumentsDownloadDetail
|
|
771
|
-
* @summary Firmenbuch document download
|
|
772
|
-
* @request GET:/api/v1/documents/download/{documentKey}
|
|
773
|
-
* @secure
|
|
774
|
-
*/
|
|
775
|
-
v1DocumentsDownloadDetail: (documentKey, params = {}) => this.request({
|
|
776
|
-
path: `/api/v1/documents/download/${documentKey}`,
|
|
777
|
-
method: "GET",
|
|
778
|
-
secure: true,
|
|
779
|
-
...params,
|
|
780
|
-
}),
|
|
781
|
-
/**
|
|
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.
|
|
607
|
+
* @description Returns (id, name) pairs for all people with at least one business assignment. For client-side name index. id is the person's Firmenakte-ID, e.g. "P-7K3M-QX91". Kostet 1 Credit.
|
|
783
608
|
*
|
|
784
|
-
* @tags
|
|
785
|
-
* @name
|
|
786
|
-
* @summary
|
|
787
|
-
* @request GET:/api/v1/
|
|
609
|
+
* @tags People
|
|
610
|
+
* @name V1PeopleNamesList
|
|
611
|
+
* @summary Person name index
|
|
612
|
+
* @request GET:/api/v1/people/names
|
|
788
613
|
* @secure
|
|
789
614
|
*/
|
|
790
|
-
|
|
791
|
-
path: `/api/v1/
|
|
615
|
+
v1PeopleNamesList: (params = {}) => this.request({
|
|
616
|
+
path: `/api/v1/people/names`,
|
|
792
617
|
method: "GET",
|
|
793
618
|
secure: true,
|
|
794
619
|
format: "json",
|
|
795
620
|
...params,
|
|
796
621
|
}),
|
|
797
622
|
/**
|
|
798
|
-
* @description
|
|
623
|
+
* @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. Combine with fnr or businessName to get the officers of one company, or with functionCode for one role. Each row's id is the person's Firmenakte-ID, the id GET /people/{personId} takes. 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 owners of this year's new Viennese companies are one query: ?businessCity=Wien&businessRegisteredSince_gte=2026-01-01&functionCode=IN&functionCode=KP&functionCode=GS&functionCode=PG 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.
|
|
799
624
|
*
|
|
800
|
-
* @tags
|
|
801
|
-
* @name
|
|
802
|
-
* @summary
|
|
803
|
-
* @request GET:/api/v1/
|
|
625
|
+
* @tags People
|
|
626
|
+
* @name V1PeopleList
|
|
627
|
+
* @summary People search
|
|
628
|
+
* @request GET:/api/v1/people
|
|
804
629
|
* @secure
|
|
805
630
|
*/
|
|
806
|
-
|
|
807
|
-
path: `/api/v1/
|
|
631
|
+
v1PeopleList: (query, params = {}) => this.request({
|
|
632
|
+
path: `/api/v1/people`,
|
|
808
633
|
method: "GET",
|
|
809
634
|
query: query,
|
|
810
635
|
secure: true,
|
|
@@ -812,18 +637,17 @@ class Api extends HttpClient {
|
|
|
812
637
|
...params,
|
|
813
638
|
}),
|
|
814
639
|
/**
|
|
815
|
-
* @description Returns
|
|
640
|
+
* @description Returns one person with every company function, GISA licence and Edikt attached to them. personId is the person's Firmenakte-ID as the glossary describes it, e.g. "P-7K3M-QX91", the id every list row, assignment and graph node carries. Take it from there rather than composing it yourself. Only that spelling answers. Any other spelling of the same Firmenakte-ID ("p7k3mqx91"), and the "vorname-nachname-…" id people carried before, answer one 308 whose relative Location is the canonical form. A Firmenakte-ID with a wrong check character, and an id nobody holds, answer 404; so does the bucket every nameless assignment in the register lands in, which is not a person. Kostet 1 Credit.
|
|
816
641
|
*
|
|
817
|
-
* @tags
|
|
818
|
-
* @name
|
|
819
|
-
* @summary
|
|
820
|
-
* @request GET:/api/v1/
|
|
642
|
+
* @tags People
|
|
643
|
+
* @name V1PeopleDetail
|
|
644
|
+
* @summary Person detail
|
|
645
|
+
* @request GET:/api/v1/people/{personId}
|
|
821
646
|
* @secure
|
|
822
647
|
*/
|
|
823
|
-
|
|
824
|
-
path: `/api/v1/
|
|
648
|
+
v1PeopleDetail: (personId, params = {}) => this.request({
|
|
649
|
+
path: `/api/v1/people/${personId}`,
|
|
825
650
|
method: "GET",
|
|
826
|
-
query: query,
|
|
827
651
|
secure: true,
|
|
828
652
|
format: "json",
|
|
829
653
|
...params,
|
|
@@ -847,7 +671,7 @@ class Api extends HttpClient {
|
|
|
847
671
|
...params,
|
|
848
672
|
}),
|
|
849
673
|
/**
|
|
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. Kostet 1 Credit.
|
|
674
|
+
* @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: the PLZ names a Gemeinde, and state is that Gemeinde's Land, so the Innviertel PLZ 5120–5399 are in Oberösterreich. 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. Kostet 1 Credit.
|
|
851
675
|
*
|
|
852
676
|
* @tags Businesses
|
|
853
677
|
* @name V1BusinessesList
|
|
@@ -979,7 +803,7 @@ class Api extends HttpClient {
|
|
|
979
803
|
...params,
|
|
980
804
|
}),
|
|
981
805
|
/**
|
|
982
|
-
* @description Every parsed Jahresabschluss of one company, one entry per
|
|
806
|
+
* @description Every parsed Jahresabschluss of one company, one entry per fiscal closing date, newest first. The Firmenakte itself (GET /businesses/{fnr}) carries only the last five periods. 404 only where the company itself is unknown, exactly as on GET /businesses/{fnr}. Kostet 1 Credit.
|
|
983
807
|
*
|
|
984
808
|
* @tags Businesses
|
|
985
809
|
* @name V1BusinessesJahresabschluesseList
|
|
@@ -1043,22 +867,6 @@ class Api extends HttpClient {
|
|
|
1043
867
|
format: "json",
|
|
1044
868
|
...params,
|
|
1045
869
|
}),
|
|
1046
|
-
/**
|
|
1047
|
-
* @description Returns all assignment functions (code/text lookup) for display. Cached 24h. Kostet 1 Credit.
|
|
1048
|
-
*
|
|
1049
|
-
* @tags AssignmentFunctions
|
|
1050
|
-
* @name V1AssignmentfunctionsList
|
|
1051
|
-
* @summary Assignment function catalog
|
|
1052
|
-
* @request GET:/api/v1/assignmentfunctions
|
|
1053
|
-
* @secure
|
|
1054
|
-
*/
|
|
1055
|
-
v1AssignmentfunctionsList: (params = {}) => this.request({
|
|
1056
|
-
path: `/api/v1/assignmentfunctions`,
|
|
1057
|
-
method: "GET",
|
|
1058
|
-
secure: true,
|
|
1059
|
-
format: "json",
|
|
1060
|
-
...params,
|
|
1061
|
-
}),
|
|
1062
870
|
/**
|
|
1063
871
|
* @description Returns unique City+ZipCode combinations from addresses with pagination and optional search. Kostet 1 Credit.
|
|
1064
872
|
*
|
|
@@ -1127,6 +935,221 @@ class Api extends HttpClient {
|
|
|
1127
935
|
format: "json",
|
|
1128
936
|
...params,
|
|
1129
937
|
}),
|
|
938
|
+
/**
|
|
939
|
+
* @description The Gemeinde catalogue: one row per Austrian Gemeinde the register can address, with its official name, its URL slug, its Bundesland and that Land's slug, the PLZ that resolve to it, the alias slugs that name it and, for Wien, its Bezirke. 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.
|
|
940
|
+
*
|
|
941
|
+
* @tags Addresses
|
|
942
|
+
* @name V1AddressesGemeindenList
|
|
943
|
+
* @summary Gemeinden
|
|
944
|
+
* @request GET:/api/v1/addresses/gemeinden
|
|
945
|
+
* @secure
|
|
946
|
+
*/
|
|
947
|
+
v1AddressesGemeindenList: (params = {}) => this.request({
|
|
948
|
+
path: `/api/v1/addresses/gemeinden`,
|
|
949
|
+
method: "GET",
|
|
950
|
+
secure: true,
|
|
951
|
+
format: "json",
|
|
952
|
+
...params,
|
|
953
|
+
}),
|
|
954
|
+
/**
|
|
955
|
+
* @description Downloads a Firmenbuch document (PDF/XML) by its document key. Kostet 3 Credits.
|
|
956
|
+
*
|
|
957
|
+
* @tags Documents
|
|
958
|
+
* @name V1DocumentsDownloadDetail
|
|
959
|
+
* @summary Firmenbuch document download
|
|
960
|
+
* @request GET:/api/v1/documents/download/{documentKey}
|
|
961
|
+
* @secure
|
|
962
|
+
*/
|
|
963
|
+
v1DocumentsDownloadDetail: (documentKey, params = {}) => this.request({
|
|
964
|
+
path: `/api/v1/documents/download/${documentKey}`,
|
|
965
|
+
method: "GET",
|
|
966
|
+
secure: true,
|
|
967
|
+
...params,
|
|
968
|
+
}),
|
|
969
|
+
/**
|
|
970
|
+
* @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.
|
|
971
|
+
*
|
|
972
|
+
* @tags Documents
|
|
973
|
+
* @name V1DocumentsChangesDetail
|
|
974
|
+
* @summary Document change by id
|
|
975
|
+
* @request GET:/api/v1/documents/changes/{id}
|
|
976
|
+
* @secure
|
|
977
|
+
*/
|
|
978
|
+
v1DocumentsChangesDetail: (id, params = {}) => this.request({
|
|
979
|
+
path: `/api/v1/documents/changes/${id}`,
|
|
980
|
+
method: "GET",
|
|
981
|
+
secure: true,
|
|
982
|
+
format: "json",
|
|
983
|
+
...params,
|
|
984
|
+
}),
|
|
985
|
+
/**
|
|
986
|
+
* @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.
|
|
987
|
+
*
|
|
988
|
+
* @tags Documents
|
|
989
|
+
* @name V1DocumentsChangesList
|
|
990
|
+
* @summary Document change feed
|
|
991
|
+
* @request GET:/api/v1/documents/changes
|
|
992
|
+
* @secure
|
|
993
|
+
*/
|
|
994
|
+
v1DocumentsChangesList: (query, params = {}) => this.request({
|
|
995
|
+
path: `/api/v1/documents/changes`,
|
|
996
|
+
method: "GET",
|
|
997
|
+
query: query,
|
|
998
|
+
secure: true,
|
|
999
|
+
format: "json",
|
|
1000
|
+
...params,
|
|
1001
|
+
}),
|
|
1002
|
+
/**
|
|
1003
|
+
* @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. Kostet 1 Credit.
|
|
1004
|
+
*
|
|
1005
|
+
* @tags Search
|
|
1006
|
+
* @name V1SearchList
|
|
1007
|
+
* @summary Companies and people in one ranked list
|
|
1008
|
+
* @request GET:/api/v1/search
|
|
1009
|
+
* @secure
|
|
1010
|
+
*/
|
|
1011
|
+
v1SearchList: (query, params = {}) => this.request({
|
|
1012
|
+
path: `/api/v1/search`,
|
|
1013
|
+
method: "GET",
|
|
1014
|
+
query: query,
|
|
1015
|
+
secure: true,
|
|
1016
|
+
format: "json",
|
|
1017
|
+
...params,
|
|
1018
|
+
}),
|
|
1019
|
+
/**
|
|
1020
|
+
* @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} — a person's is the Firmenakte-ID, e.g. "P-7K3M-QX91"; 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. personId answers on the canonical Firmenakte-ID; another spelling of it and a person's old "vorname-nachname-…" id answer one 308 whose relative Location carries the canonical form. Kostet 3 Credits.
|
|
1021
|
+
*
|
|
1022
|
+
* @tags Graph
|
|
1023
|
+
* @name V1GraphList
|
|
1024
|
+
* @summary Relationship graph
|
|
1025
|
+
* @request GET:/api/v1/graph
|
|
1026
|
+
* @secure
|
|
1027
|
+
*/
|
|
1028
|
+
v1GraphList: (query, params = {}) => this.request({
|
|
1029
|
+
path: `/api/v1/graph`,
|
|
1030
|
+
method: "GET",
|
|
1031
|
+
query: query,
|
|
1032
|
+
secure: true,
|
|
1033
|
+
format: "json",
|
|
1034
|
+
...params,
|
|
1035
|
+
}),
|
|
1036
|
+
/**
|
|
1037
|
+
* @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.
|
|
1038
|
+
*
|
|
1039
|
+
* @tags GlobalChanges
|
|
1040
|
+
* @name V1GlobalchangesList
|
|
1041
|
+
* @summary All-register change feed
|
|
1042
|
+
* @request GET:/api/v1/globalchanges
|
|
1043
|
+
* @secure
|
|
1044
|
+
*/
|
|
1045
|
+
v1GlobalchangesList: (query, params = {}) => this.request({
|
|
1046
|
+
path: `/api/v1/globalchanges`,
|
|
1047
|
+
method: "GET",
|
|
1048
|
+
query: query,
|
|
1049
|
+
secure: true,
|
|
1050
|
+
format: "json",
|
|
1051
|
+
...params,
|
|
1052
|
+
}),
|
|
1053
|
+
/**
|
|
1054
|
+
* @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.
|
|
1055
|
+
*
|
|
1056
|
+
* @tags GlobalChanges
|
|
1057
|
+
* @name V1GlobalchangesAggregatedList
|
|
1058
|
+
* @summary Aggregated watchlist changes
|
|
1059
|
+
* @request GET:/api/v1/globalchanges/aggregated
|
|
1060
|
+
* @secure
|
|
1061
|
+
*/
|
|
1062
|
+
v1GlobalchangesAggregatedList: (query, params = {}) => this.request({
|
|
1063
|
+
path: `/api/v1/globalchanges/aggregated`,
|
|
1064
|
+
method: "GET",
|
|
1065
|
+
query: query,
|
|
1066
|
+
secure: true,
|
|
1067
|
+
format: "json",
|
|
1068
|
+
...params,
|
|
1069
|
+
}),
|
|
1070
|
+
/**
|
|
1071
|
+
* @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.
|
|
1072
|
+
*
|
|
1073
|
+
* @tags GlobalChanges
|
|
1074
|
+
* @name V1GlobalchangesDetail
|
|
1075
|
+
* @summary Change by id
|
|
1076
|
+
* @request GET:/api/v1/globalchanges/{id}
|
|
1077
|
+
* @secure
|
|
1078
|
+
*/
|
|
1079
|
+
v1GlobalchangesDetail: (id, params = {}) => this.request({
|
|
1080
|
+
path: `/api/v1/globalchanges/${id}`,
|
|
1081
|
+
method: "GET",
|
|
1082
|
+
secure: true,
|
|
1083
|
+
format: "json",
|
|
1084
|
+
...params,
|
|
1085
|
+
}),
|
|
1086
|
+
/**
|
|
1087
|
+
* @description Returns the OeNACE classification catalog with company counts. Results are ordered by company count descending — most used first. Kostet 1 Credit.
|
|
1088
|
+
*
|
|
1089
|
+
* @tags Oenace
|
|
1090
|
+
* @name V1OenaceList
|
|
1091
|
+
* @summary OeNACE classification catalog
|
|
1092
|
+
* @request GET:/api/v1/oenace
|
|
1093
|
+
* @secure
|
|
1094
|
+
*/
|
|
1095
|
+
v1OenaceList: (query, params = {}) => this.request({
|
|
1096
|
+
path: `/api/v1/oenace`,
|
|
1097
|
+
method: "GET",
|
|
1098
|
+
query: query,
|
|
1099
|
+
secure: true,
|
|
1100
|
+
format: "json",
|
|
1101
|
+
...params,
|
|
1102
|
+
}),
|
|
1103
|
+
/**
|
|
1104
|
+
* @description Returns all legal forms with pagination and optional search, sorted by business count descending. Kostet 1 Credit.
|
|
1105
|
+
*
|
|
1106
|
+
* @tags LegalForms
|
|
1107
|
+
* @name V1LegalformsList
|
|
1108
|
+
* @summary Legal form catalog
|
|
1109
|
+
* @request GET:/api/v1/legalforms
|
|
1110
|
+
* @secure
|
|
1111
|
+
*/
|
|
1112
|
+
v1LegalformsList: (query, params = {}) => this.request({
|
|
1113
|
+
path: `/api/v1/legalforms`,
|
|
1114
|
+
method: "GET",
|
|
1115
|
+
query: query,
|
|
1116
|
+
secure: true,
|
|
1117
|
+
format: "json",
|
|
1118
|
+
...params,
|
|
1119
|
+
}),
|
|
1120
|
+
/**
|
|
1121
|
+
* @description Returns all courts with pagination and optional search, sorted by business count descending. Kostet 1 Credit.
|
|
1122
|
+
*
|
|
1123
|
+
* @tags Courts
|
|
1124
|
+
* @name V1CourtsList
|
|
1125
|
+
* @summary Court catalog
|
|
1126
|
+
* @request GET:/api/v1/courts
|
|
1127
|
+
* @secure
|
|
1128
|
+
*/
|
|
1129
|
+
v1CourtsList: (query, params = {}) => this.request({
|
|
1130
|
+
path: `/api/v1/courts`,
|
|
1131
|
+
method: "GET",
|
|
1132
|
+
query: query,
|
|
1133
|
+
secure: true,
|
|
1134
|
+
format: "json",
|
|
1135
|
+
...params,
|
|
1136
|
+
}),
|
|
1137
|
+
/**
|
|
1138
|
+
* @description Returns all assignment functions (code/text lookup) for display. Cached 24h. Kostet 1 Credit.
|
|
1139
|
+
*
|
|
1140
|
+
* @tags AssignmentFunctions
|
|
1141
|
+
* @name V1AssignmentfunctionsList
|
|
1142
|
+
* @summary Assignment function catalog
|
|
1143
|
+
* @request GET:/api/v1/assignmentfunctions
|
|
1144
|
+
* @secure
|
|
1145
|
+
*/
|
|
1146
|
+
v1AssignmentfunctionsList: (params = {}) => this.request({
|
|
1147
|
+
path: `/api/v1/assignmentfunctions`,
|
|
1148
|
+
method: "GET",
|
|
1149
|
+
secure: true,
|
|
1150
|
+
format: "json",
|
|
1151
|
+
...params,
|
|
1152
|
+
}),
|
|
1130
1153
|
};
|
|
1131
1154
|
}
|
|
1132
1155
|
}
|