HINATAUPLOADER
DEVELOPER DOCS

HINATA API

Integrasikan file hosting dan URL shortener ke aplikasi kamu dengan REST API yang sederhana.

BASE URLhttps://hsurl.my.id/api
01

Authentication

Jika opsi Require API Key aktif di admin panel, kirim global API key sebagai Bearer token pada setiap request.

Authorization: Bearer YOUR_API_KEY
Jangan 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 / filesFileWajib · maks. 25 MB per file
AuthorizationHeaderWajib jika global API key aktif

Contoh 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": "![photo.jpg](https://hsurl.my.id/f/aK82Jd9P.jpg)",
    "delete_token": "KEEP_THIS_TOKEN"
  }]
}
03

Short Link

POST/shortenBuat shortlink random atau custom tanpa prefix /s.
urlstringWajib · URL http/https tujuan
aliasstringOpsional · huruf, angka, _ dan -
expires_atISO dateOpsional · waktu kedaluwarsa
passwordstringOpsional · proteksi password
curl -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.

400BAD_REQUESTParameter atau format request tidak valid
401UNAUTHORIZEDAPI key tidak ada atau salah
403IP_BLOCKEDAlamat IP masuk blacklist / auto-ban
404NOT_FOUNDFile, link, atau token tidak ditemukan
409ALIAS_EXISTSCustom alias sudah digunakan
413FILE_TOO_LARGEFile melebihi batas 25 MB
415UNSUPPORTED_FILEEkstensi atau MIME tidak diizinkan
429RATE_LIMITEDTerlalu banyak request
500SERVER_ERRORKesalahan internal