Upload.am API Documentation

Secure, fast, and scalable file management for Web3 and beyond

Latest Update: v1.3 – November 03, 2025

Major improvements:

Overview

Upload.am provides a RESTful API for secure file upload, storage, and sharing with S3-backed storage and JWT authentication.

Key Features:

Authentication

All protected endpoints require a JWT Bearer token:

Authorization: Bearer <your_jwt_token>

Login

POST /api/v1/auth/login

ParamRequiredDescription
loginYesEmail or username
passwordYesUser password

Refresh Token

POST /api/v1/auth/refresh

ParamRequiredDescription
refresh_tokenYesToken from login response

Get User Info

GET /api/v1/auth/user

Endpoints

1. Precheck File

POST /api/v1/precheck

Validates file before upload. Max size: 5 GB.

ParamRequiredDescription
fileNameYesFile name with extension
fileSizeYesSize in bytes (max 5368709120)

Example:

curl -X POST https://upload.am/api/v1/precheck \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "fileName=photo.jpg&fileSize=5242880000"

Response:

{
  "success": true,
  "data": {
    "fileId": "temp_a1b2c3d4"
  }
}

2. Upload File

POST /api/v1/upload

ParamRequiredDescription
fileYesFile to upload
fileIdYesFrom precheck response
passwordNoOptional password
folder_idNoFolder ID

Example:

curl -X POST https://upload.am/api/v1/upload \
  -F "file=@photo.jpg" \
  -F "fileId=temp_a1b2c3d4" \
  -F "password=secure123" \
  -F "folder_id=1" \
  -H "Authorization: Bearer <token>"

Response:

{
  "success": true,
  "data": {
    "fileName": "photo.jpg",
    "fileSize": "218.94 KB",
    "fileLink": "https://upload.am/d/abc123.jpg",
    "presignedUrl": "https://upload.de-fra.i3storage.com/2025/11/03/abc123.jpg?...",
    "uploadDate": "2025-11-03 10:00:00",
    "folderId": 1
  }
}

3. Download File

GET /api/v1/download?key=abc123.jpg

ParamRequiredDescription
keyYesFile short key
passwordNoIf file is protected

Example:

curl -X GET "https://upload.am/api/v1/download?key=abc123.jpg&password=secure123"

Response:

{
  "success": true,
  "data": {
    "presignedUrl": "https://upload.de-fra.i3storage.com/2025/11/03/abc123.jpg?...",
    "fileName": "photo.jpg",
    "fileSize": "218.94 KB"
  }
}

4. Generate QR Code

POST /api/v1/qrcode

ParamRequiredDescription
fileLinkYesPublic file URL

Example:

curl -X POST https://upload.am/api/v1/qrcode \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "fileLink=https://upload.am/d/abc123.jpg"

Response:

{
  "success": true,
  "data": {
    "qrCodeUrl": "https://upload.am/qr/abc123.png"
  }
}

5. List User Files

GET /api/v1/files?folder_id=1

Example:

curl -X GET "https://upload.am/api/v1/files?folder_id=1" \
  -H "Authorization: Bearer <token>"

Response:

{
  "success": true,
  "data": [
    {
      "id": 123,
      "fileName": "photo.jpg",
      "fileLink": "https://upload.am/d/abc123.jpg",
      "uploadDate": "2025-11-03",
      "fileSize": "218.94 KB"
    }
  ]
}

6. Delete File

DELETE /api/v1/file/123

Example:

curl -X DELETE https://upload.am/api/v1/file/123 \
  -H "Authorization: Bearer <token>"

Response:

{
  "success": true
}

7. Create Folder

POST /api/v1/folder

ParamRequiredDescription
folder_nameYesFolder name

Example:

curl -X POST https://upload.am/api/v1/folder \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "folder_name=MyFolder" \
  -H "Authorization: Bearer <token>"

Response:

{
  "success": true,
  "data": {
    "folder_id": 1,
    "folder_name": "MyFolder"
  }
}

8. Delete Folder

DELETE /api/v1/folder/1

Example:

curl -X DELETE https://upload.am/api/v1/folder/1 \
  -H "Authorization: Bearer <token>"

Response:

{
  "success": true
}

9. List Folders

GET /api/v1/folders

Example:

curl -X GET https://upload.am/api/v1/folders \
  -H "Authorization: Bearer <token>"

Response:

{
  "success": true,
  "data": [
    {
      "id": 1,
      "folderName": "MyFolder",
      "createdAt": "2025-11-03 10:00:00"
    }
  ]
}

10. Get Storage Usage

GET /api/v1/storage

Example:

curl -X GET https://upload.am/api/v1/storage \
  -H "Authorization: Bearer <token>"

Response:

{
  "success": true,
  "data": {
    "usedStorage": 5.23,
    "storageLimit": 25.00,
    "usedPercent": 20.92
  }
}

Changelog

v1.3 – November 03, 2025

  • Files are now unlimited in time — no expiration
  • Maximum file size increased to 5 GB
  • Improved reliability and security

v1.2 – July 06, 2025

  • Added folder support
  • Added password protection
  • Added QR code generation

Support

Contact us for assistance: