Share secrets securely with self-destructing links
⚠️ This link will expire in and can only be viewed once.
Links expire after viewing or set time
No server-side logs of secret content
No registration required
/api
GET /api/health
Returns system status and configuration
{
"status": "ok",
"kvBound": true,
"adminTokenSet": true,
"features": {...},
"rateLimits": {...}
}
POST /api/secret
Request Body:
{
"encryptedData": "base64url_encrypted_content",
"ttl": 12, // hours (1-24)
"files": [] // optional
}
Response:
{
"id": "uuid-v4",
"expiresIn": 12
}
⚠️ Data must be client-side encrypted with AES-256-GCM before sending
GET /api/secret/{id}/metadata
Response:
{
"exists": true,
"viewed": false,
"hasFiles": false,
"fileCount": 0
}
POST /api/secret/{id}/view
Response:
{
"encryptedData": "base64url_encrypted_content",
"files": []
}
⚠️ Secret is deleted immediately after retrieval. Client must decrypt with key from URL fragment.
GET /api/admin/stats
Headers: X-Admin-Token: your_token
Response:
{
"totalSecrets": 5,
"secrets": [{"id": "uuid"}, ...]
}
Configurable via environment variables