Developers
SM.MS Compatibility
Migrate from SM.MS to S.EE with minimal code changes
S.EE provides a SM.MS-compatible API layer, allowing you to migrate from SM.MS to S.EE with minimal code changes. Simply replace the API endpoint and you're ready to go.
Quick Migration
Replace the SM.MS API base URL with the S.EE equivalent:
| SM.MS | S.EE |
|---|---|
https://sm.ms/api/v2 | https://s.ee/api/v1/file |
Supported Endpoint
| SM.MS Endpoint | S.EE Endpoint | Description |
|---|---|---|
POST /api/v2/upload | POST /api/v1/file/upload | Upload image |
Upload Image
Request
curl -X POST "https://s.ee/api/v1/file/upload" \
-H "Authorization: your-api-key" \
-F "smfile=@/path/to/image.png" \
-F "domain=sm.ms" \
-F "custom_slug=my-image"Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
smfile | file | Yes | The image file to upload (alias: file) |
domain | string | No | Custom domain for the short link |
custom_slug | string | No | Custom slug for the URL (random if not provided) |
Response
{
"code": 200,
"message": "success",
"data": {
"file_id": 14184137,
"width": 1024,
"height": 1024,
"filename": "my-cat.jpg",
"storename": "my-cat.jpg",
"size": 202814,
"path": "/2026/02/11/dm3K/my-cat.jpg",
"hash": "delete-hash-here",
"url": "https://i.see.you/2026/02/11/dm3K/my-cat.jpg",
"delete": "https://s.ee/api/v1/file/delete/delete-hash-here",
"page": "https://sm.ms/my-cat",
"upload_status": 2
}Code Examples
Python (requests)
import requests
# SM.MS original code
# url = "https://sm.ms/api/v2/upload"
# S.EE compatible endpoint
url = "https://s.ee/api/v1/file/upload"
headers = {
"Authorization": "your-api-key"
}
files = {
"smfile": open("image.png", "rb")
}
data = {
"domain": "fs.to", # optional
"custom_slug": "my-image" # optional
}
response = requests.post(url, headers=headers, files=files, data=data)
print(response.json())PHP (cURL)
<?php
// SM.MS original endpoint
// $url = "https://sm.ms/api/v2/upload";
// S.EE compatible endpoint
$url = "https://s.ee/api/v1/file/upload";
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => $url,
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
"Authorization: your-api-key"
],
CURLOPT_POSTFIELDS => [
"smfile" => new CURLFile("/path/to/image.png"),
"domain" => "fs.to", // optional
"custom_slug" => "my-image" // optional
]
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;JavaScript (fetch)
// SM.MS original endpoint
// const url = "https://sm.ms/api/v2/upload";
// S.EE compatible endpoint
const url = "https://s.ee/api/v1/file/upload";
const formData = new FormData();
formData.append("smfile", fileInput.files[0]);
formData.append("domain", "fs.to"); // optional
formData.append("custom_slug", "my-image"); // optional
const response = await fetch(url, {
method: "POST",
headers: {
"Authorization": "your-api-key"
},
body: formData
});
const data = await response.json();
console.log(data);Differences from SM.MS
While S.EE maintains compatibility with SM.MS API, there are some enhancements:
| Feature | SM.MS | S.EE |
|---|---|---|
| Custom domain | No | Yes |
| Custom slug | No | Yes |
| File size limit | 5MB | Varies by plan |
| Supported formats | Images only | Images, documents, and more |
Get Your API Key
To use the S.EE API, you need an API key:
- Sign up or log in at s.ee
- Go to Tools > API Token
- Generate a new API key
Need Help?
If you encounter any issues during migration, please contact support or check our API documentation.