Free
Für Prototypen und die API-Evaluierung
- 1.000 Anfragen / Zeitraum
- 60 Anfragen / Minute
- 1 aktive API-Schlüssel
Suchen Sie Unternehmen in normalisiertem JSON und greifen Sie bei Bedarf auf nationale Felder, Datei und Hash der Primärquelle zurück.
Schnellstart
Alle Datenendpunkte verwenden denselben Authentifizierungsvertrag. Ein SDK ist nicht nötig; ein normaler HTTP-Client genügt.
Öffnen Sie das API-Konto, benennen Sie die Umgebung und speichern Sie das Geheimnis sofort — es wird nicht erneut angezeigt.
API-Konto öffnen →Verwenden Sie X-API-Key oder Bearer. In der API-Konsole sind URL und Parameter bereits korrekt gesetzt.
Die Antwort enthält X-Request-ID. Geben Sie diese ID dem Support zur Analyse einer bestimmten Anfrage.
Authentifizierung
Erstellen Sie getrennte Schlüssel für Produktion, Staging und Analyse. Jeder Schlüssel handelt für das Konto und verbraucht dessen gemeinsames Monatskontingent.
OpenRegister speichert nur einen SHA-256-Hash. Legen Sie das Geheimnis nicht in Query-Strings, Frontend-Bundles, Logs oder öffentlichen Repositorys ab.
X-API-Key Serverintegrationen und Datenanfragen.
Clerk session Konto, Schlüssel und Abonnementverwaltung.
Stripe-Signature Nur signierte Ereignisse von Stripe.
Paginierung
Die Suche wird nach Name und stabiler ID sortiert. Verwenden Sie die Werte aus meta, statt die Seitenzahl im Client zu berechnen.
page1…N Nummer der angeforderten Seite.
pageSize1…100 Standardmäßig werden 25 Datensätze zurückgegeben.
meta.totalinteger Datensatzanzahl für den aktuellen Filter.
meta.pageCountinteger Anzahl der verfügbaren Seiten.
Limits und Kontingente
Das Minutenlimit schützt die API vor Lastspitzen; das Monatskontingent begrenzt den Tarifumfang. Beide Zähler werden nach jeder erfolgreichen Datenanfrage zurückgegeben.
| Header | Wert |
|---|---|
X-RateLimit-Limit | Anfragelimit pro Minute. |
X-RateLimit-Remaining | Verbleibende Anfragen im aktuellen Fenster. |
X-RateLimit-Reset | Unix-Zeitstempel für das Zurücksetzen des Fensters. |
X-Monthly-Quota-Limit | Kontingent des Abrechnungszeitraums. |
X-Monthly-Quota-Remaining | Verbleibende Anfragen im Zeitraum. |
X-Monthly-Quota-Reset | Beginn des neuen Zeitraums im ISO-8601-Format. |
Fehler
Verarbeiten Sie error.code programmatisch und schreiben Sie message in die Logs. requestId verknüpft den Fehler mit der Serveranfrage.
{
"error": {
"code": "invalid_api_key",
"message": "The API key is invalid or revoked",
"requestId": "69a27c71-44ab-4c0c-a95d-1a1ea8da24cc",
"docs": "https://md.hanta.io/docs/api"
}
}invalid_request Parameter oder UUID hat ein ungültiges Format.
api_key_required Der Header mit dem API-Schlüssel fehlt.
invalid_api_key Der Schlüssel ist unbekannt, widerrufen oder beschädigt.
entity_not_found Kein Datensatz mit dieser OpenRegister-ID gefunden.
rate_limit_exceeded Das Minutenlimit des Schlüssels ist ausgeschöpft.
monthly_quota_exceeded Das Kontingent des Abrechnungszeitraums ist ausgeschöpft.
Versionierung
Der aktuelle stabile Vertrag ist /api/v1. Innerhalb von v1 können neue nullable-Felder und Endpunkte hinzukommen; Felder werden jedoch weder entfernt noch ohne neue Version im Typ geändert.
API-Referenz
Alle drei Endpunkte benötigen einen API-Schlüssel und liefern Rate-Limit-Header. Mit „Beispiel anzeigen“ öffnen Sie eine fertige Anfrage in der Konsole.
/countriesDerzeit verfügbare und geplante Register.
Keine Parameter erforderlich.
/entitiesSuche nach Name oder IDNO mit Filtern und stabiler Paginierung.
qstring Teil des Namens oder der Registernummer, unabhängig von Groß- und Kleinschreibung.
countrystring Zweistelliger Ländercode nach ISO 3166-1.
legalFormstring Exakter nationaler Wert der Rechtsform.
activitystring Tätigkeitscode oder russischer bzw. rumänischer Namensteil.
activityTypeunlicensed | licensed Tätigkeitsliste: unlicensed oder licensed.
registeredWithin7d | 30d | 90d | 1y Gleitender Gründungszeitraum: 7, 30, 90 Tage oder 1 Jahr.
registeredFromdate Inklusives Anfangsdatum im Format YYYY-MM-DD.
registeredTodate Inklusives Enddatum im Format YYYY-MM-DD.
includeClosedboolean Geschlossene Unternehmen einbeziehen. Standardmäßig ausgeschlossen.
sortname | newest | updated Sortierung nach Name, Gründungsdatum oder letzter Aktualisierung.
pageinteger Seitennummer. Standardwert: 1.
pageSizeinteger Seitengröße von 1 bis 100. Standardwert: 25.
/entities/{id}Normalisierte Felder, nationaler Datensatz und Quellenherkunft.
iduuiderforderlich OpenRegister-ID aus dem Suchergebnis.
API-Referenz
Normalisierte Felder sind in allen Ländern gleich. Die nationale Struktur bleibt in registry und sourceData; neue Länder ändern daher den gemeinsamen Vertrag nicht.
iduuid Stabile OpenRegister-ID.
countryCodestring ISO-3166-1-Alpha-2-Code des Rechtsgebiets.
canonicalNamestring Name für Suche und Anzeige.
statusstring Normalisierter Status des Datensatzes.
legalFormstring | null Nationale Rechtsform.
registryobject Typisierte und aufgelöste nationale Felder.
sourceDataobject Originalfelder ohne Verlust oder Umbenennung.
registrationsarray Registrierungsnummern und lokale Status.
provenanceobject | null Datei, Hash, Importdatum und URL der Primärquelle.
API-Tarife
Wenn das Kontingent ausgeschöpft ist, stoppt die API Anfragen mit 429 — unerwartete Rechnungen entstehen nicht.
/api/v1/plansöffentlichFür Prototypen und die API-Evaluierung
Für produktive Integrationen
Für große Datenmengen und mehrere Umgebungen
Konto-Endpunkte
Diese Endpunkte verwalten Konto, Schlüssel, materialisierte Unternehmenslisten und ausgehende Webhooks. Sie verwenden ein Clerk-Token oder Sitzungscookie; ein Registry-API-Schlüssel ist dafür nicht gültig.
/api/v1/account Tarif, Nutzung, Abrechnungsstatus und aktive Schlüssel.
/api/v1/auth/me Profil des aktuellen Clerk-Nutzers.
/api/v1/api-keys Aktive Schlüssel ohne Geheimnisse auflisten.
/api/v1/api-keys Schlüssel erstellen und das vollständige Geheimnis einmalig zurückgeben.
/api/v1/api-keys/{id} Schlüssel des aktuellen Kontos widerrufen.
/api/v1/saved-searches Gespeicherte Suchen und aktuelle Ergebnis-URLs auflisten.
/api/v1/saved-searches Kriterien des Unternehmensverzeichnisses speichern.
/api/v1/saved-searches/{id} Eine gespeicherte Suche vollständig aktualisieren.
/api/v1/saved-searches/{id} Eine gespeicherte Suche des aktuellen Kontos löschen.
/api/v1/lists Materialisierte Unternehmenslisten und Datensatzanzahl auflisten.
/api/v1/lists Eine leere Unternehmensliste erstellen.
/api/v1/lists/{id} Liste mit paginierten Unternehmen, Verbindungen und Zustellverlauf abrufen.
/api/v1/lists/{id} Name und Beschreibung einer Liste ersetzen.
/api/v1/lists/{id} Eine Unternehmensliste löschen.
/api/v1/lists/{id}/items Unternehmen hinzufügen und neue Zustellungen einreihen.
/api/v1/lists/{id}/items/{entityId} Unternehmen aus einer Liste entfernen.
/api/v1/webhook-endpoints Zustellendpunkte ohne Geheimnisse auflisten.
/api/v1/webhook-endpoints Einen universellen JSON-Webhook-Endpunkt erstellen oder optional die Hanta-Vorlage verwenden.
/api/v1/webhook-endpoints/{id} Einen Endpunkt aktivieren oder deaktivieren.
/api/v1/webhook-endpoints/{id} Endpunkt deaktivieren und Verlauf beibehalten.
/api/v1/lists/{id}/webhook-endpoints/{endpointId} Einen Zustellendpunkt mit einer Liste verbinden.
/api/v1/lists/{id}/webhook-endpoints/{endpointId} Einen Zustellendpunkt von einer Liste trennen.
/api/v1/webhook-deliveries/{id}/retry Eine fehlgeschlagene Zustellung erneut einreihen.
/api/v1/health/live Der Prozess läuft und nimmt HTTP-Anfragen an.
/api/v1/health/ready Anwendung und PostgreSQL sind für Datenverkehr bereit.
Stripe-Abrechnung
Kostenpflichtige Tarife werden über Stripe Checkout abgeschlossen. Rechnungen, Zahlungsart, Tarifwechsel und Kündigung sind über das Stripe Customer Portal im API-Konto verfügbar.
Der Zugriff ändert sich erst nach einem signierten Stripe-Webhook-Ereignis, nicht nach der Weiterleitung aus Checkout.
/api/v1/plans Öffentlicher Tarif- und Leistungsumfangskatalog.
/api/v1/billing/checkout Stripe-Checkout-Sitzung erstellen.
/api/v1/billing/portal Stripe-Customer-Portal-Sitzung erstellen.
/api/v1/billing/webhook Interner Endpunkt mit Stripe-Signature-Header.
checkout.session.completedcustomer.subscription.createdcustomer.subscription.updatedcustomer.subscription.deletedcustomer.subscription.pausedcustomer.subscription.resumedDie Ereignis-ID wird vor der Verarbeitung gespeichert, daher ist eine erneute Zustellung sicher. Ein älteres Ereignis überschreibt keinen neueren Abonnementstatus.