API REST pour le partage de secrets chiffrés

Crée et récupère des secrets chiffrés et autodestructeurs par programmation.

Cette API stocke du texte chiffré pré-chiffré. Le chiffrement doit avoir lieu côté client avant l'appel à l'API. Le serveur ne voit jamais le texte en clair.

Pour la plupart des cas d'usage, la CLI ou la GitHub Action gèrent le chiffrement automatiquement.

URL de base

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

Stocke du texte chiffré avec les métadonnées d'expiration et de limite de consultations. Renvoie un ID de secret.

Corps de la requête

ChampTypeRequisValeurs
ciphertextstringouimax. 4096 caractères
ivstringouivecteur d'initialisation
maxViewsnumberoui0, 1, 3, 5, 10 (0 = illimité, renvoie -1 pour viewsRemaining)
ttlnumberoui3600, 7200, 21600, 43200, 86400, 259200, 604800, 1209600, 2592000 (secondes)
hasPassphrasebooleannonfalse par défaut
Exemple de requête
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
  }'
Réponse
{ "id": "abc123" }

Réponses d'erreur

StatutDescription
400Erreur de validation (champs manquants ou invalides)
429Limite de débit dépassée
500Erreur serveur interne
GET/api/secrets/[id]

Récupère le texte chiffré et consomme une consultation. Le secret est supprimé lorsque toutes les consultations sont consommées.

Chaque requête consomme une consultation. Utilise l'endpoint de statut pour vérifier sans consommer.

Exemple de requête
curl https://www.vaulted.fyi/api/secrets/abc123
Réponse
{
  "ciphertext": "encrypted-base64-data",
  "iv": "initialization-vector",
  "hasPassphrase": false,
  "viewsRemaining": 2
}

viewsRemaining vaut -1 pour les secrets à consultations illimitées (maxViews = 0).

Réponses d'erreur

StatutDescription
404Secret introuvable ou expiré
429Limite de débit dépassée
500Erreur serveur interne
GET/api/secrets/[id]/status

Vérifie si un secret existe et combien de consultations restent sans consommer de consultation.

Exemple de requête
curl https://www.vaulted.fyi/api/secrets/abc123/status
Réponse
{
  "exists": true,
  "viewsRemaining": 3,
  "hasPassphrase": false
}

viewsRemaining vaut -1 pour les secrets à consultations illimitées (maxViews = 0).

Réponses d'erreur

StatutDescription
404Secret introuvable ou expiré
500Erreur serveur interne

Limites de débit

EndpointLimiteFenêtre
POST /api/secrets20 requêtes10 minutes
GET /api/secrets/[id]60 requêtes10 minutes

Les limites de débit s'appliquent par adresse IP. Tout dépassement renvoie 429.