Vào tháng 5 năm 2026, Reddit đã đóng quyền truy cập không xác thực vào các .json-endpoint — chính là thủ thuật "thêm .json vào bất kỳ URL nào", mà hàng chục kịch bản, bảng điều khiển và dự án nhỏ đã dựa vào trong nhiều năm. Kiểm tra vào ngày 28 tháng 7 năm 2026: yêu cầu đến https://www.reddit.com/r/webscraping/top.json?t=week với User-Agent trình duyệt thông thường trả về 403 Forbidden. Đồng thời, robots.txt của Reddit chỉ chứa hai dòng quan trọng: User-agent: * và Disallow: / — với liên kết đến Chính sách Nội dung Công khai.
Điều này không thay đổi "cách vượt qua", mà là cách xây dựng pipeline thu thập dữ liệu Reddit hiện nay. Dưới đây là sơ đồ hoạt động cho năm 2026: những gì thực sự có sẵn, các giới hạn, nơi cần proxy và nơi mà chúng không cứu được.
Điều gì đã hỏng: thời gian ngắn
- Tháng 6 năm 2023 — Reddit đã giới thiệu gói phí $0.24 cho 1000 lần gọi API cho các ứng dụng có tải cao. Hệ quả: đóng cửa Apollo (nhà phát triển ước tính chi phí truy cập khoảng $20 triệu mỗi năm), hầu hết các khách hàng bên thứ ba rời bỏ và dừng Pushshift — kho lưu trữ công khai các bài viết và bình luận, nơi mà một nửa các nghiên cứu học thuật đã dựa vào.
- Tháng 5 năm 2026 — ngừng hỗ trợ
.jsonkhông xác thực. Các công cụ "chỉ kéo URL" đã ngừng hoạt động; lưu lượng truy cập đã đi qua bảo vệ Cloudflare với kiểm tra phiên. - Tháng 10 năm 2025 — đến hiện tại — vụ kiện của Reddit đối với Perplexity AI, Oxylabs UAB, AWMProxy và SerpApi (Quận phía Nam New York, thẩm phán Engelmaier). Reddit cáo buộc các bị cáo đã khai thác nội dung của mình một cách công nghiệp thông qua kết quả của Google và bán lại dữ liệu, dẫn chiếu đến các điều khoản chống vượt qua của DMCA. Đơn kiện sửa đổi thứ nhất đã được nộp; tính đến tháng 3 năm 2026, vụ án đang ở giai đoạn motion to dismiss. Các bị cáo phủ nhận vi phạm: Perplexity gọi đây là nỗ lực để đóng cửa dữ liệu công khai, SerpApi và Oxylabs tuyên bố về quyền truy cập vào web công khai trong khuôn khổ pháp luật.
Kết luận thực tiễn từ điểm thứ ba: thu thập dữ liệu Reddit để vượt qua API chính thức — đây không phải là một lĩnh vực rủi ro kỹ thuật, mà là rủi ro pháp lý, và giá của sai lầm cho một dự án thương mại không được đo bằng việc bị cấm, mà bằng các vụ kiện. Chi tiết về cách các tòa án vào năm 2026 giải thích việc khai thác dữ liệu từ kết quả tìm kiếm, chúng tôi đã phân tích trong tài liệu về quyết định của vụ kiện Google và SerpApi.
API Dữ liệu Chính thức: giới hạn thực tế năm 2026
Đây là con đường duy nhất không tạo ra các khiếu nại pháp lý. Các con số cần biết trước khi thiết kế:
- 100 yêu cầu mỗi phút cho khách hàng OAuth. Cửa sổ được trung bình trong khoảng 10 phút, tức là các đợt tăng ngắn là chấp nhận được.
- 10 yêu cầu mỗi phút không có OAuth — điều này không đủ cho bất cứ điều gì ngoài việc gỡ lỗi.
- Giới hạn được tính trên khóa ứng dụng, chứ không phải trên người dùng cuối. Năm luồng trên một mã thông báo không cung cấp năm lần dung lượng — chúng chỉ đốt cháy một ngân sách nhanh hơn năm lần.
- Gói miễn phí bao gồm các dự án cá nhân, bot, công cụ điều hành và nghiên cứu học thuật. Không có bộ đếm tiền, chỉ có giới hạn về tần suất.
- Sử dụng thương mại yêu cầu hợp đồng và phê duyệt thủ công; phí — $0.24 cho 1000 lần gọi. Theo ước tính của các nền tảng trong ngành, ngưỡng để vào hợp đồng thương mại bắt đầu từ khoảng $12,000 mỗi năm.
- Đào tạo mô hình ML trên dữ liệu API bị cấm hoàn toàn theo các điều kiện của API Dữ liệu. Giấy phép cho việc đào tạo — các hợp đồng riêng tư riêng biệt (thỏa thuận giữa Reddit với Google đã được báo chí ước tính khoảng $60 triệu mỗi năm).
Các tiêu đề cần phân tích mọi lúc
Reddit trả về ba tiêu đề cho mỗi phản hồi: X-Ratelimit-Used, X-Ratelimit-Remaining và X-Ratelimit-Reset. Đây là nguồn thông tin đáng tin cậy duy nhất về ngân sách của bạn — không phải là hằng số trong mã và không phải là wiki cũ với con số "60 yêu cầu mỗi phút" (nó đã lỗi thời từ năm 2023).
Các yêu cầu về User-Agent
Reddit mong đợi một chuỗi mô tả duy nhất theo định dạng platform:app_id:version (by /u/username). Các User-Agent chung và trống sẽ bị cắt giảm nghiêm ngặt về tần suất — đây là điều đầu tiên cần kiểm tra nếu các giới hạn hết trước thời gian dự kiến.
Bước từng bước: cách xây dựng pipeline không bị sập
- Đăng ký ứng dụng script-app trong cài đặt Reddit và nhận client_id/client_secret. Đối với tải chỉ đọc, đây là loại ứng dụng đơn giản nhất.
- Đặt User-Agent chính xác theo định dạng trên. Đừng sao chép chuỗi từ hướng dẫn của người khác —
app_idvà tên người dùng phải là của bạn. - Đọc
X-Ratelimit-Remainingtrên mỗi phản hồi, không chỉ khi có lỗi. Khi số dư giảm xuống khoảng 20 yêu cầu, hãy chuyển sang nhịp độ đều đặn: độ trễ cho mỗi lần gọi = giây đến khi cửa sổ được đặt lại ÷ số yêu cầu còn lại. Bằng cách này, bạn phân tán hạn ngạch trong cửa sổ thay vì đâm vào tường. - Xử lý 429 một cách chính xác. Lấy khoảng dừng đầu tiên từ tiêu đề
Retry-After. Tiếp theo — backoff theo cấp số nhân với jitter:wait = 2^attempt + random(). Jitter là bắt buộc: nếu không, các khách hàng song song sẽ lặp lại yêu cầu đồng bộ và gây ra một chuỗi từ chối thứ hai. - Cache các lần đọc với TTL. Yêu cầu lại cùng một danh sách — nguyên nhân phổ biến nhất dẫn đến việc tiêu tốn hạn ngạch trong các dự án giám sát.
- Mở rộng bằng cách xoay vòng các mã thông báo, không phải các luồng. Mỗi mã thông báo OAuth mang một bộ đếm độc lập; nhiều ứng dụng trên các tài khoản khác nhau với phân phối round-robin (trong Python —
itertools.cycle) tăng cường băng thông theo chiều tuyến tính. Quan trọng: đối với tải thương mại, điều này không thay thế hợp đồng với Reddit — đây là cách để phù hợp với các giới hạn hợp lý, chứ không phải để vượt qua chúng. - Đặt kế hoạch để vượt qua giới hạn danh sách. Reddit trả về tối đa khoảng 1000 mục trên mỗi danh sách (100 trên mỗi trang, con trỏ
after). Nội dung cũ hơn không có sẵn thông qua các endpoint tiêu chuẩn. Giải pháp chính là không "đánh bại" giới hạn, mà cắt mẫu theo thời gian và thực hiện nhiều yêu cầu hẹp thay vì một yêu cầu rộng. - Đối với dữ liệu lịch sử, hãy tìm kiếm chỉ mục, không phải API. Sau khi đóng cửa Pushshift, vị trí của nó được các chỉ mục bên ngoài như PullPush (miễn phí, nhưng không có SLA) và các API tìm kiếm thương mại với chỉ mục riêng và các giới hạn khác. Đối với công việc học thuật, Reddit có một chương trình riêng gọi là Reddit for Researchers.
Các cạm bẫy mà bạn sẽ biết muộn
PRAW làm chậm lưu lượng, nhưng không cứu được mọi thứ. Bộ giới hạn tích hợp của PRAW đọc các tiêu đề và tự động đặt khoảng dừng — điều này hoạt động tốt cho kịch bản đơn luồng. Tình trạng hiện tại có thể thấy qua reddit.auth.limits. Điều này bị hỏng trong hai trường hợp: khi đa luồng với thông tin xác thực chung (các phiên bản không thấy mức tiêu thụ của nhau) và trong mã async, nơi mà time.sleep chặn event loop.
Các tác nhân AI tiêu tốn hạn ngạch một cách âm thầm. Một bước suy luận của tác nhân dễ dàng biến thành 10–15 lần gọi công cụ. Mười phiên đồng thời — tức là 100–150 yêu cầu đồng thời, tức là toàn bộ ngân sách phút trong vài giây. Nếu bạn xây dựng một tác nhân trên Reddit, bộ giới hạn cần thiết ở cấp độ pool, không phải là một lần gọi riêng lẻ.
Khảo sát mà không có backoff. Kiểm tra cập nhật "mỗi N giây" mà không có khoảng dừng theo cấp số nhân — nguyên nhân thứ hai phổ biến nhất gây ra 429 sau mã thông báo chung.
Ở đây thực sự cần proxy ở đâu và ở đâu không
Nói một cách thẳng thắn: proxy không tăng giới hạn của API chính thức của bạn. Hạn ngạch được gán cho khóa ứng dụng, không phải địa chỉ IP xuất phát, và nỗ lực "nhân bản" nó bằng cách thay đổi địa chỉ không hoạt động và vi phạm các điều khoản. Các nhiệm vụ mà proxy thực sự giải quyết trong pipeline reddit là khác:
- Truy cập địa lý và kết nối. Reddit không khả dụng hoặc bị hạn chế một phần ở một số quốc gia, và các mạng doanh nghiệp cắt nó như một mạng xã hội. Một nút đầu ra ổn định ở khu vực cần thiết là một vấn đề về khả năng tiếp cận cơ sở hạ tầng, không phải là vượt qua các giới hạn. Đối với các nhiệm vụ máy chủ với IP cố định, thường chỉ cần proxy trung tâm dữ liệu.
- Phân phối theo vùng. Một phần nội dung và khuyến nghị của Reddit được trả về dựa trên địa lý của yêu cầu; nếu bạn phân tích những gì khán giả của một quốc gia cụ thể thấy, bạn cần đầu ra từ chính quốc gia đó.
- Phân tán cơ sở hạ tầng. Khi một số dịch vụ độc lập (thu thập, giám sát đề cập, phân tích) sống trên cùng một máy chủ, một IP duy nhất trở thành điểm từ chối chung cho tất cả các tích hợp ngay lập tức.
- Làm việc với các tài khoản riêng của bạn. Đối với việc điều hành, quản lý cộng đồng và hoạt động SMM hợp pháp từ nhiều hồ sơ, liên kết "tài khoản ↔ IP cố định" là vệ sinh cơ bản. Ở đây phù hợp với proxy dân cư với phiên sticky.
Nhưng điều mà proxy không thể làm: không hợp pháp hóa việc thu thập thương mại để vượt qua hợp đồng, không loại bỏ giới hạn danh sách 1000 mục và không hủy bỏ Disallow: / trong robots.txt. Cách tiếp cận tổng thể để làm việc với các giới hạn của nền tảng — trong phân tích về giới hạn tần suất trong API và vai trò của proxy.
Kết luận
Reddit vào năm 2026 đã hoàn toàn ngừng là "tập dữ liệu mở mà bạn có thể lấy bằng .json". Sơ đồ làm việc trông như sau: truy cập OAuth chính thức + bộ giới hạn công bằng trên tiêu đề + xoay vòng mã thông báo trong khuôn khổ quy tắc + chỉ mục bên ngoài cho lịch sử. Proxy trong sơ đồ này chịu trách nhiệm về khả năng tiếp cận và địa lý, không phải về việc vượt qua các hạn ngạch — và đây là vai trò duy nhất mà chúng mang lại kết quả dự đoán.
Nếu dự án của bạn là thương mại, hãy lập kế hoạch ngân sách cho hợp đồng với Reddit trước: lịch sử kiện tụng với Perplexity, Oxylabs và SerpApi cho thấy rằng nền tảng sẵn sàng chi tiêu để bảo vệ dữ liệu của mình nhiều hơn đáng kể so với chi phí truy cập hợp pháp.
```