Chioriya-API Uploader ← Kembali ke UploaderDocs Utama

UPLOAD · MEDIA · PANEL

Uploader & Media Docs

Layanan hosting file: unggah lewat HTTP murni (raw body, tanpa multipart), dapat URL publik langsung, dan kelola semua file lewat endpoint panel. Mendukung fallback proxy otomatis sehingga tetap jalan dari browser mana pun.

Auth: apikey / session panelMaks 10MB / fileBiaya: 1 limit per 512KB

Upload — POST /api/upload

Unggah media (gambar / audio / dokumen umum) dan dapatkan URL publik. Request dikirim sebagai raw body; bila direct-domain gagal karena CORS, panel otomatis mencoba proxy /api/upload yang sama.

ParameterWajibDefaultKeterangan
apikeyYa-Wajib. Kirim via ?apikey=, header X-API-Key, atau Bearer.
filenameYa-Nama file beserta ekstensi (menentukan tipe penyimpanan).
bodyYa-Isi langsung binary file — bukan multipart. Header Content-Type = MIME file.

Contoh

curl -X POST "https://DOMAIN_ANDA/api/upload?apikey=KEY&filename=cat.jpg" \
  -H "Content-Type: image/jpeg" --data-binary @cat.jpg
import { readFile } from 'node:fs/promises';

const file = await readFile('cat.jpg');
const q = new URLSearchParams({ apikey: 'KEY', filename: 'cat.jpg' });
const r = await fetch('https://DOMAIN_ANDA/api/upload?' + q, {
  method: 'POST', headers: { 'Content-Type': 'image/jpeg' }, body: file
});
const d = await r.json();
console.log(d.mediaUrl, 'cost', d.chargedCost);
import requests

q = {'apikey': 'KEY', 'filename': 'cat.jpg'}
r = requests.post('https://DOMAIN_ANDA/api/upload', params=q, data=open('cat.jpg', 'rb'),
                  headers={'Content-Type': 'image/jpeg'})
print(r.json()['mediaUrl'])

Respons

{
  "ok": true,
  "mediaUrl": "https://.../u/abc123.jpg",   // alias: url
  "chargedCost": 2,                          // biaya limit
  "expiresAt": 1767225600000,                // unix ms kadaluarsa file
  "deduplicated": false,                     // true bila file identik sudah ada
  "message": "Upload berhasil."
}
Biaya otomatis: max(1, ceil(ukuran / 512KB)) limit. Maksimal 10MB per file. Bila file identik sudah tersimpan, sistem tidak memotong ganda — hanya memperbarui masa kadaluarsa (deduplicated: true).

Kelola Media (Panel)

Endpoint manajemen untuk pemilik akun — dipakai oleh modal Manage Uploader di dashboard.

ParameterWajibDefaultKeterangan
GET /api/panel/media/manageGET/POST-Daftar seluruh media milik akun (nama, ukuran, ekstensi, expire).
POST /api/panel/media/deletePOST-Hapus media. Body JSON: id media.
POST /api/panel/media/updatePOST-Perbarui masa kadaluarsa. Body JSON: id + expireAt.

Aturan & Batas