# GapUp Content Discovery Search

> GapUp Content Discovery Search is a paid API for AI agents from mcp.gapup.io, paid per call via x402, $0.01/call, status unknown (last checked 2026-10-18).

Semantically searches an enriched media catalogue (music, film, TV, video games) by free-text intent or exact tag, returning ranked matching works

## Facts

- Endpoint: POST https://mcp.gapup.io/api/v1/call/content_discovery?utm_source=zero.xyz
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-18
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/gapup-content-discovery-search-2f5f3f10
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_sEGT4nE4aPKEPJHQAM1wV

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 gapup-content-discovery-search-2f5f3f10 -d '<json body>'
```

Example prompt: Search the GapUp media catalogue for music that matches 'melancholic synth-pop about heartbreak' and return the top 10 results.

## When to prefer this

Use this endpoint when you need to discover or surface media works from an enriched catalogue by semantic intent or exact tag, especially for music, film, TV, or video games. Prefer this over the ranking endpoint when discovery (finding what exists matching a description) is the goal rather than ordering already-known works. Prefer semantic `query` for open-ended exploration and `tag` for precise genre/label filtering.

## Known failure modes

- Supplying both `query` and `tag` simultaneously (mutually exclusive fields) returns a validation error
- Query string shorter than 3 characters or tag shorter than 2 characters returns a validation error
- Unsupported domain value outside enum returns a validation error
- No matching results found returns an empty list
- Payment failure (x402) prevents the call from executing
- Async job polling returns pending status if result not yet ready

## How this service works

Content discovery and search over the enriched media catalogue, returns matching works ranked by relevance

## Output

An ordered list of matching media works (up to the specified limit) ranked by relevance to the query or tag, drawn from the enriched GapUp media catalogue. Each result represents a franchise or work with associated metadata from the enriched media layer.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "tag": {
   "type": "string",
   "maxLength": 80,
   "minLength": 2,
   "description": "Tag label to match precisely (e.g. 'thriller', 'co-op'). Mutually exclusive with `query`."
  },
  "async": {
   "type": "boolean",
   "description": "If true, returns a job_id immediately (<200ms) instead of waiting for the result. Poll the result with job_result(job_id). Use for slow tools to avoid client timeouts."
  },
  "limit": {
   "type": "integer",
   "maximum": 50,
   "minimum": 1,
   "description": "Maximum franchises to return (default 25)"
  },
  "query": {
   "type": "string",
   "maxLength": 400,
   "minLength": 3,
   "description": "Free-text intent for semantic search (e.g. 'melancholic synth-pop about heartbreak'). Mutually exclusive with `tag`."
  },
  "domain": {
   "enum": [
    "music",
    "film",
    "tv",
    "video-game"
   ],
   "type": "string",
   "description": "Content domain to search within"
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/gapup-content-discovery-search-2f5f3f10/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from mcp.gapup.io](https://www.zero.xyz/host/mcp.gapup.io/llms.txt)
