Dokumentasi API Arsip Subreddit: Panduan Lengkap Peneliti

Pelajari cara membandingkan diskusi subreddit dengan filter arsip yang konsisten. Dokumentasi mencakup autentikasi, endpoint kunci, batas pengambilan data, dan kode kesalahan HTTP.

Dapatkan kunci API

Autentikasi, Batas Laju, dan Kode Kesalahan

Pengambilan terlindungi menerima Authorization: Bearer YOUR_API_KEY atau X-API-Key: YOUR_API_KEY. Keduanya valid, sedangkan /v1/status bersifat publik tanpa kunci. HTTP 401 berarti kunci tidak ada atau tidak valid, bukan sesi panel akun yang kedaluwarsa. Kunci dan saldo hanya berlaku di subredditapi.com. Simpan kunci asli di sisi server dan jangan masukkan ke contoh penelitian, log bersama, atau kode browser publik.

Kekurangan saldo kredit menyebabkan penolakan segera pada permintaan berikutnya. Server mengembalikan kode kesalahan 402 ketika akun tidak memiliki cukup kredit untuk menutupi biaya pengambilan data. Setiap permintaan pengambilan data yang berhasil, termasuk hasil kosong, memerlukan satu kredit. Kode 429 muncul ketika batas laju terlampaui, memaksa klien untuk menunda sebelum melanjutkan pencarian arsip.

HTTP 400 menandakan permintaan tidak valid dan tidak mendebit kredit. Kegagalan sumber data mengembalikan cadangan kredit; putusnya koneksi klien dapat terjadi setelah keberhasilan yang ditagih. Pengulangan yang berhasil memakai kredit baru. /v1/status gratis hanya berisi penjelasan statis dan respons HTTP, bukan pemeriksaan pencarian atau kelengkapan komunitas. Bedakan log status koneksi dari respons pengambilan yang benar-benar dipakai untuk penelitian.

Endpoint, Filter, dan Struktur Data

GET /v1/search mendukung q, subreddit, author, kind, from, to, min_score, limit, dan page. kind memakai post atau comment. from dan to menggunakan YYYY-MM-DD dalam UTC dan tanggal to termasuk dalam rentang. GET /v1/posts dan GET /v1/comments mengambil jenis catatan terkait tanpa id. Untuk satu catatan yang sudah diketahui, gunakan GET /v1/item dengan parameter id.

GET /v1/subreddits mendukung prefix dan limit untuk penemuan nama komunitas, bukan pencarian awalan di dalam isi komunitas. Hitungan agregasinya tidak dijamin eksak secara global. Batas pengambilan adalah 100 catatan per permintaan dan 100 halaman per kueri. min_score hanya menyaring, bukan mengurutkan skor. Hasil memakai urutan dokumen arsip, bukan urutan waktu, relevansi, atau skor.

Respons berisi catatan datar. Jika parent_id dan link_id tersedia, klien dapat mengelompokkan hubungan secara lokal; bidang tersebut bukan filter kueri. Catatan induk atau rantai konteks dapat hilang sehingga pengelompokan tidak menjamin percakapan lengkap. Simpan contoh yang gagal dihubungkan dan jangan mengisi konteks dengan dugaan. Keterbatasan ini penting saat membandingkan pemakaian kata yang artinya bergantung pada percakapan sekitarnya.

Batas, Pembayaran, dan Kapasitas yang Tidak Didukung

Arsip independen ini tidak menyediakan Reddit OAuth, penerbitan postingan, pemungutan suara, atau pesan pribadi. Hasil yang diterima bukan jaminan seluruh diskusi atau keadaan komunitas saat ini. Untuk membandingkan dua komunitas, kirim permintaan terpisah dengan kondisi lain sama dan simpan masing-masing respons. Penghitungan kata, pengodean topik, atau sentimen dilakukan sendiri pada sampel lokal, bukan fitur analitik server.

Pengguna yang sudah masuk dapat mengganti kunci setelah konfirmasi kata sandi; kunci lama langsung tidak berlaku. Kunci ditampilkan sekali sebelum pembayaran, tidak dikirim lewat email, dan tidak ada pengaturan ulang kata sandi. Sesi akun menggunakan cookie Secure HttpOnly. localStorage menyimpan ID pengguna dan faktur untuk pemulihan faktur, bukan kunci mentah. Data akun ini terpisah dari catatan arsip untuk analisis.

Relasi total eq berarti eksak, gte batas bawah, unknown tidak diketahui dan total dapat null. Pengulangan sampai batas halaman tidak menjamin seluruh hasil tersimpan. Bahkan total eksak tidak membuktikan keberhasilan pengumpulan klien. Catat filter, halaman, jumlah yang diterima, serta alasan pengecualian lokal. Metode yang sama membantu penelusuran analisis, tetapi tidak menghapus bias cakupan atau menjamin bahwa permintaan di masa depan memberi hasil identik.

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
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