{"openapi":"3.0.3","info":{"title":"Gnist Context — Reddit","description":"Search Reddit posts, browse subreddits, and read comments. Find discussions, opinions, and community insights on any topic.\n\n- **MCP endpoint:** `https://context.gnist.ai/mcp/reddit/`\n- **Toolkit page:** `/toolkits/reddit`\n- **Full API spec:** `/api/openapi.json`\n- **Get an API key:** `/signup`","version":"1.0.0","contact":{"name":"GnistAI","url":"https://gnist.ai"}},"servers":[{"url":"https://context.gnist.ai","description":"Production"}],"paths":{"/rest/reddit/search_reddit":{"post":{"tags":["Media"],"summary":"search_reddit","description":"Search Reddit posts by keyword, optionally within a specific subreddit.\n\nReturns:\n    Dictionary with 'count' and 'posts' list. Each post has id, title,\n    author, subreddit, url, permalink, selftext, score, upvote_ratio,\n    num_comments, created_utc, is_self, link_flair_text.","operationId":"reddit_search_reddit","responses":{"200":{"description":"Successful tool call","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Server or tool not found"},"500":{"description":"Tool execution error"}},"security":[{"ApiKeyHeader":[]},{"ApiKeyQuery":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"query":{"description":"Search terms (e.g. \"machine learning\", \"Python async\"). Searches across post titles and body text.","type":"string"},"subreddit":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Restrict search to a specific subreddit (e.g. \"python\", \"MachineLearning\"). Optional."},"sort":{"default":"relevance","description":"Sort order: relevance, hot, top, new, comments. Default: relevance.","type":"string"},"time_filter":{"default":"all","description":"Time filter: hour, day, week, month, year, all. Default: all.","type":"string"},"limit":{"default":10,"description":"Number of results (1-25, default 10).","type":"integer"}},"required":["query"],"type":"object"}}}}}},"/rest/reddit/get_subreddit_posts":{"post":{"tags":["Media"],"summary":"get_subreddit_posts","description":"Get posts from a specific subreddit sorted by hot, new, top, or rising.\n\nReturns:\n    Dictionary with 'count' and 'posts' list.","operationId":"reddit_get_subreddit_posts","responses":{"200":{"description":"Successful tool call","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Server or tool not found"},"500":{"description":"Tool execution error"}},"security":[{"ApiKeyHeader":[]},{"ApiKeyQuery":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"subreddit":{"description":"Subreddit name without r/ prefix (e.g. \"python\", \"worldnews\", \"AskReddit\").","type":"string"},"sort":{"default":"hot","description":"Sort: hot, new, top, rising, controversial. Default: hot.","type":"string"},"time_filter":{"default":"day","description":"Time filter for top/controversial: hour, day, week, month, year, all.","type":"string"},"limit":{"default":10,"description":"Number of posts (1-25, default 10).","type":"integer"}},"required":["subreddit"],"type":"object"}}}}}},"/rest/reddit/get_subreddit_info":{"post":{"tags":["Media"],"summary":"get_subreddit_info","description":"Get metadata about a subreddit — name, description, subscribers, active users, etc.\n\nReturns:\n    Subreddit info: name, title, description, subscribers, active_users,\n    created_utc, over18, url, subreddit_type.","operationId":"reddit_get_subreddit_info","responses":{"200":{"description":"Successful tool call","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Server or tool not found"},"500":{"description":"Tool execution error"}},"security":[{"ApiKeyHeader":[]},{"ApiKeyQuery":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"subreddit":{"description":"Subreddit name without r/ prefix (e.g. \"python\", \"worldnews\").","type":"string"}},"required":["subreddit"],"type":"object"}}}}}},"/rest/reddit/get_reddit_post_comments":{"post":{"tags":["Media"],"summary":"get_reddit_post_comments","description":"Get a Reddit post and its top-level comments by post ID.\n\nReturns:\n    Dictionary with 'post' (full post data) and 'comments' list.\n    Each comment has id, author, body, score, created_utc, depth.","operationId":"reddit_get_reddit_post_comments","responses":{"200":{"description":"Successful tool call","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Server or tool not found"},"500":{"description":"Tool execution error"}},"security":[{"ApiKeyHeader":[]},{"ApiKeyQuery":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"post_id":{"description":"Reddit post ID (the short alphanumeric ID, e.g. \"1abc2d\").","type":"string"},"sort":{"default":"top","description":"Sort: top, best, new, controversial, old, qa. Default: top.","type":"string"},"limit":{"default":10,"description":"Number of comments (1-50, default 10).","type":"integer"}},"required":["post_id"],"type":"object"}}}}}},"/rest/reddit/report_feedback":{"post":{"tags":["Media"],"summary":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","operationId":"reddit_report_feedback","responses":{"200":{"description":"Successful tool call","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Server or tool not found"},"500":{"description":"Tool execution error"}},"security":[{"ApiKeyHeader":[]},{"ApiKeyQuery":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"}}}}}}},"tags":[{"name":"Media","description":"Data sources: Media"}],"components":{"securitySchemes":{"ApiKeyHeader":{"type":"apiKey","in":"header","name":"gnist-api-key","description":"API key passed via request header."},"ApiKeyQuery":{"type":"apiKey","in":"query","name":"gnist_api_key","description":"API key passed via query parameter."}}}}