The Gap API.

Quickstart

curl "https://exniche.com/v1/gaps?verdict=go,maybe&sort=score&limit=10"

Credits

A$10 buys 10,000 credits. They never expire.

CallCreditsA$ equivalent
search_products / GET /v1/search10.001
check_demand10.001
report_not_found0free
list_gaps / GET /v1/gaps, public fields1 per call0.001
list_gaps with detail=full1 + 10 per row0.01 per row
get_gap full detail1000.10
get_dossier, not yet unlocked19,00019.00, unlocks it for your account
get_dossier, already unlocked00

Endpoints

GET/v1/gaps

Filters: q, category, verdict (go, maybe, no-go, comma-separated), class, trend, source, min_score, since, sort (score, newest, asks, rising), limit (up to 50), cursor, detail (summary or full), include=unscored. Unscored leads come back with verdict: null.

{ "gaps": [ { "slug": "…", "label": "…", "category": "…", "verdict": "go", "score_band": "70–100",
    "class": "absent", "trend": "rising",
    "source_counts": { "community_ask": 0, "agent_search": 0, "store_search": 0 },
    "first_seen": "…", "last_seen": "…",
    "ask": { "text": "…", "url": "…", "source_label": "Community ask · r/…" },
    "licence": "…", "attribution": "…" } ],
  "next_cursor": null }

GET/v1/gaps/:slug

One gap. Public fields by default; full detail (exact score and parts, every ask, requirements) costs 100 credits.

GET/v1/gaps/:slug/dossier

The full dossier. Needs a key. Unlocks the gap for your account the first time (19,000 credits), then costs nothing. Live Shopify rows are fetched at request time and are not cached.

GET/v1/gaps/stats

Counts the ledger holds: community_asks, agent_searches, store_searches, scored, by_verdict. Free.

GET/v1/gaps.csv

Operator plan. Same filters as /v1/gaps, up to 10,000 rows.

GET/v1/search

Search the exNiche product catalogue. See the OpenAPI document for every parameter.

MCP

Endpoint https://exniche.com/mcp (streamable HTTP, key optional). Lead with check_demand: when a shopper’s request finds nothing, it returns matching gaps and records the ask.

claude mcp add --transport http exniche https://exniche.com/mcp

Tools: check_demand, list_gaps, get_gap, get_dossier, search_products, report_not_found, get_setup_and_upgrade_links. Setup for every client is on /agents.

Errors

StatusMeaning
400A parameter is invalid. The body names it.
401The key is missing or wrong on a route that needs one.
402Out of credits. The body has upgrade_url and human_message to show your user. Nothing is charged automatically.
404No public gap with that slug.
429Too many requests. Wait for retry-after.
503Temporarily unavailable. Retry later.

Licence

exNiche data: use with attribution to exniche.com. Quoted asks keep their source licence (Stack Exchange: CC BY-SA 4.0, with link and author). Every record carries licence and attribution fields.