API DOCUMENTATION

SatriaCanvas API

Endpoint publik · Free Fire, Mobile Legends, IQC Image & IQC Text

GET / POSTImage ResponseNo Auth
01

Overview

Base URL

Ganti satriacanvas.vercel.app dengan domain Vercel kamu.

text
https://satriacanvas.vercel.app
GET/fake-ffGenerate kartu lobby Free Fire → image/jpeg
GET/fake-mlGenerate kartu lobby Mobile Legends → image/png
GET / POST/iqc-imageGenerate canvas IQC WhatsApp dengan foto → image/png
GET / POST/iqc-textGenerate canvas IQC WhatsApp dengan teks → image/png

Semua endpoint mengembalikan binary image langsung — bukan JSON. Cocok dipakai di WA Bot, Telegram Bot, cURL, atau langsung di browser.

02

Endpoint Free Fire

GET /fake-ffJPEG
Endpoint
text
GET https://satriacanvas.vercel.app/fake-ff?usr={username}&lobby={1-30}
Parameter Query
ParameterTipeDefaultDeskripsi
usrWAJIBstringUsername yang tampil di kartu, maksimal 20 karakter.
lobbynumberrandomNomor background lobby (1–30). Kosongkan untuk random.
Response Header
HeaderNilai
Content-Typeimage/jpeg
Content-Dispositioninline; filename="ff-{username}-lobby{n}.jpg"
X-Usernameusername yang digunakan
X-Lobbynomor lobby yang digunakan
Cache-Controlno-store
Contoh
bash
curl -o ff_card.jpg "https://satriacanvas.vercel.app/fake-ff?usr=Satriadevs&lobby=5"
Daftar Lobby FF30 lobby
NoPreviewNilai Parameter
01
lobby=1
02
lobby=2
03
lobby=3
04
lobby=4
05
lobby=5
06
lobby=6
07
lobby=7
08
lobby=8
09
lobby=9
10
lobby=10
03

Endpoint Mobile Legends

GET /fake-mlPNG
Endpoint
text
GET https://satriacanvas.vercel.app/fake-ml?usr={username}&rank={rank_key}&border={1-16}&avatar={url}
Parameter Query
ParameterTipeDefaultDeskripsi
usrWAJIBstringUsername player, maksimal 15 karakter.
rankstringimoKey rank. Lihat tabel di bawah.
bordernumber0Nomor border avatar (1–16). 0 pakai outline default emas.
avatarstring (URL)defaultURL foto avatar. Harus diawali https://.
Response Header
HeaderNilai
Content-Typeimage/png
Content-Dispositioninline; filename="ml-{username}-{rank}.png"
X-Usernameusername
X-Rankrank
X-Borderborder
Cache-Controlno-store
Contoh
bash
curl -o ml.png "https://satriacanvas.vercel.app/fake-ml?usr=Satriadevs&rank=legend&border=3"
Daftar Rank ML7 rank
Key (rank=)IconNama RankWarna
rank=imoImmortalImmortal
#e8d5a3
rank=mawiMythicMythic
#c084fc
rank=legendLegendLegend
#f97316
rank=epicEpicEpic
#a855f7
rank=gmGrandmasterGrandmaster
#60a5fa
rank=gloryGloryGlory
#34d399
rank=honorHonorHonor
#94a3b8
Daftar Border ML16 border
NoPreviewNilai Parameter
01
border=1
02
border=2
03
border=3
04
border=4
05
border=5
06
border=6
07
border=7
08
border=8
09
border=9
10
border=10
11
border=11
12
border=12
13
border=13
14
border=14
15
border=15
16
border=16
04

Endpoint IQC Image

GET /iqc-imagePNG

Generate canvas bergaya screenshot WhatsApp dengan foto, nama, dan waktu. Background dari aset lokal bg.jpg.

Endpoint (GET)
text
GET https://satriacanvas.vercel.app/iqc-image?nama={nama}&waktu={waktu}&photo_url={url}
Parameter Query (GET)
ParameterTipeDefaultDeskripsi
namaWAJIBstringNama pengirim. Tampil di area atas dan bawah canvas. Maks 25 karakter.
waktuWAJIBstringWaktu pesan, contoh: 13.56. Tampil di area tengah canvas.
teksstringkosongIsi teks yang tampil di area chat bubble canvas. Maks 60 karakter.
photo_urlstring (URL)kosongURL foto untuk slot foto canvas. Harus diawali https://.

Untuk kirim foto dari file (bukan URL), pakai metode POST multipart/form-data dengan field photo.

Parameter Form (POST multipart)
FieldTipeDefaultDeskripsi
namaWAJIBstringNama pengirim, maks 25 karakter.
waktuWAJIBstringWaktu pesan, contoh: 13.56.
teksstringkosongTeks pesan yang tampil di area chat canvas. Maks 60 karakter.
photofile (image/*)kosongFile gambar untuk foto. Lebih prioritas dari photo_url.
photo_urlstring (URL)kosongURL foto. Digunakan jika field photo tidak ada.
Response Header
HeaderNilai
Content-Typeimage/png
Content-Dispositioninline; filename="iqc-image-{nama}.png"
X-Namanama yang digunakan
X-Waktuwaktu yang digunakan
Cache-Controlno-store
Contoh
bash
curl -o iqc_image.png "https://satriacanvas.vercel.app/iqc-image?nama=Satriadevs&waktu=13.56&teks=Halo+kak&photo_url=https://i.imgur.com/abc.jpg"
bash
curl -o iqc_image.png -F "nama=Satriadevs" -F "waktu=13.56" -F "teks=Halo kak" -F "photo=@/path/to/photo.jpg" "https://satriacanvas.vercel.app/iqc-image"
05

Endpoint IQC Text

GET /iqc-textPNG

Generate screenshot chat WhatsApp dengan teks pesan, waktu, dan status bar (sinyal, wifi, baterai). Mendukung emoji yang otomatis dirender sebagai gambar.

Endpoint (GET)
text
GET https://satriacanvas.vercel.app/iqc-text?text={teks}&time={waktu}&baterai=true&bat_level=100&operator=true&timebar=true&wifi=true
Parameter Query (GET)
ParameterTipeDefaultDeskripsi
textWAJIBstringTeks pesan. Mendukung emoji langsung di teks.
timeWAJIBstringWaktu pesan, contoh: 13.56.
bateraibooleantrueTampilkan ikon baterai di status bar.
bat_levelstring100Level baterai dalam persen (0–100).
operatorbooleantrueTampilkan sinyal operator di status bar.
timebarbooleantrueTampilkan waktu di kiri status bar.
wifibooleantrueTampilkan ikon wifi di status bar.
Body JSON (POST)
json
{
  "text": "Halo kak, udah makan belum? 😊",
  "time": "13.56",
  "baterai": [true, "80"],
  "operator": true,
  "timebar": true,
  "wifi": true
}
Response Header
HeaderNilai
Content-Typeimage/png
Content-Dispositioninline; filename="iqc-text-{timestamp}.png"
X-Textteks (URL-encoded, 50 char pertama)
X-Timewaktu yang digunakan
Cache-Controlno-store
Contoh
bash
curl -o iqc_text.png "https://satriacanvas.vercel.app/iqc-text?text=Halo+kak&time=13.56"
bash
curl -o iqc_text.png "https://satriacanvas.vercel.app/iqc-text?text=Selamat+pagi+☀️&time=07.30&baterai=true&bat_level=90&wifi=false"
06

Error Response

Format ErrorJSON

Kalau ada yang salah, server balas JSON dengan status code yang sesuai — bukan gambar.

json
{ "error": "Parameter 'usr' wajib diisi", "example": "/fake-ff?usr=PlayerName&lobby=1" }
HTTP StatusPenyebab
400 Bad RequestParameter wajib tidak diisi atau nilainya tidak valid
500 Internal Server ErrorAda error di server saat memproses canvas
07

Contoh Penggunaan

cURLTerminal
Free Fire
bash
curl -o ff.jpg "https://satriacanvas.vercel.app/fake-ff?usr=Satriadevs&lobby=12"
Mobile Legends
bash
curl -o ml.png "https://satriacanvas.vercel.app/fake-ml?usr=Satria&rank=legend&border=5"
IQC Image (URL foto)
bash
curl -o iqc_img.png "https://satriacanvas.vercel.app/iqc-image?nama=Satriadevs&waktu=13.56&teks=Halo+kak&photo_url=https://i.imgur.com/abc.jpg"
IQC Image (upload foto)
bash
curl -o iqc_img.png -F "nama=Satriadevs" -F "waktu=13.56" -F "teks=Halo kak" -F "photo=@foto.jpg" "https://satriacanvas.vercel.app/iqc-image"
IQC Text
bash
curl -o iqc_txt.png "https://satriacanvas.vercel.app/iqc-text?text=Halo+kak+😊&time=13.56"
Node.js / Baileys (WhatsApp Bot)WA Bot
javascript
const axios = require("axios");

async function sendCard(sock, jid, url, caption) {
  const res = await axios.get(url, { responseType: "arraybuffer" });
  await sock.sendMessage(jid, { image: Buffer.from(res.data), caption });
}

sendCard(sock, jid, `https://satriacanvas.vercel.app/fake-ff?usr=Satriadevs&lobby=5`, "🎮 FF Card");
sendCard(sock, jid, `https://satriacanvas.vercel.app/fake-ml?usr=Satria&rank=imo`, "⚔️ ML Card");
sendCard(sock, jid, `https://satriacanvas.vercel.app/iqc-text?text=Halo+kak&time=13.56`, "💬 IQC Text");
sendCard(sock, jid, `https://satriacanvas.vercel.app/iqc-image?nama=Satria&waktu=13.56`, "📸 IQC Image");
Python (requests)Python
python
import requests

BASE = "https://satriacanvas.vercel.app"

def get_card(endpoint, params):
    res = requests.get(f"{BASE}/{endpoint}", params=params)
    if res.status_code == 200:
        return res.content
    return None

ff_img  = get_card("fake-ff",   {"usr": "Satriadevs", "lobby": 5})
ml_img  = get_card("fake-ml",   {"usr": "Satria", "rank": "legend", "border": 3})
iqc_txt = get_card("iqc-text",  {"text": "Halo kak 😊", "time": "13.56"})
iqc_img = get_card("iqc-image", {"nama": "Satriadevs", "waktu": "13.56",
                                  "photo_url": "https://i.imgur.com/abc.jpg"})
JavaScript / Fetch (Browser)JS
javascript
async function getCard(endpoint, params) {
  const q   = new URLSearchParams(params);
  const res = await fetch(`https://satriacanvas.vercel.app/${endpoint}?${q}`);
  if (!res.ok) throw new Error("Gagal");
  return URL.createObjectURL(await res.blob());
}

const ffUrl  = await getCard("fake-ff",   { usr: "Satriadevs", lobby: 5 });
const mlUrl  = await getCard("fake-ml",   { usr: "Satria", rank: "legend" });
const txtUrl = await getCard("iqc-text",  { text: "Halo kak", time: "13.56" });
const imgUrl = await getCard("iqc-image", { nama: "Satriadevs", waktu: "13.56", teks: "Halo kak" });