API Reference
Curl it.
Curl it.
Forget it.
Three endpoints. One token. Zero SDKs.
# your entire backup pipeline:
curl -s -X POST \
-F "file=@backup.sql.gz" \
-H "Authorization: Bearer $TOKEN" \
https://savemyvibe.com/api/v1/upload
Base URL
https://savemyvibe.com/api/v1
Authentication
Bearer token
Every request must include your archive token in the Authorization header. Tokens look like smv_... and are created in your dashboard when you create an archive.
Authorization: Bearer $TOKEN
Token scopes:
- Upload-only — can only POST to
/upload - Download-only — can only GET from
/download - Full — can upload and download
Upload
Success response —
POST /upload
Upload a single file to an archive. Only one file field per request. Multipart form-data required.
curl -s -X POST \
-F "file=@backup.sql.gz" \
-H "Authorization: Bearer $TOKEN" \
https://savemyvibe.com/api/v1/upload
Success response — 200 OK
{
"success": true,
"filename": "backup.sql.gz",
"ingested_at": "2026-06-18T12:34:56.789012+00:00",
"size": 10485760,
"message": "Backup uploaded successfully."
}
Error responses
| Status | When | Body |
|---|---|---|
400 |
Empty file or missing filename | {"detail":"Empty files are not allowed."} |
403 |
Token is download-only | {"detail":"This token is download-only."} |
413 |
File exceeds tier limit | {"detail":"File exceeds maximum upload size of 524288000 bytes."} |
402 |
Storage quota exceeded | {"detail":"Storage quota exceeded. Limit: 5368709120 bytes."} |
Download
GET /download
Redirect to the latest backup for this archive. Returns a 307 redirect to a presigned S3 URL valid for 5 minutes. Use -L to follow the redirect.
curl -s -L -o backup.sql.gz \
-H "Authorization: Bearer $TOKEN" \
https://savemyvibe.com/api/v1/download
Error responses
| Status | When | Body |
|---|---|---|
403 |
Token is upload-only | {"detail":"This token is upload-only."} |
404 |
No backups found for this archive | {"detail":"No backups found for this archive."} |
Download
GET /download/{backup_id}
Download a specific backup by ID. Also returns a 307 redirect to a presigned S3 URL.
curl -s -L -o backup.sql.gz \
-H "Authorization: Bearer $TOKEN" \
https://savemyvibe.com/api/v1/download/01941c04-4185-7ea3-ab00-82c8a75adf41
Error responses
| Status | When | Body |
|---|---|---|
400 |
Invalid backup ID format | {"detail":"Invalid backup ID format."} |
403 |
Token is upload-only | {"detail":"This token is upload-only."} |
404 |
Backup not found or not in this archive | {"detail":"Backup not found."} |
Limits
Tier limits
| Limit | Free | Pro |
|---|---|---|
| Max upload size | 500 MB | 5 GB |
| Total storage | 5 GB | 50 GB |
| Max retention | 30 days | 1 year |
| Archives | 3 | Unlimited |