8 engine independen dengan 16 endpoint send & verify. Ada dua cara pakai: tanpa apikey (ikut limit global bersama, 200 aktivasi per jam) atau dengan apikey (kuota pribadi dari panel, tanpa limit global).
Pemakaian kuota tanpa apikey saat ini (berlaku untuk semua engine, reset otomatis tiap 1 jam).
Akumulasi seluruh request AmPro sejak layanan aktif — semua engine, mode apikey & tanpa apikey.
Riwayat global: menampung pemakaian dengan maupun tanpa apikey, lengkap dengan HTTP status code. Log disimpan persisten di Panel — tidak hilang walau server restart.
| Waktu | Tool | Mode | Status | Pesan | Durasi |
|---|---|---|---|---|---|
| Memuat data… | |||||
Langsung pakai tanpa registrasi. Kuota mengikuti limit global bersama: 200 aktivasi per jam (maks 60 per IP). Request yang gagal di server engine tetap terhitung.
Kirim email tujuan ke endpoint send. Tidak perlu parameter apikey.
GET /api/ampro/chioriya-send?email=user@gmail.com
Buka email, salin magic link-nya, lalu kirim ke verify.
GET /api/ampro/chioriya-verify?email=user@gmail.com&link=https://alight.link/abc123
Untuk bebas dari limit global: sertakan apikey panel (query ?apikey=, header x-api-key, atau Authorization: Bearer). Biaya dipotong dari limit akun panel: send = 5 limit, verify = 5 limit. Send/verify yang gagal di server engine otomatis direfund.
GET /api/ampro/chioriya-send?email=user@gmail.com&apikey=APIKEY_KAMU
GET /api/ampro/chioriya-verify?email=user@gmail.com&link=https://alight.link/abc123&apikey=APIKEY_KAMU
Pilih bahasa pemrograman di bawah — masing-masing punya 2 contoh: Send (kirim magic link, cost 5) dan Verify (aktivasi premium, cost 5). Ganti chioriya di URL dengan v1–v7 untuk engine lain; struktur request & responsnya identik.
&apikey=APIKEY_KAMU di akhir URL untuk mode apikey (bebas limit global).curl "https://api.chioriya.my.id/api/ampro/chioriya-send?email=user@gmail.com"
# dengan apikey (bebas limit global):
curl "https://api.chioriya.my.id/api/ampro/chioriya-send?email=user@gmail.com&apikey=APIKEY_KAMU"
curl "https://api.chioriya.my.id/api/ampro/chioriya-verify?email=user@gmail.com&link=https://alight.link/abc123"
ampro.mjs lalu jalankan node ampro.mjs.const email = "user@gmail.com";
const apikey = ""; // isi apikey panel kalau ada, kosongkan untuk mode limit global
const url = new URL("https://api.chioriya.my.id/api/ampro/chioriya-send");
url.searchParams.set("email", email);
if (apikey) url.searchParams.set("apikey", apikey);
const res = await fetch(url, { headers: { "Accept": "application/json" } });
const data = await res.json();
console.log(res.status, data);
// sukses -> { status: 200, ok: true, email: "...", traceId: "..." }
const link = "https://alight.link/abc123"; // salin dari email magic link
const url2 = new URL("https://api.chioriya.my.id/api/ampro/chioriya-verify");
url2.searchParams.set("email", email);
url2.searchParams.set("link", link);
if (apikey) url2.searchParams.set("apikey", apikey);
const res2 = await fetch(url2);
const data2 = await res2.json();
console.log(res2.status, data2);
// sukses -> orderId, uid, refreshToken, validUntil, dll.
requests (pip install requests).import requests
APIKEY = "" # isi apikey panel kalau ada, kosongkan untuk mode limit global
params = {"email": "user@gmail.com"}
if APIKEY:
params["apikey"] = APIKEY
r = requests.get(
"https://api.chioriya.my.id/api/ampro/chioriya-send",
params=params,
timeout=30,
)
print(r.status_code, r.json())
# sukses -> {'status': 200, 'ok': True, 'email': '...', ...}
params2 = {
"email": "user@gmail.com",
"link": "https://alight.link/abc123", # salin dari email magic link
}
if APIKEY:
params2["apikey"] = APIKEY
r2 = requests.get(
"https://api.chioriya.my.id/api/ampro/chioriya-verify",
params=params2,
timeout=30,
)
print(r2.status_code, r2.json())
# sukses -> orderId, uid, refreshToken, validUntil, dll.
<?php
$apikey = ""; // isi apikey panel kalau ada, kosongkan untuk mode limit global
$url = "https://api.chioriya.my.id/api/ampro/chioriya-send?"
. http_build_query([
"email" => "user@gmail.com",
"apikey" => $apikey,
]);
$ch = curl_init($url);
curl_setopt_array($ch, [CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 30]);
$res = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
$data = json_decode($res, true);
echo $status . PHP_EOL . $res . PHP_EOL;
// sukses -> {"status":200,"ok":true,"email":"...","traceId":"..."}
$url2 = "https://api.chioriya.my.id/api/ampro/chioriya-verify?"
. http_build_query([
"email" => "user@gmail.com",
"link" => "https://alight.link/abc123", // salin dari email magic link
"apikey" => $apikey,
]);
$ch2 = curl_init($url2);
curl_setopt_array($ch2, [CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 30]);
$res2 = curl_exec($ch2);
$status2 = curl_getinfo($ch2, CURLINFO_HTTP_CODE);
curl_close($ch2);
$data2 = json_decode($res2, true);
echo $status2 . PHP_EOL . $res2 . PHP_EOL;
// sukses -> orderId, uid, refreshToken, validUntil, dll.
retryAfter atau pakai apikey panel. Magic link hanya berlaku sekali — email yang sama bisa di-send ulang untuk order berikutnya.Jalankan request langsung dari halaman ini. Kosongkan apikey untuk mencoba mode limit global.
// hasil request akan muncul di sini
Semua endpoint menerima GET & POST (JSON). Parameter: email, link (verify), apikey (opsional).
| Method | Endpoint | Fungsi | Biaya |
|---|---|---|---|
| GET/POST | /api/ampro/chioriya-send | ★ Main engine — kirim magic link (any email, order id prefix Chioriya-) | 5 |
| GET/POST | /api/ampro/chioriya-verify | ★ Main engine — verifikasi + aktivasi premium (orderId, uid, refreshToken) | 5 |
| GET/POST | /api/ampro/v1-send · v1-verify | Engine V1 — khusus Gmail | 5 / 5 |
| GET/POST | /api/ampro/v2-send · v2-verify | Engine V2 — any email | 5 / 5 |
| GET/POST | /api/ampro/v3-send · v3-verify | Engine V3 — limit 5 akun/jam | 5 / 5 |
| GET/POST | /api/ampro/v4-send · v4-verify | Engine V4 — any email | 5 / 5 |
| GET/POST | /api/ampro/v5-send · v5-verify | Engine V5 — send + verify 2 langkah | 5 / 5 |
| GET/POST | /api/ampro/v6-send · v6-verify | Engine V6 — butuh email AM yang sudah ada | 5 / 5 |
| GET/POST | /api/ampro/v7-send · v7-verify | Engine V7 — any email | 5 / 5 |
| GET | /api/ampro/activity | Monitor: limit global + stats sepanjang masa + 25 log terbaru | – |
| GET | /api/ampro/health | Status layanan & daftar engine | – |
| Kode | Arti |
|---|---|
| 200 | Sukses (cek ok di body untuk hasil aktivasi) |
| 400 | Parameter tidak valid (email/link kosong atau salah format) |
| 401 | Autentikasi tidak bisa diproses |
| 403 | Apikey tidak valid atau limit akun habis |
| 429 | Limit global terlampaui — lihat retryAfter & resetAt |
| 500 | Engine gagal memproses (refund otomatis jika pakai apikey) |
{
"status": true,
"ok": true,
"tool": "chioriya",
"step": "verify",
"email": "user@gmail.com",
"uid": "…",
"orderId": "Chioriya-a1b2c3d4e5f6",
"planName": "Alight Motion Pro / Member",
"membershipStatus": "PREMIUM_ACTIVE",
"subscriptionType": "Yearly VIP License",
"activatedAt": "2026-09-10T…",
"validUntil": "10 September 2027",
"refreshToken": "…",
"mode": "anon",
"cost": 0
}
{
"status": false,
"code": "GLOBAL_LIMIT",
"message": "Limit global (tanpa apikey) sudah habis: 200 aktivasi per 1 jam. Tunggu 187 detik lagi, atau pakai apikey untuk tanpa limit global.",
"retryAfter": 187,
"globalLimit": { "limit": 200, "used": 200, "remaining": 0, "resetAt": "2026-09-10T02:05:00.000Z", "windowMinutes": 60, "reason": "GLOBAL" },
"hint": "Pakai apikey untuk bebas dari limit global."
}
Limit global tanpa apikey dilindungi beberapa lapis agar tidak bisa di-bypass:
Seluruh pemakai tanpa apikey berbagi satu kuota 200/jam — rotasi IP tidak menambah kuota.
Maksimal 60 request per IP per jam, dari IP yang dideteksi oleh platform (bukan dari header yang bisa dimanipulasi user).
Apikey salah = ditolak 403, tidak pernah otomatis dianggap mode tanpa apikey.
Request tanpa apikey yang gagal di engine tetap terhitung — mencegah spam retry gratis.
Jendela 1 jam dihitung di server dengan counter bersama (Redis bila dikonfigurasi, atau counter persisten di Panel Chioriya) — reset dari sisi client tidak berpengaruh.
/api/ampro/activity setiap 4 detik.