API v1

API Uploadex referensi.

REST API untuk mengunggah file, menampilkannya, dan mengelola metadata. JSON melalui HTTPS dengan autentikasi token Bearer.

Ikhtisar

API Uploadex memungkinkan Anda mengunggah file secara terprogram, menampilkannya, dan memperbarui metadata atas nama pemilik kunci API. Setiap endpoint adalah sumber daya REST: JSON (atau multipart untuk unggahan biner) masuk, JSON keluar, hanya HTTPS.

  • URL dasar https://uploadex.net/api/v1
  • Autentikasi Token Bearer di header Authorization
  • Transport Hanya HTTPS · TLS 1.2 atau 1.3
  • Enkode UTF-8 JSON · multipart/form-data untuk unggahan
  • Tanggal ISO 8601 dalam UTC · 2026-04-21T08:12:04Z

Autentikasi

Setiap permintaan harus menyertakan header Authorization dengan token Bearer. Buat dan rotasi kunci dari dasbor developer Anda.

Authorization: Bearer ux_live_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Kunci diawali dengan ux_live_. Kunci hanya ditampilkan sekali saat pembuatan — simpan di pengelola rahasia. Kunci dapat dibatasi ke aksi tertentu (files:read, files:write, upload, atau *) dan disetel untuk kedaluwarsa pada tanggal mendatang.

Akses API memerlukan paket dengan akses API yang diaktifkan. Jika akun diturunkan ke paket tanpa akses API, kunci yang ada berhenti berfungsi hingga akun ditingkatkan kembali. Segera cabut kunci yang bocor dari dasbor developer.

Mulai cepat

Ambil info akun Anda untuk memastikan kunci berfungsi.

# Get your account info
curl https://uploadex.net/api/v1/account \
  -H "Authorization: Bearer $UX_API_KEY"
Respons · 200 OK
{
  "data": {
    "id":               "clxxxxxxxxxxxxxxxxxxxxxx",
    "email":            "[email protected]",
    "name":             "Your Name",
    "plan":             "PRO",
    "balance":          0,
    "totalEarnings":    0,
    "storageUsed":      52428800,
    "storageLimit":     53687091200,
    "storageFormatted": "50 MB / 50 GB",
    "fileCount":        3,
    "createdAt":        "2026-04-01T09:21:00.000Z"
  }
}

Batas paket

Batas unggahan dan penyimpanan ditentukan oleh paket dan dapat berubah saat akun ditingkatkan atau diturunkan. Batas untuk paket yang menyertakan akses API:

PaketUkuran file maksPenyimpanan
Pro10 GB100 GB
Business50 GB1 TB

Batas laju

Batas laju melindungi layanan dari lonjakan trafik. Melebihi batas menghasilkan 429 Too Many Requests.

CakupanBatasJendelaSubjek
Inisiasi unggahan301 minper kunci API
Unduh601 minper IP
Masuk1015 minper IP
Daftar51hper IP

Kesalahan

Respons kesalahan menggunakan kode status HTTP standar dan body JSON yang konsisten.

{ "error": "Invalid or missing API key" }
StatusArti
400Body permintaan salah bentuk atau gagal validasi.
401Kunci API hilang atau tidak valid.
403Kunci tidak memiliki cakupan yang diperlukan (mis. files:write).
404Sumber daya tidak ada atau bukan milik pemilik kunci.
413File melebihi batas ukuran file paket akun.
429Batas laju terlampaui. Perlambat dan coba lagi.
500Kesalahan internal. Periksa halaman status sebelum mencoba lagi.

Paginasi

Endpoint daftar menggunakan paginasi berbasis halaman. Berikan page (dimulai dari 1) dan limit (maks 100) sebagai parameter kueri.

GET /api/v1/files?page=1&limit=50

Akun

GET/api/v1/accountMengembalikan info akun, paket, penggunaan penyimpanan, jumlah file.

Cakupan: tidak ada cakupan yang diperlukan selain kunci yang valid.

Unggah

POST/api/v1/uploadMemulai unggahan multipart. Mengembalikan URL yang telah ditandatangani yang digunakan klien untuk PUT potongan ke penyimpanan objek R2.
KolomTipeDeskripsi
filenamestring · requiredNama file, termasuk ekstensi (maks 255 karakter).
sizeinteger · requiredTotal ukuran file dalam byte.
contentTypestring · requiredTipe MIME (maks 200 karakter).

Cakupan: upload. Mengembalikan 413 jika size melebihi batas paket akun.

File

GET/api/v1/filesMenampilkan file milik kunci. Mendukung page, limit (maks 100), status.
GET/api/v1/files/:idMengambil satu file berdasarkan ID.
PATCH/api/v1/files/:idMemperbarui displayName, description, tags, atau visibility.
DELETE/api/v1/files/:idMenghapus file dan mengembalikan kuota penyimpanan.
{
  "data": {
    "id":            "clxxxxxxxxxxxxxxxxxxxxxx",
    "slug":          "9nK2xA",
    "filename":      "demo.mp4",
    "size":          881975296,
    "sizeFormatted": "841.1 MB",
    "mimeType":      "video/mp4",
    "status":        "READY",
    "scanStatus":    "CLEAN",
    "downloads":     128,
    "views":         412,
    "tags":          ["demo"],
    "visibility":    "PUBLIC",
    "adsEnabled":    true,
    "createdAt":     "2026-04-21T08:12:04.000Z",
    "updatedAt":     "2026-04-21T08:12:04.000Z"
  }
}

Cakupan: GET memerlukan files:read; PATCH/DELETE memerlukan files:write.

Butuh endpoint yang tidak ada di sini?

Buka tiket dukungan dan jelaskan kasus penggunaannya.

Hubungi dukungan