Reddit Data API
Reddit Data API

Desain Pipeline Ingesti Dataset Reddit yang Dapat Direproduksi

Panduan lengkap untuk arsip data historis Reddit dengan fokus pada teknik ingesti dataset yang dapat direproduksi, penjelasan parameter filter, batas rekaman, penanganan kode status HTTP, serta struktur respons data datar.

Dapatkan kunci API

Rute API

MetodeRuteParameter
GET/v1/searchq, subreddit, author, kind, from, to, min_score, limit, page
GET/v1/postsq, subreddit, author, kind, from, to, min_score, limit, page
GET/v1/commentsq, subreddit, author, kind, from, to, min_score, limit, page
GET/v1/itemid
GET/v1/subredditsprefix, limit
GET/v1/status—

Parameter kueri

ParameterNilai / tipe / rentang
qtext
subredditkeyword
authorkeyword
kindpost | comment
fromISO date
toISO date
min_scoreinteger
limit1–100
page1–100
iditem ID
prefixsubreddit prefix

Arsip Independen dan Struktur Data Datar

Reddit Data API menyediakan akses ke arsip historis independen, bukan layanan resmi Reddit atau sumber data langsung. Layanan tidak menyediakan Reddit OAuth, penerbitan postingan, voting, atau pesan pribadi. Tidak ada jaminan kelengkapan, ketersediaan permanen, atau hasil kueri yang identik di masa depan. Untuk menguji pemuat data Anda secara berulang, simpan respons aktual dan versi transformasi lokal, bukan mengandalkan arsip jarak jauh yang dianggap tetap.

Respons API mengembalikan catatan datar yang terstruktur sederhana tanpa kumpulan utas bersarang di sisi server. Klien dapat mengelompokkan catatan berdasarkan field parent_id dan link_id yang tersedia untuk merekonstruksi konteks percakapan secara lokal di sisi aplikasi. Namun, pengelompokan ini bersifat opsional dan tidak menjamin kelengkapan sejarah percakapan secara penuh untuk setiap entitas yang di-query.

Urutan dokumen dalam arsip mengikuti urutan _doc internal yang bukan merupakan urutan kronologis maupun berdasarkan relevansi. Filter min_score hanya bertindak sebagai penyaring hasil, bukan sebagai kontrol pengurutan skor. Untuk mendapatkan data spesifik mengenai satu entitas tertentu, parameter id hanya diperlukan saat mengakses rute item, sedangkan rute posting atau komentar dapat memakai filter kueri yang didokumentasikan tanpa id.

Parameter Filter dan Batas Kueri

Setiap kueri dibatasi maksimum seratus catatan per permintaan dan seratus halaman per kueri iteratif. Batas pengulangan halaman tidak menjamin bahwa seluruh arsip telah teringesti secara utuh atau mengekspor semua catatan yang cocok dengan filter yang diberikan. Total paginasi yang ditampilkan dapat berupa eksak, batas bawah, atau tidak diketahui, sehingga jangan pernah mengasumsikan bahwa total yang terpangkas adalah jumlah pasti hasil keseluruhan.

Filter pencarian yang didukung adalah q, subreddit, author, kind, from, to, min_score, limit, dan page. Nilai kind adalah post atau comment. Tanggal memakai YYYY-MM-DD dalam UTC; tanggal to termasuk dalam rentang. GET /v1/item memerlukan id. GET /v1/subreddits mendukung prefix dan limit untuk penemuan komunitas; jumlah agregasinya tidak dijamin sebagai hitungan global yang eksak.

Kueri menggunakan filter yang didokumentasikan, bukan parent_id atau link_id sebagai parameter. limit dan page memungkinkan pengulangan terbatas hingga 100 catatan per permintaan dan 100 halaman per kueri. Melebihi batas menghasilkan permintaan tidak valid yang tidak mendebit kredit. Pengulangan halaman tidak menjamin semua hasil cocok telah diambil. Simpan relasi total eq, gte, atau unknown; unknown dapat disertai total null.

Kode Status HTTP dan Manajemen Kredit

HTTP 400 menunjukkan permintaan tidak valid; 401 menunjukkan kunci hilang atau tidak valid; 402 menunjukkan saldo tidak mencukupi; 429 menunjukkan batas laju. Gunakan Authorization: Bearer YOUR_API_KEY atau X-API-Key: YOUR_API_KEY untuk pengambilan terlindungi. Kedua header didukung. Kegagalan sumber data mengembalikan cadangan kredit, sedangkan respons sukses, termasuk kosong, memakai satu kredit. Gangguan klien setelah keberhasilan tidak otomatis membatalkan tagihan.

/v1/status bersifat publik, tanpa kunci, dan tidak ditagih. Responsnya hanya menunjukkan penjelasan statis dan server HTTP yang merespons; bukan bukti bahwa pencarian sehat atau catatan tertentu tersedia. Periksa respons pengambilan nyata sebelum melanjutkan pemuatan. Status berhasil tidak menggantikan validasi tipe bidang, penanganan nilai kosong, atau pemeriksaan hasil yang dibutuhkan tabel tujuan Anda.

Saldo kredit berbayar tidak kedaluwarsa. Tidak ada batas retensi tetap atau tanggal penghapusan otomatis untuk data akun; hal ini tidak menjanjikan keabadian arsip. Kunci yang dibuat ulang setelah konfirmasi kata sandi segera membatalkan kunci lama. Kunci dan saldo berlaku hanya pada domain ini. Catat parameter dan hasil tanpa memasukkan kunci asli ke log atau berkas yang dibagikan.