REST API per la condivisione di segreti cifrati

Crea e recupera segreti cifrati e autodistruttivi in modo programmatico.

Questa API conserva testo cifrato pre-crittografato. La crittografia deve avvenire client-side prima di chiamare l'API. Il server non vede mai il testo in chiaro.

Per la maggior parte dei casi d'uso, la CLI o la GitHub Action gestiscono la crittografia automaticamente.

URL base

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

Conserva testo cifrato con metadati di scadenza e limite di visualizzazioni. Restituisce un ID segreto.

Request body

CampoTipoObbligatorioValori
ciphertextstringmax 4096 caratteri
ivstringvettore di inizializzazione
maxViewsnumber0, 1, 3, 5, 10 (0 = illimitato, restituisce -1 per viewsRemaining)
ttlnumber3600, 7200, 21600, 43200, 86400, 259200, 604800, 1209600, 2592000 (secondi)
hasPassphrasebooleannodefault false
Esempio di richiesta
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
  }'
Risposta
{ "id": "abc123" }

Risposte di errore

StatoDescrizione
400Errore di validazione (campi mancanti o non validi)
429Limite di frequenza superato
500Errore interno del server
GET/api/secrets/[id]

Recupera il testo cifrato e consuma una visualizzazione. Il segreto viene eliminato quando tutte le visualizzazioni sono consumate.

Ogni richiesta consuma una visualizzazione. Usa l'endpoint di stato per controllare senza consumare.

Esempio di richiesta
curl https://www.vaulted.fyi/api/secrets/abc123
Risposta
{
  "ciphertext": "encrypted-base64-data",
  "iv": "initialization-vector",
  "hasPassphrase": false,
  "viewsRemaining": 2
}

viewsRemaining è -1 per i segreti con visualizzazioni illimitate (maxViews = 0).

Risposte di errore

StatoDescrizione
404Segreto non trovato o scaduto
429Limite di frequenza superato
500Errore interno del server
GET/api/secrets/[id]/status

Verifica se un segreto esiste e quante visualizzazioni rimangono senza consumarne una.

Esempio di richiesta
curl https://www.vaulted.fyi/api/secrets/abc123/status
Risposta
{
  "exists": true,
  "viewsRemaining": 3,
  "hasPassphrase": false
}

viewsRemaining è -1 per i segreti con visualizzazioni illimitate (maxViews = 0).

Risposte di errore

StatoDescrizione
404Segreto non trovato o scaduto
500Errore interno del server

Limiti di frequenza

EndpointLimiteFinestra temporale
POST /api/secrets20 richieste10 minuti
GET /api/secrets/[id]60 richieste10 minuti

I limiti di frequenza sono per indirizzo IP. Il superamento del limite restituisce 429.