{"openapi":"3.1.0","info":{"title":"AlzRiss REST API","version":"0.1.0","description":"API publik AlzRiss. Satu API untuk bot WhatsApp, bot Telegram, situs, dan aplikasi modern.","contact":{"name":"AlzRiss","url":"https://api.alzriss.web.id"}},"servers":[{"url":"https://api.alzriss.web.id","description":"Produksi"}],"tags":[{"name":"System","description":"Status, info, dan statistik layanan"},{"name":"tools","description":"Perkakas umum: base64, hash, uuid, json, hitung teks"},{"name":"text","description":"Pengolahan teks"},{"name":"random","description":"Nilai acak kriptografis"},{"name":"utility","description":"IP, waktu, mime, URL, DNS"}],"paths":{"/health":{"get":{"tags":["System"],"summary":"System health","description":"Cek kesehatan layanan (tanpa rate limit berat).","parameters":[],"responses":{"200":{"description":"Berhasil","content":{"application/json":{"example":{"ok":true,"data":{"status":"sehat"},"timestamp":"2026-11-14T00:00:00.000Z"}}}},"400":{"description":"INVALID_PARAMETER"},"429":{"description":"RATE_LIMIT_EXCEEDED"}}}},"/api/status":{"get":{"tags":["System"],"summary":"System status","description":"Status aplikasi + metrik server nyata.","parameters":[],"responses":{"200":{"description":"Berhasil","content":{"application/json":{"example":{"ok":true,"data":{"layanan":"AlzRiss REST API"},"timestamp":"2026-11-14T00:00:00.000Z"}}}},"400":{"description":"INVALID_PARAMETER"},"429":{"description":"RATE_LIMIT_EXCEEDED"}}}},"/api/info":{"get":{"tags":["System"],"summary":"System info","description":"Identitas layanan, versi, dokumentasi, status provider.","parameters":[],"responses":{"200":{"description":"Berhasil","content":{"application/json":{"example":{"ok":true,"data":{"nama":"AlzRiss REST API"},"timestamp":"2026-11-14T00:00:00.000Z"}}}},"400":{"description":"INVALID_PARAMETER"},"429":{"description":"RATE_LIMIT_EXCEEDED"}}}},"/api/stats":{"get":{"tags":["System"],"summary":"System stats","description":"Statistik permintaan nyata sejak proses berjalan.","parameters":[],"responses":{"200":{"description":"Berhasil","content":{"application/json":{"example":{"ok":true,"data":{"total":0},"timestamp":"2026-11-14T00:00:00.000Z"}}}},"400":{"description":"INVALID_PARAMETER"},"429":{"description":"RATE_LIMIT_EXCEEDED"}}}},"/api/endpoints":{"get":{"tags":["System"],"summary":"System endpoints","description":"Daftar endpoint yang aktif.","parameters":[],"responses":{"200":{"description":"Berhasil","content":{"application/json":{"example":{"ok":true,"data":[],"timestamp":"2026-11-14T00:00:00.000Z"}}}},"400":{"description":"INVALID_PARAMETER"},"429":{"description":"RATE_LIMIT_EXCEEDED"}}}},"/api/tools/base64":{"get":{"tags":["tools"],"summary":"tools base64","description":"Encode/decode base64.","parameters":[{"name":"text","in":"query","required":true,"description":"Teks masukan","schema":{"type":"string","example":"halo"}},{"name":"mode","in":"query","required":false,"description":"encode | decode","schema":{"type":"string","example":"encode"}}],"responses":{"200":{"description":"Berhasil","content":{"application/json":{"example":{"ok":true,"data":{"hasil":"aGFsbw=="},"timestamp":"2026-11-14T00:00:00.000Z"}}}},"400":{"description":"INVALID_PARAMETER"},"429":{"description":"RATE_LIMIT_EXCEEDED"}}}},"/api/tools/hash":{"get":{"tags":["tools"],"summary":"tools hash","description":"Hash md5/sha1/sha256/sha512.","parameters":[{"name":"text","in":"query","required":true,"description":"Teks masukan","schema":{"type":"string","example":"halo"}},{"name":"algo","in":"query","required":false,"description":"md5|sha1|sha256|sha512","schema":{"type":"string","example":"sha256"}}],"responses":{"200":{"description":"Berhasil","content":{"application/json":{"example":{"ok":true,"data":{"algo":"sha256","hasil":"..."},"timestamp":"2026-11-14T00:00:00.000Z"}}}},"400":{"description":"INVALID_PARAMETER"},"429":{"description":"RATE_LIMIT_EXCEEDED"}}}},"/api/tools/uuid":{"get":{"tags":["tools"],"summary":"tools uuid","description":"Buat UUID v4.","parameters":[{"name":"count","in":"query","required":false,"description":"1–50","schema":{"type":"string","example":"1"}}],"responses":{"200":{"description":"Berhasil","content":{"application/json":{"example":{"ok":true,"data":{"uuid":["..."]},"timestamp":"2026-11-14T00:00:00.000Z"}}}},"400":{"description":"INVALID_PARAMETER"},"429":{"description":"RATE_LIMIT_EXCEEDED"}}}},"/api/tools/json/format":{"get":{"tags":["tools"],"summary":"tools json format","description":"Rapikan JSON.","parameters":[{"name":"text","in":"query","required":true,"description":"JSON","schema":{"type":"string","example":"{\"a\":1}"}},{"name":"indent","in":"query","required":false,"description":"0–8","schema":{"type":"string","example":"2"}}],"responses":{"200":{"description":"Berhasil","content":{"application/json":{"example":{"ok":true,"data":{"hasil":"{\n  \"a\": 1\n}"},"timestamp":"2026-11-14T00:00:00.000Z"}}}},"400":{"description":"INVALID_PARAMETER"},"429":{"description":"RATE_LIMIT_EXCEEDED"}}}},"/api/tools/json/validate":{"get":{"tags":["tools"],"summary":"tools json validate","description":"Validasi JSON.","parameters":[{"name":"text","in":"query","required":true,"description":"JSON","schema":{"type":"string","example":"{\"a\":1}"}}],"responses":{"200":{"description":"Berhasil","content":{"application/json":{"example":{"ok":true,"data":{"sah":true},"timestamp":"2026-11-14T00:00:00.000Z"}}}},"400":{"description":"INVALID_PARAMETER"},"429":{"description":"RATE_LIMIT_EXCEEDED"}}}},"/api/tools/text-count":{"get":{"tags":["tools"],"summary":"tools text-count","description":"Hitung karakter, kata, baris, kalimat.","parameters":[{"name":"text","in":"query","required":true,"description":"Teks","schema":{"type":"string","example":"halo dunia"}}],"responses":{"200":{"description":"Berhasil","content":{"application/json":{"example":{"ok":true,"data":{"kata":2},"timestamp":"2026-11-14T00:00:00.000Z"}}}},"400":{"description":"INVALID_PARAMETER"},"429":{"description":"RATE_LIMIT_EXCEEDED"}}}},"/api/text/case":{"get":{"tags":["text"],"summary":"text case","description":"Ubah huruf: upper|lower|title|sentence.","parameters":[{"name":"text","in":"query","required":true,"description":"Teks","schema":{"type":"string","example":"halo"}},{"name":"mode","in":"query","required":false,"description":"upper|lower|title|sentence","schema":{"type":"string","example":"upper"}}],"responses":{"200":{"description":"Berhasil","content":{"application/json":{"example":{"ok":true,"data":{"hasil":"HALO"},"timestamp":"2026-11-14T00:00:00.000Z"}}}},"400":{"description":"INVALID_PARAMETER"},"429":{"description":"RATE_LIMIT_EXCEEDED"}}}},"/api/text/reverse":{"get":{"tags":["text"],"summary":"text reverse","description":"Balik teks.","parameters":[{"name":"text","in":"query","required":true,"description":"Teks","schema":{"type":"string","example":"abc"}},{"name":"perWord","in":"query","required":false,"description":"1 = per kata","schema":{"type":"string","example":"0"}}],"responses":{"200":{"description":"Berhasil","content":{"application/json":{"example":{"ok":true,"data":{"hasil":"cba"},"timestamp":"2026-11-14T00:00:00.000Z"}}}},"400":{"description":"INVALID_PARAMETER"},"429":{"description":"RATE_LIMIT_EXCEEDED"}}}},"/api/text/stats":{"get":{"tags":["text"],"summary":"text stats","description":"Statistik teks + frekuensi karakter.","parameters":[{"name":"text","in":"query","required":true,"description":"Teks","schema":{"type":"string","example":"halo"}}],"responses":{"200":{"description":"Berhasil","content":{"application/json":{"example":{"ok":true,"data":{"karakter":4},"timestamp":"2026-11-14T00:00:00.000Z"}}}},"400":{"description":"INVALID_PARAMETER"},"429":{"description":"RATE_LIMIT_EXCEEDED"}}}},"/api/text/fancy":{"get":{"tags":["text"],"summary":"text fancy","description":"Aksara Unicode: bold|italic|monospace|circled|fullwidth.","parameters":[{"name":"text","in":"query","required":true,"description":"Teks","schema":{"type":"string","example":"halo"}},{"name":"style","in":"query","required":false,"description":"gaya atau \"daftar\"","schema":{"type":"string","example":"bold"}}],"responses":{"200":{"description":"Berhasil","content":{"application/json":{"example":{"ok":true,"data":{"hasil":"𝐡𝐚𝐥𝐨"},"timestamp":"2026-11-14T00:00:00.000Z"}}}},"400":{"description":"INVALID_PARAMETER"},"429":{"description":"RATE_LIMIT_EXCEEDED"}}}},"/api/random/number":{"get":{"tags":["random"],"summary":"random number","description":"Angka acak kriptografis.","parameters":[{"name":"min","in":"query","required":false,"description":"bawaan 1","schema":{"type":"string","example":""}},{"name":"max","in":"query","required":false,"description":"bawaan 100","schema":{"type":"string","example":""}}],"responses":{"200":{"description":"Berhasil","content":{"application/json":{"example":{"ok":true,"data":{"hasil":42},"timestamp":"2026-11-14T00:00:00.000Z"}}}},"400":{"description":"INVALID_PARAMETER"},"429":{"description":"RATE_LIMIT_EXCEEDED"}}}},"/api/random/color":{"get":{"tags":["random"],"summary":"random color","description":"Warna acak (hex/rgb/hsl).","parameters":[],"responses":{"200":{"description":"Berhasil","content":{"application/json":{"example":{"ok":true,"data":{"hex":"#1A2B3C"},"timestamp":"2026-11-14T00:00:00.000Z"}}}},"400":{"description":"INVALID_PARAMETER"},"429":{"description":"RATE_LIMIT_EXCEEDED"}}}},"/api/random/pick":{"get":{"tags":["random"],"summary":"random pick","description":"Pilih satu dari daftar.","parameters":[{"name":"items","in":"query","required":true,"description":"dipisah koma","schema":{"type":"string","example":"a,b,c"}}],"responses":{"200":{"description":"Berhasil","content":{"application/json":{"example":{"ok":true,"data":{"hasil":"b"},"timestamp":"2026-11-14T00:00:00.000Z"}}}},"400":{"description":"INVALID_PARAMETER"},"429":{"description":"RATE_LIMIT_EXCEEDED"}}}},"/api/utility/ip":{"get":{"tags":["utility"],"summary":"utility ip","description":"Info IP pemanggil.","parameters":[],"responses":{"200":{"description":"Berhasil","content":{"application/json":{"example":{"ok":true,"data":{"ip":"1.2.3.4"},"timestamp":"2026-11-14T00:00:00.000Z"}}}},"400":{"description":"INVALID_PARAMETER"},"429":{"description":"RATE_LIMIT_EXCEEDED"}}}},"/api/utility/timestamp":{"get":{"tags":["utility"],"summary":"utility timestamp","description":"Konversi epoch/ISO.","parameters":[{"name":"value","in":"query","required":false,"description":"epoch detik/milidetik atau ISO","schema":{"type":"string","example":""}}],"responses":{"200":{"description":"Berhasil","content":{"application/json":{"example":{"ok":true,"data":{"iso":"2026-11-14T00:00:00.000Z"},"timestamp":"2026-11-14T00:00:00.000Z"}}}},"400":{"description":"INVALID_PARAMETER"},"429":{"description":"RATE_LIMIT_EXCEEDED"}}}},"/api/utility/mime":{"get":{"tags":["utility"],"summary":"utility mime","description":"MIME dari nama berkas.","parameters":[{"name":"filename","in":"query","required":true,"description":"contoh: a.png","schema":{"type":"string","example":"a.png"}}],"responses":{"200":{"description":"Berhasil","content":{"application/json":{"example":{"ok":true,"data":{"mime":"image/png"},"timestamp":"2026-11-14T00:00:00.000Z"}}}},"400":{"description":"INVALID_PARAMETER"},"429":{"description":"RATE_LIMIT_EXCEEDED"}}}},"/api/utility/url-parse":{"get":{"tags":["utility"],"summary":"utility url-parse","description":"Urai URL.","parameters":[{"name":"url","in":"query","required":true,"description":"URL","schema":{"type":"string","example":"https://contoh.id/a?b=1"}}],"responses":{"200":{"description":"Berhasil","content":{"application/json":{"example":{"ok":true,"data":{"host":"contoh.id"},"timestamp":"2026-11-14T00:00:00.000Z"}}}},"400":{"description":"INVALID_PARAMETER"},"429":{"description":"RATE_LIMIT_EXCEEDED"}}}},"/api/utility/dns":{"get":{"tags":["utility"],"summary":"utility dns","description":"Lookup DNS A/AAAA/MX/TXT/NS/CNAME.","parameters":[{"name":"host","in":"query","required":true,"description":"domain","schema":{"type":"string","example":"alzriss.web.id"}},{"name":"type","in":"query","required":false,"description":"jenis record","schema":{"type":"string","example":"A"}}],"responses":{"200":{"description":"Berhasil","content":{"application/json":{"example":{"ok":true,"data":{"hasil":["..."]},"timestamp":"2026-11-14T00:00:00.000Z"}}}},"400":{"description":"INVALID_PARAMETER"},"429":{"description":"RATE_LIMIT_EXCEEDED"}}}},"/api/utility/url-status":{"get":{"tags":["utility"],"summary":"utility url-status","description":"Cek status HTTP sebuah URL.","parameters":[{"name":"url","in":"query","required":true,"description":"URL","schema":{"type":"string","example":"https://alzriss.web.id"}}],"responses":{"200":{"description":"Berhasil","content":{"application/json":{"example":{"ok":true,"data":{"status":200},"timestamp":"2026-11-14T00:00:00.000Z"}}}},"400":{"description":"INVALID_PARAMETER"},"429":{"description":"RATE_LIMIT_EXCEEDED"}}}}},"components":{"schemas":{"Galat":{"type":"object","properties":{"ok":{"type":"boolean","example":false},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}}