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

# OmniRoute

> Nimble is a built-in provider in OmniRoute: one API key serves both web search and page fetching.

### Overview

[OmniRoute](https://github.com/diegosouzapw/OmniRoute) is an open-source AI gateway that puts hundreds of model and tool providers behind one local endpoint. It runs on your own machine, stores provider credentials, and routes each request with automatic fallback. For web search and fetch, fallback applies only when a request leaves out `provider`. Setting it to `nimble-search` keeps the request on Nimble.

Nimble ships as the `nimble-search` provider, built into OmniRoute itself. It is registered once and serves two surfaces:

* **Web search** through `POST /v1/search`, backed by Nimble's [Search API](/nimble-sdk/web-tools/search).
* **Page fetching** through `POST /v1/web/fetch`, backed by [Extract](/nimble-sdk/web-tools/extract/quickstart).

One Nimble API key covers both.

The provider ships in **OmniRoute v3.8.51 and later**.

### What this integration covers

Search and Extract only. Map, Crawl, and the Web Search Agent are not reachable through OmniRoute today. For those, call the [Nimble SDK](/nimble-sdk/getting-started/overview) directly or connect the [Nimble MCP server](/integrations/mcp-server/mcp-server).

### Quick Start

#### 1. Get a Nimble API key

Get your API key from [Nimble's dashboard](https://online.nimbleway.com/settings/api-keys). A free trial is available.

#### 2. Install and start OmniRoute

OmniRoute needs Node.js 22 (22.22.2 or later) or Node.js 24. Node.js 23 is not supported. Check the `engines` field in [OmniRoute's package.json](https://github.com/diegosouzapw/OmniRoute/blob/main/package.json) for the exact range.

```bash theme={"system"}
npm install -g "omniroute@>=3.8.51"
omniroute
```

The dashboard runs at `http://localhost:20128`. The API is served at `http://localhost:20128/v1`.

#### 3. Add the Nimble credential

In the dashboard, go to **Providers**, find **Nimble Search**, and paste your Nimble API key. Test the connection from the dashboard to check the key.

#### 4. Search the web

Requests to OmniRoute use your OmniRoute API key, not your Nimble key. Create or copy it from **Dashboard → API Keys**. The gateway holds the Nimble credential server-side, so callers never see it.

Select the provider by id in the request body:

```bash theme={"system"}
curl http://localhost:20128/v1/search \
  -H "Authorization: Bearer YOUR_OMNIROUTE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "latest AI developments",
    "provider": "nimble-search",
    "search_type": "web",
    "max_results": 5
  }'
```

#### 5. Fetch a page

The same provider id selects Nimble for extraction:

```bash theme={"system"}
curl http://localhost:20128/v1/web/fetch \
  -H "Authorization: Bearer YOUR_OMNIROUTE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com",
    "provider": "nimble-search",
    "format": "markdown",
    "include_metadata": true
  }'
```

The response returns the page content in the requested format, the list of links found on the page, and the title and description when `include_metadata` is set.

### Configuration

<AccordionGroup>
  <Accordion title="Provider id and alias" icon="fingerprint">
    Use `nimble-search` in the `provider` field of both `/v1/search` and `/v1/web/fetch`. The dashboard also shows a short alias, `nimble`, but the API doesn't accept it.
  </Accordion>

  <Accordion title="Search parameters" icon="magnifying-glass">
    | OmniRoute parameter | Behavior with Nimble |
    | - | - |
    | `search_type` | `web` and `news` are supported. `news` maps to Nimble's news focus. The `x` type (X posts) is not supported. |
    | `max_results` | Defaults to `5`. The provider caps it at `100`, which is the Search API maximum. |
    | `country` | Sent as an uppercase two-letter country code (e.g. `US`). |
    | `language` | Sent as Nimble's `locale`. |
    | `time_range` | `hour`, `day`, `week`, `month`, and `year` pass through. `any` is treated as no filter. |
    | `filters.include_domains` / `filters.exclude_domains` | Mapped onto Nimble's own domain filters. |

    Searches run at `lite` depth and return plain text. Deeper extraction per result is not exposed through the gateway. For that, call [Search](/nimble-sdk/web-tools/search) directly and set `search_depth`.
  </Accordion>

  <Accordion title="Fetch formats" icon="file-lines">
    `format` accepts `markdown` (the default), `html`, `links`, and `screenshot`.

    A screenshot comes back as a base64 PNG data URL. The list of page links is always returned alongside the content, whatever format you asked for. Rendering is set to `auto`, so Nimble decides per domain whether a browser is needed.
  </Accordion>

  <Accordion title="Timeouts and failover" icon="clock">
    Nimble gets 10 seconds per search and 30 seconds per fetch. OmniRoute's overall search budget is 15 seconds.

    If a request leaves out `provider`, OmniRoute can retry a failed call with another configured provider. Set `provider` to `nimble-search` to keep the request on Nimble and see Nimble's errors directly.
  </Accordion>
</AccordionGroup>

### Additional Resources

<CardGroup cols={2}>
  <Card title="OmniRoute Provider Reference" icon="book-open" href="https://github.com/diegosouzapw/OmniRoute/blob/main/docs/reference/PROVIDER_REFERENCE.md">
    The `nimble-search` entry in OmniRoute's own documentation.
  </Card>

  <Card title="OmniRoute on GitHub" icon="github" href="https://github.com/diegosouzapw/OmniRoute">
    The open-source AI gateway.
  </Card>

  <Card title="Nimble Search" icon="magnifying-glass" href="/nimble-sdk/web-tools/search">
    Focus modes, search depth, and filtering explained.
  </Card>

  <Card title="Nimble Extract" icon="file-arrow-down" href="/nimble-sdk/web-tools/extract/quickstart">
    The extraction endpoint behind the fetch surface.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.