Total Aktivasi
 
sejak pertama kali
Hari Ini
 
memuat tanggal...
01 Email
02 Verifikasi
03 Selesai
📧
Masukkan Email
Magic link dikirim ke inbox kamu
Cek inbox & spam setelah klik kirim.
API Hub
🛠️
// POST /api/send-link — Kirim magic link ke email
const sendMagicLink = async (email) => {
  const res = await fetch('https://am.panpan.biz.id/api/send-link', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ email })
  });
  const data = await res.json();
  if (data.success) console.log('Link terkirim!');
  else throw new Error(data.message);
  return data;
};

// Penggunaan:
await sendMagicLink('user@gmail.com');
// POST /api/send-link — dengan Axios (Node.js)
const axios = require('axios');

const sendMagicLink = async (email) => {
  const { data } = await axios.post(
    'https://am.panpan.biz.id/api/send-link',
    { email },
    { headers: { 'Content-Type': 'application/json' } }
  );
  if (!data.success) throw new Error(data.message);
  return data;
};

// Penggunaan:
sendMagicLink('user@gmail.com').then(console.log);
// POST /api/verify-link — Verifikasi & aktivasi premium
const verifyAndActivate = async (email, magicLink) => {
  const res = await fetch('https://am.panpan.biz.id/api/verify-link', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ email, magicLink })
  });
  const { success, data, message } = await res.json();
  if (!success) throw new Error(message);

  // data berisi: idToken, refreshToken, uid, orderId, validUntil, ...
  const { idToken, refreshToken, orderId } = data;
  console.log('Premium aktif! Order:', orderId);
  return data;
};
// POST /api/verify-link — dengan Axios
const axios = require('axios');

const verifyAndActivate = async (email, magicLink) => {
  try {
    const { data } = await axios.post(
      'https://am.panpan.biz.id/api/verify-link',
      { email, magicLink }
    );
    console.log('idToken:', data.data.idToken);
    return data.data;
  } catch (err) {
    console.error(err.response?.data?.message ?? err.message);
  }
};
// GET /api/status — Cek server online
const checkStatus = async () => {
  const res = await fetch('https://am.panpan.biz.id/api/status');
  const { status, timestamp } = await res.json();
  console.log(`Server: ${status} @ ${timestamp}`);
  return status === 'online';
};

// GET /api/stats — Total & today aktivasi
const getStats = async () => {
  const res = await fetch('https://am.panpan.biz.id/api/stats');
  const { total, today } = await res.json();
  console.log(`Total: ${total} | Hari ini: ${today}`);
  return { total, today };
};
// GET /api/status + /api/stats — dengan Axios
const axios = require('axios');
const BASE = 'https://am.panpan.biz.id';

// Parallel request — lebih efisien
const getDashboard = async () => {
  const [statusRes, statsRes] = await Promise.all([
    axios.get(`${BASE}/api/status`),
    axios.get(`${BASE}/api/stats`),
  ]);
  return {
    online: statusRes.data.status === 'online',
    ...statsRes.data,
  };
};

getDashboard().then(console.log);
GET /api/status Health check server

Cek apakah server sedang online. Tidak memerlukan body.

cURL curl -X GET 'https://am.panpan.biz.id/api/status'
GET /api/stats Statistik aktivasi

Mengembalikan total aktivasi dan jumlah hari ini.

cURL curl -X GET 'https://am.panpan.biz.id/api/stats'
POST /api/send-link Kirim magic link ke email

Mengirim magic link Firebase ke email yang diberikan.

cURL curl -X POST 'https://am.panpan.biz.id/api/send-link' \ -H 'Content-Type: application/json' \ -d '{"email": "user@gmail.com"}'
POST /api/verify-link Verifikasi & aktivasi premium

Verifikasi oobCode dan aktifkan Alight Motion Premium.

cURL curl -X POST 'https://am.panpan.biz.id/api/verify-link' \ -H 'Content-Type: application/json' \ -d '{ "email": "user@gmail.com", "magicLink": "https://alightcreative..." }'
Response { "success": true, "message": "verifikasi berhasil, premium aktif.", "data": { "email": "...", "uid": "...", "status": "ACTIVE", "membershipStatus": "PREMIUM_ACTIVE", "idToken": "...", "refreshToken": "...", "orderId": "neo-xxxx", "validUntil": "..." } }