REST API für verschlüsseltes Teilen von Geheimnissen

Erstelle und rufe verschlüsselte, selbstzerstörende Geheimnisse programmatisch ab.

Diese API speichert vorverschlüsselten Geheimtext. Die Verschlüsselung muss clientseitig erfolgen, bevor die API aufgerufen wird. Der Server sieht niemals Klartext.

Für die meisten Anwendungsfälle übernimmt die CLI oder die GitHub Action die Verschlüsselung automatisch.

Basis-URL

Basis-URL
https://www.vaulted.fyi/api
POST/api/secrets

Speichert verschlüsselten Geheimtext mit Ablauf- und Aufruflimit-Metadaten. Gibt eine Geheimnis-ID zurück.

Request-Body

FeldTypErforderlichWerte
ciphertextstringjamax. 4096 Zeichen
ivstringjaInitialisierungsvektor
maxViewsnumberja0, 1, 3, 5, 10 (0 = unbegrenzt, gibt -1 für viewsRemaining zurück)
ttlnumberja3600, 7200, 21600, 43200, 86400, 259200, 604800, 1209600, 2592000 (Sekunden)
hasPassphrasebooleanneinStandard false
Beispiel-Request
curl -X POST https://www.vaulted.fyi/api/secrets \
  -H "Content-Type: application/json" \
  -d '{
    "ciphertext": "encrypted-base64-data",
    "iv": "initialization-vector",
    "maxViews": 1,
    "ttl": 86400,
    "hasPassphrase": false
  }'
Antwort
{ "id": "abc123" }

Fehler-Antworten

StatusBeschreibung
400Validierungsfehler (fehlende oder ungültige Felder)
429Rate-Limit überschritten
500Interner Serverfehler
GET/api/secrets/[id]

Ruft verschlüsselten Geheimtext ab und konsumiert einen Aufruf. Das Geheimnis wird gelöscht, wenn alle Aufrufe verbraucht sind.

Jeder Request konsumiert einen Aufruf. Nutze den Status-Endpoint zum Prüfen ohne Konsumierung.

Beispiel-Request
curl https://www.vaulted.fyi/api/secrets/abc123
Antwort
{
  "ciphertext": "encrypted-base64-data",
  "iv": "initialization-vector",
  "hasPassphrase": false,
  "viewsRemaining": 2
}

viewsRemaining ist -1 für Geheimnisse mit unbegrenzten Aufrufen (maxViews = 0).

Fehler-Antworten

StatusBeschreibung
404Geheimnis nicht gefunden oder abgelaufen
429Rate-Limit überschritten
500Interner Serverfehler
GET/api/secrets/[id]/status

Prüft, ob ein Geheimnis existiert und wie viele Aufrufe verbleiben, ohne einen Aufruf zu konsumieren.

Beispiel-Request
curl https://www.vaulted.fyi/api/secrets/abc123/status
Antwort
{
  "exists": true,
  "viewsRemaining": 3,
  "hasPassphrase": false
}

viewsRemaining ist -1 für Geheimnisse mit unbegrenzten Aufrufen (maxViews = 0).

Fehler-Antworten

StatusBeschreibung
404Geheimnis nicht gefunden oder abgelaufen
500Interner Serverfehler

Rate-Limits

EndpointLimitZeitfenster
POST /api/secrets20 Requests10 Minuten
GET /api/secrets/[id]60 Requests10 Minuten

Rate-Limits gelten pro IP-Adresse. Bei Überschreitung wird 429 zurückgegeben.