Endpoint
Authentication
This endpoint uses JWT authentication via a signed download URL token, not Bearer token authentication. The JWT token must be included in the query string as thetoken parameter.
Query Parameters
Signed JWT token authorizing the backup download. Generated by the Panel.
JWT Payload
The JWT token must contain:The UUID of the backup to download
The UUID of the server
Optional unique identifier for one-time use enforcement
Response
Returns the raw backup archive file with download headers:Content-Disposition: attachment with backup filenameContent-Type: application/octet-streamContent-Length: Backup file size in bytes
Example Request
Backup File Format
Backups are gzip-compressed tar archives (.tar.gz) containing:
- All server files (excluding ignored files)
- Directory structure
- File permissions and timestamps
- A checksum file (SHA1) for integrity verification
backup-{uuid}.tar.gz
Behavior
- JWT tokens are typically one-time use and invalidated after the first download
- Backup content is streamed directly to the client
- Only local backups on the Wings node can be downloaded via this endpoint
- S3 backups should be downloaded directly from S3 using pre-signed URLs
- Path is automatically constructed from backup UUID
- Backup must exist in the configured backup directory
Download URLs are generated by the Pterodactyl Panel when a user initiates a backup download through the UI.
Error Responses
401 Unauthorized
401 Unauthorized
404 Not Found
404 Not Found
Backup file does not exist on this Wings node (may be stored in S3)
500 Internal Server Error
500 Internal Server Error
Failed to read backup file
JWT Token Generation
Backup download tokens are generated by the Panel and should:- Include
server_uuidandbackup_uuidclaims - Have a short expiration time (recommended: 10-30 minutes)
- Include a
unique_idclaim for one-time use enforcement - Be signed with the Wings token from Panel configuration
Backup Integrity Verification
After downloading, verify the backup integrity using the included checksum:Use Cases
- Download backups for local storage
- Transfer backups to another system
- Migrate servers between panels
- Offline backup archival
- Disaster recovery
Backup Storage Location
Local backups are stored in the configured directory:Source Reference
Implementation:router/router_download.go (getDownloadBackup function)