> ## Documentation Index
> Fetch the complete documentation index at: https://docs.usegoro.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# goro discover

> Find the tools that can answer a plain-English question, with the price of each.

```bash theme={null}
goro discover -q "find recent tweets about ai agents"
```

You do not need to know the catalog. Describe what you want and `discover`
ranks the tools against it.

```
5 matches for "find recent tweets about ai agents"

SLUG               NAME                    PRICE                 WHEN TO USE
youtube.videos     YouTube videos          $0.0090 per result    Use to find videos on a topic, pull a channel...
twitter.followers  X followers and fol...  $0.000450 per result  Use to map who follows an X account, to size ...
twitter.search     Twitter search          $0.0012 per result    Use when you need tweets about a topic, senti...
amazon.product     Amazon product details  $0.0045 per result    Use when you already have ASINs or Amazon pro...
amazon.search      Amazon search results   $0.0003 per result    Use to find products on Amazon by keyword, to...

Prices shown as a ceiling are billed on actual usage. You are charged
what the call cost, which is usually well under the ceiling.
Next: goro inspect -s youtube.videos
```

## Options

| Option          | Meaning                                          |
| --------------- | ------------------------------------------------ |
| `-q`, `--query` | What you want to do, in plain English. Required. |
| `--limit <n>`   | How many matches to return, 1 to 20. Default 5.  |

Plus the [global options](/cli/overview#global-options).

## Reading the price column

The `PRICE` column is the **rate**: what one unit costs you, printed flat
because it is exact. A row, a page, a thousand bytes of text, a second of
audio, or the whole call on a flat-priced image tool.

Two of those are not the total. On a scrape the total follows the rows the call
really produced, and on a voice call it follows the size of what you sent. The
words "up to" appear for a ceiling and for nothing else, so a number without
them is never a maximum.

<Note>
  A rate is not a total. A `web.search` call at $0.0075 per page charges around
      a cent for a normal request, well under the $1.00 ceiling `inspect` shows.
  An image call is the other extreme: one exact price, nothing to settle. See
  [Pricing](/pricing).
</Note>

## JSON output

```bash theme={null}
goro discover -q "scrape a google maps place" --limit 2 -j
```

```json theme={null}
{
  "items": [
    {
      "slug": "maps.places",
      "name": "Google Maps places",
      "category": "maps",
      "when_to_use": "Use when you need local businesses or points of interest...",
      "price": {
        "type": "cost_plus",
        "markup": 3,
        "min_micro": 2000,
        "min_usd": "$0.0020",
        "max_micro": 6000000,
        "max_usd": "$6.00",
        "billed_on_actual_usage": true,
        "per_unit_micro": 9000,
        "per_unit_usd": "$0.0090",
        "unit_label": "place",
        "summary": "$0.0090 per place, billed on actual usage (3x provider cost, minimum $0.0020), up to $6.00 per call"
      },
      "sample_input": { "language": "en", "scrapeContacts": false }
    }
  ]
}
```

`per_unit_usd` and `unit_label` are the rate the table prints.
`billed_on_actual_usage: true` says the total still depends on the call, so
`max_usd` next to it is a maximum. On a flat-priced tool that flag is absent
and `base_usd` is the whole price. An agent can tell the two apart without
reading English.

`sample_input` is fillable, so you can go straight to `run` without an
`inspect` round trip.

## No matches

```
No endpoints matched "sequence a genome".
Try different words, or a broader description.
```

Exit code is still `0`. An empty catalog match is an answer, not an error.

<Card title="Next: inspect" icon="magnifying-glass" href="/cli/inspect">
  Read the exact input a tool takes before you call it.
</Card>
