CuanTuanDokumentasi

Rujukan API

Setiap endpoint, parameternya, dan contoh jawapan sebenar.

URL asas
https://www.cuantuan.net/api/v1

Versi v1 ada dalam laluan. Medan baharu boleh ditambah kepada jawapan pada bila-bila masa — tulis pembaca anda supaya mengabaikan medan yang tidak dikenali. Medan yang DIBUANG atau ditukar maknanya hanya berlaku pada versi baharu.

Semua endpoint GET. Wang dalam sen (4900 = RM49.00). Masa dalam UTC, ISO 8601. Setiap jawapan bermula dengan ok — semaknya sebelum membaca data.

Auth

GET/authkunci sah sudah memadai

Sahkan kunci

Memulangkan kedai dan skop yang dibawa kunci ini. Panggil endpoint ini dahulu semasa menyambung — ia menjawab "adakah kunci saya berfungsi" dan "kenapa endpoint lain memulangkan 403" sekaligus.

curl
curl -s "https://www.cuantuan.net/api/v1/auth" \
  -H "Authorization: Bearer ct_live_KUNCI_ANDA"
Jawapan
{
  "ok": true,
  "key": { "id": "ak_9f2c…", "scopes": ["product.read", "order.read"] },
  "store": { "id": "singleton", "name": "Cuantuan", "currency": "MYR" }
}

Product

GET/product/listproduct.read

Senarai produk

Semua produk kedai, terbaharu mengikut susunan katalog.

ParameterJenisWajibKeterangan
activebooleantidakIsi `true` untuk produk aktif sahaja.
limitintegertidakBilangan baris. Lalai 25, maksimum 100.
offsetintegertidakBilangan baris yang dilangkau. Lalai 0.
curl
curl -s "https://www.cuantuan.net/api/v1/product/list?active=true&limit=50" \
  -H "Authorization: Bearer ct_live_KUNCI_ANDA"
Jawapan
{
  "ok": true,
  "data": [
    {
      "id": "prd_1a2b…",
      "slug": "panduan-tiktok-affiliate",
      "name": "Panduan Lengkap Tiktok Affiliate",
      "short_description": "Dari riset produk sampai closing.",
      "price_cents": 4900,
      "compare_at_cents": 14900,
      "active": true,
      "featured": false,
      "cover_url": "/api/file/asset/ast_7c…",
      "created_at": "2026-08-22T09:14:02.117Z",
      "updated_at": "2026-08-26T10:02:55.802Z"
    }
  ],
  "paging": { "limit": 25, "offset": 0, "count": 1, "has_more": false, "total": 1 }
}
GET/product/detailproduct.read

Butiran produk

Satu produk, mengikut id atau slug. Salah satu wajib diberikan.

ParameterJenisWajibKeterangan
idstringtidakId produk.
slugstringtidakSlug produk. Diabaikan bila `id` diberikan.
curl
curl -s "https://www.cuantuan.net/api/v1/product/detail?id=prd_1a2b…&slug=panduan-tiktok-affiliate" \
  -H "Authorization: Bearer ct_live_KUNCI_ANDA"
Jawapan
{ "ok": true, "data": { "id": "prd_1a2b…", "slug": "…", "name": "…" } }

Order

GET/order/listorder.read

Senarai pesanan

Pesanan terbaharu dahulu. Membawa nama, e-mel, dan telefon pembeli — pastikan destinasi penyimpanan anda sesuai untuk data peribadi.

ParameterJenisWajibKeterangan
statusstringtidakPENDING, PAID, FULFILLED, CANCELED, atau EXPIRED.
searchstringtidakPadanan pada kod pesanan, nama pembeli, e-mel, atau nama produk.
limitintegertidakBilangan baris. Lalai 25, maksimum 100.
offsetintegertidakBilangan baris yang dilangkau. Lalai 0.
curl
curl -s "https://www.cuantuan.net/api/v1/order/list?status=PAID&search=ali" \
  -H "Authorization: Bearer ct_live_KUNCI_ANDA"
Jawapan
{
  "ok": true,
  "data": [
    {
      "id": "ord_ee3b…",
      "code": "CUAN-QYDJ45",
      "status": "PAID",
      "product": { "id": "prd_1a2b…", "name": "Panduan Lengkap Tiktok Affiliate", "price_cents": 4900 },
      "quantity": 1,
      "discount_cents": 0,
      "total_cents": 4900,
      "buyer": { "name": "Ali bin Abu", "email": "ali@contoh.com", "phone": "60123456789" },
      "payment": { "method_label": "Pindahan Bank", "has_proof": true },
      "landing_page_slug": "panduan-tiktok-affiliate",
      "created_at": "2026-08-26T07:11:40.006Z",
      "paid_at": "2026-08-26T07:24:18.441Z",
      "fulfilled_at": null,
      "canceled_at": null
    }
  ],
  "paging": { "limit": 25, "offset": 0, "count": 1, "has_more": false }
}
GET/order/detailorder.read

Butiran pesanan

Satu pesanan, mengikut id atau kod. Salah satu wajib diberikan.

ParameterJenisWajibKeterangan
idstringtidakId pesanan.
codestringtidakKod pesanan yang dilihat pembeli.
curl
curl -s "https://www.cuantuan.net/api/v1/order/detail?id=ord_ee3b…&code=CUAN-QYDJ45" \
  -H "Authorization: Bearer ct_live_KUNCI_ANDA"
Jawapan
{ "ok": true, "data": { "code": "CUAN-QYDJ45", "status": "PAID" } }

Customer

GET/customer/listcustomer.read

Senarai pelanggan

Ringkasan setiap pembeli, dikumpulkan mengikut e-mel. Kiraan dipulangkan sebagai nombor, bukan rentetan.

ParameterJenisWajibKeterangan
limitintegertidakBilangan baris. Lalai 25, maksimum 100.
offsetintegertidakBilangan baris yang dilangkau. Lalai 0.
curl
curl -s "https://www.cuantuan.net/api/v1/customer/list?limit=50&offset=25" \
  -H "Authorization: Bearer ct_live_KUNCI_ANDA"
Jawapan
{
  "ok": true,
  "data": [
    {
      "email": "ali@contoh.com",
      "name": "Ali bin Abu",
      "orders_count": 3,
      "paid_count": 2,
      "total_spent_cents": 9800,
      "last_order_at": "2026-08-26T07:11:40.006Z"
    }
  ],
  "paging": { "limit": 25, "offset": 0, "count": 1, "has_more": false, "total": 1 }
}

Page

GET/page/listpage.read

Senarai halaman jualan

Halaman jualan beserta slug dan status terbit. Isi blok tidak diterbitkan — bentuknya dalaman dan berubah setiap kali editor dinaik taraf.

ParameterJenisWajibKeterangan
searchstringtidakPadanan pada tajuk atau slug.
categorystringtidakTapis mengikut kategori.
limitintegertidakBilangan baris. Lalai 25, maksimum 100.
offsetintegertidakBilangan baris yang dilangkau. Lalai 0.
curl
curl -s "https://www.cuantuan.net/api/v1/page/list?search=tiktok&category=Promo Raya" \
  -H "Authorization: Bearer ct_live_KUNCI_ANDA"
Jawapan
{
  "ok": true,
  "data": [
    {
      "id": "lp_dc5c…",
      "slug": "panduan-tiktok-affiliate",
      "title": "Panduan Lengkap TikTok Affiliate",
      "category": "",
      "published": true,
      "updated_at": "2026-08-26T09:00:11.240Z"
    }
  ],
  "paging": { "limit": 25, "offset": 0, "count": 1, "has_more": false, "total": 1 }
}

Dataform

GET/dataform/form/listform.read

Senarai borang data

Borang dan kiraan penghantarannya. Tidak termasuk jawapan.

ParameterJenisWajibKeterangan
searchstringtidakPadanan pada nama borang.
statusstringtidakDRAFT, ACTIVE, atau ARCHIVED.
limitintegertidakBilangan baris. Lalai 25, maksimum 100.
offsetintegertidakBilangan baris yang dilangkau. Lalai 0.
curl
curl -s "https://www.cuantuan.net/api/v1/dataform/form/list?search=prospek&status=ACTIVE" \
  -H "Authorization: Bearer ct_live_KUNCI_ANDA"
Jawapan
{
  "ok": true,
  "data": [
    {
      "id": "form_9a1c…",
      "name": "Borang Prospek Raya",
      "description": "",
      "status": "ACTIVE",
      "field_count": 4,
      "submission_count": 128,
      "last_submission_at": "2026-08-27T22:40:03.118Z",
      "created_at": "2026-08-01T04:00:00.000Z"
    }
  ],
  "paging": { "limit": 25, "offset": 0, "count": 1, "has_more": false, "total": 1 }
}
GET/dataform/data/listform.data.read

Jawapan borang

Penghantaran satu borang beserta jawapannya. `answers` berkunci pada kunci dalaman medan — kunci itu stabil walaupun label medan ditukar, jadi pemetaan anda tidak rosak apabila teks borang disunting.

ParameterJenisWajibKeterangan
form_idstringyaId borang.
statusstringtidakKod status penghantaran.
searchstringtidakCarian bebas pada nilai jawapan.
fromstringtidakTarikh mula (YYYY-MM-DD), inklusif.
tostringtidakTarikh tamat (YYYY-MM-DD), inklusif.
limitintegertidakBilangan baris. Lalai 25, maksimum 100.
offsetintegertidakBilangan baris yang dilangkau. Lalai 0.
curl
curl -s "https://www.cuantuan.net/api/v1/dataform/data/list?form_id=form_9a1c…&status=NEW" \
  -H "Authorization: Bearer ct_live_KUNCI_ANDA"
Jawapan
{
  "ok": true,
  "form": { "id": "form_9a1c…", "name": "Borang Prospek Raya" },
  "data": [
    {
      "id": "sub_4d7e…",
      "status": "NEW",
      "landing_page_slug": "panduan-tiktok-affiliate",
      "is_spam": false,
      "created_at": "2026-08-27T22:40:03.118Z",
      "answers": { "nama": "Ali bin Abu", "whatsapp": "60123456789" }
    }
  ],
  "paging": { "limit": 25, "offset": 0, "count": 1, "has_more": false, "total": 1 }
}

Perlu sesuatu yang tiada di sini? Webhook menolak prospek kepada anda secara langsung, dan skrin kunci ialah tempat kebenaran ditambah.