REST API do zaszyfrowanego udostępniania sekretów

Twórz i pobieraj zaszyfrowane, samozniszczające się sekrety programowo.

To API przechowuje wstępnie zaszyfrowany szyfrogram. Szyfrowanie musi odbywać się po stronie klienta przed wywołaniem API. Serwer nigdy nie widzi tekstu jawnego.

W większości przypadków CLI lub GitHub Action obsługują szyfrowanie automatycznie.

Bazowy URL

Bazowy URL
https://www.vaulted.fyi/api
POST/api/secrets

Przechowuje zaszyfrowany szyfrogram z metadanymi wygaśnięcia i limitu wyświetleń. Zwraca ID sekretu.

Treść żądania

PoleTypWymaganeWartości
ciphertextstringtakmaks. 4096 znaków
ivstringtakwektor inicjalizacji
maxViewsnumbertak0, 1, 3, 5, 10 (0 = bez limitu, zwraca -1 dla viewsRemaining)
ttlnumbertak3600, 7200, 21600, 43200, 86400, 259200, 604800, 1209600, 2592000 (sekundy)
hasPassphrasebooleanniedomyślnie false
Przykładowe żądanie
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
  }'
Odpowiedź
{ "id": "abc123" }

Odpowiedzi błędów

StatusOpis
400Błąd walidacji (brakujące lub nieprawidłowe pola)
429Przekroczono limit żądań
500Wewnętrzny błąd serwera
GET/api/secrets/[id]

Pobiera zaszyfrowany szyfrogram i zużywa jedno wyświetlenie. Sekret jest usuwany po zużyciu wszystkich wyświetleń.

Każde żądanie zużywa jedno wyświetlenie. Użyj endpointu status, aby sprawdzić bez zużywania.

Przykładowe żądanie
curl https://www.vaulted.fyi/api/secrets/abc123
Odpowiedź
{
  "ciphertext": "encrypted-base64-data",
  "iv": "initialization-vector",
  "hasPassphrase": false,
  "viewsRemaining": 2
}

viewsRemaining wynosi -1 dla sekretów z nieograniczoną liczbą wyświetleń (maxViews = 0).

Odpowiedzi błędów

StatusOpis
404Sekret nie znaleziony lub wygasł
429Przekroczono limit żądań
500Wewnętrzny błąd serwera
GET/api/secrets/[id]/status

Sprawdza, czy sekret istnieje i ile wyświetleń pozostało, bez zużywania wyświetlenia.

Przykładowe żądanie
curl https://www.vaulted.fyi/api/secrets/abc123/status
Odpowiedź
{
  "exists": true,
  "viewsRemaining": 3,
  "hasPassphrase": false
}

viewsRemaining wynosi -1 dla sekretów z nieograniczoną liczbą wyświetleń (maxViews = 0).

Odpowiedzi błędów

StatusOpis
404Sekret nie znaleziony lub wygasł
500Wewnętrzny błąd serwera

Limity żądań

EndpointLimitOkno czasowe
POST /api/secrets20 żądań10 minut
GET /api/secrets/[id]60 żądań10 minut

Limity żądań są per adres IP. Przekroczenie limitu zwraca 429.