Toplu iş için yollar, filtreler ve sonuç anlamı

API anahtarı al

İstek ve yetkilendirme

Veri alma adresi https://api.redditstreamapi.com üzerindedir. GET /v1/search arama, /v1/posts gönderi, /v1/comments yorum listeleri içindir. /v1/item?id=... bilinen tek öğeyi sorgular; /v1/subreddits?prefix=... topluluk adlarını önekle daraltır. /v1/status statik hizmet açıklamasıdır. Hizmet geçmiş arşividir; SSE, WebSocket veya canlı bildirim bağlantısı kurulmaz. Reddit ile resmî bağlantı, OAuth, yazma, oy verme veya mesajlaşma yoktur. Planlanmış sorguların çalışması canlı güncelleme sıklığını göstermez.

Veri çekme için Authorization: Bearer YOUR_API_KEY veya X-API-Key: YOUR_API_KEY kullanın. İki biçim de geçerlidir ve bu alan adının arşiv anahtarını taşır; Reddit OAuth belirteci kullanmayın. Yer tutucuyu yalnızca sunucu çalıştırma ortamında gerçek değerle değiştirin. Hesap panelinin Secure HttpOnly oturum çerezi veri çekme başlığından ayrıdır. Günlüklere kimlik bilgisi yerine yol, filtreler, durum kodu ve kendi iş kimliğinizi yazın. Başka markanın anahtarı ve bakiyesi bu alan adına uygulanmaz.

Örnek GET https://api.redditstreamapi.com/v1/posts?subreddit=datasets&limit=3&page=2 ikinci sayfayı ister. Sayfa numarası kronolojik bir ilerleme işareti veya canlı akış imleci değildir. Üç kayıt bulunacağı garanti edilmez. Sunucunun başarılı yanıtı ile dosyaya yazma gibi yerel işlem sonucunu ayrı değerlendirin. Bir sayfa gerçekten kaydedildiyse kendi ilerleme kaydınızı güncelleyebilirsiniz; bu kayıt yalnızca istemci durumudur. Arşivin değişmezliği veya bütün eşleşmelerin alınması hakkında sunucu garantisi oluşturmaz.

Filtreler ve sonuç kapsamı

Arama, gönderi ve yorum listelerinde q, subreddit, author, kind, from, to, min_score, limit ve page filtreleri kullanılır. kind post veya comment olur. Tarihler UTC ile YYYY-MM-DD biçimindedir; to bütün günü içerir. min_score minimum puanı sınırlar, sıralama yapmaz. id yalnızca /v1/item içindir ve /v1/posts veya /v1/comments üzerinde kimlik filtresi değildir. parent_id ve link_id de yanıt alanları olabilir ancak sorgu filtresi değildir. Desteklenmeyen filtreleri ekleyerek tam konuşmayı istemeye çalışmayın.

Bir istekte en çok 100 kayıt ve bir sorguda en çok 100 sayfa vardır. Her sayfa ayrı çağrıdır. Sonuçlar arşiv belge sırasındadır; zaman, ilgi veya puan sırası değildir. eq kesin kayıt toplamını, gte alt sınırı, unknown veya null güvenilir toplamın bilinmediğini belirtir. Toplamın birimi sayfa değildir. Kesin sayıyı sırf toplamlar her zaman belirsizdir diye reddetmeyin; fakat o sayı istemcinizin hepsini sakladığını da göstermez.

Yanıtlar düz kayıtlardan oluşur. İlişki çözümlemesi gerekiyorsa parent_id ve link_id ile yerel gruplama yapabilirsiniz; okumak, etiketlemek veya saymak için zorunlu değildir. Eksik üst kayıtlar ve yorumlar bu şekilde kurtarılmaz. Tarih pencerelerini bölmek, sayfaları tekrarlamak ve yerel yinelenenleri ayıklamak eksiksiz veya tekrarsız arşiv çıkarımını kanıtlamaz. Topluluk sonuçları tam alfabetik dizin, topluluk sayımları da küresel olarak kesin envanter değildir. Çıktının gerçek kapsamını sorgu koşullarıyla birlikte saklayın.

Maliyet ve hata kodları

Başarılı veri çekme isteği boş sonuç dahil bir kredi tüketir. Başarılı 1.000 istek $1’dir; sonraki sayfa ve başarılı tekrar ayrıca sayılır. Geçersiz istekler kredi düşürmez; üst sistem başarısızlıklarının rezervasyonları geri verilir. İstemcide zaman aşımı ise sunucunun başarılı olmadığına kanıt değildir. Yanıt kaybolduysa başarılı yeniden deneme yeni bir kredi tüketebilir. Salt okunur yapı değişmez sonuç veya ücretsiz tekrar sözü değildir; yerel kaydı kontrol edip tekrar bütçesini sınırlayın.

400 yanlış parametre veya değer için düzeltme gerektirir. 401 eksik veya geçersiz anahtarı gösterir; yenilemeden kalan eski değeri veya yanlış alan adını kontrol edin. 402 yetersiz kredi, 429 istek sıklığı sınırıdır. Her kodu aynı döngüyle tekrar göndermeyin. Sıklığı azaltıp beklemeli tekrar seçerseniz durma koşulu ve azami deneme belirleyin. Diğer hesaplarla sınırı aşmak çözüm değildir. Kimlik bilgilerini hata raporuna eklemeden işin hangi aşamasında durduğunu belirtin.

/v1/status anahtarsız ve ücretlendirilmeden statik hizmet kapsamını sunar, HTTP uygulamasının yanıt verdiğini gösterir. Arşiv aramasını, belirli kayıtları, anahtarı veya bakiyeyi doğrulamaz. Bir durum yanıtı toplu işin veri çekme aşamasını başarılı saymak için yeterli değildir. Sorgu başarısı, yerel kayıt ve sonraki işleme adımlarını ayrı takip edin. Hesap ve ödeme verilerinin tutulması, arşiv kayıtlarının kalıcı veya sonuçların tam olacağını garanti etmez; hizmetin performansı ve erişilebilirliği için de belirli güvence verilmez.

API yolları

YöntemYolParametreler
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—

Sorgu parametreleri

ParametreDeğer / tür / aralık
qtext
subredditkeyword
authorkeyword
kindpost | comment
fromISO date
toISO date
min_scoreinteger
limit1–100
page1–100
iditem ID
prefixsubreddit prefix
curl -H "Authorization: Bearer YOUR_API_KEY" 'https://api.redditstreamapi.com/v1/search?q=research&limit=10'

import json, urllib.request
request = urllib.request.Request('https://api.redditstreamapi.com/v1/search?q=research&limit=10', headers={"Authorization": "Bearer YOUR_API_KEY"})
with urllib.request.urlopen(request) as response:
    print(json.load(response))

fetch("https://api.redditstreamapi.com/v1/search?q=research&limit=10", {headers: {Authorization: "Bearer YOUR_API_KEY"}})
  .then(response => response.json()).then(console.log);