Navigasi

API Reference

Generate gambar quote bergaya Nokia klasik secara programatik via REST API. Response berupa binary PNG siap pakai.

Base URLhttps://qng.cc.cd
Versionv1
Responseimage/png
Download Docs

Autentikasi

Setiap request ke API wajib menyertakan API key melalui header X-API-Key. Tanpa key yang valid, request ditolak dengan status 401.

API Key
qng_elkaffcihuyy

Sertakan key ini di header setiap request ke /api/generate.

http Request Header
X-API-Key: qng_elkaffcihuyy

# Atau via Authorization
Authorization: Bearer qng_elkaffcihuyy

Generate Image

POST /api/generate Generate quote image

Mengirim data teks dan menghasilkan gambar PNG bergaya Nokia. Gambar dikembalikan langsung sebagai binary response.

PropertyValue
MethodPOST
Content-Typeapplication/json
Acceptimage/png
Max body size4 KB
Timeout30 detik

Request Body

Semua field bertipe string. Field opsional yang tidak disertakan menggunakan nilai default server.

FieldWajibMaxDeskripsi
pesanYa400 Teks utama yang tampil di badan gambar
senderTidak40 Nama pengirim, tampil di bagian info bawah
headerTidak40 Teks besar di atas gambar. Default: nilai sender
dateTidak20 Tanggal format DD/MM/YYYY. Default: tanggal server
timeTidak10 Jam format HH:MM. Default: jam server
frame Tidak Boolean. true = overlay Nokia frame di gambar output
{
  "pesan": "Jangan pernah menyerah pada impianmu.",
  "sender": "elkaff",
  "header": "elkaff",
  "date": "22/05/2026",
  "time": "07:30",
  "frame": false
}

Response

Jika request berhasil, server mengembalikan binary PNG berukuran 1086 × 1448 px secara langsung. Simpan response body sebagai file .png.

Response HeaderNilai
Content-Typeimage/png
X-RateLimit-Limit60 req/menit
X-RateLimit-RemainingSisa request dalam window aktif
X-RateLimit-Window60 detik
Cache-Controlno-store

Error Codes

Error response selalu berformat JSON dengan field error berisi pesan deskriptif.

StatusKondisi
400Field pesan tidak disertakan atau kosong
401Header X-API-Key tidak ada atau key tidak valid
413Request body melebihi batas 4 KB
429Rate limit terlampaui. Cek header Retry-After
500Kesalahan internal server saat memproses gambar
json Error Response Body
{
  "error": "Invalid or missing API key",
  "docs": "/docs"
}

Rate Limits

API menerapkan dua lapis rate limiting untuk menjaga stabilitas layanan.

LayerLimitWindowKey
Per IP 60 req 1 menit IP address client
Rate limit berlaku per IP address — 60 request per menit. Saat limit terlampaui, server mengembalikan 429 dengan header Retry-After (detik) yang menunjukkan kapan request berikutnya bisa dikirim.

Contoh Penggunaan

cURL

bash
curl -X POST https://qng.cc.cd/api/generate \
  -H "Content-Type: application/json" \
  -H "X-API-Key: qng_elkaffcihuyy" \
  -d '{"pesan":"Tetap semangat!","sender":"elkaff"}' \
  --output quote.png

JavaScript / Node.js

js
const res = await fetch('https://qng.cc.cd/api/generate', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'X-API-Key': 'qng_elkaffcihuyy'
  },
  body: JSON.stringify({
    pesan: 'Tetap semangat dan konsisten setiap hari.',
    sender: 'elkaff',
    date: '22/05/2026',
    time: '07:30',
    frame: false   // true = Nokia frame overlay
  })
})

if (!res.ok) {
  const err = await res.json()
  throw new Error(err.error)
}

// Node.js — simpan ke file
const buffer = Buffer.from(await res.arrayBuffer())
fs.writeFileSync('quote.png', buffer)

// Browser — tampilkan di img tag
const blob = await res.blob()
document.querySelector('img').src = URL.createObjectURL(blob)

Python

python
import requests

res = requests.post(
    'https://qng.cc.cd/api/generate',
    headers={'X-API-Key': 'qng_elkaffcihuyy'},
    json={
        'pesan': 'Tetap semangat dan konsisten setiap hari.',
        'sender': 'elkaff',
        'date': '22/05/2026',
        'time': '07:30',
        'frame': False   # True = Nokia frame overlay
    }
)
res.raise_for_status()

with open('quote.png', 'wb') as f:
    f.write(res.content)

print('Saved!')

WhatsApp Bot (Baileys / Node.js)

js
async function sendQuote(sock, jid, { pesan, sender }) {
  const res = await fetch('https://qng.cc.cd/api/generate', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'X-API-Key': 'qng_elkaffcihuyy'
    },
    body: JSON.stringify({ pesan, sender })
  })

  if (!res.ok) throw new Error('Generate failed: ' + res.status)

  const buffer = Buffer.from(await res.arrayBuffer())
  await sock.sendMessage(jid, {
    image: buffer,
    caption: pesan,
    mimetype: 'image/png'
  })
}