Quickstart
Your first company profile in five minutes.
You need an account and a terminal. At the end, you have fetched the company profile of Hetzner Online GmbH with an example request, and you know what the response contains.
Copy your API key
Create a free account and confirm your email address. You get 150 start credits, valid for 30 days.
Your first API key is already waiting for you under Account › API keys. Copy it and treat it like a password.
Every request sends the key in the x-api-key header. The examples use YOUR_API_KEY as a stand-in for it.
Fetch a company profile
Call fetch-organization and pass the company name in the parameter q. Without further parameters, you get the basic data for 5 credits.
Copy the request, insert your key and run it. cURL prints the JSON directly. In Python and JavaScript, the response is then in data. With print(data["name"]) or console.log(data.name) you see the company name.
curl -G "https://handelsregister.ai/api/v1/fetch-organization" \ -H "x-api-key: YOUR_API_KEY" \ --data-urlencode 'q=Hetzner Online GmbH'
import requests response = requests.get( "https://handelsregister.ai/api/v1/fetch-organization", headers={"x-api-key": "YOUR_API_KEY"}, params={ "q": "Hetzner Online GmbH", }, ) data = response.json()
const url = new URL("https://handelsregister.ai/api/v1/fetch-organization"); url.searchParams.append("q", "Hetzner Online GmbH"); const response = await fetch(url, { headers: { "x-api-key": "YOUR_API_KEY" }, }); const data = await response.json();
Read the response
The response is the company profile as JSON. These are the fields you need most often:
| Field | Meaning |
|---|---|
| entity_id | The company’s ID at handelsregister.ai. Store it for follow-up requests. |
| name, legal_form, status |
Company name, legal form and register status, in the example ACTIVE.
|
| registration | Register court, register type and register number, in the example Ansbach HRB 6089. |
| address, seat | Business address with coordinates, plus the registered seat according to the register. |
| purpose, industry_classification | Business purpose and industry according to WZ 2008 and WZ 2025. |
| representation_scheme |
Representation rules: current applies today, history shows every registered state.
|
| meta |
What the request cost (request_credit_cost) and your balance afterwards (credits_remaining).
|
1{2 "entity_id": "94eb910fef13f94585c48c263fa446d4",3 "name": "Hetzner Online GmbH",4 "status": "ACTIVE",5 "legal_form": "GmbH",6 "registration": {7 "court": "Ansbach",8 "register_type": "HRB",9 "register_number": "6089"10 },11 "industry_classification": {12 "WZ2008": [13 {14 "code": "62.01.0",15 "label": "Erbringung von Dienstleistungen der Informationstechnologie"16 },17 {18 "code": "63.11.0",19 "label": "Datenverarbeitung, Hosting und damit verbundene Tätigkeiten"20 },21 {22 "code": "61.90.0",23 "label": "Telekommunikation, sonstige"24 }25 ],26 "WZ2025": [27 {28 "code": "62.20.1",29 "label": "Erbringung von Beratungsleistungen auf dem Gebiet der Informationstechnologie"30 },31 {32 "code": "46.50.1",33 "label": "Großhandel mit Datenverarbeitungsgeräten, peripheren Geräten und Software"34 },35 {36 "code": "62.90.0",37 "label": "Erbringung von sonstigen Dienstleistungen der Informationstechnologie"38 }39 ]40 },41 "address": {42 "house_number": "25",43 "street": "Industriestraße",44 "postal_code": "91710",45 "city": "Gunzenhausen",46 "county": "Weißenburg-Gunzenhausen",47 "state": "Bayern",48 "country": "DEU",49 "coordinates": {50 "latitude": 49.12483,51 "longitude": 10.7805252 }53 },54 "seat": {55 "city": "Gunzenhausen"56 },57 "registration_date": null,58 "representation_scheme": {59 "current": [60 "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."61 ],62 "history": [63 {64 "value": [65 "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."66 ],67 "effective_from": "2002-10-15",68 "effective_to": "2015-07-28"69 },70 {71 "value": [72 "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."73 ],74 "effective_from": "2015-07-28",75 "effective_to": null76 }77 ]78 },79 "purpose": "Die Durchführung von Internet- und Netzwerkdienstleistungen, das Erstellen und Vertreiben von Software, der Handel mit Hard- und Software, der Betrieb einer Werbeagentur,darüber hinaus der Im- und Export von Waren aller Art, soweit sie keiner Einfuhr- oder Ausfuhrbeschränkung unterliegen und soweit keine Genehmigungen erforderlich sind.",80 "meta": {81 "request_credit_cost": 5,82 "credits_remaining": 14583 }84}
With the entity_id, you query the same company directly later. It is also the key for fetch-document and Signals. Register court and register number are just as unique, in the example Ansbach HRB 6089.
curl -G "https://handelsregister.ai/api/v1/fetch-organization" \ -H "x-api-key: YOUR_API_KEY" \ --data-urlencode 'q=94eb910fef13f94585c48c263fa446d4'
import requests response = requests.get( "https://handelsregister.ai/api/v1/fetch-organization", headers={"x-api-key": "YOUR_API_KEY"}, params={ "q": "94eb910fef13f94585c48c263fa446d4", }, ) data = response.json()
const url = new URL("https://handelsregister.ai/api/v1/fetch-organization"); url.searchParams.append("q", "94eb910fef13f94585c48c263fa446d4"); const response = await fetch(url, { headers: { "x-api-key": "YOUR_API_KEY" }, }); const data = await response.json();