Service Online

XBotwa API

Powerful file uploading, URL shortening, and proxy services with lightning-fast performance

Ultra Fast Secure Global CDN Developer Friendly

File Uploader API

Upload files up to 50MB with instant URLs

POST /upload

Upload files with multipart form data. Supports images, documents, videos, and more. Maximum file size is 50MB.

Try it Live

✓ Success Response
{
  "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

POST /shorten

Transform long URLs into short, shareable links. Optionally specify custom aliases for branded links.

Try it Live

→ Request Body
{
  "url": "https://example.com/very/long/url/path",
  "alias": "custom-alias"  // Optional
}
✓ Success Response
{
  "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

ALL /proxy

Universal HTTP proxy supporting GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS with full header forwarding and request body support.

Try it Live

→ GET Request
GET /proxy?url=https://api.github.com/users/octocat
Host: https://cv3inx-uploader.hf.space
Authorization: Bearer your-token
→ POST with Body
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;
?>
GET /media

Stream video, audio, and other media content with range request support for progressive loading.

Try it Live

→ Usage Example
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

GET /health

Check server status, uptime, and system health metrics.

Try it Live

✓ Response
{
  "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"
}
GET /info

Get API information, rate limits, and available endpoints.

Try it Live

✓ Response
{
  "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

400 Bad Request
413 File Too Large
429 Rate Limited
500 Server Error

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

1,000
Requests per hour
50MB
Max file size
99.9%
Uptime SLA
Rate Limit Headers

All responses include rate limiting information in headers:

X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 999
X-RateLimit-Reset: 1642694400