Tutorial

How to Scan Reddit for Demand Signals Before Building a Side Project

Use the Scavio Reddit endpoint to scan subreddits for demand signals before committing to a side project idea. Python tutorial.

An r/SideProject thread with 421 comments debated whether to validate before building. The consensus: search Reddit for people actively asking for what you plan to build. If nobody is asking, reconsider. This tutorial automates that validation step using the Scavio Reddit endpoint.

Prerequisites

  • Scavio API key
  • Python 3.8+
  • A side project idea to validate

Walkthrough

Step 1: Define demand signal queries

Create search queries that would indicate demand for your idea.

Python
idea = 'invoice generator for freelancers'

demand_queries = [
    f'{idea}',
    'need invoice tool freelancer',
    'invoice software recommendation',
    'tired of manual invoices',
    'looking for invoice generator',
]

Step 2: Search Reddit via Scavio

Query the Reddit endpoint for each demand signal.

Python
import requests, os
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}

def search_reddit_demand(query):
    data = requests.post('https://api.scavio.dev/api/v1/search',
        headers=H,
        json={'platform': 'reddit', 'query': query}).json()
    return data.get('results', [])

Step 3: Score demand intensity

Count posts, upvotes, and comments as demand signals.

Python
def score_demand(results):
    if not results:
        return {'score': 0, 'posts': 0}
    total_engagement = sum(
        r.get('upvotes', 0) + r.get('comments', 0)
        for r in results
    )
    return {
        'score': len(results) * 10 + total_engagement,
        'posts': len(results),
        'engagement': total_engagement,
        'top_subreddits': list(set(r.get('subreddit', '') for r in results[:10]))
    }

Step 4: Generate a demand report

Combine all query results into a go/no-go recommendation.

Python
def demand_report(idea, queries):
    total_score = 0
    all_subreddits = set()
    for q in queries:
        results = search_reddit_demand(q)
        score = score_demand(results)
        total_score += score['score']
        all_subreddits.update(score.get('top_subreddits', []))
        print(f'Query: "{q}" -> {score["posts"]} posts, score {score["score"]}')
    print(f'\nTotal demand score: {total_score}')
    print(f'Active subreddits: {", ".join(all_subreddits)}')
    if total_score > 200:
        print('Verdict: Strong demand. Consider building.')
    elif total_score > 50:
        print('Verdict: Moderate demand. Narrow the niche.')
    else:
        print('Verdict: Weak demand. Pivot or find a different angle.')

Python Example

Python
import os, requests
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}

def scan_demand(idea):
    queries = [idea, f'need {idea}', f'{idea} recommendation', f'looking for {idea}']
    for q in queries:
        data = requests.post('https://api.scavio.dev/api/v1/search', headers=H,
            json={'platform': 'reddit', 'query': q}).json()
        posts = data.get('results', [])
        print(f'{q}: {len(posts)} posts')

scan_demand('invoice generator for freelancers')

JavaScript Example

JavaScript
const res = await fetch('https://api.scavio.dev/api/v1/search', {
  method: 'POST',
  headers: {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'},
  body: JSON.stringify({platform: 'reddit', query: 'need invoice tool freelancer'})
});
const data = await res.json();
console.log(`Found ${data.results?.length || 0} demand signals`);

Expected Output

JSON
Reddit demand report: post count, engagement score, active subreddits, and go/no-go recommendation. 5 queries = $0.025 total cost.

Related Tutorials

Frequently Asked Questions

Most developers complete this tutorial in 15 to 30 minutes. You will need a Scavio API key (free tier works) and a working Python or JavaScript environment.

Scavio API key. Python 3.8+. A side project idea to validate. A Scavio API key gives you 500 free credits per month.

Yes. The free tier includes 500 credits per month, which is more than enough to complete this tutorial and prototype a working solution.

Scavio has a native LangChain package (langchain-scavio), an MCP server, and a plain REST API that works with any HTTP client. This tutorial uses the raw REST API, but you can adapt to your framework of choice.

Start Building

Use the Scavio Reddit endpoint to scan subreddits for demand signals before committing to a side project idea. Python tutorial.