AINativeainative.axAX AUDIT
← All guides
AR-CAP · CAPABILITY EXPOSURE

The NLWeb /ask Endpoint

Most sites make agents scrape HTML to answer a simple question. NLWeb's /ask convention lets a site answer directly, in structured JSON, in one request.

What is NLWeb?

NLWeb (Natural Language Web) is an open specification, backed by Microsoft, for adding a conversational-search layer on top of any website. Instead of an agent crawling pages and inferring an answer from rendered HTML, a site conforming to NLWeb exposes a single convention — an /askendpoint — that accepts a natural-language question and returns a structured answer.

This matters because question-answering is one of the most common things an agent does on a site it has never seen before: “what’s your refund policy,” “do you support webhooks,” “what’s the rate limit on this endpoint.” Without /ask, every one of those questions costs the agent a full crawl-and-parse cycle. With it, the answer is one HTTP request away.

What a Conformant Response Looks Like

A real /ask implementation (this is ainative.ax’s own, live) returns structured JSON with a few key fields: a direct answer when the question maps to known content, a message explaining the result, and a sources array citing where the answer came from.

GET /ask?q=what+standards+do+you+scan+for

{
  "query": "what standards do you scan for",
  "answer": "AX Audit checks 18 named signals across six AR-* categories...",
  "message": null,
  "sources": [
    { "title": "Methodology", "url": "https://ainative.ax/methodology" }
  ]
}

When a query doesn’t map to anything the site knows about, a conformant response still returns valid JSON with a clear messagerather than a 404 or an empty body — an agent can treat “no answer found” as a real, parseable outcome instead of a failure to handle.

The Four Things Checked

Responds, and differs from baseline

/ask must return something other than your generic site-wide fallback or 404 page — a real, query-aware response.

Valid application/json

The response must be parseable JSON with the correct Content-Type, not an HTML page that happens to mention the query.

NLWeb-shaped body

The JSON carries the fields an agent expects: a _meta block, a results or sources array, and an answer field (even if null).

SSE streaming support

For longer answers, the endpoint can optionally stream partial results via Server-Sent Events instead of blocking until the full answer is ready.

Where This Fits in AR-* and the AX Score

NLWeb /ask falls under AR-CAP, the category covering what an agent can actually do with your capabilities once it has found them. In the live AX Audit, NLWeb /ask Endpoint is its own named check worth up to 4 of the 100 points, broken into the four signals above.

ainative.ax runs its own /askas a reference implementation. It responds, returns valid NLWeb-shaped JSON, and currently scores 3 of 4 — the point it’s missing is SSE streaming support, which it doesn’t yet implement. That’s a disclosed gap on this site’s own scan, not a claimed capability.

Frequently Asked Questions

Do I need an LLM behind /ask?▼
Not necessarily. A simple keyword-match-and-template implementation can satisfy the spec’s shape requirements. An LLM-backed implementation generally produces better answers to open-ended questions, but the AX Audit checks the response shape and behavior, not what powers it internally.
What should /ask return when it has no answer?▼
Valid JSON with answer set to null and a clear message field explaining there’s no match — plus, ideally, a pointer to where the agent can look instead (your llms.txt, docs, or methodology page). Returning a 404 or an empty body fails the "differs from baseline" check.
Is this the same as a chatbot widget?▼
No. A chatbot widget is a UI built for humans to click into. /ask is a plain HTTP endpoint meant to be called directly by machines — no JavaScript widget, no session, no UI required.

Check Your NLWeb /ask Score

The AX Audit sends a real query to /ask and checks whether the response is valid, query-aware, NLWeb-shaped JSON — and whether it supports streaming.

Check your /ask score→

Free audit. No signup required.