# Search API

> One web index, six endpoints: free, fast, bulk, enriched, crawl, and agentic. The NOSIBLE Search API is built for AI — dated, ranked, and addressable from Python, TypeScript, or raw HTTP.

**URL:** https://nosible.com/search-api

## One web index. Six endpoints.

Built for AI. The NOSIBLE Search API turns the live web into ranked, grounded answers for AI agents.

- [START TRIAL](https://nosible.com/start-trial)
- [GET API KEY](https://app.nosible.com)
- [Open the OpenAPI spec](https://www.nosible.ai/search/v2/docs/#/)

## What you can ask it

Three real, dated events paired with a natural-language query that maps to an endpoint:

| Risk | Place | Date | Query → Endpoint |
| --- | --- | --- | --- |
| Geopolitical risk | Iran | 2026·03 | "Where does Brent settle if Hormuz closes for 14 days?" → fast-search. |
| Company risk | Theranos | 2014·12 | "List every public request for independent validation of the Edison." → bulk-search. |
| Liquidity risk | Evergrande | 2020·10 | "Trace prior-lender pullback signals before the December 2021 default." → agent. |

## 01 — Endpoints: Index, crawl, and agent

Four ways to read the index as a search-engine results page, one route to fetch and parse a single URL, and one agent that explores the index on your behalf. Same crawl, same ranker, same retention discipline behind every call.

**Scale**

- 300K+ Sources
- Billions of Webpages
- < 1s Fast-search p50

**One stack — One web index. Six endpoints.** Pick the call shape that matches your traffic. Same crawl, same ranker, same retention discipline behind every one.

Endpoint catalogue:

| # | Path | Group | Summary |
| --- | --- | --- | --- |
| //01 | `/search/v2/free-search` | SERP | Capped tier of the search-engine results page. Free for hello-worlds and demos. |
| //02 | `/search/v2/fast-search` | SERP | Production SERP. Same hybrid-3 ranker, lifted caps, built for live application traffic. |
| //03 | `/search/v2/bulk-search` | SERP | Long-tail retrieval delivered out-of-band: up to ten thousand ranked results, encrypted. |
| //04 | `/search/v2/rich-search` | SERP | Fast-search plus opt-in enrichments per hit: profile, signals, embeddings, no second call. |
| //05 | `/search/v2/scrape-url` | Crawl | Turn any URL into clean, structured JSON: same extraction the index runs. |
| //06 | `/search/v2/search` | Agent | Cybernaut-1 writes the queries for you. Agentic SERP, ranked search results back. |

## 02 — Index endpoints: Ranked search results

The SERP shape your code already speaks. Free, fast, bulk, and enriched: same request shape, four different cost / depth profiles. Pick the one that matches your traffic, scale up later without rewriting the call site.

### Caps · max results × max probes

| Endpoint | n_results | n_probes |
| --- | --- | --- |
| free-search | 10 (fixed) | 5 – 10 |
| fast-search | 10 – 100 | 5 – 50 |
| bulk-search | 1,000 – 10,000 | 5 – 300 |

Defaults: free-search 10 / 10 · fast-search 10 / 30 · bulk-search 1,000 / 10. Source-verified against the OpenAPI spec.

### //01 `/search/v2/free-search`

- **Group:** SERP · **Method:** POST · **Auth:** Header · ISolemnlySwearImUpToNoGood · **Schema:** FreeSearchSchema · **Spec tag:** WEB SEARCH

The same retrieval stack that powers everything else, scoped to a fixed ten-hit window so anyone can try the live index without an account or wiring auth. Returns ranked results with contextified snippets, the shape production code will consume.

**Request body**

| Field | Type | Note |
| --- | --- | --- |
| **question** | string · required | 1–500 chars. The question your results should answer. |
| algorithm | enum · hybrid-3 | Workhorse ranker. Lexical, baseline, hamming, hybrid-1/2/3, and company. |
| n_results | int · 10 fixed | Free tier locks the page at ten hits. |
| filters · expansions · enrichments · … | — | Full parameter list. See the OpenAPI spec. |

**Response:** Ranked result objects with snippets and metadata (see spec for the full result shape).

**Best for:** Demos, evaluations, and read-the-docs hello-worlds. Move to fast-search once you need a real result window or production reliability.

### //02 `/search/v2/fast-search`

- **Group:** SERP · **Method:** POST · **Auth:** Header · Api-Key · **Schema:** FastSearchSchema · **Spec tag:** WEB SEARCH

The everyday workhorse. Identical request shape to free-search, but n_results scales to 100, n_probes to 50, and n_contextify up to 1024, enough to feed a long-context model without follow-up calls. Sub-second p50 latency under Api-Key auth, ready for production RAG.

**Request body**

| Field | Type | Note |
| --- | --- | --- |
| **question** | string · required | 1–500 chars. |
| algorithm | enum · hybrid-3 | Default workhorse ranker. See free-search for the full enum. |
| n_results | int · 10–100 · 10 | Cap lifted from the free tier: up to a hundred hits per call. |
| n_probes · filters · expansions · … | — | Full parameter list. See the OpenAPI spec. |

**Response:** Inline ranked results.

**Best for:** Live retrieval inside an LLM application, RAG pipelines, dashboards, and anything where you want a real page of results in one round trip.

### //03 `/search/v2/bulk-search`

- **Group:** SERP · **Method:** POST · **Auth:** Header · Api-Key · **Schema:** SlowSearchSchema · **Spec tag:** WEB SEARCH

When you want thousands of results in one query (backfills, factor construction, dataset assembly), bulk-search runs deep retrieval (up to 300 shards, up to 10,000 results) and ships the answer as an encrypted, zstd-compressed JSON download.

**Request body**

| Field | Type | Note |
| --- | --- | --- |
| **question** | string · required | Same as the SERP endpoints. |
| algorithm | enum · hybrid-3 | Same workhorse ranker as the live SERP endpoints. |
| n_results | int · 1,000–10,000 · 1,000 | Long-tail window: up to ten thousand ranked results. |
| n_probes · filters · expansions · … | — | Full parameter list. See the OpenAPI spec. |

**Response sample:**

```json
{
  "download_from": "<S3 URL>",
  "decrypt_using": "<Fernet key>"
}
```

**Response:** Encrypted, zstd-compressed JSON download. Fetch, decrypt, decompress.

**Best for:** Backtests, training-set assembly, monthly analyst sweeps, and any workload that wants the full long tail rather than the top page.

### //04 `/search/v2/rich-search`

- **Group:** SERP · **Method:** POST · **Auth:** Header · Api-Key · **Schema:** RichSearchSchema · **Spec tag:** WEB SEARCH

Extends fast-search with opt-in enrichments (publisher profile, ad-targeting cues, historical track record, quantitative signals, and 1-bit-quantised base64 embeddings) so downstream agents can score or rerank without a second call.

**Request body**

| Field | Type | Note |
| --- | --- | --- |
| …all FastSearch fields | — | Same retrieval contract. |
| enrich_profile | bool · true | Attach website / publisher profile. |
| enrich_targeting | bool · true | Attach ad-targeting metadata. |
| enrich_history | bool · true | Attach publishing track records. |
| enrich_signals | bool · true | Attach quantitative signals. |
| enrich_vectors | bool · true | Attach 1-bit-quantised base64 embeddings. |

**Response:** Enriched ranked results: base fields plus whichever enrichment blocks you requested (see spec).

**Best for:** Multi-stage agents that grade sources, sentiment and factor pipelines, and any flow where you would otherwise glue several enrichment APIs around fast-search.

## 03 — Crawl: Turn any URL into clean, structured data

The single-URL counterpart to the index endpoints. Hand the crawler a link and it returns the same structured extraction the index runs on every document it ingests, ideal for grounding LLM applications and resolving citations agents just produced.

### //01 `/search/v2/scrape-url`

- **Group:** Crawl · **Method:** POST · **Auth:** Header · Api-Key · **Schema:** VisitSchema · **Spec tag:** WEB SCRAPER

Turn any URL into clean, structured JSON, the same extraction the NOSIBLE index runs on every document it ingests. One schema across the 300K+ sources we already crawl. Built for LLM applications and agents that need grounded sources, not raw HTML.

- **Converts** any HTML page into structured JSON: article text, metadata, authors, and publish dates.
- **Handles** JavaScript-rendered pages via render: true; forces a fresh crawl via recrawl: true when the cached copy is stale.
- **Powers** every NOSIBLE retrieval endpoint, so what scrape-url returns is what the index ranks against.

**Request body**

| Field | Type | Note |
| --- | --- | --- |
| **url** | string · required | The URL this route will use for processing. |
| render | bool · false | Force the crawler to render the JavaScript. |
| recrawl | bool · false | Whether to re-crawl the url again. Optional. |
| html | string | The HTML associated with this URL. Optional. |

**Response:** Parsed page object: extracted text, metadata, and link graph (see spec for the full result shape).

**Best for:** Resolving a citation the agent just produced, point-checking a single source, or pulling a fresh extract for a page the index has not seen yet.

## When to use what

> "When you know the query, hit the index. When the query is the thing you need to discover, the agent writes it for you, and hands back the same ranked results."
>
> — NOSIBLE · 2026

## 04 — Agent endpoint: You bring the question. The agent writes the queries.

Agentic SERP, not deep research. Cybernaut-1 plans multi-angle strategies, fans out parallel probes, and returns the same ranked search results as the SERP endpoints: the query is what the agent authored for you.

### //01 `/search/v2/search`

- **Group:** Agent · **Method:** POST · **Auth:** Header · Api-Key · **Schema:** SearchSchema · **Spec tag:** WEB AGENTS

Hand the agent a freeform prompt and Cybernaut-1 writes the queries for you. It plans multi-angle strategies, fans out parallel probes, and deep-dives the promising branches, then returns ranked search results, not a synthesised summary. Same response shape as the SERP endpoints, different planner.

**Request body**

| Field | Type | Note |
| --- | --- | --- |
| **prompt** | string · required | 25–2,500 chars. Describe what you need to know. |
| agent | enum · cybernaut-1 | Currently only "cybernaut-1". |

**Response:** Same ranked-result shape as the SERP endpoints: the agent authored the queries, you read the results.

**Best for:** Open-ended retrieval where the right query is not known in advance. Let the agent author the queries and return the same ranked results your SERP code already consumes.

## 05 — Client packages: Skip the curl. Use the SDK.

Official clients wrap every endpoint with typed bindings, retries, and key handling. Python for research and pipelines, TypeScript for browsers, Node, and edge runtimes.

### Python — pkg `nosible`

**Install**

```bash
pip install nosible
```

**Example**

```python
from nosible import Nosible

with Nosible(nosible_api_key="YOUR API KEY") as client:
    results = client.fast_search(
        question="What is Artificial General Intelligence?"
    )
    print(results)
```

Set NOSIBLE_API_KEY in your environment (format: nos_sk_…) or pass it directly to the client.

Docs: [nosible-py docs ↗](https://nosible-py.readthedocs.io/en/latest/)

### TypeScript · JavaScript — pkg `nosible`

**Install**

```bash
npm install nosible
```

**Example**

```javascript
// ES Module
import { /* exported items */ } from "nosible";

// CommonJS
const { /* exported items */ } = require("nosible");
```

TypeScript client for the NOSIBLE AI Search API. Imports listed; for the full surface see the package's TypeDoc / npm listing.

Docs: [nosible on npm ↗](https://www.npmjs.com/package/nosible)

### Raw HTTP — pkg `curl`

**Install**

```bash
curl --version  # any 7.68+ build
```

**Example**

```bash
curl -X POST https://www.nosible.ai/search/v2/fast-search \
  -H "Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"question":"What is Artificial General Intelligence?","n_results":10}'
```

Replace YOUR_API_KEY with a real key from app.nosible.com. Same request shape across every endpoint: swap "fast-search" for "rich-search", "bulk-search", "scrape-url", or "search" to switch routes.

Docs: [OpenAPI spec ↗](https://www.nosible.ai/search/v2/docs/#/)

## Start your 90-day trial

Review the products and integration materials, then request the data and delivery method your team needs.

- [START TRIAL](https://nosible.com/start-trial)
- [GET API KEY](https://app.nosible.com)

API v2.1.0 · spec last seen 2026·06

## Related
- [Home](https://nosible.com)
- [NOSIBLE Search API](https://nosible.com/search-api)
- [Research](https://nosible.com/blog)
- [GET API KEY (app.nosible.com)](https://app.nosible.com)
- [OpenAPI spec](https://www.nosible.ai/search/v2/docs/#/)
- [Start Trial](https://nosible.com/start-trial)
