Rute dan batas kredensial
Gunakan host https://api.redditapigateway.com untuk pengambilan GET. /v1/search mencari rekaman, /v1/posts mengambil postingan, dan /v1/comments mengambil komentar. /v1/item?id=... digunakan jika Anda mengetahui pengenal satu item. /v1/subreddits?prefix=... membatasi pencarian nama komunitas berdasarkan awalan. /v1/status menyediakan informasi layanan statis secara publik. Ini adalah antarmuka arsip historis independen, bukan penerusan transparan semua rute Reddit. Tidak tersedia OAuth, operasi tulis, pemungutan suara, pesan pribadi, atau umpan langsung.
Autentikasi pengambilan menerima Authorization: Bearer YOUR_API_KEY maupun X-API-Key: YOUR_API_KEY. Keduanya menggunakan kunci arsip dari domain ini; token OAuth Reddit bukan penggantinya. Jangan menaruh rahasia dalam dokumentasi, paket browser, atau log permintaan. Cookie sesi Secure HttpOnly pada panel akun terpisah dari header pengambilan. API key tidak sama dengan kata sandi akun. Lapisan aplikasi Anda harus memeriksa hak pengguna sebelum menambahkan kunci dan meneruskan permintaan yang diperbolehkan.
Untuk pemeriksaan awal, gunakan bentuk GET https://api.redditapigateway.com/v1/search?q=onboarding&subreddit=SaaS&limit=3. Nilai kunci dalam contoh tetap berupa penanda pengganti dan diisi hanya saat dijalankan di server. Tidak ada jaminan hasil cocok atau jumlah rekaman tertentu. Jika Anda mencoba kedua header secara terpisah, setiap permintaan yang berhasil menggunakan satu kredit. Biaya ini terpisah dari pekerjaan lokal seperti membaca hasil, memberi kategori, atau menyimpannya ke basis data aplikasi Anda sendiri.
Filter dan interpretasi hasil
Filter pencarian, postingan, dan komentar meliputi q, subreddit, author, kind, from, to, min_score, limit, dan page. kind menerima post atau comment. Tanggal menggunakan YYYY-MM-DD dalam UTC dan to mencakup seluruh hari yang ditentukan. min_score menerapkan ambang skor minimum, bukan pengurutan. Parameter id hanya untuk /v1/item dan bukan filter /v1/posts atau /v1/comments. parent_id dan link_id dapat muncul pada respons, tetapi tidak tersedia sebagai filter kueri.
Batas pengambilan adalah 100 rekaman per permintaan dan 100 halaman per kueri. Hasil mengikuti urutan dokumen arsip, bukan waktu, relevansi, atau skor. eq menunjukkan total rekaman yang tepat, gte menunjukkan batas bawah, dan unknown atau null menunjukkan bahwa total tepercaya tidak diketahui. Angka total bukan jumlah halaman. Total tepat tidak menjamin bahwa aplikasi telah menerima atau menyimpan semuanya. Membagi tanggal dan mengulang halaman juga tidak membuktikan pengambilan lengkap tanpa duplikasi.
Respons API mengembalikan rekaman datar yang disusun oleh server. Tidak ada pohon utas atau filter link_id yang diekspos di sisi server. Pengembang dapat mengelompokkan bidang parent_id dan link_id secara lokal jika tersedia di respons. Struktur ini tidak menjamin kelengkapan percakapan atau garis keturunan penuh dari diskusi. Pengelompokan ini merupakan pilihan ketika hubungan memang perlu dianalisis; membaca, menghitung, atau memberi label tidak memerlukan pohon. Rekaman induk yang tidak diterima tidak bisa dipulihkan melalui pengelompokan. Hasil pencarian komunitas dan hitungan agregasinya juga tidak boleh dianggap sebagai daftar alfabetis yang menyeluruh atau inventaris tepat seluruh arsip.
Kesalahan dan biaya
400 menandakan permintaan tidak valid: periksa parameter yang tidak didukung, nilai, atau format tanggal. 401 menandakan kunci hilang atau tidak valid; periksa domain dan apakah kunci lama sudah diganti. 402 menunjukkan kredit tidak mencukupi. 429 menandakan batas laju; kurangi panggilan dan gunakan jeda serta jumlah percobaan yang terbatas. Mengganti akun untuk menghindari batas bukan solusi integrasi. Satu lingkaran percobaan ulang untuk semua kode dapat menutupi penyebab sebenarnya.
Setiap pengambilan berhasil dikenai satu kredit, termasuk hasil kosong. Permintaan tidak valid tidak didebit dan kegagalan sistem hulu mengembalikan kredit yang dicadangkan. Kehilangan respons di klien berbeda dari kegagalan server: pengambilan mungkin sudah berhasil dan dikenai biaya. Percobaan ulang yang berhasil dapat menggunakan kredit tambahan. Catat status permintaan dan hasil penyimpanan lokal secara terpisah, tanpa header rahasia. Sifat baca saja tidak menjamin respons identik atau percobaan ulang gratis.
/v1/status bersifat publik dan tidak dikenai biaya, tetapi hanya menunjukkan cakupan statis layanan serta respons HTTP aplikasi. Jalur ini tidak memeriksa mesin pencarian, isi arsip, kunci, atau saldo. Jangan menggunakan respons status sebagai pengganti pemeriksaan hasil permintaan pengambilan data yang sesungguhnya. Akun, kunci, dan saldo terpisah menurut domain. Produk Anda dapat menambahkan pemeriksaan izin, kuota, dan pencatatan biaya sendiri, tetapi kontrol lokal itu tidak mengubah batas cakupan arsip atau menjamin bahwa semua rekaman tersedia.