NicheIQs API v1.0
Reference

Submit a market niche, receive a data-driven winnability score backed by Reddit pain signals, Google Trends momentum, and Claude AI synthesis. Async job pattern — submit, then poll.


Base URLhttps://nicheiqs.com
All endpoints accept and return JSON. Authenticate via X-API-Key header.
Authentication
API Keys

Pass your key in the X-API-Key request header. Keys are provisioned automatically after purchase and emailed to you. The demo key free-demo gives 3 free analyses with no account.

Header
X-API-Key: ne_your_key_here
Endpoints
Submit Analysis
POST /analyze requires api key

Enqueue a niche analysis job. Returns immediately with a job_id — poll /results/{job_id} until status is success. Results are cached for 24 hours; repeated queries for the same niche return instantly.

Body paramTypeRequiredDescription
niche string required The market niche to analyze. 3–300 characters. Be specific — "AI invoice software for freelancers" scores better than "AI software".
Request
POST /analyze
X-API-Key: ne_your_key
Content-Type: application/json

{
  "niche": "AI invoice software for freelancers"
}
Response 200
{
  "job_id":   "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "status":   "pending",
  "poll_url": "/results/3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
200Job enqueued. Use job_id to poll.
401Missing or invalid API key.
429Monthly quota exceeded or rate limit hit (10 req/min).
Poll Result
GET /results/{job_id} requires api key

Fetch the status and result of a submitted job. Poll every 2–3 seconds until status is success or failure. Typical analysis time: 15–45 seconds.

Path paramTypeDescription
job_id string (uuid) The job_id returned by POST /analyze.
Response 200 — pending
{ "job_id": "3fa8...", "status": "pending", "report": null }
Response 200 — success
{
  "job_id": "3fa8...",
  "status": "success",
  "report": {
    "score":   74,
    "verdict": "strong",        // "strong" | "promising" | "weak"
    "summary": "Strong demand from freelancers...",
    "breakdown": {
      "pain_score":          82,
      "demand_score":        71,
      "competition_score":   68,
      "monetization_score":  75
    },
    "demand": {
      "pain_post_count":  34,
      "key_subreddits":   ["freelance", "smallbusiness"],
      "trend_direction": "rising",
      "trend_score":     71
    },
    "competition": {
      "level":       "moderate",
      "incumbents": ["FreshBooks", "Wave"]
    },
    "opportunity": {
      "icp":              "Freelancers billing 3–10 clients/month",
      "monetization":    "$12–19/mo SaaS",
      "entry_strategy": "Target r/freelance with free tier"
    }
  }
}
200Always 200. Check the status field: pendingstartedsuccess | failure.
Health Check
GET /health public

Liveness check. Returns 200 when the API is up.

Response 200
{ "status": "ok", "ts": "2025-04-14T20:00:00+00:00" }
Integrations
MCP Server

Use NicheIQs as a native tool inside Claude Desktop or Claude Code. The MCP server handles polling automatically — just call analyze_niche.

Tools exposed: analyze_niche(niche) · get_trending_niches()
claude_desktop_config.json
{
  "mcpServers": {
    "nicheiqs": {
      "command": "python",
      "args": ["/path/to/mcp_server/server.py"],
      "env": {
        "NICHE_ENGINE_API_KEY": "ne_your_key",
        "NICHE_ENGINE_BASE_URL": "https://nicheiqs.com"
      }
    }
  }
}
Python
import httpx, time

# pip install httpx

API_KEY = "ne_your_key"
BASE    = "https://nicheiqs.com"

def analyze_niche(niche: str) -> dict:
    # Submit
    r = httpx.post(f"{BASE}/analyze",
        json={"niche": niche},
        headers={"X-API-Key": API_KEY})
    r.raise_for_status()
    job_id = r.json()["job_id"]

    # Poll
    while True:
        res = httpx.get(f"{BASE}/results/{job_id}",
            headers={"X-API-Key": API_KEY}).json()
        if res["status"] == "success":
            return res["report"]
        elif res["status"] == "failure":
            raise RuntimeError(res["report"])
        time.sleep(2)

report = analyze_niche("dropship pet gear")
print(report["score"], report["verdict"])
cURL
Submit
curl -s -X POST https://nicheiqs.com/analyze \
  -H "X-API-Key: ne_your_key" \
  -H "Content-Type: application/json" \
  -d '{"niche":"dropship pet gear"}'
Poll
curl -s https://nicheiqs.com/results/JOB_ID \
  -H "X-API-Key: ne_your_key"