HINATA API
Integrasikan file hosting dan URL shortener ke aplikasi kamu dengan REST API yang sederhana.
BASE URL
https://hsurl.my.id/api01
Authentication
Jika opsi Require API Key aktif di admin panel, kirim global API key sebagai Bearer token pada setiap request.
Authorization: Bearer YOUR_API_KEYJangan taruh API key di frontend publik.Simpan key di environment variable server atau secret manager.
02
Upload File
POST
/uploadUpload satu atau beberapa file menggunakan multipart/form-data.file / files
FileWajib · maks. 25 MB per fileAuthorization
HeaderWajib jika global API key aktifContoh request
curl -X POST https://hsurl.my.id/api/upload \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@/path/to/photo.jpg"Response 201
{
"success": true,
"files": [{
"filename": "aK82Jd9P.jpg",
"url": "https://hsurl.my.id/f/aK82Jd9P.jpg",
"markdown": "",
"delete_token": "KEEP_THIS_TOKEN"
}]
}03
Short Link
POST
/shortenBuat shortlink random atau custom tanpa prefix /s.url
stringWajib · URL http/https tujuanalias
stringOpsional · huruf, angka, _ dan -expires_at
ISO dateOpsional · waktu kedaluwarsapassword
stringOpsional · proteksi passwordcurl -X POST https://hsurl.my.id/api/shorten \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"url": "https://openai.com",
"alias": "OpenAI",
"expires_at": "2027-01-01T00:00:00Z"
}'Endpoint lain
GET
/infoStatus API dan batas upload.GET
/file/:filenameMetadata file publik.DELETE
/delete/:tokenHapus file memakai delete token.GET
/linksDaftar shortlink; membutuhkan API key/admin.DELETE
/links/:idHapus shortlink; membutuhkan API key/admin.04
Error & Rate Limit
Batas default adalah 20 request per menit per IP. Response upload dan shorten menyertakan header X-RateLimit-Remaining. Pelanggaran berulang memicu auto-ban sementara.
400
BAD_REQUESTParameter atau format request tidak valid401
UNAUTHORIZEDAPI key tidak ada atau salah403
IP_BLOCKEDAlamat IP masuk blacklist / auto-ban404
NOT_FOUNDFile, link, atau token tidak ditemukan409
ALIAS_EXISTSCustom alias sudah digunakan413
FILE_TOO_LARGEFile melebihi batas 25 MB415
UNSUPPORTED_FILEEkstensi atau MIME tidak diizinkan429
RATE_LIMITEDTerlalu banyak request500
SERVER_ERRORKesalahan internal