API Documentation

Dokumentasi AxzyeDev API

Panduan lengkap untuk mengakses endpoint AxzyeDev — Captcha Verify dan lainnya. Semua request wajib menyertakan autentikasi (API Key atau Bearer token).

01 Overview

AxzyeDev API menyediakan endpoint untuk verifikasi captcha dan layanan AxzyeDev lainnya. Cocok untuk integrasi dari:

  • Website kamu sendiri (frontend) — pakai Bearer token dari Firebase
  • Bot / cmd / cron — pakai X-API-Key
  • Server-to-server (Node.js, PHP, Python, Go) — pakai X-API-Key
Catatan: Halaman internal seperti dashboard.html tidak perlu API Key — dia pakai Bearer token dari login Firebase user. API Key khusus buat integrasi eksternal.

02 Base URL

Semua endpoint menggunakan base URL berikut:

https://axzyedev.biz.id/api/v1

03 Autentikasi

API ini mendukung 2 mode autentikasi. Pilih salah satu sesuai kebutuhan:

Mode 1 — API Key (external)

Kirim lewat header X-API-Key. Cocok untuk bot, cmd, server-to-server.

X-API-Key: AzaGanteng-xxxxxxxxxxxxxxxxxxxxxxxx

Mode 2 — Firebase ID Token (web)

Kirim lewat header Authorization: Bearer <idToken>. Cocok untuk website kamu — user login pakai Firebase, ambil ID token, kirim ke API.

Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6...
Jangan expose API Key di frontend publik. Simpan di server atau environment variable. Gunakan Bearer token (Firebase) untuk frontend yang user-facing.

04 Rate Limit

Setiap user (UID) atau API Key dibatasi:

  • Rate limit dihitung dari UID pemilik API Key, bukan dari akun target
  • Regenerate API Key tidak reset rate limit
  • Akunadmin unlimited

Saat limit tercapai, response HTTP 429 dengan info sisa kuota:

{
  "success": false,
  "message": "Rate limit tercapai. Max 5 akun per 24 jam. Sudah terpakai: 5/5.",
  "used": 5,
  "limit": 5
}
POST /api/v1/captcha
Captcha Verify
Verifikasi token reCAPTCHA v2/v3 ke server Google. Dipakai di halaman login & daftar. Tidak butuh API key (public endpoint).
Body
token string Token dari widget grecaptcha.getResponse()
Contoh Request
# Public endpoint — tanpa API key
curl -X POST "https://axzyedev.biz.id/api/v1/captcha" \
  -H "Content-Type: application/json" \
  -d '{"token":"03AGdBq26..."}'
// Browser — pakai token dari grecaptcha
const token = grecaptcha.getResponse();

const res = await fetch("/api/v1/captcha", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({ token })
}).then(r => r.json());

console.log(res.success);
<?php
$ch = curl_init("https://axzyedev.biz.id/api/v1/captcha");
curl_setopt_array($ch, [
  CURLOPT_POST           => true,
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTPHEADER     => ["Content-Type: application/json"],
  CURLOPT_POSTFIELDS     => json_encode(["token" => "03AGdBq26..."])
]);
$data = json_decode(curl_exec($ch), true);
curl_close($ch);
import requests

res = requests.post(
    "https://axzyedev.biz.id/api/v1/captcha",
    json={"token": "03AGdBq26..."}
).json()

print(res)
HTTP 200
{
  "success": true,
  "hostname": "axzyedev.biz.id",
  "challenge_ts": "2025-01-15T10:30:00Z",
  "score": null
}

06 Error Codes

Semua error mengembalikan JSON dengan format { success: false, message: "..." }.

Status Pesan Artinya
400 Email tidak valid Format email salah atau kosong
401 API Key tidak valid API key salah, tidak ada, atau dinonaktifkan
401 Sesi login tidak valid Bearer token expired atau invalid
401 Autentikasi wajib Tidak ada header X-API-Key / Authorization
405 Method not allowed Pakai POST, bukan GET/PUT/DELETE
429 Rate limit tercapai Sudah pakai 5 akun / 24 jam
500 Terjadi kesalahan di server Error internal — coba lagi nanti
502 Server Google tidak merespon Downstream error dari Google