Skip to content
unlob
GET

/why_not

Coverage transparency: explains whether a URL is present in the index, was removed and why, or was never admitted.

Every other search API is a black box about absence. Ask it for a URL it does not have and you get an empty result set, which tells you nothing about whether the page was rejected, dropped, or never seen.

why_not reads an append-only removal ledger and answers precisely. present means it is there. removed carries the reason — redundant, superseded, stale, access-starved, lost-replacement or tombstoned-source — plus what superseded it and when. unknown means it was never admitted.

For a regulated buyer this is the difference between "we searched" and "here is what was considered, and here is what was excluded and why".

Request

GET /why_notbash
curl -H "x-api-key: $UNLOB_API_KEY" \
  "https://api.unlob.com/why_not?url=https://docs.rs/tokio"
ParameterTypeDescription
urlrequiredstringThe absolute URL to explain.

Response

A tagged union: present, removed { reason, superseded_by?, removed_at }, or unknown.

Example responsejson
{
  "status": "removed",
  "reason": "superseded",
  "superseded_by": "p:41ab7c",
  "removed_at": 1751328000
}

From an agent

This endpoint is also exposed as the MCP tool why_not, so an agent can call it without any HTTP code.

mcp: why_notjson
// Why is this documentation page not showing up in results?
{ "url": "https://docs.rs/tokio" }

Try this endpoint

Every endpoint is available on the free tier. Get a key and run the example above unchanged.