MENU navbar-image

🗨️ Reddit

The Reddit API provides endpoints for searching content, retrieving posts, accessing individual post details, and fetching user-specific data, enabling streamlined interaction with Reddit's platform features.

requires authentication

Search specific topics on Reddit and filter results based on posts, comments, users, and communities. This endpoint also allows you to sort the results based on relevant, hot, new, rising, and time frame.

Example request:
import requests
import json

url = 'https://api.steadyapi.com/v1/reddit/search'
params = {
  'search': 'investing',
  'subreddit': 'wallstreetbets',
  'filter': 'posts',
  'timeFilter': 'all',
  'sortType': 'relevance',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()
$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/reddit/search';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
        ],
        'query' => [
            'search' => 'investing',
            'subreddit' => 'wallstreetbets',
            'filter' => 'posts',
            'timeFilter' => 'all',
            'sortType' => 'relevance',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.steadyapi.com/v1/reddit/search"
);

const params = {
    "search": "investing",
    "subreddit": "wallstreetbets",
    "filter": "posts",
    "timeFilter": "all",
    "sortType": "relevance",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.steadyapi.com/v1/reddit/search?search=investing&subreddit=wallstreetbets&filter=posts&timeFilter=all&sortType=relevance" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}"

Example response (200, Success):


{
    "meta": {
      "version": "v1.0",
      "status": 200,
      "copywrite": "https://steadyapi.com",
      "total": 25
    },
    "body": [
      {
        "approved_at_utc": null,
        "subreddit": "wallstreetbets",
        "selftext": "",
        "author_fullname": "t2_f7674uoa",
        "saved": false,
        "mod_reason_title": null,
        "gilded": 0,
        "clicked": false,
        "title": "Burry has one play",
        "link_flair_richtext": [
          {
            "e": "text",
            "t": "Meme"
          }
        ],
        "subreddit_name_prefixed": "r/wallstreetbets",
        "hidden": false,
        "pwls": 7,
        "link_flair_css_class": "meme",
        "downs": 0,
        "thumbnail_height": 140,
        "top_awarded_type": null,
        "hide_score": false,
        "name": "t3_15tq51f",
        "quarantine": false,
        "link_flair_text_color": "light",
        "upvote_ratio": 0.96,
        "author_flair_background_color": null,
        "ups": 2146,
        "total_awards_received": 0,
        "media_embed": [],
        "thumbnail_width": 140,
        "author_flair_template_id": null,
        "is_original_content": false,
        "user_reports": [],
        "secure_media": null,
        "is_reddit_media_domain": true,
        "is_meta": false,
        "category": null,
        "secure_media_embed": [],
        "link_flair_text": "Meme",
        "can_mod_post": false,
        "score": 2146,
        "approved_by": null,
        "is_created_from_ads_ui": false,
        "author_premium": false,
        "thumbnail": "https://a.thumbs.redditmedia.com/aRzqUDY1KGUN3_BrAPBEUWFDiaQYuR1wCRCsP6J5Yv0.jpg",
        "edited": false,
        "author_flair_css_class": null,
        "author_flair_richtext": [],
        "gildings": [],
        "post_hint": "image",
        "content_categories": null,
        "is_self": false,
        "subreddit_type": "public",
        "created": 1692284657,
        "link_flair_type": "richtext",
        "wls": 7,
        "removed_by_category": null,
        "banned_by": null,
        "author_flair_type": "text",
        "domain": "i.redd.it",
        "allow_live_comments": false,
        "selftext_html": null,
        "likes": null,
        "suggested_sort": "confidence",
        "banned_at_utc": null,
        "url_overridden_by_dest": "https://i.redd.it/3enbey74roib1.jpg",
        "view_count": null,
        "archived": false,
        "no_follow": false,
        "is_crosspostable": false,
        "pinned": false,
        "over_18": false,
        ...
      },
      ...
    ]
  }
 

Example response (401, Unauthenticated):


{
    "message": "Unauthenticated."
}
 

Example response (403, Unauthorized):


{
    "message": "This action is unauthorized."
}
 

Example response (404, Not Found):


{
    "success": false,
    "message": "Resource Not Found"
}
 

Example response (422, Error Validations):


{
    "message": "The ticker field is required.",
    "errors": {
        "ticker": [
            "The ticker field is required."
        ]
    }
}
 

GET /v1/posts

requires authentication

Retrieve hot, new, and top Reddit posts from a given subreddit URL.

Example request:
import requests
import json

url = 'https://api.steadyapi.com/v1/reddit/posts'
params = {
  'url': 'https://www.reddit.com/r/wallstreetbets',
  'sortType': 'top',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()
$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/reddit/posts';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
        ],
        'query' => [
            'url' => 'https://www.reddit.com/r/wallstreetbets',
            'sortType' => 'top',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.steadyapi.com/v1/reddit/posts"
);

const params = {
    "url": "https://www.reddit.com/r/wallstreetbets",
    "sortType": "top",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.steadyapi.com/v1/reddit/posts?url=https%3A%2F%2Fwww.reddit.com%2Fr%2Fwallstreetbets&sortType=top" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}"

Example response (200, Success):


{
    "meta": {
      "version": "v1.0",
      "status": 200,
      "copywrite": "https://steadyapi.com",
      "total": 25
    },
    "body": [
      {
        "approved_at_utc": null,
        "subreddit": "wallstreetbets",
        "selftext": "",
        "author_fullname": "t2_f7674uoa",
        "saved": false,
        "mod_reason_title": null,
        "gilded": 0,
        "clicked": false,
        "title": "Burry has one play",
        "link_flair_richtext": [
          {
            "e": "text",
            "t": "Meme"
          }
        ],
        "subreddit_name_prefixed": "r/wallstreetbets",
        "hidden": false,
        "pwls": 7,
        "link_flair_css_class": "meme",
        "downs": 0,
        "thumbnail_height": 140,
        "top_awarded_type": null,
        "hide_score": false,
        "name": "t3_15tq51f",
        "quarantine": false,
        "link_flair_text_color": "light",
        "upvote_ratio": 0.96,
        "author_flair_background_color": null,
        "ups": 2146,
        "total_awards_received": 0,
        "media_embed": [],
        "thumbnail_width": 140,
        "author_flair_template_id": null,
        "is_original_content": false,
        "user_reports": [],
        "secure_media": null,
        "is_reddit_media_domain": true,
        "is_meta": false,
        "category": null,
        "secure_media_embed": [],
        "link_flair_text": "Meme",
        "can_mod_post": false,
        "score": 2146,
        "approved_by": null,
        "is_created_from_ads_ui": false,
        "author_premium": false,
        "thumbnail": "https://a.thumbs.redditmedia.com/aRzqUDY1KGUN3_BrAPBEUWFDiaQYuR1wCRCsP6J5Yv0.jpg",
        "edited": false,
        "author_flair_css_class": null,
        "author_flair_richtext": [],
        "gildings": [],
        "post_hint": "image",
        "content_categories": null,
        "is_self": false,
        "subreddit_type": "public",
        "created": 1692284657,
        "link_flair_type": "richtext",
        "wls": 7,
        "removed_by_category": null,
        "banned_by": null,
        "author_flair_type": "text",
        "domain": "i.redd.it",
        "allow_live_comments": false,
        "selftext_html": null,
        "likes": null,
        "suggested_sort": "confidence",
        "banned_at_utc": null,
        "url_overridden_by_dest": "https://i.redd.it/3enbey74roib1.jpg",
        "view_count": null,
        "archived": false,
        "no_follow": false,
        "is_crosspostable": false,
        "pinned": false,
        "over_18": false,
        ...
      },
      ...
    ]
  }
 

Example response (401, Unauthenticated):


{
    "message": "Unauthenticated."
}
 

Example response (403, Unauthorized):


{
    "message": "This action is unauthorized."
}
 

Example response (404, Not Found):


{
    "success": false,
    "message": "Resource Not Found"
}
 

Example response (422, Error Validations):


{
    "message": "The ticker field is required.",
    "errors": {
        "ticker": [
            "The ticker field is required."
        ]
    }
}
 

Request      

GET v1/reddit/posts

Headers

Authorization Bearer {YOUR_AUTH_KEY}

Query Parameters

Parameter Type Description
url required string

Provide subreddit URL. Example: https://www.reddit.com/r/wallstreetbets

sortType optional string

The sorting type ('hot', 'top', 'new', or 'rising'). Default: top. Example: top

cursor optional string

Enter the current cursor to get the next page.

GET /v1/post

requires authentication

Get post content such as thread content, upvotes, comments, etc...

Example request:
import requests
import json

url = 'https://api.steadyapi.com/v1/reddit/post'
params = {
  'url': 'https://www.reddit.com/r/wallstreetbets/comments/p0esdp/do_hedge_funds_beat_the_market_i_analyzed_the',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()
$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/reddit/post';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
        ],
        'query' => [
            'url' => 'https://www.reddit.com/r/wallstreetbets/comments/p0esdp/do_hedge_funds_beat_the_market_i_analyzed_the',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.steadyapi.com/v1/reddit/post"
);

const params = {
    "url": "https://www.reddit.com/r/wallstreetbets/comments/p0esdp/do_hedge_funds_beat_the_market_i_analyzed_the",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.steadyapi.com/v1/reddit/post?url=https%3A%2F%2Fwww.reddit.com%2Fr%2Fwallstreetbets%2Fcomments%2Fp0esdp%2Fdo_hedge_funds_beat_the_market_i_analyzed_the" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}"

Example response (200, Success):


{
    "meta": {
      "version": "v1.0",
      "status": 200,
      "copywrite": "https://steadyapi.com",
      "total": 25
    },
    "body": [
      {
        "approved_at_utc": null,
        "subreddit": "wallstreetbets",
        "selftext": "",
        "author_fullname": "t2_f7674uoa",
        "saved": false,
        "mod_reason_title": null,
        "gilded": 0,
        "clicked": false,
        "title": "Burry has one play",
        "link_flair_richtext": [
          {
            "e": "text",
            "t": "Meme"
          }
        ],
        "subreddit_name_prefixed": "r/wallstreetbets",
        "hidden": false,
        "pwls": 7,
        "link_flair_css_class": "meme",
        "downs": 0,
        "thumbnail_height": 140,
        "top_awarded_type": null,
        "hide_score": false,
        "name": "t3_15tq51f",
        "quarantine": false,
        "link_flair_text_color": "light",
        "upvote_ratio": 0.96,
        "author_flair_background_color": null,
        "ups": 2146,
        "total_awards_received": 0,
        "media_embed": [],
        "thumbnail_width": 140,
        "author_flair_template_id": null,
        "is_original_content": false,
        "user_reports": [],
        "secure_media": null,
        "is_reddit_media_domain": true,
        "is_meta": false,
        "category": null,
        "secure_media_embed": [],
        "link_flair_text": "Meme",
        "can_mod_post": false,
        "score": 2146,
        "approved_by": null,
        "is_created_from_ads_ui": false,
        "author_premium": false,
        "thumbnail": "https://a.thumbs.redditmedia.com/aRzqUDY1KGUN3_BrAPBEUWFDiaQYuR1wCRCsP6J5Yv0.jpg",
        "edited": false,
        "author_flair_css_class": null,
        "author_flair_richtext": [],
        "gildings": [],
        "post_hint": "image",
        "content_categories": null,
        "is_self": false,
        "subreddit_type": "public",
        "created": 1692284657,
        "link_flair_type": "richtext",
        "wls": 7,
        "removed_by_category": null,
        "banned_by": null,
        "author_flair_type": "text",
        "domain": "i.redd.it",
        "allow_live_comments": false,
        "selftext_html": null,
        "likes": null,
        "suggested_sort": "confidence",
        "banned_at_utc": null,
        "url_overridden_by_dest": "https://i.redd.it/3enbey74roib1.jpg",
        "view_count": null,
        "archived": false,
        "no_follow": false,
        "is_crosspostable": false,
        "pinned": false,
        "over_18": false,
        ...
      },
      ...
    ]
  }
 

Example response (401, Unauthenticated):


{
    "message": "Unauthenticated."
}
 

Example response (403, Unauthorized):


{
    "message": "This action is unauthorized."
}
 

Example response (404, Not Found):


{
    "success": false,
    "message": "Resource Not Found"
}
 

Example response (422, Error Validations):


{
    "message": "The ticker field is required.",
    "errors": {
        "ticker": [
            "The ticker field is required."
        ]
    }
}
 

Request      

GET v1/reddit/post

Headers

Authorization Bearer {YOUR_AUTH_KEY}

Query Parameters

Parameter Type Description
url required string

Provide the post URL. Example: https://www.reddit.com/r/wallstreetbets/comments/p0esdp/do_hedge_funds_beat_the_market_i_analyzed_the

requires authentication

Get a list of popular subreddits.

Example request:
import requests
import json

url = 'https://api.steadyapi.com/v1/reddit/subreddit/popular'
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}

response = requests.request('GET', url, headers=headers)
response.json()
$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/reddit/subreddit/popular';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.steadyapi.com/v1/reddit/subreddit/popular"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.steadyapi.com/v1/reddit/subreddit/popular" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}"

Example response (200, Success):


{
  "meta": {
    "version": "v1.0",
    "status": 200,
    "copywrite": "https://steadyapi.com",
    "subreddit": "wallstreetbets",
    "cursor": "t5_2cneq"
  },
  "body": [
    {
      "user_flair_background_color": null,
      "submit_text_html": null,
      "restrict_posting": true,
      "user_is_banned": false,
      "free_form_reports": true,
      "wiki_enabled": null,
      "user_is_muted": false,
      "user_can_flair_in_sr": null,
      "display_name": "Home",
      "header_img": null,
      "title": "Home",
      "allow_galleries": true,
      "icon_size": null,
      "primary_color": "",
      "active_user_count": null,
      "icon_img": "",
      "display_name_prefixed": "r/Home",
      "accounts_active": null,
      "public_traffic": false,
      "subscribers": 350314,
      "user_flair_richtext": [],
      "videostream_links_count": 0,
      "name": "t5_2qs0k",
      "quarantine": false,
      "hide_ads": false,
      "prediction_leaderboard_entry_type": 2,
      "emojis_enabled": false,
      "advertiser_category": "",
      "public_description": "",
      "comment_score_hide_mins": 0,
      "allow_predictions": false,
      "user_has_favorited": false,
      "user_flair_template_id": null,
      "community_icon": "",
      "banner_background_image": "",
      "original_content_tag_enabled": false,
      "community_reviewed": true,
      "submit_text": "",
      "description_html": "<!-- SC_OFF --><div class=\"md\"><p>Everything home related: interior design, home improvement, architecture.</p>\n\n<h2><strong>Related subreddits</strong></h2>\n\n<ul>\n<li><a href=\"http://www.reddit.com/r/interiordesign\">/r/InteriorDesign</a></li>\n<li><a href=\"http://www.reddit.com/r/architecture\">/r/architecture</a></li>\n<li><a href=\"http://www.reddit.com/r/houseporn\">/r/houseporn</a></li>\n<li><a href=\"http://www.reddit.com/r/roomporn\">/r/roomporn</a></li>\n<li><a href=\"http://www.reddit.com/r/designmyroom\">/r/designmyroom</a></li>\n</ul>\n</div><!-- SC_ON -->",
      "spoilers_enabled": true,
      "comment_contribution_settings": {
        "allowed_media_types": null
      },
      "allow_talks": false,
      "header_size": null,
      "user_flair_position": "right",
      "all_original_content": false,
      "has_menu_widget": false,
      "is_enrolled_in_new_modmail": null,
      "key_color": "",
      "can_assign_user_flair": true,
      "created": 1232850357,
      "wls": 6,
      "show_media_preview": true,
      "submission_type": "any",
      "user_is_subscriber": false,
      "allowed_media_in_comments": [],
      "allow_videogifs": true,
      "should_archive_posts": false,
      "user_flair_type": "text",
      "allow_polls": true,
      "collapse_deleted_comments": false,
      "emojis_custom_size": null,
      "public_description_html": null,
      "allow_videos": true,
      "is_crosspostable_subreddit": true,
      "suggested_comment_sort": null,
      "should_show_media_in_comments_setting": true,
      "can_assign_link_flair": true,
      "accounts_active_is_fuzzed": false,
      "allow_prediction_contributors": false,
      "submit_text_label": "",
      "link_flair_position": "right",
      "user_sr_flair_enabled": null,
      "user_flair_enabled_in_sr": false,
      "allow_discovery": true,
      "accept_followers": true,
      "user_sr_theme_enabled": true,
      "link_flair_enabled": true,
      "disable_contributor_requests": false,
      "subreddit_type": "public",
      "notification_level": null,
      "banner_img": "",
      "user_flair_text": null,
      "banner_background_color": "",
      "show_media": true,
      "id": "2qs0k",
      "user_is_contributor": false,
      "over18": false,
      "header_title": "",
      "description": "Everything home related: interior design, home improvement, architecture.\n\n**Related subreddits**\n--------------------------\n* [/r/InteriorDesign](http://www.reddit.com/r/interiordesign)\n* [/r/architecture](http://www.reddit.com/r/architecture)\n* [/r/houseporn](http://www.reddit.com/r/houseporn)\n* [/r/roomporn](http://www.reddit.com/r/roomporn)\n* [/r/designmyroom](http://www.reddit.com/r/designmyroom)",
      "submit_link_label": "",
      "user_flair_text_color": null,
      "restrict_commenting": false,
      "user_flair_css_class": null,
      "allow_images": true,
      "lang": "en",
      "url": "/r/Home/",
      "created_utc": 1232850357,
      "banner_size": null,
      "mobile_banner_image": "",
      "user_is_moderator": false,
      "allow_predictions_tournament": false
    },
    { ... }
  ]
}
 

Example response (401, Unauthenticated):


{
    "message": "Unauthenticated."
}
 

Example response (403, Unauthorized):


{
    "message": "This action is unauthorized."
}
 

Example response (404, Not Found):


{
    "success": false,
    "message": "Resource Not Found"
}
 

Example response (422, Error Validations):


{
    "message": "The ticker field is required.",
    "errors": {
        "ticker": [
            "The ticker field is required."
        ]
    }
}
 

GET /v1/subreddit/info

requires authentication

Get public metadata for a subreddit.

Example request:
import requests
import json

url = 'https://api.steadyapi.com/v1/reddit/subreddit/info'
params = {
  'subreddit': 'AskReddit',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()
$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/reddit/subreddit/info';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
        ],
        'query' => [
            'subreddit' => 'AskReddit',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.steadyapi.com/v1/reddit/subreddit/info"
);

const params = {
    "subreddit": "AskReddit",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.steadyapi.com/v1/reddit/subreddit/info?subreddit=AskReddit" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}"

Example response (200, Success):


{
    "meta": {
        "version": "v1.0",
        "status": 200,
        "copywrite": "https://steadyapi.com",
        "subreddit": "AskReddit"
    },
    "body": {
        "name": "AskReddit",
        "title": "Ask Reddit...",
        "public_description": "r/AskReddit is the place to ask and answer thought-provoking questions.",
        "description": "You must post a clear and direct question in the title. The title may contain two, short,...",
        "subscribers": 57603394,
        "created_utc": 1201233135,
        "over18": false,
        "lang": "es",
        "subreddit_type": "public",
        "icon_img": "https://b.thumbs.redditmedia.com/LSHrisQApf1H5F8nWShTx3_KjTOMc3R_ss3kx3XAyXQ.png",
        "community_icon": "https://styles.redditmedia.com/t5_2qh1i/styles/communityIcon_p6kb2m6b185b1.png?width=256&s=c28b9f038c305e139b62739f2133d7b776582696",
        "banner_background_image": "https://styles.redditmedia.com/t5_2qh1i/styles/bannerBackgroundImage_fs33xogq946f1.png?width=4000&s=460f7387ea96fb4707fad8acaa81643df40f19a9",
        "banner_img": "https://b.thumbs.redditmedia.com/RdyIGEa9Ghu94wr5v3oQQ_zvE1C1cntehzZJChVFkcw.png",
        "url": "/r/AskReddit/"
    }
}
 

Example response (401, Unauthenticated):


{
    "message": "Unauthenticated."
}
 

Example response (403, Unauthorized):


{
    "message": "This action is unauthorized."
}
 

Example response (404, Not Found):


{
    "success": false,
    "message": "Resource Not Found"
}
 

Example response (422, Error Validations):


{
    "message": "The ticker field is required.",
    "errors": {
        "ticker": [
            "The ticker field is required."
        ]
    }
}
 

Request      

GET v1/reddit/subreddit/info

Headers

Authorization Bearer {YOUR_AUTH_KEY}

Query Parameters

Parameter Type Description
subreddit optional string

Required. Example: AskReddit

GET /v1/subreddit/new

requires authentication

Get a list of new subreddits.

Example request:
import requests
import json

url = 'https://api.steadyapi.com/v1/reddit/subreddit/new'
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}

response = requests.request('GET', url, headers=headers)
response.json()
$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/reddit/subreddit/new';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.steadyapi.com/v1/reddit/subreddit/new"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.steadyapi.com/v1/reddit/subreddit/new" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}"

Example response (200, Success):


{
  "meta": {
    "version": "v1.0",
    "status": 200,
    "copywrite": "https://steadyapi.com",
    "subreddit": "wallstreetbets",
    "cursor": "t5_fcbwik"
  },
  "body": [
    {
      "user_flair_background_color": null,
      "submit_text_html": null,
      "restrict_posting": true,
      "user_is_banned": false,
      "free_form_reports": false,
      "wiki_enabled": null,
      "user_is_muted": false,
      "user_can_flair_in_sr": null,
      "display_name": "TheRakerzDozen",
      "header_img": null,
      "title": "TheRakerzDozen",
      "allow_galleries": true,
      "icon_size": null,
      "primary_color": "",
      "active_user_count": null,
      "icon_img": "",
      "display_name_prefixed": "r/TheRakerzDozen",
      "accounts_active": null,
      "public_traffic": false,
      "subscribers": 1,
      "user_flair_richtext": [],
      "videostream_links_count": 0,
      "name": "t5_fcbxyd",
      "quarantine": false,
      "hide_ads": false,
      "prediction_leaderboard_entry_type": 1,
      "emojis_enabled": false,
      "advertiser_category": "",
      "public_description": "A True Paranormal Story Podcast.  After 37 years, I'm finally sharing my experiences. If you have a story you'd like share I'd love to hear it!!!",
      "comment_score_hide_mins": 0,
      "allow_predictions": false,
      "user_has_favorited": false,
      "user_flair_template_id": null,
      "community_icon": "",
      "banner_background_image": "https://styles.redditmedia.com/t5_fcbxyd/styles/bannerBackgroundImage_z8wfk4dsa1nf1.jpg?width=4000&s=a4f11c6929834ce82fa35a0f49dc8d37b77e71db",
      "original_content_tag_enabled": false,
      "community_reviewed": false,
      "submit_text": "",
      "description_html": "<!-- SC_OFF --><div class=\"md\"><p>A True Paranormal Story Podcast.  After 37 years, I'm finally sharing my experiences. If you have a story you'd like share I'd love to hear it!!!</p>\n</div><!-- SC_ON -->",
      "spoilers_enabled": true,
      "comment_contribution_settings": {
        "allowed_media_types": [
          "giphy",
          "static",
          "animated",
          "expression"
        ]
      },
      "allow_talks": false,
      "header_size": null,
      "user_flair_position": "right",
      "all_original_content": false,
      "has_menu_widget": false,
      "is_enrolled_in_new_modmail": null,
      "key_color": "",
      "can_assign_user_flair": false,
      "created": 1756960059,
      "wls": null,
      "show_media_preview": true,
      "submission_type": "any",
      "user_is_subscriber": false,
      "allowed_media_in_comments": [
        "giphy",
        "static",
        "animated",
        "expression"
      ],
      "allow_videogifs": true,
      "should_archive_posts": false,
      "user_flair_type": "text",
      "allow_polls": true,
      "collapse_deleted_comments": true,
      "emojis_custom_size": null,
      "public_description_html": "<!-- SC_OFF --><div class=\"md\"><p>A True Paranormal Story Podcast.  After 37 years, I'm finally sharing my experiences. If you have a story you'd like share I'd love to hear it!!!</p>\n</div><!-- SC_ON -->",
      "allow_videos": true,
      "is_crosspostable_subreddit": true,
      "suggested_comment_sort": null,
      "should_show_media_in_comments_setting": true,
      "can_assign_link_flair": false,
      "accounts_active_is_fuzzed": false,
      "allow_prediction_contributors": false,
      "submit_text_label": "",
      "link_flair_position": "",
      "user_sr_flair_enabled": null,
      "user_flair_enabled_in_sr": false,
      "allow_discovery": true,
      "accept_followers": true,
      "user_sr_theme_enabled": true,
      "link_flair_enabled": false,
      "disable_contributor_requests": false,
      "subreddit_type": "public",
      "notification_level": null,
      "banner_img": "",
      "user_flair_text": null,
      "banner_background_color": "",
      "show_media": true,
      "id": "fcbxyd",
      "user_is_contributor": false,
      "over18": false,
      "header_title": "",
      "description": "A True Paranormal Story Podcast.  After 37 years, I'm finally sharing my experiences. If you have a story you'd like share I'd love to hear it!!!",
      "submit_link_label": "",
      "user_flair_text_color": null,
      "restrict_commenting": false,
      "user_flair_css_class": null,
      "allow_images": true,
      "lang": "en",
      "url": "/r/TheRakerzDozen/",
      "created_utc": 1756960059,
      "banner_size": null,
      "mobile_banner_image": "",
      "user_is_moderator": false,
      "allow_predictions_tournament": false
    },
    { ... }
  ]
}
 

Example response (401, Unauthenticated):


{
    "message": "Unauthenticated."
}
 

Example response (403, Unauthorized):


{
    "message": "This action is unauthorized."
}
 

Example response (404, Not Found):


{
    "success": false,
    "message": "Resource Not Found"
}
 

Example response (422, Error Validations):


{
    "message": "The ticker field is required.",
    "errors": {
        "ticker": [
            "The ticker field is required."
        ]
    }
}
 

Request      

GET v1/reddit/subreddit/new

Headers

Authorization Bearer {YOUR_AUTH_KEY}

Query Parameters

Parameter Type Description
cursor optional string

Enter the current cursor to get the next page.

GET /v1/subreddit/comments

requires authentication

Get the latest comments from a subreddit.

Example request:
import requests
import json

url = 'https://api.steadyapi.com/v1/reddit/subreddit/comments'
params = {
  'subreddit': 'wallstreetbets',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()
$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/reddit/subreddit/comments';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
        ],
        'query' => [
            'subreddit' => 'wallstreetbets',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.steadyapi.com/v1/reddit/subreddit/comments"
);

const params = {
    "subreddit": "wallstreetbets",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.steadyapi.com/v1/reddit/subreddit/comments?subreddit=wallstreetbets" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}"

Example response (200, Success):


{
  "meta": {
    "version": "v1.0",
    "status": 200,
    "copywrite": "https://steadyapi.com",
    "subreddit": "wallstreetbets",
    "cursor": "t1_ncbf8hn"
  },
  "body": [
    {
      "subreddit_id": "t5_2th52",
      "approved_at_utc": null,
      "author_is_blocked": false,
      "comment_type": null,
      "link_title": "What Are Your Moves Tomorrow, September 04, 2025",
      "mod_reason_by": null,
      "banned_by": null,
      "ups": 1,
      "num_reports": null,
      "author_flair_type": "richtext",
      "total_awards_received": 0,
      "subreddit": "wallstreetbets",
      "link_author": "wsbapp",
      "likes": null,
      "replies": "",
      "user_reports": [],
      "saved": false,
      "id": "ncbfmda",
      "banned_at_utc": null,
      "mod_reason_title": null,
      "gilded": 0,
      "archived": false,
      "collapsed_reason_code": null,
      "no_follow": true,
      "author": "AfraidAnalyst",
      "num_comments": 4524,
      "can_mod_post": false,
      "send_replies": true,
      "parent_id": "t1_ncbfigo",
      "score": 1,
      "author_fullname": "t2_565zfnri",
      "over_18": false,
      "report_reasons": null,
      "removal_reason": null,
      "approved_by": null,
      "controversiality": 0,
      "body": "Yeah, kinda dug a big hole and trying to escape",
      "edited": false,
      "top_awarded_type": null,
      "downs": 0,
      "author_flair_css_class": null,
      "is_submitter": false,
      "collapsed": false,
      "author_flair_richtext": [
        {
          "e": "text",
          "t": "Paid $3 for this"
        }
      ],
      "author_patreon_flair": false,
      "body_html": "<div class=\"md\"><p>Yeah, kinda dug a big hole and trying to escape</p>\n</div>",
      "gildings": [],
      "collapsed_reason": null,
      "distinguished": null,
      "associated_award": null,
      "stickied": false,
      "author_premium": false,
      "can_gild": false,
      "link_id": "t3_1n7p6c1",
      "unrepliable_reason": null,
      "author_flair_text_color": "dark",
      "score_hidden": false,
      "permalink": "/r/wallstreetbets/comments/1n7p6c1/what_are_your_moves_tomorrow_september_04_2025/ncbfmda/",
      "subreddit_type": "public",
      "link_permalink": "https://www.reddit.com/r/wallstreetbets/comments/1n7p6c1/what_are_your_moves_tomorrow_september_04_2025/",
      "name": "t1_ncbfmda",
      "author_flair_template_id": "acf21f8a-b20b-11e8-8717-0ee9cf2d415a",
      "subreddit_name_prefixed": "r/wallstreetbets",
      "author_flair_text": "Paid $3 for this",
      "treatment_tags": [],
      "created": 1756958905,
      "created_utc": 1756958905,
      "awarders": [],
      "all_awardings": [],
      "locked": false,
      "author_flair_background_color": "#ffffff",
      "collapsed_because_crowd_control": null,
      "mod_reports": [],
      "quarantine": false,
      "mod_note": null,
      "link_url": "https://www.reddit.com/r/wallstreetbets/comments/1n7p6c1/what_are_your_moves_tomorrow_september_04_2025/"
    },
    { ... }
  ]
}
 

Example response (401, Unauthenticated):


{
    "message": "Unauthenticated."
}
 

Example response (403, Unauthorized):


{
    "message": "This action is unauthorized."
}
 

Example response (404, Not Found):


{
    "success": false,
    "message": "Resource Not Found"
}
 

Example response (422, Error Validations):


{
    "message": "The ticker field is required.",
    "errors": {
        "ticker": [
            "The ticker field is required."
        ]
    }
}
 

Request      

GET v1/reddit/subreddit/comments

Headers

Authorization Bearer {YOUR_AUTH_KEY}

Query Parameters

Parameter Type Description
subreddit required string

A subreddit to search within. Leave blank to search sitewide. Example: wallstreetbets

cursor optional string

Enter the current cursor to get the next page.

GET /v1/user-stats

requires authentication

Get public statistics for a given Reddit user. This includes total karma, post/comment karma, awarder/awardee karma, and account metadata.

Example request:
import requests
import json

url = 'https://api.steadyapi.com/v1/reddit/user-stats'
params = {
  'username': 'spez',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()
$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/reddit/user-stats';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
        ],
        'query' => [
            'username' => 'spez',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.steadyapi.com/v1/reddit/user-stats"
);

const params = {
    "username": "spez",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.steadyapi.com/v1/reddit/user-stats?username=spez" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}"

Example response (200, Success):


{
  "meta": {
    "version": "v1.0",
    "status": 200,
    "copywrite": "https://steadyapi.com",
    "username": "spez"
  },
  "body": {
    "name": "spez",
    "total_karma": 934614,
    "link_karma": 180843,
    "comment_karma": 753771,
    "awardee_karma": 0,
    "awarder_karma": 0,
    "created_utc": 1118030400,
    "is_gold": true,
    "is_mod": true,
    "verified": true,
    "profile": {
      "icon_img": "https://styles.redditmedia.com/t5_3k30p/styles/profileIcon_uj015iwx9s7g1.png?width=256&height=256&crop=256:256,smart&s=aa819b0964f6e3019e769d1cc8ede7318c3869a3",
      "subreddit": { ... }
    }
  }
}
 

Example response (401, Unauthenticated):


{
    "message": "Unauthenticated."
}
 

Example response (403, Unauthorized):


{
    "message": "This action is unauthorized."
}
 

Example response (404, Not Found):


{
    "success": false,
    "message": "Resource Not Found"
}
 

Example response (422, Error Validations):


{
    "message": "The ticker field is required.",
    "errors": {
        "ticker": [
            "The ticker field is required."
        ]
    }
}
 

Request      

GET v1/reddit/user-stats

Headers

Authorization Bearer {YOUR_AUTH_KEY}

Query Parameters

Parameter Type Description
username required string

Provide a valid username. Example: spez

GET /v1/user-data

requires authentication

Get posts and comments from a given user. This endpoint also allows you to sort the results based on hot, top, and new.

Example request:
import requests
import json

url = 'https://api.steadyapi.com/v1/reddit/user-data'
params = {
  'username': 'spez',
  'filter': 'posts',
  'sortType': 'new',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()
$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/reddit/user-data';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
        ],
        'query' => [
            'username' => 'spez',
            'filter' => 'posts',
            'sortType' => 'new',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.steadyapi.com/v1/reddit/user-data"
);

const params = {
    "username": "spez",
    "filter": "posts",
    "sortType": "new",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.steadyapi.com/v1/reddit/user-data?username=spez&filter=posts&sortType=new" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}"

Example response (200, Success):


{
  "meta": {
    "version": "v1.0",
    "status": 200,
    "copywrite": "https://steadyapi.com",
    "username": "Real_Grapefruit_5570",
    "filter": "comments",
    "sortType": "new"
  },
  "body": [
    {
      "subreddit_id": "t5_366bm",
      "approved_at_utc": null,
      "author_is_blocked": false,
      "comment_type": null,
      "link_title": "help with using APIs in google sheets ",
      "mod_reason_by": null,
      "banned_by": null,
      "ups": 4,
      "num_reports": null,
      "author_flair_type": "text",
      "total_awards_received": 0,
      "subreddit": "googlesheets",
      "link_author": "Synthetic2802",
      "likes": true,
      "replies": "",
      "user_reports": [],
      "saved": false,
      "id": "l2r9qy1",
      "banned_at_utc": null,
      "mod_reason_title": null,
      "gilded": 0,
      "archived": false,
      "collapsed_reason_code": null,
      "no_follow": false,
      "author": "Real_Grapefruit_5570",
      "num_comments": 1,
      "can_mod_post": false,
      "send_replies": true,
      "parent_id": "t3_1cft4pg",
      "score": 4,
      "author_fullname": "t2_cx7hwzvs",
      "over_18": false,
      "report_reasons": null,
      "removal_reason": null,
      "approved_by": null,
      "controversiality": 0,
      "body": "I will recommend you use an REST API. I know steadyapi.com provides dividends, eps, earnings, etc. You also might want to checkout polygon and tiingo",
      "edited": false,
      "top_awarded_type": null,
      "downs": 0,
      "author_flair_css_class": null,
      "is_submitter": false,
      "collapsed": false,
      "author_flair_richtext": [],
      "author_patreon_flair": false,
      "body_html": "<div class=\"md\"><p>I will recommend you use an REST API. I know steadyapi.com provides dividends, eps, earnings, etc. You also might want to checkout polygon and tiingo</p>\n</div>",
      "gildings": [],
      "collapsed_reason": null,
      "distinguished": null,
      "associated_award": null,
      "stickied": false,
      "author_premium": false,
      "can_gild": false,
      "link_id": "t3_1cft4pg",
      "unrepliable_reason": null,
      "author_flair_text_color": null,
      "score_hidden": false,
      "permalink": "/r/googlesheets/comments/1cft4pg/help_with_using_apis_in_google_sheets/l2r9qy1/",
      "subreddit_type": "public",
      "link_permalink": "https://www.reddit.com/r/googlesheets/comments/1cft4pg/help_with_using_apis_in_google_sheets/",
      "name": "t1_l2r9qy1",
      "created": 1714951748,
      "subreddit_name_prefixed": "r/googlesheets",
      "author_flair_text": null,
      "treatment_tags": [],
      "rte_mode": "richtext",
      "created_utc": 1714951748,
      "awarders": [],
      "all_awardings": [],
      "locked": false,
      "author_flair_background_color": null,
      "collapsed_because_crowd_control": null,
      "mod_reports": [],
      "quarantine": false,
      "mod_note": null,
      "link_url": "https://www.reddit.com/r/googlesheets/comments/1cft4pg/help_with_using_apis_in_google_sheets/",
      "author_flair_template_id": null
    },
    { ... }
  ]
}
 

Example response (401, Unauthenticated):


{
    "message": "Unauthenticated."
}
 

Example response (403, Unauthorized):


{
    "message": "This action is unauthorized."
}
 

Example response (404, Not Found):


{
    "success": false,
    "message": "Resource Not Found"
}
 

Example response (422, Error Validations):


{
    "message": "The ticker field is required.",
    "errors": {
        "ticker": [
            "The ticker field is required."
        ]
    }
}
 

Request      

GET v1/reddit/user-data

Headers

Authorization Bearer {YOUR_AUTH_KEY}

Query Parameters

Parameter Type Description
username optional string

Provide a valid username. Example: spez

filter optional string

The type of content to filter ('posts', 'comments', or 'all'). Default: all. Example: posts

sortType optional string

The sorting type ('hot','top', or 'new'). Default: new. Example: new