Skip to content

Instantly share code, notes, and snippets.

@ZTRdiamond
Created June 30, 2025 13:39
Show Gist options
  • Select an option

  • Save ZTRdiamond/0c5ae09c876d6539ebaec8190e76cfe7 to your computer and use it in GitHub Desktop.

Select an option

Save ZTRdiamond/0c5ae09c876d6539ebaec8190e76cfe7 to your computer and use it in GitHub Desktop.
wattpad search, web dongeng anak esempe🤓
import axios from "axios";
async function wattpadSearch(query, page = 1, limit = 10) {
try {
return new Promise(async (resolve, reject) => {
if (!query) return reject("missing query input!");
if (!Number.isInteger(limit)) return reject("invalid limit input!");
const response = await axios.get('https://www.wattpad.com/v4/search/stories/', {
params: {
query,
limit,
mature: true,
fields:
"stories(id,title,voteCount,readCount,commentCount,description,mature,completed,cover,url,numParts,isPaywalled,paidModel,length,language(id),user(name),lastPublishedPart(createDate),promoted,sponsor(name,avatar),tags,tracking(clickUrl,impressionUrl,thirdParty(impressionUrls,clickUrls)),contest(endDate,ctaLabel,ctaURL)),total,tags,nextUrl",
offset: page
},
headers: {
'authority': 'www.wattpad.com',
'accept': 'application/json, text/javascript, */*; q=0.01',
'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Mobile Safari/537.36'
}
});
const data = response.data;
if (!data?.stories?.length) return reject("no result found!");
return resolve({
success: true,
result: data
});
});
} catch (e) {
return {
success: false,
error: e.message || e
};
}
}
export default wattpadSearch;
@ZTRdiamond
Copy link
Author

📚 wattpadSearch(query, page?, limit?)

Fungsi ini digunakan untuk melakukan pencarian cerita dari Wattpad melalui endpoint API publik (non-dokumentasi resmi). Mendukung filter konten dewasa, pagination, dan detail metadata cerita.


✅ Fitur Utama

  • 🔍 Pencarian cerita berdasarkan kata kunci
  • 📄 Pagination dengan parameter page
  • ⚠️ Dukungan konten mature
  • 📊 Mengambil data statistik seperti vote, read, comment
  • 🎨 Cover, tag, sponsor, dan info penulis juga ikut ditampilkan

🧪 Contoh Penggunaan

wattpadSearch("tuan muda geng", 2)
  .then(d => console.log(JSON.stringify(d, null, 2)))
  .catch(console.error);

🧩 Parameter

Nama Tipe Wajib Keterangan
query string Kata kunci untuk pencarian cerita
page number Halaman offset untuk pagination. Page ke-1 berarti offset: 1, page ke-2 = offset: 2, dst.
limit number Jumlah cerita yang diambil per permintaan. Default 10, maksimal umum 30.

📥 Response Output

Jika sukses:

{
  success: true,
  result: {
    stories: [...],  // daftar cerita
    total: 500,
    tags: [...],
    nextUrl: "..."
  }
}

Jika gagal:

{
  success: false,
  error: "error message here"
}

🛠️ Struktur fields yang Diambil

stories(
  id, title, voteCount, readCount, commentCount, description,
  mature, completed, cover, url, numParts,
  isPaywalled, paidModel, length, 
  language(id), user(name),
  lastPublishedPart(createDate),
  promoted, sponsor(name, avatar),
  tags,
  tracking(clickUrl, impressionUrl, thirdParty(impressionUrls, clickUrls)),
  contest(endDate, ctaLabel, ctaURL)
),
total,
tags,
nextUrl

🧠 Tips

  • Ingin ambil lebih banyak? Gunakan limit=30 dan kombinasi page untuk navigasi.
  • Untuk hasil mature-only, bisa filter manual pada hasil story.mature === true.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment