---
title: "Search for data endpoints (deprecated)"
method: POST
path: "/v1/discover"
tags: ["Discover"]
deprecated: true
---

# Search for data endpoints (deprecated)

`POST /v1/discover`

> **Deprecated.**

Semantic search over the endpoint catalog: registry kNN retrieval, signal-based reranking, relevance floors, and per-result pricing. DEPRECATED in favor of `POST /v1/discover/endpoints` (same pipeline, card response shape, larger page cap); kept for existing CLI/MCP callers and removed in a future release.

## Request body

- DiscoverRequest
  - `query` string, required — Natural-language search query for data endpoints.
  - `limit` integer — Requested result count. A config-driven server-side cap (`service.discover.max_results`) applies.
  - `minScore` number — Per-call override for the post-rerank score floor. Results scoring below this are filtered out before truncation to `limit`. Falls back to the configured default when omitted.

## Response `200`

Ranked endpoint recommendations

- DiscoverResponse
  - `results` DiscoverResult[], required
    - `provider` string, required — Provider slug.
    - `providerName` string — Human-readable provider name.
    - `endpoint` string, required — Endpoint path.
    - `description` string, required
    - `price` DiscoverPrice, required — User-facing price (markup applied, no notes).
      - `type` string, required
      - `amount` object, required
        - `value` number, required
        - `currency` 'USD', required
      - `flatFee` object
        - `value` number, required
        - `currency` 'USD', required
      - `period` object
        - `unit` 'MINUTE' | 'DAY' | 'MONTH', required
        - `count` integer, required
      - `per` union
        - object
          - `unit` 'MINUTE' | 'DAY' | 'MONTH', required
          - `count` integer, required
        - number
      - `unit` 'token' | 'character' | 'second'
      - `default` union
        - object
          - `type` 'PER_CALL', required
          - `amount` object, required
            - `value` number, required
            - `currency` 'USD', required
        - object
          - `type` 'PER_RESULT', required
          - `amount` object, required
            - `value` number, required
            - `currency` 'USD', required
          - `flatFee` object
            - `value` number, required
            - `currency` 'USD', required
        - object
          - `type` 'METERED', required
          - `amount` object, required
            - `value` number, required
            - `currency` 'USD', required
          - `per` object, required
            - `unit` 'MINUTE' | 'DAY' | 'MONTH', required
            - `count` integer, required
        - object
          - `type` 'PER_UNIT', required
          - `amount` object, required
            - `value` number, required
            - `currency` 'USD', required
          - `per` number, required
          - `unit` 'token' | 'character' | 'second', required
      - `selectors` object[]
        - `label` string, required
        - `key` string, required
        - `in` 'body' | 'queryParam' | 'pathParam' | 'output', required
      - `variants` object[]
        - `when` object, required
        - `price` union, required
          - object
            - `type` 'PER_CALL', required
            - `amount` object, required
              - …
          - object
            - `type` 'PER_RESULT', required
            - `amount` object, required
              - …
            - `flatFee` object
              - …
          - object
            - `type` 'METERED', required
            - `amount` object, required
              - …
            - `per` object, required
              - …
          - object
            - `type` 'PER_UNIT', required
            - `amount` object, required
              - …
            - `per` number, required
            - `unit` 'token' | 'character' | 'second', required
        - `label` string
      - `tiers` object[]
        - `label` string, required
        - `when` object, required
        - `selector` object
          - `label` string, required
          - `key` string, required
          - `in` 'body' | 'queryParam' | 'pathParam' | 'output', required
        - `price` union, required
          - object
            - `type` 'PER_CALL', required
            - `amount` object, required
              - …
          - object
            - `type` 'PER_RESULT', required
            - `amount` object, required
              - …
            - `flatFee` object
              - …
          - object
            - `type` 'METERED', required
            - `amount` object, required
              - …
            - `per` object, required
              - …
          - object
            - `type` 'PER_UNIT', required
            - `amount` object, required
              - …
            - `per` number, required
            - `unit` 'token' | 'character' | 'second', required
    - `score` number, required — Final composed reranker score. Opaque sort context — not a fixed-range relevance probability.
    - `tags` string[], required — User-facing tags (e.g. `["verified"]`).
    - `scoreBreakdown` object, required — Per-signal breakdown of the reranker's final score (`querierScore` plus one raw log-odds shift per signal).
      - `querierScore` number, required
    - `hints` object — Endpoint-authored workflow hints, polymorphic by client (rendered command string for cli/api/mcp; structured target for web). Omitted for unknown clients and endpoints without authored hints.
  - `query` string, required
  - `count` number, required

## Other responses

- `400` — Bad request — input failed validation
- `401` — Unauthorized — missing or invalid credentials
- `403` — Forbidden — caller has no workspace or no access
- `500` — Internal server error

---

[API](https://skmtc.net/monid/apis/monid-api.md) · [All operations](https://skmtc.net/monid/apis/monid-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/monid/monid-api/revisions/164b6b6f2d36/schema)
