/uscodeapi

Uploader API

Endpoint untuk mengunggah file dan mendapat URL publik. Bisa dipakai dari browser maupun langsung dari backend.

POST /upload

URLhttps://uploader.uscode.biz.id/upload
MethodPOST (multipart/form-data)
Fieldfile (bisa diulang untuk banyak file)
Batas20 file per request, 100 MB per file
Rate limit30 request per menit per IP
SimpanURL berlaku selama file ada. File dihapus otomatis setelah 1 jam.

Respons HTML (browser)

Tanpa header khusus, endpoint membalas halaman HTML berisi daftar URL. Ini yang dipakai form di halaman Uploader.

Respons JSON (backend)

Tambahkan ?json=1 atau kirim header Accept: application/json untuk mendapat balasan JSON.

{
  "creator": "@uscode",
  "status": true,
  "result": [
    {
      "name": "foto.jpg",
      "mimetype": "image/jpeg",
      "size": "120.50 KB",
      "sizeBytes": 123392,
      "url": "https://uploader.uscode.biz.id/tmp/Ab12Cd-1791660000000.jpg"
    }
  ]
}

Saat gagal

{ "creator": "@uscode", "status": false, "message": "Ukuran file melebihi 100 MB." }

Pesan lain: Tidak ada file yang diunggah. dan Terlalu banyak file (maksimal 20 per sekali upload).

Contoh pemakaian

curl, satu file

curl -X POST https://uploader.uscode.biz.id/upload \
  -F "[email protected]" \
  -H "Accept: application/json"

curl, beberapa file sekaligus

curl -X POST "https://uploader.uscode.biz.id/upload?json=1" \
  -F "[email protected]" \
  -F "[email protected]"

Node.js (fetch + FormData)

import { readFileSync } from "node:fs";

const fd = new FormData();
fd.append("file", new Blob([readFileSync("foto.jpg")]), "foto.jpg");

const res = await fetch("https://uploader.uscode.biz.id/upload?json=1", {
  method: "POST",
  body: fd,
});
const data = await res.json();
console.log(data.result[0].url);

Python (requests)

import requests

with open("foto.jpg", "rb") as f:
    r = requests.post(
        "https://uploader.uscode.biz.id/upload",
        files={"file": f},
        params={"json": 1},
    )
print(r.json()["result"][0]["url"])

Catatan

Buka Uploader