Приклад запиту
Python
import json
import urllib.request
request = urllib.request.Request('https://api.redditapistack.com/v1/search?q=asyncio&subreddit=learnpython&limit=3',
headers={"Authorization": "Bearer YOUR_API_KEY"})
with urllib.request.urlopen(request, timeout=30) as response:
payload = json.load(response)
print(payload)JavaScript
const response = await fetch("https://api.redditapistack.com/v1/search?q=asyncio&subreddit=learnpython&limit=3", {
headers: { Authorization: "Bearer YOUR_API_KEY" }
});
if (!response.ok) throw new Error(`HTTP ${response.status}`);
const payload = await response.json();
console.log(payload);Доступ до історичних дописів і коментарів
Reddit API Stack надає доступ до незалежного історичного архіву дописів і коментарів. Це не офіційний сервіс Reddit і не джерело оновлень у реальному часі. Розробники серверної та клієнтської частин можуть використовувати збережені матеріали для дослідницьких інтерфейсів та внутрішніх інструментів. Незалежність архіву не гарантує безперервного доступу, незмінності даних або відсутності обмежень частоти запитів.
Фільтри допомагають вибрати історичні записи за спільнотою, автором, типом або діапазоном дат. Отримані результати відображають доступні матеріали архіву, а не поточний стан Reddit. Порядок _doc не є хронологічним чи впорядкованим за релевантністю. Якщо ваш застосунок показує часову шкалу, відокремлюйте власне опрацювання вибірки від порядку, у якому записи надійшли через API, та враховуйте її обмежений обсяг.
Мова програмування Python або JavaScript добре підходить для інтеграції, оскільки API повертає стандартні форми даних, які легко парсуються будь-якою сучасною бібліотекою. Клієнти можуть локально групувати відповіді за наявними ідентифікаторами батьківських повідомлень, хоча архів не гарантує повноти деревоподібних структур. Це означає, що ви отримуєте плоскі записи, які вимагають обробки на стороні клієнта для відтворення контексту дискусій.
Гнучка модель оплати без підписок
Кожен успішний запит на отримання даних списує один кредит, навіть коли список результатів порожній. Тариф становить $1 за 1000 успішних запитів, тобто $0.001 за кредит. Мінімальне платне поповнення $50 додає 50000 кредитів. Це мінімальна сума поповнення, а не обов’язковий залишок на рахунку. Кількість записів у межах одного успішного запиту не змінює його вартість.
Для оплати підтримуються USDT TRC20 та USDC ERC20 в основній мережі Ethereum. Увійдіть в обліковий запис, створіть рахунок і перевірте вказані в ньому адресу одержувача, мережу та точну суму. Після переказу введіть хеш платіжної транзакції для перевірки. Окремий рахунок не означає нову адресу гаманця. Оплачені кредити не мають строку дії, а щомісячна підписка не потрібна.
Обліковому запису може бути доступний пробний баланс у 100 кредитів до платного поповнення. Його надання залежить від спільних для мережі обмежень проти зловживань і не гарантоване кожному користувачеві. За наявності такого балансу перевірте відповідність фільтрів своєму завданню та обробку відповідей у застосунку. Пробні кредити відокремлені від придбаних і не змінюють тариф перерахунку платних кредитів.
Технічний огляд та обмеження
Запити на отримання даних потребують API-ключа, тоді як /v1/status доступний без нього та не витрачає кредитів. Цей маршрут повертає статичний опис історичного сервісу й підтверджує відповідь HTTP-сервера. Він не перевіряє пошук, стан архіву або наявність конкретних записів. Не використовуйте успішну відповідь цього маршруту як доказ того, що наступний запит до даних неодмінно буде успішним.
Параметр limit визначає кількість записів у відповіді від 1 до 100, а page обирає сторінку з номером від 1 до 100. min_score відсіює записи за числовою оцінкою, але не сортує їх. Відповіді містять плоскі записи. Якщо присутні parent_id або link_id, клієнт може використати їх для локального групування, проте повнота ланцюжка обговорення не гарантується.
Некоректні запити не списують кредити, а збій зовнішнього сервісу повертає зарезервований кредит. Відрізняйте такі відмови від успішної відповіді без записів. API-ключ показується один раз після реєстрації; його можна замінити після входу й підтвердження пароля. Попередній ключ одразу втратить чинність. Ключ і баланс належать цьому домену, тому їх не слід використовувати як спільні для всієї мережі.