Docku API

API menggunakan HTTP dan JSON. Tidak diperlukan API key. Upload memakai multipart/form-data. Semua endpoint API mengembalikan JSON.

Mulai

Base URL produksi:

https://docku.web.id

Format respons

{ "success": true, "message": "...", "data": {} }

Status layanan

GET/api/status

Mengecek status API, mode maintenance, batas upload, dan waktu server.

curl "https://docku.web.id/api/status"

Health check

GET/health

Endpoint ringan untuk health check Pterodactyl, reverse proxy, atau monitor eksternal.

Upload file

POST/api/upload

Kirim satu file dengan field file. Field expires opsional.

FieldTipeWajibKeterangan
fileFileYaMaksimal 350 MB.
expiresStringTidak30m, 60m, 24h, 3d, 7d, 14d, 30d. Default 60m.

cURL

curl -X POST "https://docku.web.id/api/upload" \ -F "file=@foto.jpg" \ -F "expires=24h"

JavaScript

const body = new FormData(); body.append('file', fileInput.files[0]); body.append('expires', '24h'); const response = await fetch('/api/upload', { method: 'POST', body }); const result = await response.json();

Contoh respons

{ "success": true, "message": "File berhasil diunggah.", "data": { "filename": "a1b2c3d4e5f6.jpg", "originalName": "foto.jpg", "size": 182400, "mimeType": "image/jpeg", "url": "https://docku.web.id/a1b2c3d4e5f6.jpg", "expiresAt": "2026-08-29T02:00:00.000Z" } }

Metadata file

GET/api/file/:filename

Mengambil nama asli, MIME type, ukuran, waktu dibuat, masa kedaluwarsa, dan URL publik tanpa mengunduh isi file.

curl "https://docku.web.id/api/file/a1b2c3d4e5f6.jpg"

Akses file publik

GET/:filename

URL hasil upload membuka file secara langsung. Server mendukung Range, ETag, HEAD, dan cache browser. Video, audio, gambar aman, dan PDF dapat ditampilkan inline. Tipe file lain dikirim sebagai attachment.

Byte range

curl -H "Range: bytes=0-1048575" \ "https://docku.web.id/a1b2c3d4e5f6.mp4"

Status error

HTTPArti
400Input tidak valid, file tidak terbaca, atau format tidak diizinkan.
403IP atau domain diblokir.
404Endpoint, file, atau shortlink tidak ditemukan.
409Alias sudah digunakan atau termasuk alias sistem.
410File sudah kedaluwarsa atau tidak aktif.
413Ukuran request terlalu besar.
429Rate limit tercapai.
503Maintenance atau API dinonaktifkan.

Batas dan konfigurasi

  • Maksimal upload: 350 MB.
  • Upload per menit per IP: 30.
  • Shortlink per menit per IP: 60.
  • Tidak menggunakan API key.
  • File yang kedaluwarsa dibersihkan otomatis setiap 5 menit.