Alapfogalmak
Amit egyszer meg kell értened ahhoz, hogy minden választ magabiztosan kezelj.
Nyolc fogalom hordozza az egész API-t. Ha ismered őket, minden választ helyesen olvasol, és előre tudod, mennyibe kerül egy kérés.
Cégek egyértelmű azonosítása
A fetch-organization q paramétere háromféle bemenetet fogad. Az oldal példái a Hetzner Online GmbH-ra (Ansbach HRB 6089) vonatkozó kérések:
| Bemenet | Példa | Mikor illik |
|---|---|---|
| Cégnév |
Hetzner Online GmbH |
Kezdéshez. Írd a nevet olyan teljesen, ahogy a nyilvántartásban szerepel. |
| Cégbíróság és cégjegyzékszám |
Ansbach HRB 6089 |
Minden bejegyzett cégnél egyedi. A bíróság, a nyilvántartás típusa és a szám együtt alkot egységet. |
| entity_id |
94eb910fef13f94585c48c263fa446d4 |
További kérésekhez. Minden válaszban megkapod. |
A cégjegyzékszám önmagában nem elég, mert minden cégbíróság saját számokat oszt ki. A sorrend viszont tetszőleges: a példában a HRB 6089 Ansbach ugyanazt a céget találja meg.
curl -G "https://handelsregister.ai/api/v1/fetch-organization" \ -H "x-api-key: AZ_API_KULCSOD" \ --data-urlencode 'q=Ansbach HRB 6089'
import requests response = requests.get( "https://handelsregister.ai/api/v1/fetch-organization", headers={"x-api-key": "AZ_API_KULCSOD"}, params={ "q": "Ansbach HRB 6089", }, ) data = response.json()
const url = new URL("https://handelsregister.ai/api/v1/fetch-organization"); url.searchParams.append("q", "Ansbach HRB 6089"); const response = await fetch(url, { headers: { "x-api-key": "AZ_API_KULCSOD" }, }); const data = await response.json();
entity_id alapján.
Ha az API nem talál céget, 404-gyel válaszol, és semmit nem számol fel. Pontatlan bemenethez ott az AI mód (ai_search=on-default): a névtöredékekből is megtalálja a céget, és utánanéz a weben. 20 extra kreditbe kerül, akkor is, ha nem talál céget. Ha egyszerre több jelöltet szeretnél, használd a Keresés és exportot.
Funkciók
Minden cégprofil tartalmazza az alapadatokat, köztük a nevet, a jogi formát, a státuszt, a nyilvántartási bejegyzést, a címet, a tevékenységi kört, az iparágat, a tőkét és a képviseleti szabályokat. Minden mást funkcióként kérsz, például related_persons az ügyvezetőkhöz vagy financial_kpi a pénzügyi KPI-khoz.
Több funkciót ismételt feature paraméterrel vagy listaként adsz meg: features=related_persons,financial_kpi. Minden funkció a saját kulcsa alatt jelenik meg a válaszban. Csak a publications neve ott history.
curl -G "https://handelsregister.ai/api/v1/fetch-organization" \ -H "x-api-key: AZ_API_KULCSOD" \ --data-urlencode 'q=Hetzner Online GmbH' \ --data-urlencode 'feature=related_persons' \ --data-urlencode 'feature=financial_kpi'
import requests response = requests.get( "https://handelsregister.ai/api/v1/fetch-organization", headers={"x-api-key": "AZ_API_KULCSOD"}, params={ "q": "Hetzner Online GmbH", "feature": ["related_persons", "financial_kpi"], }, ) data = response.json()
const url = new URL("https://handelsregister.ai/api/v1/fetch-organization"); url.searchParams.append("q", "Hetzner Online GmbH"); url.searchParams.append("feature", "related_persons"); url.searchParams.append("feature", "financial_kpi"); const response = await fetch(url, { headers: { "x-api-key": "AZ_API_KULCSOD" }, }); const data = await response.json();
Az API az ismeretlen neveket hibaüzenet nélkül figyelmen kívül hagyja, ezért ellenőrizd a helyesírást. A csomagodban nem szereplő funkciók kimaradnak, és nem számoljuk fel őket.
Az összes funkció az árával a fetch-organization oldalon, minden mező az Adatkatalógusban található.
Kreditek
Az adatlekérések kreditbe kerülnek. Cégprofilnál ezek a szabályok érvényesek:
- A 5 kredites alapár akkor érvényes, ha az API visszaad egy céget.
- Egy funkció csak akkor kerül kreditbe, ha adatot ad vissza a válaszban. Az üres funkció ingyenes, a bejegyzések nélküli
insolvency_publicationsis. - A valós idejű mód és az AI mód nem funkció, hanem saját szabályokkal működő felár:
- A valós idejű mód 10 extra kreditbe kerül, amint az élő lekérés sikerül. Ez akkor is érvényes, ha semmi újat nem mutat.
- Az AI mód 20 extra kreditbe kerül, akkor is, ha nem talál céget. A felár csak akkor marad el, ha az API 408-cal megszakítja a kérést, mert túl sokáig tart.
- Minden más hiba ingyenes.
Az egyes funkciók szabálya az Elszámolás oldalon, az árak a fetch-organization oldalon vannak.
Egy példa: az alapadatok related_persons-szal és financial_kpi-val 5 + 2 + 1 = 8 kreditbe kerülnek, ha mindkét funkció ad vissza adatot.
Minden kérés előtt az API ellenőrzi, hogy az egyenleged fedezi-e a lehető legmagasabb árat. Ha nem, 402-vel válaszol, és semmit nem számol fel. A ténylegesen felszámított összeg a meta.request_credit_cost, az utána megmaradt egyenleged a meta.credits_remaining mezőben van.
1{2 "meta": {3 "request_credit_cost": 5,4 "credits_remaining": 1455 }6}
Krediteket kezdő kreditként, kredit-előfizetéssel havonta, vagy egyszeri feltöltött kreditként kapsz. Kredit-előfizetés nélkül a kezdő és a feltöltött kreditek 30 napig érvényesek; aktív előfizetés mellett nem járnak le. Minden más az Elszámolás oldalon.
Aktuális adatok és valós idejű mód
Alapértelmezésként a cégprofil az adatbázisunkból származik. Hogy egy információ mennyire friss, az a forrásától függ.
Handelsregister
Az alapadatokat, a személyeket és a nyilvántartási közleményeket a nyilvántartásból folyamatosan frissen tartjuk az adatbázisunkban. Ez gyors, és a legtöbb célra elég.
Valós idejű móddal (realtime_mode=handelsregister-default) az API a kérésed pillanatában élőben lekéri az Aktueller Abdruck (AD, aktuális kivonat) dokumentumot a Handelsregisterből (német cégnyilvántartás), és JSON-ként adja vissza. A jelenleg bejegyzett személyeket is megkapod a related_persons.current alatt, anélkül hogy a funkcióért fizetnél.
Hogy az élő lekérés sikerült-e, a _realtime_mode.status mutatja. A valós idejű mód 10 kreditjét csak success esetén számoljuk fel.
curl -G "https://handelsregister.ai/api/v1/fetch-organization" \ -H "x-api-key: AZ_API_KULCSOD" \ --data-urlencode 'q=Hetzner Online GmbH' \ --data-urlencode 'realtime_mode=handelsregister-default'
import requests response = requests.get( "https://handelsregister.ai/api/v1/fetch-organization", headers={"x-api-key": "AZ_API_KULCSOD"}, params={ "q": "Hetzner Online GmbH", "realtime_mode": "handelsregister-default", }, ) data = response.json()
const url = new URL("https://handelsregister.ai/api/v1/fetch-organization"); url.searchParams.append("q", "Hetzner Online GmbH"); url.searchParams.append("realtime_mode", "handelsregister-default"); const response = await fetch(url, { headers: { "x-api-key": "AZ_API_KULCSOD" }, }); const data = await response.json();
1{2 "name": "Hetzner Online GmbH",3 "_realtime_mode": {4 "mode": "handelsregister-default",5 "status": "success"6 },7 "related_persons": {8 "current": [9 {10 "entity_id": "78ad32e16ff779f589a9e88d23356f74",11 "label": "MANAGING_DIRECTOR",12 "role": {13 "en": {14 "long": "Managing Director",15 "short": "MD"16 },17 "de": {18 "long": "Geschäftsführer",19 "short": "GF"20 }21 },22 "name": "Max Mustermann",23 "name_parts": {24 "given": "Max",25 "family": "Mustermann",26 "maiden": null,27 "canonical_name": "Mustermann, Max",28 "aliases": [29 "Mustermann, Max"30 ],31 "previous_names": null32 },33 "start_date": null,34 "end_date": null,35 "birth_date": "1976-01-15",36 "location": {37 "home": {38 "city": "Musterheim"39 }40 },41 "organization_representation_scheme": {42 "current": [43 "Ist nur ein Geschäftsführer bestellt, so vertritt er die Gesellschaft allein. Sind mehrere Geschäftsführer bestellt, so wird die Gesellschaft durch zwei Geschäftsführer oder durch einen Geschäftsführer gemeinsam mit einem Prokuristen vertreten."44 ],45 "history": []46 },47 "role_representation_scheme": {48 "current": [49 "einzelvertretungsberechtigt",50 "mit der Befugnis, im Namen der Gesellschaft mit sich im eigenen Namen oder als Vertreter eines Dritten Rechtsgeschäfte abzuschließen"51 ],52 "history": []53 }54 },55 {56 "entity_id": "73549375ff7d709b9e7e2941ad1ffaa3",57 "label": "MANAGING_DIRECTOR",58 "role": {59 "en": {60 "long": "Managing Director",61 "short": "MD"62 },63 "de": {64 "long": "Geschäftsführer",65 "short": "GF"66 }67 },68 "name": "Paul Musterwald",69 "name_parts": {70 "given": "Paul",71 "family": "Musterwald",72 "maiden": null,73 "canonical_name": "Musterwald, Paul",74 "aliases": [75 "Musterwald, Paul"76 ],77 "previous_names": null78 },79 "start_date": null,80 "end_date": null,81 "birth_date": "1989-07-18",82 "location": {83 "home": {84 "city": "Probebrück"85 }86 },87 "organization_representation_scheme": {88 "current": [89 "Ist nur ein Geschäftsführer bestellt, so vertritt er die Gesellschaft allein. Sind mehrere Geschäftsführer bestellt, so wird die Gesellschaft durch zwei Geschäftsführer oder durch einen Geschäftsführer gemeinsam mit einem Prokuristen vertreten."90 ],91 "history": []92 },93 "role_representation_scheme": {94 "current": [95 "einzelvertretungsberechtigt"96 ],97 "history": []98 }99 },100 {101 "entity_id": "cfecded2c1d17946c8ab0379aa786eed",102 "label": "MANAGING_DIRECTOR",103 "role": {104 "en": {105 "long": "Managing Director",106 "short": "MD"107 },108 "de": {109 "long": "Geschäftsführer",110 "short": "GF"111 }112 },113 "name": "Jan Musterhuber",114 "name_parts": {115 "given": "Jan",116 "family": "Musterhuber",117 "maiden": null,118 "canonical_name": "Musterhuber, Jan",119 "aliases": [120 "Musterhuber, Jan"121 ],122 "previous_names": null123 },124 "start_date": null,125 "end_date": null,126 "birth_date": "1955-11-06",127 "location": {128 "home": {129 "city": "Probeingen"130 }131 },132 "organization_representation_scheme": {133 "current": [134 "Ist nur ein Geschäftsführer bestellt, so vertritt er die Gesellschaft allein. Sind mehrere Geschäftsführer bestellt, so wird die Gesellschaft durch zwei Geschäftsführer oder durch einen Geschäftsführer gemeinsam mit einem Prokuristen vertreten."135 ],136 "history": []137 },138 "role_representation_scheme": {139 "current": [140 "einzelvertretungsberechtigt"141 ],142 "history": []143 }144 }145 ]146 },147 "meta": {148 "request_credit_cost": 15,149 "credits_remaining": 145150 }151}
Ha az élő lekérés nem sikerül, az API az adatbázisunkban tárolt adatokat adja vissza. Ezt a _realtime_mode.status mutatja, ilyenkor nem success. A valós idejű módot ekkor nem számoljuk fel, ahogy a meta.request_credit_cost is mutatja.
A valós idejű mód akkor éri meg, ha a mai állapot számít. Például új üzleti partnereket ellenőrzöl aláírás előtt, vagy látni akarod, ki képviselheti most a céget.
Éves beszámolók
Naponta keressük az újonnan közzétett éves beszámolókat. A cégeknek azonban az üzleti év vége után legfeljebb tizenkét hónapjuk van a közzétételre (§ 325 HGB), és sokan ki is használják a teljes határidőt. Egyes cégek szándékosan elmulasztják a törvényes határidőt, és még később tesznek közzé.
A legfrissebb beszámoló ezért gyakran a tavalyelőtti évre vonatkozik. Bővebben: Frissesség.
Fizetésképtelenségi közzétételek
A csődbíróságok közleményeiket általában a döntés napján vagy röviddel utána teszik közzé. Az insolvency_publications funkcióval kapod meg őket, mindegyiket bírósággal, ügyszámmal és dátummal.
Hírek
A news funkció a webről ad vissza híreket a cégről, címmel, forrással, dátummal és linkkel. Hogy mennyire frissek, az attól függ, mikor írtak utoljára a cégről. Kis cégekről gyakran csak kevés releváns hír van.
Előzmények és érvényesség
Sok adat idővel változik. Az API ezért az aktuális állapotot és az előzményeket egymás mellett adja vissza:
- A
currenta mai állapot. - A
historyminden bejegyzett állapotot felsoroleffective_froméseffective_tomezővel. Ha azeffective_toértékenull, az állapot ma is érvényes. - A személyek a
related_persons.currentés arelated_persons.pastalatt vannak, mindegyikstart_dateésend_datemezővel.
Minden előzményekkel rendelkező adat a nyilvántartásokból és a közzétételekből származik, például a Handelsregister Chronologischer Abdruck (CD, kronologikus kivonat) dokumentumából vagy az összes közzétett éves beszámolóból.
Így néz ki a példánkban a Hetzner Online GmbH képviseleti szabályainál. A példaválaszban 2015. július 28-ig az igazgatóságot, azóta az ügyvezetőket nevezik meg:
1{2 "representation_scheme": {3 "current": [4 "Ist nur ein Geschäftsführer bestellt, so vertritt er die Gesellschaft allein. Sind mehrere Geschäftsführer bestellt, so wird die Gesellschaft durch zwei Geschäftsführer oder durch einen Geschäftsführer gemeinsam mit einem Prokuristen vertreten."5 ],6 "history": [7 {8 "value": [9 "Ist nur ein Vorstandsmitglied bestellt, so vertritt es die Gesellschaft allein. Sind mehrere Vorstandsmitglieder bestellt, so wird die Gesellschaft durch zwei Vorstandsmitglieder oder durch ein Vorstandsmitglied gemeinsam mit einem Prokuristen vertreten."10 ],11 "effective_from": "2002-10-15",12 "effective_to": "2015-07-28"13 },14 {15 "value": [16 "Ist nur ein Geschäftsführer bestellt, so vertritt er die Gesellschaft allein. Sind mehrere Geschäftsführer bestellt, so wird die Gesellschaft durch zwei Geschäftsführer oder durch einen Geschäftsführer gemeinsam mit einem Prokuristen vertreten."17 ],18 "effective_from": "2015-07-28",19 "effective_to": null20 }21 ]22 }23}
A legtöbb dátum YYYY-MM-DD formátumú. Hogy meddig nyúlnak vissza az előzmények, azt a Kor és előzmények írja le.
Üres értékek
Nem minden cégnek van értéke minden mezőben. Az API ezt kétféleképpen jelzi:
null: ennek a mezőnek nincs értéke.[]: a listának nincsenek elemei, például nincsenek fizetésképtelenségi közzétételek.
Az adat nélküli kért funkció null vagy [] értékkel érkezik, és nem kerül semmibe.
1{2 "name": "dm-drogerie markt GmbH + Co. KG",3 "legal_form": "GmbH & Co. KG",4 "contact_data": {5 "website": "https://www.dm.de",6 "phone_number": "+49 721 55920",7 "email": null8 },9 "capital": {10 "current": null,11 "history": []12 },13 "mergers_and_acquisitions": null,14 "insolvency_publications": []15}
A kódodban kezeld egyformán a hiányzó kulcsot, a null-t és a []-t, mert néhány üres objektum []-ként érkezik. A mezőket is a nevük alapján olvasd, mert a kulcsok sorrendje nem rögzített.
Ha egy érték hiányzik, a cégnek általában egyáltalán nem kell közzétennie. Hogy jogi formától és mérettől függően mit ír elő a törvény, azt az Adatok elérhetősége írja le. Néhány adatot szándékosan visszatartunk; ezeknél redacted: true áll.
Stabilitás és verziók
Az API bővítéssel nő. Az új adatok és funkciók új mezőkként érkeznek. Meglévő mezőt soha nem távolítunk el, nem nevezünk át, és sem a típusát, sem a jelentését nem változtatjuk meg. Így minden verzió visszafelé kompatibilis marad.
A meglévő kódot eltörő változások csak új API-verzióban jönnek, például a /v2 alatt. A jelenlegi verzió a /v1 alatt fut.
Ezért a kliensed hagyja figyelmen kívül az ismeretlen mezőket, és az ismeretlen értékeket kezelje általános esetként. Az új mezők és funkciók a Changelogban szerepelnek.
Csomagok
A Cégprofilt, a Dokumentumokat, a Keresés és exportot és a Signalst minden fiókkal használhatod, kredit-előfizetés nélkül is. A kredit-előfizetés havonta új krediteket hoz, és több adatot nyit meg:
| Mit kapsz pluszban | Plus | Pro | Max |
|---|---|---|---|
| Személyprofil: Személyek szerepei és részesedései | benne van | benne van | benne van |
| Keresés és export: Szűrők tulajdonosokra, vezetésre és fizetésképtelenségre | nincs benne | benne van | benne van |
| Cégprofil: Több mint 90 bővített pénzügyi mutató | nincs benne | benne van | benne van |
| Cégprofil: Energiaszolgáltatók tevékenységi beszámolói (§ 6b EnWG) | nincs benne | nincs benne | benne van |
Cégprofil: Részletes tagadatok (shareholders_deep) |
nincs benne | nincs benne | benne van |
Céghálózat (network) |
nincs benne | benne van | benne van |
| Signals: Fizetésképtelenségek | nincs benne | benne van | benne van |
| Signals: Átalakulások és M&A | nincs benne | nincs benne | benne van |
A csomagodon kívüli funkciókat az API hiba nélkül kihagyja, és nem számolja fel. A csomagodon kívüli személyprofilokat és keresőszűrőket 403-mal utasítja el, szintén díjmentesen. A Signalsnál ez a kifejezetten kért témákra vonatkozik; ezek nélkül egyszerűen a csomagod összes témáját kapod.
A csomagok árait és kreditjeit az árak oldalon találod.