Docs: Discover
API reference

Discover

POST /v1/discover: search capabilities and raw endpoints by job description. Free, never runs a paid call.

POST /v1/discover

Search the catalog by describing the job in plain language. Free, public (no key required), and it never executes a paid call. One ranked list covers both tiers: routed capabilities and raw provider endpoints.

Request

{"query": "find a verified email for a person", "limit": 10}
Field Type Required Notes
query string yes plain-language description of the job; short noun phrases work best
limit integer no 1โ€“50, default 10
kind string no capability or endpoint; both when omitted
provider string no restrict to one provider's capabilities and endpoints

Response

{
  "items": [
    {
      "capability": "contact.find",
      "title": "Find a work email",
      "description": "Turn a name and a company domain into a verified work email.",
      "status": "coming_soon",
      "providers": ["...", "..."],
      "live_providers": [],
      "platforms": [],
      "starting_price": {"amount": "0.05", "currency": "USD"},
      "health": {"status": "stable", "success_rate": 0.98, "latency_ms_p50": 900, "latency_ms_p95": 2100, "sample_size": 412, "source": "measured"},
      "kind": "capability",
      "score": 1.0,
      "hint": "jell inspect -c contact.find"
    },
    {
      "kind": "endpoint",
      "provider": "dataforseo",
      "endpoint": "/v3/serp/google/organic/live/advanced",
      "method": "POST",
      "title": "Serp: Google Organic Live Advanced",
      "status": "live",
      "cost": {"model": "per_task", "estimate": "0.003", "currency": "USD", "note": "..."},
      "health": {"status": "healthy", "...": "..."},
      "wrapped_by": ["seo.serp", "web.search"],
      "score": 0.71,
      "hint": "jell inspect -p dataforseo -e /v3/serp/google/organic/live/advanced"
    }
  ],
  "hints": [
    "dataforseo /v3/serp/google/organic/live/advanced is wrapped by seo.serp, web.search: normalized output, a quote before the run, failover. Prefer the capability unless you need the raw fields.",
    "Raw endpoints return the provider's own payload and settle after the run on the provider's measured cost, never above your max_cost. inspect one before running it."
  ]
}
Field Notes
status live or coming_soon; never present a coming-soon capability's sandbox output as real data
live_providers providers with a real adapter and an active account, routable in production
starting_price the cheapest platform-funded offer
kind capability or endpoint
health the measured verdict: healthy, stable, degraded, outage or unknown, with success rate, p50/p95 latency and sample size
wrapped_by endpoints only: capabilities whose live adapter calls this endpoint
score relevance, normalized to the top hit
hint the CLI command to inspect the item
hints top-level: what to do next (which capability wraps an endpoint, how raw calls bill, what to try when nothing matched)

Ranking is BM25 over names, titles, descriptions, tags and providers with synonym and prefix expansion. Capabilities outrank endpoints on equal relevance, live outranks not-yet-live, and a live capability that wraps an endpoint always ranks above it. An empty items array means nothing matches: the hints say what to try; the catalog and each provider's endpoint list (GET /v1/catalog/providers/{provider}/endpoints) are the full inventories.

Next

Inspect the winning candidate before running it.

Reading this as an agent? This page as markdown: /docs/api/discover.md ยท every page: /docs/llms.txt