# Demandex Opportunity Detail

> Demandex Opportunity Detail is a paid API for AI agents from api.demandex.dev, paid per call via x402, $0.05/call, status unknown (last checked 2026-09-15).

Returns a full opportunity card with all score components, evidence quotes, and builder signals for a single market opportunity identified by id or slug

## Facts

- Endpoint: GET https://api.demandex.dev/v1/opportunity
- Price: $0.05/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/demandex-opportunity-detail-1228bfc6
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_Tao6B32jF_58vM0i_NqeT

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability demandex-opportunity-detail-1228bfc6
```

Example prompt: Pull the full opportunity card for the Demandex opportunity with slug 'budget-meal-planning-app' — I want to see all the scores, the reddit evidence quotes, and the builder momentum signal.

## When to prefer this

Use this endpoint when you already know the id or slug of a specific opportunity and need the full detail card including all scoring sub-components, raw evidence quotes, and builder momentum data. Prefer this over the category listing endpoint when you need depth on one opportunity rather than a broad survey of many.

## Known failure modes

- Missing both id and slug — returns 400 with no charge
- Both id and slug provided simultaneously — returns 400 with no charge
- Opportunity not found for given id or slug — returns 400 or 404 with no charge
- Invalid id or slug format — returns 400
- Payment failure — 402 if x402 settlement fails

## How this service works

Paid ($0.05 USDC via x402). Returns one full opportunity card by ?id= or ?slug= (exactly one required, else a no-charge 400): all score components (freqScore, intensityScore, wtpScore), productAngle, summary, evidence[] (verbatim quotes with subreddit, upvotes, permalink), builderMomentum, firstSeen, lastSeen, signalCount, distinctAuthors. Compute-first / settle-after — you are not charged when the id/slug is missing, ambiguous, or not found. Response carries fetchedAt.

## Output

A full opportunity card object including: all score components (freqScore, intensityScore, wtpScore), productAngle, summary, an evidence array of verbatim quotes with subreddit, upvotes, and permalink, builderMomentum, firstSeen, lastSeen, signalCount, distinctAuthors, and a fetchedAt timestamp. Costs $0.05 USDC per successful call; no charge on missing/ambiguous id or slug (400 response).

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [],
     "properties": {
      "id": {
       "type": "string",
       "description": "Opportunity id (provide exactly one of id or slug)."
      },
      "slug": {
       "type": "string",
       "description": "Opportunity slug (provide exactly one of id or slug)."
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "id": "ckxxxx",
  "slug": "sony-wh1000xm5-replacement-headband",
  "score": 87.4,
  "title": "Sony WH-1000XM5 replacement headband",
  "charged": true,
  "summary": "Owners repeatedly seek an aftermarket replacement headband after the OEM band cracks.",
  "category": "audio",
  "evidence": [
   {
    "quote": "My XM5 headband cracked after 8 months and Sony wants $90 for a repair — where can I just buy the band?",
    "upvotes": 214,
    "permalink": "https://reddit.com/r/headphones/comments/abc123",
    "subreddit": "headphones"
   }
  ],
  "lastSeen": "2026-07-18T10:00:00.000Z",
  "wtpScore": 88,
  "fetchedAt": "2026-07-18T11:45:00.000Z",
  "firstSeen": "2026-06-01T00:00:00.000Z",
  "freqScore": 90,
  "signalCount": 34,
  "productAngle": "Sell a durable aftermarket replacement headband for the Sony WH-1000XM5.",
  "intensityScore": 82,
  "builderMomentum": null,
  "distinctAuthors": 29
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/demandex-opportunity-detail-1228bfc6/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.demandex.dev](https://www.zero.xyz/host/api.demandex.dev/llms.txt)
