XBotwa API
Powerful file uploading, URL shortening, and proxy services with lightning-fast performance
File Uploader API
Upload files up to 50MB with instant URLs
/upload
Upload files with multipart form data. Supports images, documents, videos, and more. Maximum file size is 50MB.
Try it Live
{
"message": "File uploaded successfully",
"filename": "Abc123Xyz.png",
"url": "https://cv3inx-uploader.hf.space/f/Abc123Xyz.png",
"shortUrl": "https://cv3inx-uploader.hf.space/u/Def456",
"originalName": "screenshot.png",
"size": "123.45KB",
"uploadTime": "150ms"
}
curl -X POST \
-F "file=@/path/to/your/file.jpg" \
https://cv3inx-uploader.hf.space/upload
const formData = new FormData();
formData.append('file', fileInput.files[0]);
fetch('https://cv3inx-uploader.hf.space/upload', {
method: 'POST',
body: formData
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
import requests
url = "https://cv3inx-uploader.hf.space/upload"
files = {'file': open('/path/to/your/file.jpg', 'rb')}
response = requests.post(url, files=files)
print(response.json())
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://cv3inx-uploader.hf.space/upload",
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => [
'file' => new CURLFile('/path/to/your/file.jpg')
],
CURLOPT_RETURNTRANSFER => true,
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
?>
URL Shortener API
Create custom short links with analytics
/shorten
Transform long URLs into short, shareable links. Optionally specify custom aliases for branded links.
Try it Live
{
"url": "https://example.com/very/long/url/path",
"alias": "custom-alias" // Optional
}
{
"code": "custom-alias",
"shortUrl": "https://cv3inx-uploader.hf.space/s/custom-alias",
"original": "https://example.com/very/long/url/path",
"createdAt": "08/19/2025 - 11:46",
"info": "https://cv3inx-uploader.hf.space/s/custom-alias/info"
}
curl -X POST \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com","alias":"my-link"}' \
https://cv3inx-uploader.hf.space/shorten
const payload = {
url: 'https://example.com',
alias: 'my-link' // Optional
};
fetch('https://cv3inx-uploader.hf.space/shorten', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(payload)
})
.then(response => response.json())
.then(data => console.log(data));
import requests
payload = {
'url': 'https://example.com',
'alias': 'my-link' # Optional
}
response = requests.post(
'https://cv3inx-uploader.hf.space/shorten',
json=payload
)
print(response.json())
<?php
$data = [
'url' => 'https://example.com',
'alias' => 'my-link' // Optional
];
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://cv3inx-uploader.hf.space/shorten",
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => json_encode($data),
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_RETURNTRANSFER => true,
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
?>
Advanced Proxy API
Full HTTP proxy with custom headers and all methods
/proxy
Universal HTTP proxy supporting GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS with full header forwarding and request body support.
Try it Live
GET /proxy?url=https://api.github.com/users/octocat
Host: https://cv3inx-uploader.hf.space
Authorization: Bearer your-token
POST /proxy?url=https://api.example.com/data
Content-Type: application/json
{"name": "John", "email": "john@example.com"}
# GET Request
curl -X GET "https://cv3inx-uploader.hf.space/proxy?url=https://api.github.com/users/octocat" \
-H "Authorization: Bearer your-token"
# POST Request with JSON body
curl -X POST "https://cv3inx-uploader.hf.space/proxy?url=https://api.example.com/data" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer your-token" \
-d '{"name": "John", "email": "john@example.com"}'
// GET Request
fetch('https://cv3inx-uploader.hf.space/proxy?url=https://api.github.com/users/octocat', {
method: 'GET',
headers: {
'Authorization': 'Bearer your-token'
}
})
.then(response => response.json())
.then(data => console.log(data));
// POST Request with JSON body
fetch('https://cv3inx-uploader.hf.space/proxy?url=https://api.example.com/data', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer your-token'
},
body: JSON.stringify({
name: 'John',
email: 'john@example.com'
})
})
.then(response => response.json())
.then(data => console.log(data));
import requests
# GET Request
headers = {'Authorization': 'Bearer your-token'}
response = requests.get(
'https://cv3inx-uploader.hf.space/proxy',
params={'url': 'https://api.github.com/users/octocat'},
headers=headers
)
print(response.json())
# POST Request with JSON body
data = {'name': 'John', 'email': 'john@example.com'}
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer your-token'
}
response = requests.post(
'https://cv3inx-uploader.hf.space/proxy',
params={'url': 'https://api.example.com/data'},
json=data,
headers=headers
)
print(response.json())
<?php
// GET Request
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://cv3inx-uploader.hf.space/proxy?url=" . urlencode("https://api.github.com/users/octocat"),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer your-token"
],
CURLOPT_RETURNTRANSFER => true,
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
// POST Request with JSON body
$data = json_encode(['name' => 'John', 'email' => 'john@example.com']);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://cv3inx-uploader.hf.space/proxy?url=" . urlencode("https://api.example.com/data"),
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $data,
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"Authorization: Bearer your-token"
],
CURLOPT_RETURNTRANSFER => true,
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
?>
/media
Stream video, audio, and other media content with range request support for progressive loading.
Try it Live
GET /media?url=https://example.com/video.mp4
# With range support
GET /media?url=https://example.com/video.mp4
Range: bytes=0-1023
Utility APIs
Health checks and service monitoring
/health
Check server status, uptime, and system health metrics.
Try it Live
{
"status": "OK",
"uptime": "0d 0h 2m 15s",
"memory": {
"total": "15.81 GB",
"free": "7.15 GB",
"usage": {
"rss": 207220736,
"heapTotal": 24596480,
"heapUsed": 20869160,
"external": 148502749,
"arrayBuffers": 146149386
}
},
"platform": "win32",
"version": "v20.19.4"
}
/info
Get API information, rate limits, and available endpoints.
Try it Live
{
"name": "XBotwa API",
"version": "1.0.0",
"uptime": "0d 0h 2m 18s",
"serverTime": "September 24th 2025, 00:46:45 +07:00",
"stats": {
"totalFilesUploaded": 0,
"totalSizeUploaded": "0 Bytes",
"lastUpload": {
"filename": null,
"size": null,
"timestamp": null
}
}
}
Error Handling
Standard HTTP status codes and error responses
Common Error Codes
Error Response Format
{
"error": true,
"message": "File size exceeds 50MB limit",
"code": 413,
"timestamp": "2025-09-22T12:30:00.123Z",
"details": {
"maxSize": "50MB",
"receivedSize": "75MB"
}
}
Rate Limiting
Fair usage policies and limits
All responses include rate limiting information in headers:
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 999
X-RateLimit-Reset: 1642694400