---
title: "Discover Estimate"
method: GET
path: "/api/v1/leads/discover/estimate"
tags: ["leads"]
---

# Discover Estimate

`GET /api/v1/leads/discover/estimate`

## Request

- Base URL: `https://api.nudgelink.co` (the document declares no server; this is the origin it was published from)
- URL: `https://api.nudgelink.co/api/v1/leads/discover/estimate`
- Auth: HTTP bearer

Authoritative worst-case credit estimate for a discovery run.

QA 2026-06-30 (BUG-2): the frontend used to re-derive this from hardcoded
copies of the pool-sizing constants (POOL_SCORE_FACTOR / deep_pool_factor /
MIN_POOL_SCORE_CAP / deep_max_scored). Those are all env-overridable — prod
sets ``DISCOVERY_MIN_SCORE_CAP=50`` — so the UI under-quoted the real charge
(target=5 normal: showed 75, charged 150). This returns the SAME number the
preflight gate and the actual per-profile billing use, so the label always
matches what is charged, regardless of env overrides.

## Query parameters

- `target_limit` integer
- `deep_search` boolean

## Response `200`

Successful Response

- DiscoverEstimateOut
  - `target_limit` integer, required
  - `deep_search` boolean, required
  - `estimated_credits` integer, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/nudgelink/apis/nudgelink-api.md) · [All operations](https://skmtc.dev/nudgelink/apis/nudgelink-api/llms.txt) · [OpenAPI document](https://skmtc.dev/nudgelink/apis/nudgelink-api/revisions/baa46e6db986?raw)
