---
title: Public search with NLWeb
description: Query Siglata's website and documentation in natural language, with cited JSON or SSE results.
sidebar:
  order: 8
---

The `https://www.siglata.com/ask` endpoint searches Siglata's public pages and documentation. It returns relevant pages with a title, description, language and source URL. It requires no authentication and cannot access organization files.

## Query

```bash
curl https://www.siglata.com/ask \
  -H 'Content-Type: application/json' \
  -d '{"query":{"text":"How does the pilot work?","max_results":5},"prefer":{"mode":"list","response_format":"conv_search","streaming":false,"accept-language":"en-US"}}'
```

You can also use `GET /ask?query=spreadsheets&streaming=false&lang=en-US`. Portuguese is the default. For POST, set `prefer.accept-language`. The `Accept-Language` header applies when there is no explicit language preference.

Each result includes `grounding.source_urls` pointing to its source page. Ranking uses Orama text search over published content. The `list` mode retrieves pages; it does not generate language-model answers or execute actions.

## Responses and limits

- JSON: `prefer.streaming: false` or the `Accept: application/json` header.
- SSE: `prefer.streaming: true`; the response sends one `data:` event containing results and closes the connection. SSE is the default without a JSON preference.
- Queries are limited to 1,000 characters, request bodies to 8 KiB and results to 20; the default is 5 results.
- Queries without matches return `results: []`.
- Invalid request: 400; unsupported method: 405; oversized body: 413; wrong content type: 415; unavailable search: 503.

This implementation uses the `list` / `conv_search` profile of the [NLWeb 0.54 models](https://github.com/nlweb-ai/nlweb-ask-agent/blob/main/ask_api/packages/core/nlweb_core/protocol/models.py). Summaries, conversation history, persistent memory, cross-site search and other response formats are unsupported. POST fields outside the documented profile are rejected.

## Discovery

- [NLWeb OpenAPI description](https://www.siglata.com/nlweb/openapi.json)
- [Public Schema.org DataFeed](https://www.siglata.com/nlweb.json)
- [Structured feed map](https://www.siglata.com/schemamap.xml)
- [Public pages as JSON Lines](https://www.siglata.com/nlweb/feed.jsonl)
- [Agent index](https://www.siglata.com/llms.txt)

The map follows the [Schema Feeds 0.1 proposal](https://github.com/nlweb-ai/website/blob/main/SCHEMA_SPEC.md), advertised in `robots.txt`. Each feed line contains one JSON-LD page with its language, text and source URL. Both formats are generated from the same public pages whenever the site is published.

The documentation also provides WebMCP for browser agents. The [organization MCP](/docs/en-US/agents/mcp) at `/v1/mcp` is separate: it requires OAuth and preserves file-access scopes.
