요청 예제
cURL
curl --fail-with-body -H "Authorization: Bearer YOUR_API_KEY" "https://api.redditstreamapi.com/v1/posts?subreddit=datasets&limit=3&page=2"Stream이라는 이름과 실제 조회 방식
Reddit Stream API는 과거 Reddit 기록에 접근하는 독립적인 아카이브입니다. Reddit의 공식 또는 제휴 서비스가 아니며 실시간 데이터, SSE, WebSocket, 실시간 알림, OAuth, 게시, 투표와 메시지 기능을 제공하지 않습니다. 클라이언트는 필요한 페이지마다 별도 GET 요청을 보냅니다. 정기적으로 쿼리를 실행하더라도 실시간 이벤트 스트림이 되거나 아카이브의 갱신 주기가 확인되는 것은 아닙니다. 현재 이용할 수 있는 과거 기록을 제한된 범위에서 조회하는 작업으로 설계하고 최신 활동이 바로 들어온다고 설명하지 마세요.
요청 예제는 https://api.redditstreamapi.com/v1/posts?subreddit=datasets&limit=3&page=2 에 보내는 GET입니다. subreddit은 커뮤니티, limit은 원하는 최대 건수, page는 페이지를 지정합니다. 두 번째 페이지나 세 개의 게시물이 반드시 있다는 약속은 아닙니다. 두 번째 페이지가 다음 시간대를 뜻하지도 않습니다. 결과는 아카이브 문서 순서이며 시간순, 관련도순과 점수순이 아닙니다. 예제 요청 형식과 실제로 받은 결과를 구분하세요. 이 주소는 요청 형식의 예이며 일치하는 기록 자체가 없을 수 있습니다.
조회에는 Authorization: Bearer YOUR_API_KEY 또는 X-API-Key: YOUR_API_KEY를 사용할 수 있습니다. 두 형식 모두 유효하고 값은 Reddit OAuth 토큰이 아닌 이 도메인의 아카이브 키입니다. YOUR_API_KEY는 공개 예제의 자리표시자입니다. 실제 값은 서버 실행 환경에서 읽고 공개 코드와 작업 로그에서 제외하세요. 계정 패널의 Secure HttpOnly 세션 쿠키는 별도 역할을 합니다. 배치 설정에서 비밀 값, 쿼리 조건과 로컬 작업 식별자를 나누어 보관하면 진행 기록에 인증 값이 섞이는 일을 줄일 수 있습니다.
페이지와 로컬 진행 상태 기록
작업마다 경로, 필터, 페이지, 시도 시각, HTTP 결과와 로컬 저장 결과를 따로 남길 수 있습니다. 응답이 성공해도 파일 쓰기는 실패할 수 있으므로 페이지 번호만 증가시키면 저장하지 못한 결과를 건너뛸 수 있습니다. 다시 시작하기 전에 실제로 남아 있는 파일이나 데이터베이스를 확인하세요. 이 진행 기록은 클라이언트의 상태이지 서버의 고정 스냅샷이나 영구 커서가 아닙니다. 같은 번호를 다시 요청하면 같은 내용이 반드시 반환된다는 보장도 없습니다. 받은 결과와 저장한 결과를 기준으로 진행을 설명해야 합니다.
한 요청은 최대 100개 레코드, 한 쿼리는 최대 100페이지라는 한도가 있습니다. limit은 필요에 맞게 선택하며 항상 100을 지정할 의무는 없습니다. 날짜로 작업을 나누려면 from과 to에 UTC 기준 YYYY-MM-DD를 사용합니다. to는 지정한 날짜 전체를 포함하므로 인접한 작업을 만들 때 이 규칙을 고려하세요. 같은 종료일을 다음 시작일로 쓰면 스스로 겹치는 구간을 만들 수 있습니다. 날짜 분할, 페이지 반복과 로컬 중복 제거는 전체 아카이브의 완전하거나 중복 없는 수집을 증명하지 않습니다.
응답은 평평한 레코드이며 parent_id와 link_id가 있으면 관계 분석에 선택적으로 묶을 수 있습니다. 읽기, 집계나 분류에 대화 트리는 필요하지 않고 누락된 부모도 복구되지 않습니다. min_score는 최소 점수 필터일 뿐 정렬 기능이 아닙니다. 총계의 eq는 정확한 수, gte는 하한, unknown 또는 null은 신뢰할 총계를 알 수 없음을 뜻합니다. 정확한 총계도 클라이언트가 모든 결과를 저장했다는 증거가 아니며 커뮤니티 집계 건수는 전체 아카이브의 정확한 재고로 취급하면 안 됩니다.
요청 비용과 중단 판단
성공한 조회는 빈 결과라도 요청당 한 크레딧을 사용합니다. 성공 요청 1,000건당 $1이며 최소 $50 충전은 유료 크레딧 50,000개입니다. 다음 페이지와 성공한 재시도는 별도로 과금됩니다. 구독제가 아니고 유료 크레딧은 만료되지 않습니다. 시험용 100크레딧은 네트워크 전체의 남용 방지 자격 조건에 따라 제공되므로 모든 계정에 보장되지 않습니다. 계정과 키, 잔액은 이 도메인에 속하며 다른 브랜드의 잔액이 이 작업의 예산으로 사용된다고 가정하면 안 됩니다.
400은 매개변수, 401은 누락되거나 유효하지 않은 키, 402는 잔액, 429는 요청 빈도를 확인할 신호입니다. 유효하지 않은 요청은 차감되지 않고 상위 시스템 실패의 예약분은 반환됩니다. 그러나 응답이 클라이언트에 도착하기 전에 서버가 성공했을 수 있습니다. 성공한 재시도는 추가 크레딧을 사용하며 읽기 전용이라는 이유로 동일 응답이나 무료 반복이 보장되지 않습니다. 클라이언트에서 시도 횟수와 중단 조건을 정하고 빈도를 낮추세요. 다른 계정으로 제한을 피하는 방식은 사용하지 마세요.
/v1/status는 키 없이 공개되어 있고 과금되지 않습니다. 정적인 서비스 범위와 HTTP 애플리케이션이 응답한다는 사실만 보여 주며 검색 저장소, 기록 존재, 키나 잔액을 검사하지 않습니다. 이 응답만으로 배치 조회가 성공했다고 판단하면 안 됩니다. 경로는 문서, 날짜 구간은 가이드, 가입은 키 페이지에서 확인할 수 있습니다. 영구 보존, 응답 불변성, 완전한 범위, 일정한 성능이나 지속적인 가용성은 보장되지 않습니다. 받은 페이지를 실시간 데이터 파이프라인이라고 소개하지 마세요.