API REST para la compartición de secretos cifrados

Crea y recupera secretos cifrados y autodestructivos de forma programática.

Esta API almacena texto cifrado ya cifrado de antemano. El cifrado debe ocurrir en el lado del cliente antes de llamar a la API. El servidor nunca ve el texto plano.

Para la mayoría de los casos de uso, la CLI o la GitHub Action gestionan el cifrado automáticamente.

URL base

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

Almacena texto cifrado con metadatos de caducidad y límite de visualizaciones. Devuelve un ID de secreto.

Cuerpo de la petición

CampoTipoObligatorioValores
ciphertextstringmáx. 4096 caracteres
ivstringvector de inicialización
maxViewsnumber0, 1, 3, 5, 10 (0 = ilimitado, devuelve -1 en viewsRemaining)
ttlnumber3600, 7200, 21600, 43200, 86400, 259200, 604800, 1209600, 2592000 (segundos)
hasPassphrasebooleannofalse por defecto
Petición de ejemplo
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
  }'
Respuesta
{ "id": "abc123" }

Respuestas de error

EstadoDescripción
400Error de validación (campos faltantes o no válidos)
429Límite de peticiones superado
500Error interno del servidor
GET/api/secrets/[id]

Recupera el texto cifrado y consume una visualización. El secreto se elimina cuando se consumen todas las visualizaciones.

Cada petición consume una visualización. Usa el endpoint de estado para comprobarlo sin consumirla.

Petición de ejemplo
curl https://www.vaulted.fyi/api/secrets/abc123
Respuesta
{
  "ciphertext": "encrypted-base64-data",
  "iv": "initialization-vector",
  "hasPassphrase": false,
  "viewsRemaining": 2
}

viewsRemaining es -1 para los secretos con visualizaciones ilimitadas (maxViews = 0).

Respuestas de error

EstadoDescripción
404Secreto no encontrado o caducado
429Límite de peticiones superado
500Error interno del servidor
GET/api/secrets/[id]/status

Comprueba si un secreto existe y cuántas visualizaciones quedan sin consumir una visualización.

Petición de ejemplo
curl https://www.vaulted.fyi/api/secrets/abc123/status
Respuesta
{
  "exists": true,
  "viewsRemaining": 3,
  "hasPassphrase": false
}

viewsRemaining es -1 para los secretos con visualizaciones ilimitadas (maxViews = 0).

Respuestas de error

EstadoDescripción
404Secreto no encontrado o caducado
500Error interno del servidor

Límites de peticiones

EndpointLímiteVentana
POST /api/secrets20 peticiones10 minutos
GET /api/secrets/[id]60 peticiones10 minutos

Los límites de peticiones son por dirección IP. Superar el límite devuelve 429.