{"openapi":"3.1.0","info":{"title":"ApiToll — Reddit scraper for AI agents","description":"ApiToll runs pay-per-call data agents on x402 (USDC on Base + Solana). This service scrapes Reddit — subreddit feeds, keyword search (sitewide or scoped to a subreddit), full comment threads, and user history — and returns clean structured JSON: posts (title, author, score, comment count, permalink, external link + domain, flair, NSFW flag, timestamp) and comments (body, score, depth, parent, OP flag). No login, no Reddit API key, paid per call.","contact":{"email":"eldeebomar@gmail.com"},"version":"1.0.0","x-guidance":"Flat $0.03 per call. GET /v1/reddit/subreddit?subreddit=<name>&sort=hot|new|top for a community feed; GET /v1/reddit/search?q=<keyword>[&subreddit=<name>] to find posts by topic; GET /v1/reddit/comments?url=<post url> for a full comment tree (depth-controlled); GET /v1/reddit/user?user=<name> for a user's post+comment history. limit up to 100. A call runs a live scrape. 4xx/5xx never charge (unknown subreddit/user/post → 404). score/numComments are OMITTED when Reddit doesn't expose them (deleted/archived) — never a false 0. Datacenter proxy with automatic residential fallback keeps success high."},"servers":[{"url":"https://reddit.apitoll.cloud"}],"tags":[{"name":"reddit","description":"Reddit posts, comments, users"},{"name":"reddit-scraper","description":"Reddit scraping (no login/API key)"},{"name":"social-media","description":"Social media data"},{"name":"social-listening","description":"Brand + topic monitoring"},{"name":"apitoll","description":"ApiToll factory family"}],"paths":{"/v1/reddit/subreddit":{"get":{"operationId":"getRedditSubreddit","summary":"Latest posts from any subreddit, sorted hot/new/top/rising/controversial","description":"Reddit subreddit feed scraper — the latest posts from any subreddit (r/<name>) for AI agents, sorted by hot, new, top, rising, or controversial with an optional time window. Returns each post’s title, author, score, comment count, permalink, external link + domain, flair, NSFW flag, and timestamp. No login, no Reddit API key. Monitor communities, track trending posts, and feed social signals to agents.","tags":["reddit","reddit-scraper","subreddit","social-media"],"x-keywords":["reddit scraper","scrape reddit","subreddit posts","reddit posts","reddit api","social media data","reddit monitoring","trending reddit","reddit feed"],"x-use-cases":["Monitor a subreddit’s newest or top posts","Feed community social signals to an AI agent","Track trending discussions in a niche community"],"parameters":[{"name":"subreddit","in":"query","required":true,"schema":{"type":"string","default":"programming"},"description":"Subreddit name (with or without the r/ prefix), e.g. programming, wallstreetbets, technology. Case-sensitive — use the exact casing from the subreddit’s URL (AskReddit, not askreddit). Defaults to a demo subreddit if omitted."},{"name":"sort","in":"query","required":false,"schema":{"type":"string","enum":["hot","new","top","rising","controversial"],"default":"hot"},"description":"Feed sort order."},{"name":"time","in":"query","required":false,"schema":{"type":"string","enum":["hour","day","week","month","year","all"],"default":"all"},"description":"Time window — only applies to top/controversial."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":25},"description":"Max posts to return (1-100)."}],"security":[{"x402":[]}],"x-payment-info":{"protocols":[{"x402":{"version":2,"network":"eip155:8453","asset":"USDC","assetAddress":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x667cc5A90ffA911279a5FBE377c1018DDF45373B","scheme":"exact","price":"$0.03"}},{"x402":{"version":2,"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","asset":"USDC","assetAddress":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"8ce9pCUe913hpaP4oheeMPJt2uRkWAq5FsuNU6zSvTkw","scheme":"exact","price":"$0.03"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.03"}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"asOf":{"type":"string"},"subreddit":{"type":"string"},"sort":{"type":"string"},"count":{"type":"number"},"posts":{"type":"array","items":{"type":"object","properties":{"recordType":{"type":"string"},"id":{"type":"string"},"fullId":{"type":"string"},"subreddit":{"type":"string"},"author":{"type":"string"},"title":{"type":"string"},"score":{"type":"number"},"numComments":{"type":"number"},"createdAt":{"type":"string"},"url":{"type":"string"},"externalUrl":{"type":"string"},"domain":{"type":"string"},"isSelf":{"type":"boolean"},"isNsfw":{"type":"boolean"},"flair":{"type":"string"},"scrapedAt":{"type":"string"}}}},"source":{"type":"object","properties":{"name":{"type":"string"},"via":{"type":"string"}}}}}}}},"402":{"description":"Payment Required. Sign an x402 payment authorization and retry.","headers":{"Payment-Required":{"schema":{"type":"string"},"description":"Base64-encoded x402 v2 challenge."}},"content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"No results for this query (unknown subreddit/user/post or empty) — not charged."},"405":{"description":"Method not allowed — use GET."},"502":{"description":"Reddit (Apify) upstream unavailable or timed out — not charged."}}}},"/v1/reddit/search":{"get":{"operationId":"getRedditSearch","summary":"Keyword-search Reddit posts sitewide or within a subreddit","description":"Reddit search scraper — keyword-search all of Reddit, or scope to one subreddit, for AI agents. Find posts matching any query, sorted by relevance, top, new, hot, or comments, with an optional time window. Returns each post’s title, author, subreddit, score, comment count, permalink, external link + domain, flair, and timestamp. No login, no API key. Track brand mentions, monitor topics, and surface Reddit discussion for agents.","tags":["reddit","reddit-scraper","search","social-media"],"x-keywords":["reddit search","search reddit","reddit scraper","scrape reddit","reddit keyword search","social listening","brand monitoring reddit","reddit mentions","reddit api"],"x-use-cases":["Track brand or product mentions across Reddit","Research a topic’s discussion sitewide or in a subreddit","Surface relevant Reddit posts for an AI agent"],"parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","default":"python"},"description":"Keyword or phrase to search. Wrap a multi-word phrase in double quotes for exact-match. Defaults to a demo query if omitted."},{"name":"subreddit","in":"query","required":false,"schema":{"type":"string"},"description":"Optional — scope the search to this subreddit (r/ prefix optional). Omit for a sitewide search."},{"name":"sort","in":"query","required":false,"schema":{"type":"string","enum":["relevance","top","new","hot","comments"],"default":"relevance"},"description":"Result ranking. Use relevance or top for precision."},{"name":"time","in":"query","required":false,"schema":{"type":"string","enum":["hour","day","week","month","year","all"],"default":"all"},"description":"Time window — applies to top."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":25},"description":"Max posts to return (1-100)."}],"security":[{"x402":[]}],"x-payment-info":{"protocols":[{"x402":{"version":2,"network":"eip155:8453","asset":"USDC","assetAddress":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x667cc5A90ffA911279a5FBE377c1018DDF45373B","scheme":"exact","price":"$0.03"}},{"x402":{"version":2,"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","asset":"USDC","assetAddress":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"8ce9pCUe913hpaP4oheeMPJt2uRkWAq5FsuNU6zSvTkw","scheme":"exact","price":"$0.03"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.03"}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"asOf":{"type":"string"},"query":{"type":"object","properties":{"q":{"type":"string"},"scoped":{"type":"boolean"}}},"sort":{"type":"string"},"count":{"type":"number"},"posts":{"type":"array","items":{"type":"object","properties":{"recordType":{"type":"string"},"id":{"type":"string"},"fullId":{"type":"string"},"subreddit":{"type":"string"},"author":{"type":"string"},"title":{"type":"string"},"score":{"type":"number"},"numComments":{"type":"number"},"createdAt":{"type":"string"},"url":{"type":"string"},"isSelf":{"type":"boolean"},"isNsfw":{"type":"boolean"},"scrapedAt":{"type":"string"}}}},"source":{"type":"object","properties":{"name":{"type":"string"},"via":{"type":"string"}}}}}}}},"402":{"description":"Payment Required. Sign an x402 payment authorization and retry.","headers":{"Payment-Required":{"schema":{"type":"string"},"description":"Base64-encoded x402 v2 challenge."}},"content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"No results for this query (unknown subreddit/user/post or empty) — not charged."},"405":{"description":"Method not allowed — use GET."},"502":{"description":"Reddit (Apify) upstream unavailable or timed out — not charged."}}}},"/v1/reddit/comments":{"get":{"operationId":"getRedditComments","summary":"Comment tree of any Reddit post by URL (top comments + nested replies)","description":"Reddit comment-thread scraper — the comment tree of any Reddit post for AI agents. Pass a post URL and get the post plus its nested comments (depth- and limit-controlled): for each comment the author, body, score, nesting depth, parent id, permalink, OP flag, and timestamp; a truncated flag plus totalComments show when a thread has more than returned. No login, no Reddit API key. Analyze discussion, sentiment, and community reaction on any thread.","tags":["reddit","reddit-scraper","comments","social-media"],"x-keywords":["reddit comments","reddit comment scraper","scrape reddit comments","reddit thread","comment tree","reddit sentiment","reddit discussion","reddit api"],"x-use-cases":["Pull every comment on a Reddit thread for sentiment analysis","Feed a discussion tree to an AI agent for summarization","Track community reaction to a post or announcement"],"parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","default":"https://www.reddit.com/r/programming/comments/1tlh5aj/announcement_weve_updated_the_rules_and_april_is/"},"description":"Full Reddit post URL or permalink. Defaults to a demo post if omitted."},{"name":"depth","in":"query","required":false,"schema":{"type":"integer","minimum":0,"maximum":50,"default":10},"description":"How deep to follow nested comment chains (0 = post only)."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":50},"description":"Max comments to return (1-100)."}],"security":[{"x402":[]}],"x-payment-info":{"protocols":[{"x402":{"version":2,"network":"eip155:8453","asset":"USDC","assetAddress":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x667cc5A90ffA911279a5FBE377c1018DDF45373B","scheme":"exact","price":"$0.03"}},{"x402":{"version":2,"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","asset":"USDC","assetAddress":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"8ce9pCUe913hpaP4oheeMPJt2uRkWAq5FsuNU6zSvTkw","scheme":"exact","price":"$0.03"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.03"}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"asOf":{"type":"string"},"postUrl":{"type":"string"},"depth":{"type":"number"},"post":{"type":"object","properties":{"recordType":{"type":"string"},"id":{"type":"string"},"fullId":{"type":"string"},"subreddit":{"type":"string"},"author":{"type":"string"},"title":{"type":"string"},"selfText":{"type":"string"},"score":{"type":"number"},"numComments":{"type":"number"},"url":{"type":"string"},"isSelf":{"type":"boolean"},"scrapedAt":{"type":"string"}}},"count":{"type":"number"},"totalComments":{"type":"number"},"truncated":{"type":"boolean"},"comments":{"type":"array","items":{"type":"object","properties":{"recordType":{"type":"string"},"id":{"type":"string"},"fullId":{"type":"string"},"postId":{"type":"string"},"subreddit":{"type":"string"},"author":{"type":"string"},"body":{"type":"string"},"score":{"type":"number"},"depth":{"type":"number"},"parentId":{"type":"string"},"url":{"type":"string"},"isSubmitter":{"type":"boolean"},"scrapedAt":{"type":"string"}}}},"source":{"type":"object","properties":{"name":{"type":"string"},"via":{"type":"string"}}}}}}}},"402":{"description":"Payment Required. Sign an x402 payment authorization and retry.","headers":{"Payment-Required":{"schema":{"type":"string"},"description":"Base64-encoded x402 v2 challenge."}},"content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"No results for this query (unknown subreddit/user/post or empty) — not charged."},"405":{"description":"Method not allowed — use GET."},"502":{"description":"Reddit (Apify) upstream unavailable or timed out — not charged."}}}},"/v1/reddit/user":{"get":{"operationId":"getRedditUser","summary":"A Reddit user’s recent posts + comments history by username","description":"Reddit user-profile scraper — a Reddit user’s recent posts and comments for AI agents. Pass a username and get their public history: for each item its type (post or comment), subreddit, title or body text, score, permalink, and timestamp, sorted by new, hot, top, or controversial. No login, no Reddit API key. Research users, track activity, and profile authors or influencers.","tags":["reddit","reddit-scraper","user-profile","social-media"],"x-keywords":["reddit user","reddit profile scraper","reddit user history","scrape reddit user","reddit author","reddit influencer","user posts comments","reddit api"],"x-use-cases":["Pull a Reddit user’s recent posts + comments","Profile an author or influencer for research","Track a specific user’s activity across subreddits"],"parameters":[{"name":"user","in":"query","required":true,"schema":{"type":"string","default":"spez"},"description":"Reddit username (with or without the u/ prefix). Defaults to a demo user if omitted."},{"name":"sort","in":"query","required":false,"schema":{"type":"string","enum":["new","hot","top","controversial"],"default":"new"},"description":"History sort order."},{"name":"time","in":"query","required":false,"schema":{"type":"string","enum":["hour","day","week","month","year","all"],"default":"all"},"description":"Time window — applies to top/controversial."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":25},"description":"Max items to return (1-100)."}],"security":[{"x402":[]}],"x-payment-info":{"protocols":[{"x402":{"version":2,"network":"eip155:8453","asset":"USDC","assetAddress":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x667cc5A90ffA911279a5FBE377c1018DDF45373B","scheme":"exact","price":"$0.03"}},{"x402":{"version":2,"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","asset":"USDC","assetAddress":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","payTo":"8ce9pCUe913hpaP4oheeMPJt2uRkWAq5FsuNU6zSvTkw","scheme":"exact","price":"$0.03"}}],"price":{"mode":"fixed","currency":"USD","amount":"0.03"}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"asOf":{"type":"string"},"user":{"type":"string"},"sort":{"type":"string"},"count":{"type":"number"},"items":{"type":"array","items":{"type":"object","properties":{"recordType":{"type":"string"},"id":{"type":"string"},"fullId":{"type":"string"},"postId":{"type":"string"},"subreddit":{"type":"string"},"author":{"type":"string"},"body":{"type":"string"},"score":{"type":"number"},"url":{"type":"string"},"scrapedAt":{"type":"string"}}}},"source":{"type":"object","properties":{"name":{"type":"string"},"via":{"type":"string"}}}}}}}},"402":{"description":"Payment Required. Sign an x402 payment authorization and retry.","headers":{"Payment-Required":{"schema":{"type":"string"},"description":"Base64-encoded x402 v2 challenge."}},"content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"No results for this query (unknown subreddit/user/post or empty) — not charged."},"405":{"description":"Method not allowed — use GET."},"502":{"description":"Reddit (Apify) upstream unavailable or timed out — not charged."}}}}},"components":{"securitySchemes":{"x402":{"type":"apiKey","in":"header","name":"X-PAYMENT","description":"x402 v2 payment header. Flat $0.03 per response. USDC on eip155:8453 + solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp."}}}}