API-Schlüssel-API
Mit diesen Endpunkten können Sie die API-Schlüssel Ihres Kontos programmgesteuert verwalten. Sie funktionieren ausschließlich für die Schlüssel des aufrufenden Kontos.
Es gibt zwei Arten von Schlüsseln, die sich auf unterschiedlichen Pfaden befinden:
- Ihr Hauptschlüssel — der einzelne Schlüssel mit vollem Zugriff unter Einstellungen → Integrationen → API-Schlüssel. Hier können Sie die maskierte Vorschau einsehen, Ihre Ratenbegrenzung prüfen, den Schlüssel rotieren oder widerrufen. Dies betrifft die unten aufgeführten Endpunkte
/api-keys/current,/api-keys/rotateund/api-keys/usage. - Bereichsbezogene Schlüssel (Scoped keys) — zusätzliche, benannte Schlüssel, die Sie für eine spezifische Aufgabe erstellen und die jeweils auf die von Ihnen gewählten API-Bereiche beschränkt sind. Dies betrifft die Endpunkte
/api-keysund/api-keys/{id}unter Bereichsbezogene Schlüssel. An Ihrem Hauptschlüssel ändert sich nichts, wenn Sie einen solchen Schlüssel erstellen; bestehende Integrationen bleiben unberührt.
Alle unten aufgeführten Pfade sind relativ zur API-Basis-URL:
https://api.youraiconnector.com/v1
Jede Anfrage muss authentifiziert sein. Siehe Authentifizierung für die vier akzeptierten Methoden. Die Beispiele hier verwenden den X-API-Key-Header (und eine Abfrageparameter-Form für cURL).
Bitte zuerst lesen. Das Rotieren oder Widerrufen Ihres Schlüssels wird sofort wirksam. Sobald einer dieser Aufrufe erfolgreich ist, funktioniert der alte Schlüssel nicht mehr – jede Integration, die ihn noch verwendet, erhält daraufhin
401-Fehler. Planen Sie dies entsprechend: Führen Sie die Rotation während eines Wartungsfensters durch und aktualisieren Sie umgehend alle Ihre Integrationen.
Metadaten des aktuellen Schlüssels abrufen
Gibt Ihren aktiven Schlüssel zurück: den vollständigen Schlüssel in api_key, wenn eine abrufbare Kopie existiert, eine maskierte Vorschau (die ersten 4 und die letzten 4 Zeichen) und, falls verfügbar, das Erstellungsdatum. api_key ist null für Schlüssel, die erstellt wurden, bevor abrufbare Kopien gespeichert wurden – rotieren Sie einmal, und der neue Schlüssel kann später wieder angezeigt werden.
GET /api-keys/current
cURL
curl "https://api.youraiconnector.com/v1/api-keys/current?apiKey=YOUR_API_KEY"
JavaScript
const res = await fetch("https://api.youraiconnector.com/v1/api-keys/current", {
headers: { "X-API-Key": "YOUR_API_KEY" },
});
const data = await res.json();
Python
import requests
res = requests.get(
"https://api.youraiconnector.com/v1/api-keys/current",
headers={"X-API-Key": "YOUR_API_KEY"},
)
data = res.json()
Antwort
{
"success": true,
"api_key": "abcdEFGH1234ijkl5678MNOP9012qrst",
"api_key_masked": "abcd...qrst",
"created_at": "2026-06-01T10:00:00.000Z"
}
Wenn das Konto über keinen API-Schlüssel verfügt, lautet die Antwort 404 mit { "success": false, "error": "No API key found for this account" }.
Ratenbegrenzungsauslastung abrufen
Gibt Ihre Ratenbegrenzungsauslastung für das aktuelle Zeitfenster zurück: das Anfragelimit pro Fenster, wie viele Anfragen bisher gezählt wurden, wie viele verbleiben und wann das Fenster zurückgesetzt wird. Nutzen Sie dies, um clientseitiges Drosseln zu implementieren, damit Ihre Integration die Anfragen reduziert, bevor sie 429-Antworten erhält.
GET /api-keys/usage
cURL
curl "https://api.youraiconnector.com/v1/api-keys/usage" \
-H "X-API-Key: YOUR_API_KEY"
JavaScript
const res = await fetch("https://api.youraiconnector.com/v1/api-keys/usage", {
headers: { "X-API-Key": "YOUR_API_KEY" },
});
const data = await res.json();
Python
import requests
res = requests.get(
"https://api.youraiconnector.com/v1/api-keys/usage",
headers={"X-API-Key": "YOUR_API_KEY"},
)
data = res.json()
Antwort
{
"success": true,
"usage": {
"limit": 300,
"window_seconds": 60,
"used": 37,
"remaining": 263,
"window_resets_at": "2026-06-09T12:01:00.000Z"
}
}
Wenn im aktuellen Zeitfenster noch keine Anfragen aufgezeichnet wurden, wird die Auslastung als null gemeldet und die Antwort enthält ein note-Feld, das den Grund dafür erläutert.
Schlüssel rotieren
Generiert einen neuen API-Schlüssel und macht den vorherigen im selben Schritt ungültig. Verwenden Sie dies, wenn Sie vermuten, dass Ihr Schlüssel kompromittiert wurde, oder als Teil einer Richtlinie zur regelmäßigen Rotation von Anmeldedaten.
POST /api-keys/rotate
Der neue Schlüssel wird nur einmal angezeigt. Er wird in dieser Antwort zurückgegeben und kann danach nicht mehr vollständig abgerufen werden – speichern Sie ihn sicher, sobald Sie ihn erhalten. Der vorherige Schlüssel funktioniert ab dem Moment, in dem dieser Aufruf erfolgreich ist, nicht mehr. Aktualisieren Sie daher jede Integration, die ihn verwendet hat.
cURL
curl -X POST "https://api.youraiconnector.com/v1/api-keys/rotate?apiKey=YOUR_API_KEY"
JavaScript
const res = await fetch("https://api.youraiconnector.com/v1/api-keys/rotate", {
method: "POST",
headers: { "X-API-Key": "YOUR_API_KEY" },
});
const data = await res.json();
// Save data.api_key now — it will not be shown again.
Python
import requests
res = requests.post(
"https://api.youraiconnector.com/v1/api-keys/rotate",
headers={"X-API-Key": "YOUR_API_KEY"},
)
data = res.json()
# Save data["api_key"] now — it will not be shown again.
Antwort
{
"success": true,
"api_key": "abcdEFGH1234ijkl5678MNOP9012qrst",
"message": "API key rotated. The previous key is no longer valid. Store this key now — it will not be shown again."
}
Schlüssel widerrufen
Löscht den API-Schlüssel Ihres Kontos dauerhaft. Der Widerruf erfolgt sofort: Jede nachfolgende Anfrage, die den widerrufenen Schlüssel verwendet – einschließlich Integrationen wie Make, Zapier oder benutzerdefinierte Skripte – wird mit einem 401 abgelehnt. Um den API-Zugriff danach wiederherzustellen, generieren Sie einen neuen Schlüssel in Ihren Kontoeinstellungen, während Sie in der App angemeldet sind.
DELETE /api-keys/current
Dies kann nicht rückgängig gemacht werden. Im Gegensatz zur Rotation erhalten Sie beim Widerruf keinen Ersatzschlüssel. Widerrufen Sie den Zugriff nur, wenn Sie den API-Zugriff beenden möchten (zum Beispiel bei einem geleakten Schlüssel, den Sie nicht sofort ersetzen können).
cURL
curl -X DELETE "https://api.youraiconnector.com/v1/api-keys/current" \
-H "X-API-Key: YOUR_API_KEY"
JavaScript
const res = await fetch("https://api.youraiconnector.com/v1/api-keys/current", {
method: "DELETE",
headers: { "X-API-Key": "YOUR_API_KEY" },
});
const data = await res.json();
Python
import requests
res = requests.delete(
"https://api.youraiconnector.com/v1/api-keys/current",
headers={"X-API-Key": "YOUR_API_KEY"},
)
data = res.json()
Antwort
{
"success": true,
"revoked": true,
"message": "API key revoked. All requests using it will be rejected immediately."
}
Wenn das Konto keinen Schlüssel zum Widerrufen hat, lautet die Antwort 404.
Bereichsbezogene Schlüssel
Ein bereichsbezogener Schlüssel ist ein zusätzlicher API-Schlüssel, den Sie für eine bestimmte Aufgabe erstellen und der nur die für diese Aufgabe erforderlichen Zugriffsrechte besitzt. Der klassische Anwendungsfall: Sie möchten ein Kunden-Dashboard, ein Reporting-Tool oder ein internes Skript mit Ihrem Konto verbinden, ohne einen Schlüssel weiterzugeben, der auch Nachrichten senden, Ihre KI-Agenten ändern oder Telefonnummern kaufen könnte.
Die Einschränkung ist fest mit dem Schlüssel verknüpft, sodass der Inhaber nur die Aktionen ausführen kann, die Sie bei der Erstellung zugelassen haben.
Was Sie einschränken können
| Feld | Bedeutung |
|---|---|
read_only |
true (Standard) bedeutet, dass nur Leseanfragen erlaubt sind. Jede Erstellungs-, Aktualisierungs- oder Löschanfrage wird abgelehnt. |
tags |
Die Liste der API-Bereiche, die der Schlüssel verwenden darf, geschrieben mit denselben Bereichsnamen, die Sie in dieser Dokumentation und im API-Explorer sehen — Analytics, Campaigns, Contacts, Messages, Appointments usw. Eine leere Liste bedeutet alle Bereiche. |
sub_account_ids |
Auf welche verwalteten Konten der Schlüssel zugreifen darf. Leer bedeutet nur Ihr eigenes Konto; ["*"] bedeutet jedes Konto, das Sie tatsächlich verwalten. Die Berechtigung wird bei jeder Anfrage erneut geprüft. |
rate_limit_per_min |
Anfragen pro Minute für diesen Schlüssel, die in einem eigenen Kontingent gezählt werden, damit sie das Limit Ihrer anderen Integrationen nicht ausschöpfen. Der Standardwert ist 60 und kann nicht höher als 300 eingestellt werden. |
Sie können einem Schlüssel auch ein expires_at-Datum zuweisen (ISO 8601, muss in der Zukunft liegen). Nach diesem Zeitpunkt funktioniert der Schlüssel nicht mehr. Wenn Sie dieses Feld leer lassen, läuft der Schlüssel nie ab, bis Sie ihn widerrufen.
Ablehnungen sind sicherheitsorientiert. Wenn eine Anfrage außerhalb der erlaubten Bereiche des Schlüssels liegt, wird sie abgelehnt, anstatt sie zuzulassen: Ein Schreibzugriff mit einem Nur-Lese-Schlüssel gibt
403miterror_code: "key_read_only"zurück, und alles außerhalb der erlaubten Bereiche des Schlüssels gibt403miterror_code: "key_scope_denied"zurück. Wenn ein bereichsbezogener Schlüssel einen unerwarteten403-Fehler erhält, liegt der aufgerufene Endpunkt einfach nicht innerhalb seiner Bereiche — erweitern Sie die Berechtigungen des Schlüssels oder verwenden Sie Ihren Hauptschlüssel.
Nur der Kontoinhaber verwaltet Schlüssel. Diese vier Endpunkte erfordern Ihren Hauptschlüssel oder eine Inhaber-Sitzung in der App. Ein bereichsbezogener Schlüssel kann niemals Schlüssel auflisten, erstellen, bearbeiten oder widerrufen — auch nicht sich selbst —, sodass ein eingeschränkter Schlüssel niemals dazu verwendet werden kann, einen Schlüssel mit umfassenderen Rechten zu erstellen. Ein Versuch gibt
403miterror_code: "key_scope_denied"zurück. Aus demselben Grund istAPI Keyskein Bereich, den Sie gewähren können: Eine entsprechende Anfrage gibt400miterror_code: "invalid_scopes"zurück.
Bereichsbezogene Schlüssel auflisten
Gibt die bereichsbezogenen Schlüssel des Kontos zurück, beginnend mit den neuesten (bis zu 200), einschließlich widerrufener Schlüssel, damit Sie sehen können, was wann entzogen wurde. Es werden nur maskierte Vorschauen zurückgegeben — der Wert eines bereichsbezogenen Schlüssels wird nur einmal bei der Erstellung angezeigt und kann danach nie wieder abgerufen werden.
GET /api-keys
cURL
curl "https://api.youraiconnector.com/v1/api-keys" \
-H "X-API-Key: YOUR_API_KEY"
Antwort
{
"success": true,
"api_keys": [
{
"id": "key_9f2c1a7b4d6e8f0a1b2c3d4e5f60718a",
"label": "Client dashboard - Acme",
"key_preview": "abcd...qrst",
"scopes": {
"read_only": true,
"tags": ["Analytics"],
"sub_account_ids": [],
"rate_limit_per_min": 60
},
"expires_at": null,
"last_used_at": "2026-08-20T14:03:00.000Z",
"created_at": "2026-08-14T09:12:00.000Z",
"revoked_at": null,
"revoked": false
}
]
}
Bereichsbezogenen Schlüssel erstellen
Erstellt einen neuen bereichsbezogenen Schlüssel und gibt dessen Wert einmalig zurück.
POST /api-keys
Der Schlüssel wird nur einmal angezeigt. Er ist in dieser Antwort enthalten und nirgendwo sonst – es gibt keine Möglichkeit, ihn nachträglich erneut abzurufen. Speichern Sie ihn in dem Moment, in dem Sie ihn erhalten. Wenn Sie ihn verlieren, widerrufen Sie ihn und erstellen Sie einen neuen.
Body-Felder — alle optional:
| Feld | Typ | Hinweise |
|---|---|---|
label |
string | Ihr eigener Name für den Schlüssel, der in der Liste und in den Einstellungen angezeigt wird. |
scopes |
object | Die vier Felder in der obigen Tabelle. Lassen Sie das gesamte Objekt weg, um die sichere Standardeinstellung zu erhalten: schreibgeschützt, beschränkt auf Analytics, nur Ihr eigenes Konto, 60 Anfragen pro Minute. |
expires_at |
ISO 8601 Datum | Optionales Ablaufdatum, muss in der Zukunft liegen. |
cURL
curl -X POST "https://api.youraiconnector.com/v1/api-keys" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"label": "Client dashboard - Acme",
"scopes": {
"read_only": true,
"tags": ["Analytics"],
"sub_account_ids": [],
"rate_limit_per_min": 60
}
}'
JavaScript
const res = await fetch("https://api.youraiconnector.com/v1/api-keys", {
method: "POST",
headers: {
"X-API-Key": "YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
label: "Client dashboard - Acme",
scopes: { read_only: true, tags: ["Analytics"] },
}),
});
const data = await res.json();
// Save data.api_key now — it will not be shown again.
Python
import requests
res = requests.post(
"https://api.youraiconnector.com/v1/api-keys",
headers={"X-API-Key": "YOUR_API_KEY"},
json={
"label": "Client dashboard - Acme",
"scopes": {"read_only": True, "tags": ["Analytics"]},
},
)
data = res.json()
# Save data["api_key"] now — it will not be shown again.
Antwort — 201 Created
{
"success": true,
"api_key": "abcdEFGH1234ijkl5678MNOP9012qrst",
"key": {
"id": "key_9f2c1a7b4d6e8f0a1b2c3d4e5f60718a",
"label": "Client dashboard - Acme",
"key_preview": "abcd...qrst",
"scopes": {
"read_only": true,
"tags": ["Analytics"],
"sub_account_ids": [],
"rate_limit_per_min": 60
},
"expires_at": null,
"revoked": false
},
"message": "Store this key now — it is shown once and cannot be retrieved again."
}
Ein paar Details, die Sie bei der Implementierung beachten sollten:
- Das Weglassen von
scopesist nicht dasselbe wie das Senden einer leerentags-Liste. Lassen Siescopesvollständig weg, um die sichere Standardeinstellung zu erhalten (schreibgeschützt, nurAnalytics). Senden Sie"tags": []gezielt, kann der Schlüssel jeden Bereich nutzen – dies wird als bewusste Anforderung für einen uneingeschränkten Schlüssel gewertet. read_onlybleibttrue, es sei denn, Sie senden explizitfalse. Ein Tippfehler oder ein fehlendes Flag kann niemals versehentlich einen Schlüssel erzeugen, der Schreibzugriff hat.
Einen bereichsbezogenen Schlüssel aktualisieren
Ändert die Bezeichnung, die Bereiche und/oder das Ablaufdatum eines Schlüssels. Senden Sie eine beliebige Kombination der drei; wenn Sie keines davon senden, wird 400 zurückgegeben.
PATCH /api-keys/{id}
Die {id} ist die id des Schlüssels aus der Liste (der key_...-Wert), niemals der Schlüssel selbst.
Bereiche werden ersetzt, nicht zusammengeführt. Was auch immer Sie senden, wird zum vollständigen Berechtigungssatz des Schlüssels. Das ist beabsichtigt: Das Einschränken eines Schlüssels kann niemals dazu führen, dass der alte, umfassendere Zugriff unbemerkt bestehen bleibt. Senden Sie immer das vollständige
scopes-Objekt, das Sie wünschen, nicht nur das Feld, das Sie ändern möchten.
Der Wert des Schlüssels ändert sich nie. Es gibt kein direktes Rotieren für einen bereichsbezogenen Schlüssel – um einen zu erneuern, erstellen Sie einen neuen Schlüssel und widerrufen Sie den alten, damit sich der Zugriff einer Anmeldeinformation niemals unbemerkt ändern kann, während eine Integration sie noch verwendet.
cURL
curl -X PATCH "https://api.youraiconnector.com/v1/api-keys/key_9f2c1a7b4d6e8f0a1b2c3d4e5f60718a" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"label": "Client dashboard - Acme (read-only)",
"scopes": {
"read_only": true,
"tags": ["Analytics", "Campaigns"],
"sub_account_ids": [],
"rate_limit_per_min": 30
}
}'
Antwort
{
"success": true,
"key": {
"id": "key_9f2c1a7b4d6e8f0a1b2c3d4e5f60718a",
"label": "Client dashboard - Acme (read-only)",
"key_preview": "abcd...qrst",
"scopes": {
"read_only": true,
"tags": ["Analytics", "Campaigns"],
"sub_account_ids": [],
"rate_limit_per_min": 30
},
"expires_at": null,
"last_used_at": "2026-08-20T14:03:00.000Z",
"created_at": "2026-08-14T09:12:00.000Z",
"revoked_at": null,
"revoked": false
}
}
Wenn es auf Ihrem Konto keinen Schlüssel mit dieser ID gibt, lautet die Antwort 404.
Einen bereichsbeschränkten Schlüssel widerrufen
Der Widerruf erfolgt sofort: Die nächste Anfrage, die diesen Schlüssel verwendet, wird mit einem 401 abgelehnt. Ihr Hauptschlüssel und alle anderen bereichsbeschränkten Schlüssel sind davon nicht betroffen.
DELETE /api-keys/{id}
Der Schlüssel verbleibt in Ihrer Liste mit der Markierung "revoked": true, sodass Sie nachvollziehen können, was existierte und worauf zugegriffen werden konnte. Das Widerrufen eines bereits widerrufenen Schlüssels ist erfolgreich und ändert nichts.
cURL
curl -X DELETE "https://api.youraiconnector.com/v1/api-keys/key_9f2c1a7b4d6e8f0a1b2c3d4e5f60718a" \
-H "X-API-Key: YOUR_API_KEY"
Antwort
{
"success": true,
"revoked": true,
"id": "key_9f2c1a7b4d6e8f0a1b2c3d4e5f60718a",
"message": "API key revoked. All requests using it will be rejected immediately."
}
API-Schlüssel API-Fehler
API-Schlüssel-Endpunkte geben den Standard-Fehler-Envelope zurück:
{
"success": false,
"error": "No API key found for this account"
}
Bei einem API-Schlüssel-Endpunkt gibt ein fehlender oder ungültiger Schlüssel 401 zurück, und ein Konto ohne hinterlegten Schlüssel gibt 404 zurück. Die gemeinsamen Codes, die jeder Endpunkt zurückgeben kann — 400, 403 (Ihr Plan beinhaltet keinen API-Zugriff), 429 (Ratenbegrenzung) und 500 — sind zusammen mit Hinweisen zur Wiederholung unter Fehler & Paginierung aufgeführt.
Die Endpunkte für bereichsbeschränkte Schlüssel fügen einige benannte Codes im Feld error_code hinzu, damit Sie die Fälle unterscheiden können:
error_code |
Status | Was ist passiert |
|---|---|---|
key_read_only |
403 |
Ein schreibgeschützter Schlüssel hat versucht, einen Schreibvorgang durchzuführen. |
key_scope_denied |
403 |
Der Schlüssel ist für diesen Endpunkt oder dieses verwaltete Konto nicht zulässig – oder ein bereichsbeschränkter Schlüssel hat versucht, API-Schlüssel zu verwalten, was niemals gestattet ist. |
invalid_scopes |
400 |
Die angeforderten Bereiche beinhalteten den Abschnitt API Keys. Schlüssel können keine Schlüssel verwalten. |
404 |
404 |
Es gibt keinen Schlüssel mit dieser ID in Ihrem Konto. |
Nächste Schritte
- Authentifizierung – die vier Möglichkeiten zur Authentifizierung einer Anfrage und wie Schlüsselbereiche durchgesetzt werden.
- Fehler & Ratenbegrenzungen – Statuscodes und das Limit von 300 Anfragen/Min.