{
  "name": "unlob site index",
  "description": "Every page on unlob.com with its extractable summary. We sell a search API, so the site ships its own index.",
  "url": "https://www.unlob.com",
  "dateModified": "2026-08-05",
  "count": 299,
  "clusters": [
    "core",
    "docs",
    "api",
    "mcp",
    "filters",
    "glossary",
    "guides",
    "cookbook",
    "build",
    "use-cases",
    "compare",
    "alternatives",
    "migrate",
    "integrations",
    "content-types",
    "topics",
    "languages"
  ],
  "documents": [
    {
      "url": "https://www.unlob.com/",
      "title": "Web search built for agents, not for clicking.",
      "summary": "Web search built for agents, on our own index. Metadata-only hits, a queryable coverage graph, and an MCP server — from $0.40 per 1,000 queries.",
      "cluster": "core"
    },
    {
      "url": "https://www.unlob.com/pricing",
      "title": "Pricing",
      "summary": "Plan table, per-1,000 rates and how they compare.",
      "cluster": "core"
    },
    {
      "url": "https://www.unlob.com/landscape",
      "title": "Web search APIs for AI agents — the 2026 landscape",
      "summary": "Sourced, vendor-neutral map of the market: index ownership, price, capability and funding.",
      "cluster": "core"
    },
    {
      "url": "https://www.unlob.com/why-own-index",
      "title": "Why an own index matters",
      "summary": "Deprecation, repricing and rate-limit risk — and why owning an index is no longer sufficient on its own.",
      "cluster": "core"
    },
    {
      "url": "https://www.unlob.com/cost-model",
      "title": "Cost model",
      "summary": "The unit economics behind $0.40 per 1,000 queries.",
      "cluster": "core"
    },
    {
      "url": "https://www.unlob.com/coverage-graph",
      "title": "Coverage graph",
      "summary": "A queryable world model over the index: six traversal operations.",
      "cluster": "core"
    },
    {
      "url": "https://www.unlob.com/coverage-transparency",
      "title": "Coverage transparency",
      "summary": "Ask why any URL is or is not in the index and get a real answer.",
      "cluster": "core"
    },
    {
      "url": "https://www.unlob.com/benchmarks",
      "title": "Benchmarks",
      "summary": "Measured latency, throughput and memory, with the conditions attached.",
      "cluster": "core"
    },
    {
      "url": "https://www.unlob.com/how-it-works",
      "title": "How it works",
      "summary": "Admission control rather than ranking: how the index is built and served.",
      "cluster": "core"
    },
    {
      "url": "https://www.unlob.com/mcp",
      "title": "MCP server",
      "summary": "11 tools over stdio JSON-RPC for any MCP client.",
      "cluster": "core"
    },
    {
      "url": "https://www.unlob.com/crawler",
      "title": "UnlobBot",
      "summary": "How we crawl, and how to allow, restrict or block it.",
      "cluster": "core"
    },
    {
      "url": "https://www.unlob.com/docs",
      "title": "Documentation",
      "summary": "Endpoints, filters, modes, authentication, errors.",
      "cluster": "core"
    },
    {
      "url": "https://www.unlob.com/faq",
      "title": "FAQ",
      "summary": "Answers about the index, pricing, the coverage graph and compliance.",
      "cluster": "core"
    },
    {
      "url": "https://www.unlob.com/about",
      "title": "About",
      "summary": "What unlob is, what it is not, and how we operate.",
      "cluster": "core"
    },
    {
      "url": "https://www.unlob.com/contact",
      "title": "Contact",
      "summary": "Support, removal requests, crawler questions and corrections.",
      "cluster": "core"
    },
    {
      "url": "https://www.unlob.com/docs/quickstart",
      "title": "Quickstart",
      "summary": "Get an API key and run your first search in under two minutes — one magic link, one curl command.",
      "cluster": "docs"
    },
    {
      "url": "https://www.unlob.com/docs/authentication",
      "title": "Authentication",
      "summary": "Send your API key as an x-api-key or Authorization: Bearer header. Keys are stored as hashes and shown exactly once.",
      "cluster": "docs"
    },
    {
      "url": "https://www.unlob.com/docs/query-syntax",
      "title": "Query syntax",
      "summary": "The q parameter accepts boolean operators, negation with a leading minus, and quoted phrases for exact matching.",
      "cluster": "docs"
    },
    {
      "url": "https://www.unlob.com/docs/modes",
      "title": "Search modes",
      "summary": "Keyword runs BM25, semantic runs vector similarity, and hybrid fuses both by reciprocal rank. Hybrid is the default.",
      "cluster": "docs"
    },
    {
      "url": "https://www.unlob.com/docs/filters",
      "title": "Filtering",
      "summary": "Around thirty filters narrow a result set by scope, time, quality, shape and output — all evaluated against stored fields, so filtering is free at query time.",
      "cluster": "docs"
    },
    {
      "url": "https://www.unlob.com/docs/sorting",
      "title": "Sorting",
      "summary": "Order results by relevance, recency, publication date, host rank, quality, length or graph centrality.",
      "cluster": "docs"
    },
    {
      "url": "https://www.unlob.com/docs/collapsing",
      "title": "Deduplication",
      "summary": "Collapse results by host, page or story cluster so one syndicated item cannot occupy an entire result set.",
      "cluster": "docs"
    },
    {
      "url": "https://www.unlob.com/docs/facets",
      "title": "Facets",
      "summary": "Return counts by host, vertical, source, content type, authority, publication year and community alongside your results.",
      "cluster": "docs"
    },
    {
      "url": "https://www.unlob.com/docs/field-projection",
      "title": "Field projection",
      "summary": "Use the fields parameter to return only the attributes you need, shrinking responses that go straight into a context window.",
      "cluster": "docs"
    },
    {
      "url": "https://www.unlob.com/docs/rate-limits-and-quotas",
      "title": "Rate limits and quotas",
      "summary": "Each plan carries a monthly request quota and a per-minute rate limit, enforced per serving replica. The free plan hard-caps; paid plans continue with usage-based overage.",
      "cluster": "docs"
    },
    {
      "url": "https://www.unlob.com/docs/errors",
      "title": "Errors",
      "summary": "Standard HTTP status codes: 401 for authentication, 429 for rate limits, 408 on timeout, 503 when the index is not ready.",
      "cluster": "docs"
    },
    {
      "url": "https://www.unlob.com/docs/discovery",
      "title": "Capability discovery",
      "summary": "The unauthenticated /describe endpoint returns the filter grammar and every controlled vocabulary, so an agent can discover the query surface instead of hardcoding it.",
      "cluster": "docs"
    },
    {
      "url": "https://www.unlob.com/docs/api/search",
      "title": "GET /search",
      "summary": "The main query surface: returns metadata-only passage hits — url, host, title, snippet, score and world-model signals — but never the page body.",
      "cluster": "api"
    },
    {
      "url": "https://www.unlob.com/docs/api/similar",
      "title": "GET /similar",
      "summary": "More-like-this: given a passage id, returns its semantic neighbours from the same embedding space the index was built in.",
      "cluster": "api"
    },
    {
      "url": "https://www.unlob.com/docs/api/browse",
      "title": "GET /browse",
      "summary": "Query-free browsing: the most recent or highest-ranked passages, optionally within a single vertical.",
      "cluster": "api"
    },
    {
      "url": "https://www.unlob.com/docs/api/doc",
      "title": "GET /doc/:id",
      "summary": "Fetches the full cleaned text of one passage by id — the only endpoint that returns page content.",
      "cluster": "api"
    },
    {
      "url": "https://www.unlob.com/docs/api/why-not",
      "title": "GET /why_not",
      "summary": "Coverage transparency: explains whether a URL is present in the index, was removed and why, or was never admitted.",
      "cluster": "api"
    },
    {
      "url": "https://www.unlob.com/docs/api/related",
      "title": "GET /related",
      "summary": "Coverage graph traversal: the connected neighbourhood of a passage, up to k hops — the edges are what to read next.",
      "cluster": "api"
    },
    {
      "url": "https://www.unlob.com/docs/api/corroborate",
      "title": "GET /corroborate",
      "summary": "The anti-hallucination check: how many distinct hosts independently carry a story, and which ones.",
      "cluster": "api"
    },
    {
      "url": "https://www.unlob.com/docs/api/authorities",
      "title": "GET /authorities",
      "summary": "The top passages on a topic ranked by graph centrality, so an agent can triage a field before reading into it.",
      "cluster": "api"
    },
    {
      "url": "https://www.unlob.com/docs/api/dossier",
      "title": "GET /dossier",
      "summary": "A one-hop brief on an entity: where it is mentioned, which hosts cover it, and which entities co-occur with it.",
      "cluster": "api"
    },
    {
      "url": "https://www.unlob.com/docs/api/path",
      "title": "GET /path",
      "summary": "The shortest chain of edges linking two passages — reasoning-path retrieval, or connect-the-dots.",
      "cluster": "api"
    },
    {
      "url": "https://www.unlob.com/docs/api/assemble-context",
      "title": "GET /assemble_context",
      "summary": "GraphRAG as a single call: a corroborated, story-deduplicated, trust-ranked context pack fitted to a token budget, with a reason attached to every passage.",
      "cluster": "api"
    },
    {
      "url": "https://www.unlob.com/docs/api/describe",
      "title": "GET /describe",
      "summary": "A self-describing capability catalog: the filter grammar and every controlled vocabulary, so an agent can discover the query surface instead of guessing it.",
      "cluster": "api"
    },
    {
      "url": "https://www.unlob.com/docs/api/account",
      "title": "GET /account",
      "summary": "Your tenant’s current plan, usage against quota and remaining allowance for this billing period.",
      "cluster": "api"
    },
    {
      "url": "https://www.unlob.com/docs/api/healthz",
      "title": "GET /healthz",
      "summary": "Unauthenticated liveness probe. Returns 200 while the process is up.",
      "cluster": "api"
    },
    {
      "url": "https://www.unlob.com/docs/api/readyz",
      "title": "GET /readyz",
      "summary": "Unauthenticated readiness probe: 200 once the index is loaded and non-empty, 503 while it is not.",
      "cluster": "api"
    },
    {
      "url": "https://www.unlob.com/docs/api/metrics",
      "title": "GET /metrics",
      "summary": "Prometheus metrics: per-status request counters, a latency histogram and an in-flight gauge.",
      "cluster": "api"
    },
    {
      "url": "https://www.unlob.com/mcp/web-search",
      "title": "web_search",
      "summary": "Searches the agent-first web index and returns metadata-only hits — url, host, snippet, score — never the page body.",
      "cluster": "mcp"
    },
    {
      "url": "https://www.unlob.com/mcp/get-document",
      "title": "get_document",
      "summary": "Fetches the full cleaned text of one passage by id — the lazy read path.",
      "cluster": "mcp"
    },
    {
      "url": "https://www.unlob.com/mcp/similar",
      "title": "similar",
      "summary": "More-like-this: given a passage id, returns its semantic neighbours.",
      "cluster": "mcp"
    },
    {
      "url": "https://www.unlob.com/mcp/browse",
      "title": "browse",
      "summary": "Browses without a query: the most recent, or highest-ranked, passages — optionally within one vertical.",
      "cluster": "mcp"
    },
    {
      "url": "https://www.unlob.com/mcp/why-not",
      "title": "why_not",
      "summary": "Explains why a URL is or is not in the index: present, removed with a reason, or never admitted.",
      "cluster": "mcp"
    },
    {
      "url": "https://www.unlob.com/mcp/related",
      "title": "related",
      "summary": "Returns the connected neighbourhood of a passage from the coverage graph — the edges are what to read next.",
      "cluster": "mcp"
    },
    {
      "url": "https://www.unlob.com/mcp/corroborate",
      "title": "corroborate",
      "summary": "Reports how many distinct hosts independently carry a story — the anti-hallucination check.",
      "cluster": "mcp"
    },
    {
      "url": "https://www.unlob.com/mcp/authorities",
      "title": "authorities",
      "summary": "Returns the top passages on a topic ranked by graph centrality — trust-triage a field without reading junk into context.",
      "cluster": "mcp"
    },
    {
      "url": "https://www.unlob.com/mcp/dossier",
      "title": "dossier",
      "summary": "Builds a one-hop brief on an entity: mentions, the hosts covering it, and the entities co-mentioned with it.",
      "cluster": "mcp"
    },
    {
      "url": "https://www.unlob.com/mcp/path",
      "title": "path",
      "summary": "Finds the shortest chain of edges linking two passages — reasoning-path retrieval, or connect-the-dots.",
      "cluster": "mcp"
    },
    {
      "url": "https://www.unlob.com/mcp/assemble-context",
      "title": "assemble_context",
      "summary": "GraphRAG as a service: returns a ready-to-read context pack — corroborated, story-deduplicated, trust-ranked and packed to a token budget, each passage carrying the reason it was included.",
      "cluster": "mcp"
    },
    {
      "url": "https://www.unlob.com/filters/vertical",
      "title": "vertical",
      "summary": "Restricts the query to one vertical core, skipping the routing step entirely.",
      "cluster": "filters"
    },
    {
      "url": "https://www.unlob.com/filters/site",
      "title": "site",
      "summary": "Restricts results to a single host.",
      "cluster": "filters"
    },
    {
      "url": "https://www.unlob.com/filters/exclude-site",
      "title": "exclude_site",
      "summary": "Drops one or more hosts from the result set.",
      "cluster": "filters"
    },
    {
      "url": "https://www.unlob.com/filters/source",
      "title": "source",
      "summary": "Filters by crawl provenance: the batch corpus, or the delta crawler.",
      "cluster": "filters"
    },
    {
      "url": "https://www.unlob.com/filters/lang",
      "title": "lang",
      "summary": "Restricts results to one language; `langs[]` accepts several.",
      "cluster": "filters"
    },
    {
      "url": "https://www.unlob.com/filters/from-to",
      "title": "from / to",
      "summary": "Bounds results by crawl time — when we fetched the page.",
      "cluster": "filters"
    },
    {
      "url": "https://www.unlob.com/filters/published-from-to",
      "title": "published_from / published_to",
      "summary": "Bounds results by content date — when the page says it was published.",
      "cluster": "filters"
    },
    {
      "url": "https://www.unlob.com/filters/term",
      "title": "term",
      "summary": "Requires an exact salient term to be present — the needle that semantic search would smooth away.",
      "cluster": "filters"
    },
    {
      "url": "https://www.unlob.com/filters/min-host-rank",
      "title": "min_host_rank",
      "summary": "Sets a floor on the authority of the publishing host.",
      "cluster": "filters"
    },
    {
      "url": "https://www.unlob.com/filters/min-quality",
      "title": "min_quality",
      "summary": "Sets a floor on the passage quality score assigned at admission.",
      "cluster": "filters"
    },
    {
      "url": "https://www.unlob.com/filters/min-centrality",
      "title": "min_centrality",
      "summary": "Requires a minimum graph centrality — how load-bearing a passage is in its neighbourhood.",
      "cluster": "filters"
    },
    {
      "url": "https://www.unlob.com/filters/min-independent-sources",
      "title": "min_independent_sources",
      "summary": "Requires the passage’s story to be carried by at least N distinct hosts.",
      "cluster": "filters"
    },
    {
      "url": "https://www.unlob.com/filters/community",
      "title": "community",
      "summary": "Restricts results to one or more graph communities.",
      "cluster": "filters"
    },
    {
      "url": "https://www.unlob.com/filters/authority",
      "title": "authority",
      "summary": "Filters by the institutional class of the domain.",
      "cluster": "filters"
    },
    {
      "url": "https://www.unlob.com/filters/content-type",
      "title": "content_type",
      "summary": "Restricts results to particular kinds of page.",
      "cluster": "filters"
    },
    {
      "url": "https://www.unlob.com/filters/topic",
      "title": "topic",
      "summary": "Filters by topic tags assigned at index time.",
      "cluster": "filters"
    },
    {
      "url": "https://www.unlob.com/filters/tld",
      "title": "tld",
      "summary": "Restricts results by top-level domain.",
      "cluster": "filters"
    },
    {
      "url": "https://www.unlob.com/filters/safe",
      "title": "safe",
      "summary": "Drops explicit content. On by default.",
      "cluster": "filters"
    },
    {
      "url": "https://www.unlob.com/filters/min-words",
      "title": "min_words / max_words",
      "summary": "Bounds passage length in words.",
      "cluster": "filters"
    },
    {
      "url": "https://www.unlob.com/filters/mode",
      "title": "mode",
      "summary": "Chooses the retrieval strategy: lexical, vector, or both fused by reciprocal rank.",
      "cluster": "filters"
    },
    {
      "url": "https://www.unlob.com/filters/sort",
      "title": "sort",
      "summary": "Orders results by relevance, time, authority, quality, length or graph centrality.",
      "cluster": "filters"
    },
    {
      "url": "https://www.unlob.com/filters/collapse",
      "title": "collapse",
      "summary": "Deduplicates the result set by host, page or story cluster.",
      "cluster": "filters"
    },
    {
      "url": "https://www.unlob.com/filters/facets",
      "title": "facets",
      "summary": "Returns counts by host, vertical, source, content type, authority, publication year and community.",
      "cluster": "filters"
    },
    {
      "url": "https://www.unlob.com/filters/fields",
      "title": "fields",
      "summary": "Projects only the fields you need onto each hit.",
      "cluster": "filters"
    },
    {
      "url": "https://www.unlob.com/filters/limit",
      "title": "limit",
      "summary": "Number of hits to return. Zero returns the count only.",
      "cluster": "filters"
    },
    {
      "url": "https://www.unlob.com/filters/prefer-recent",
      "title": "prefer_recent",
      "summary": "Biases ranking toward newer passages without excluding older ones.",
      "cluster": "filters"
    },
    {
      "url": "https://www.unlob.com/filters/prefer-authority",
      "title": "prefer_authority",
      "summary": "Biases ranking toward higher-authority hosts without excluding the rest.",
      "cluster": "filters"
    },
    {
      "url": "https://www.unlob.com/glossary/hybrid-search",
      "title": "What is Hybrid search?",
      "summary": "Hybrid search runs a lexical query and a vector query over the same corpus and fuses the two rankings into one result set.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/bm25",
      "title": "What is BM25?",
      "summary": "BM25 is a ranking function that scores documents by term frequency and inverse document frequency, with saturation so repeated terms have diminishing returns.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/semantic-search",
      "title": "What is Semantic search?",
      "summary": "Semantic search retrieves documents by meaning rather than by word overlap, using vector embeddings to place queries and documents in a shared space.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/vector-search",
      "title": "What is Vector search?",
      "summary": "Vector search finds the nearest neighbours of a query vector among document vectors, usually using an approximate index because exact search over millions of vectors is too slow.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/ann",
      "title": "What is Approximate nearest neighbour (ANN)?",
      "summary": "ANN search finds vectors close to a query vector without guaranteeing the exact closest, trading a small recall loss for orders-of-magnitude speed improvement.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/reciprocal-rank-fusion",
      "title": "What is Reciprocal rank fusion?",
      "summary": "Reciprocal rank fusion merges several ranked lists by scoring each document by the reciprocal of its position in each list, requiring no score normalisation.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/embedding",
      "title": "What is Embedding?",
      "summary": "An embedding is a fixed-length vector representing the meaning of a piece of text, produced by a model so that similar texts land near each other.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/quantisation",
      "title": "What is Quantisation?",
      "summary": "Quantisation compresses vectors by storing each dimension in fewer bits, cutting memory and speeding comparison at a small cost in precision.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/reranking",
      "title": "What is Reranking?",
      "summary": "Reranking reorders an initial candidate set with a more expensive, more accurate model than the one used to retrieve it.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/query-expansion",
      "title": "What is Query expansion?",
      "summary": "Query expansion adds related terms to a query to improve recall when the user’s vocabulary differs from the documents’.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/recall-and-precision",
      "title": "What is Recall and precision?",
      "summary": "Recall is the share of relevant documents a search returns; precision is the share of returned documents that are relevant.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/ranking",
      "title": "What is Ranking?",
      "summary": "Ranking orders retrieved documents by predicted relevance, traditionally combining a text-matching score with query-independent quality signals.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/faceted-search",
      "title": "What is Faceted search?",
      "summary": "Faceted search returns counts across categorical dimensions alongside results, letting a user or agent see the shape of a result set before reading it.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/filtering",
      "title": "What is Filtering?",
      "summary": "Filtering restricts a search to documents matching structured criteria — date, language, domain, quality — before or during scoring.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/collapsing",
      "title": "What is Result collapsing?",
      "summary": "Collapsing groups near-identical results and returns one representative each, so a single syndicated item cannot occupy an entire result set.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/admission-control",
      "title": "What is Admission control?",
      "summary": "Admission control decides at index time which documents are worth indexing at all, rather than indexing everything and sorting it out at query time.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/salient-term",
      "title": "What is Salient term?",
      "summary": "A salient term is a distinctive, low-frequency token that identifies specific content — an error code, an identifier, a proper noun — as opposed to common vocabulary.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/bounded-index",
      "title": "What is Bounded index?",
      "summary": "A bounded index caps its own size and prunes or replaces existing entries rather than growing without limit.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/pruning",
      "title": "What is Index pruning?",
      "summary": "Pruning removes documents from an index to reclaim space, based on redundancy, staleness, access patterns or competitive replacement.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/removal-ledger",
      "title": "What is Removal ledger?",
      "summary": "A removal ledger is an append-only record of every document removed from an index, with the reason and any replacement.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/coverage-transparency",
      "title": "What is Coverage transparency?",
      "summary": "Coverage transparency is the ability to ask a search index why a specific URL is or is not present, and get a substantive answer.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/inverted-index",
      "title": "What is Inverted index?",
      "summary": "An inverted index maps each term to the list of documents containing it, which is what makes lexical search fast.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/fast-field",
      "title": "What is Fast field?",
      "summary": "A fast field is a document attribute stored column-wise in the index for direct lookup, enabling filtering and sorting without reading the document.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/resident-memory",
      "title": "What is Resident memory?",
      "summary": "Resident memory is the portion of an index that must stay in RAM to serve queries, and it is usually what caps how large an index can economically grow.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/sharding",
      "title": "What is Sharding?",
      "summary": "Sharding splits an index across several nodes, each holding a portion, with a gateway scattering queries and gathering results.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/near-duplicate-detection",
      "title": "What is Near-duplicate detection?",
      "summary": "Near-duplicate detection identifies documents with substantially the same content despite differing in wording, formatting or boilerplate.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/deduplication",
      "title": "What is Deduplication?",
      "summary": "Deduplication removes redundant copies of the same content from an index or a result set.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/coverage-graph",
      "title": "What is Coverage graph?",
      "summary": "A coverage graph is a typed graph over a search index recording how documents relate — who published them, which report the same story, what they are about and who links to whom.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/graphrag",
      "title": "What is GraphRAG?",
      "summary": "GraphRAG is retrieval-augmented generation over a knowledge graph, retrieving connected subgraphs of entities and relationships rather than isolated text chunks.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/knowledge-graph",
      "title": "What is Knowledge graph?",
      "summary": "A knowledge graph stores entities and the relationships between them as a queryable structure of typed nodes and edges.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/centrality",
      "title": "What is Centrality?",
      "summary": "Centrality measures how well-connected a node is within a graph, and is used to identify the documents a field treats as foundational.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/host-rank",
      "title": "What is Host rank?",
      "summary": "Host rank scores the authority of a publishing domain from the link graph, independent of any particular query.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/corroboration",
      "title": "What is Corroboration?",
      "summary": "Corroboration counts how many independent sources assert the same claim, distinguishing widely reported facts from one story copied many times.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/story-cluster",
      "title": "What is Story cluster?",
      "summary": "A story cluster groups documents reporting the same underlying event, across publishers and wordings.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/entity-extraction",
      "title": "What is Entity extraction?",
      "summary": "Entity extraction identifies people, organisations, places and products mentioned in text and links them to canonical identifiers.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/dossier",
      "title": "What is Entity dossier?",
      "summary": "A dossier is a one-hop summary of an entity: where it is mentioned, which sources cover it, and which entities appear alongside it.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/community-detection",
      "title": "What is Community detection?",
      "summary": "Community detection partitions a graph into clusters of nodes that reference each other far more than the rest of the graph.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/provenance",
      "title": "What is Provenance?",
      "summary": "Provenance records where a document came from and how it entered the index — which crawl, when fetched, and when published.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/agentic-search",
      "title": "What is Agentic search?",
      "summary": "Agentic search is web search consumed by an autonomous system rather than a person, which inverts most of the design assumptions of consumer search.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/rag",
      "title": "What is Retrieval-augmented generation (RAG)?",
      "summary": "RAG retrieves relevant documents and places them in a model’s context so it can answer from current, specific sources rather than from training data alone.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/context-assembly",
      "title": "What is Context assembly?",
      "summary": "Context assembly selects, orders and truncates retrieved passages to fit a token budget before they enter a model’s context.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/context-window",
      "title": "What is Context window?",
      "summary": "The context window is the maximum amount of text a model can consider at once, and it is the budget every retrieval decision spends against.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/mcp",
      "title": "What is Model Context Protocol (MCP)?",
      "summary": "MCP is an open protocol for exposing tools and data sources to AI models through a uniform interface, so any compatible client can use any compatible server.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/tool-use",
      "title": "What is Tool use?",
      "summary": "Tool use lets a model invoke external functions — search, calculation, database queries — and incorporate the results into its reasoning.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/function-calling",
      "title": "What is Function calling?",
      "summary": "Function calling is a model’s ability to emit structured arguments for a named function rather than free text, enabling reliable tool invocation.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/hallucination",
      "title": "What is Hallucination?",
      "summary": "A hallucination is a confident, plausible model output that is not supported by any source.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/chunking",
      "title": "What is Chunking?",
      "summary": "Chunking splits documents into passages small enough to embed and retrieve independently.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/passage",
      "title": "What is Passage?",
      "summary": "A passage is a retrievable unit of text — typically a section or several paragraphs — rather than a whole document.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/web-crawler",
      "title": "What is Web crawler?",
      "summary": "A web crawler discovers and fetches pages by following links, respecting robots.txt and rate limits.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/robots-txt",
      "title": "What is robots.txt?",
      "summary": "robots.txt is a file at a site’s root telling crawlers which paths they may fetch and how fast.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/crawl-frontier",
      "title": "What is Crawl frontier?",
      "summary": "The crawl frontier is the prioritised queue of URLs a crawler intends to fetch, subject to per-host politeness constraints.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/crawl-on-miss",
      "title": "What is Crawl-on-miss?",
      "summary": "Crawl-on-miss triggers a fetch when a query finds nothing adequate, so the index fills gaps where there is demonstrated demand.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/freshness",
      "title": "What is Freshness?",
      "summary": "Freshness is how current an index is relative to the live web, maintained by recrawling changed pages rather than everything.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/boilerplate-removal",
      "title": "What is Boilerplate removal?",
      "summary": "Boilerplate removal strips navigation, headers, footers, cookie banners and adverts from a page to leave the actual content.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/content-extraction",
      "title": "What is Content extraction?",
      "summary": "Content extraction converts a fetched page into clean structured text, handling HTML, JavaScript-rendered pages and documents.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/object-storage-first",
      "title": "What is Object-storage-first architecture?",
      "summary": "An object-storage-first architecture keeps the authoritative copy of the data in object storage and treats compute nodes as replaceable caches rather than as the system of record.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/stateless-serving",
      "title": "What is Stateless serving?",
      "summary": "A stateless serving tier holds no authoritative data, so any node can be replaced without coordination or data loss.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/quality-score",
      "title": "What is Quality score?",
      "summary": "A quality score rates an individual passage on text density, structure and extraction confidence, independently of its publisher’s authority.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/authority",
      "title": "What is Authority?",
      "summary": "Authority is a coarse classification of a domain’s institutional class — educational, governmental, organisational, commercial — derived from the domain itself.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/multilingual-search",
      "title": "What is Multilingual search?",
      "summary": "Multilingual search retrieves documents across languages, ideally by placing all languages in one embedding space so no translation step is needed.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/tokenisation",
      "title": "What is Tokenisation?",
      "summary": "Tokenisation splits text into indexable units — usually words, but character n-grams for scripts without word delimiters.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/rate-limiting",
      "title": "What is Rate limiting?",
      "summary": "Rate limiting caps how many requests a client may make per interval, protecting a service from overload and enforcing plan tiers.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/glossary/quota",
      "title": "What is Quota?",
      "summary": "A quota is the total number of requests allowed in a billing period, as distinct from a rate limit on requests per minute.",
      "cluster": "glossary"
    },
    {
      "url": "https://www.unlob.com/guides/web-search-for-ai-agents",
      "title": "Web search for AI agents",
      "summary": "Agent retrieval inverts the assumptions of consumer search: precision matters more than recall, metadata beats full text, and absence has to be explainable.",
      "cluster": "guides"
    },
    {
      "url": "https://www.unlob.com/guides/graphrag-without-building-a-graph",
      "title": "GraphRAG without building the graph yourself",
      "summary": "GraphRAG normally means extracting entities from your own corpus and operating a graph database. A search API that already ships a graph over the open web removes the ingestion step entirely.",
      "cluster": "guides"
    },
    {
      "url": "https://www.unlob.com/guides/stop-agents-hallucinating",
      "title": "Stop agents hallucinating from search results",
      "summary": "Retrieval reduces hallucination but does not eliminate it. Two structural fixes — corroboration counting and explainable absence — address the failure modes prompting cannot.",
      "cluster": "guides"
    },
    {
      "url": "https://www.unlob.com/guides/reduce-agent-token-cost",
      "title": "Reduce the token cost of web-searching agents",
      "summary": "Most of what an agent spends on retrieval is not the search call — it is the context consumed by results it did not need and the reasoning spent rejecting them.",
      "cluster": "guides"
    },
    {
      "url": "https://www.unlob.com/guides/search-api-pricing-explained",
      "title": "Search API pricing explained",
      "summary": "Credits, per-request fees, per-token charges and processor tiers make headline rates non-comparable. Here is how to normalise them.",
      "cluster": "guides"
    },
    {
      "url": "https://www.unlob.com/guides/choosing-a-search-api",
      "title": "Choosing a web search API",
      "summary": "Five questions that decide the choice: index ownership, response shape, trust signals, cost at your volume, and what happens when the vendor changes.",
      "cluster": "guides"
    },
    {
      "url": "https://www.unlob.com/guides/auditable-retrieval",
      "title": "Auditable retrieval for regulated work",
      "summary": "In regulated work the question after an answer is \"what did it miss\". Four capabilities make that answerable: time-bounded queries, corroboration thresholds, explainable exclusion and per-passage reasons.",
      "cluster": "guides"
    },
    {
      "url": "https://www.unlob.com/guides/build-a-research-agent",
      "title": "Build a research agent",
      "summary": "A research agent that searches, reads, and searches again spends most of its budget rebuilding structure the index already has. Graph traversal collapses that loop.",
      "cluster": "guides"
    },
    {
      "url": "https://www.unlob.com/guides/mcp-web-search-setup",
      "title": "Web search over MCP",
      "summary": "One config block gives any MCP client eleven search tools, including six graph operations no other search API exposes.",
      "cluster": "guides"
    },
    {
      "url": "https://www.unlob.com/guides/multilingual-agent-search",
      "title": "Multilingual search for agents",
      "summary": "One embedding space for 101 languages means a query in one language retrieves relevant passages in another — no translation, no per-language index.",
      "cluster": "guides"
    },
    {
      "url": "https://www.unlob.com/cookbook/search-one-site",
      "title": "Search one project's documentation",
      "summary": "Use site= with vertical=code and content_type[]=docs to restrict a search to one project’s documentation instead of filtering the results afterwards.",
      "cluster": "cookbook"
    },
    {
      "url": "https://www.unlob.com/cookbook/monitor-a-topic",
      "title": "Monitor a topic without seeing the same story twice",
      "summary": "Combine collapse=story with published_from to poll a topic and receive one row per story rather than one row per outlet that syndicated it.",
      "cluster": "cookbook"
    },
    {
      "url": "https://www.unlob.com/cookbook/corroborated-claims-only",
      "title": "Return only claims that more than one source carries",
      "summary": "Set min_independent_sources to require a claim to appear on several separately-owned hosts before it reaches your agent.",
      "cluster": "cookbook"
    },
    {
      "url": "https://www.unlob.com/cookbook/fit-a-token-budget",
      "title": "Fit a result set into a token budget",
      "summary": "Use fields[] to drop everything the agent will not read and limit to cap the set, or let assemble_context pack to a budget for you.",
      "cluster": "cookbook"
    },
    {
      "url": "https://www.unlob.com/cookbook/pin-an-identifier",
      "title": "Find an exact error code or identifier",
      "summary": "Use term= with mode=keyword to require an exact token, instead of letting semantic search return documents that are merely about the same subject.",
      "cluster": "cookbook"
    },
    {
      "url": "https://www.unlob.com/cookbook/two-date-clocks",
      "title": "Filter by date without losing half your results",
      "summary": "from/to filter by when we indexed a document; published_from/published_to filter by when it was published. Choosing the wrong pair is the most common date bug.",
      "cluster": "cookbook"
    },
    {
      "url": "https://www.unlob.com/cookbook/handle-rate-limits",
      "title": "Handle rate limits and retries properly",
      "summary": "Back off exponentially on 429 while honouring Retry-After, and treat the rate limit as a design constraint rather than an error to swallow.",
      "cluster": "cookbook"
    },
    {
      "url": "https://www.unlob.com/cookbook/debug-empty-results",
      "title": "Debug a search that returns nothing",
      "summary": "Remove filters one at a time from the most restrictive downward, then use why_not to distinguish a filter problem from a coverage gap.",
      "cluster": "cookbook"
    },
    {
      "url": "https://www.unlob.com/cookbook/audit-what-was-excluded",
      "title": "Find out why a URL is not in your results",
      "summary": "why_not(url) reports present, removed with a typed reason, or never admitted — so a gap in coverage is a fact you can act on rather than silence.",
      "cluster": "cookbook"
    },
    {
      "url": "https://www.unlob.com/cookbook/search-across-languages",
      "title": "Search across languages without translating",
      "summary": "Semantic and hybrid modes cross languages natively, so an English query retrieves relevant German passages; lang= narrows to one when you need it.",
      "cluster": "cookbook"
    },
    {
      "url": "https://www.unlob.com/cookbook/assemble-a-context-pack",
      "title": "Build a context pack in one call",
      "summary": "assemble_context runs the search, collapses duplicates, ranks by trust and packs to a token budget — replacing about twenty calls and the reasoning between them.",
      "cluster": "cookbook"
    },
    {
      "url": "https://www.unlob.com/cookbook/work-through-more-results",
      "title": "Work through more results than one call returns",
      "summary": "There is no cursor. Partition the query space by date window, host or content type and run one call per partition — which is faster and cheaper than paging anyway.",
      "cluster": "cookbook"
    },
    {
      "url": "https://www.unlob.com/build/langgraph",
      "title": "Build a research agent with LangGraph",
      "summary": "Build a research agent on LangGraph, wiring unlob search and context assembly as tools on a prebuilt ReAct graph with checkpointed state.",
      "cluster": "build"
    },
    {
      "url": "https://www.unlob.com/build/claude-agent-sdk",
      "title": "Build a research agent with Claude Agent SDK",
      "summary": "Build a research agent on the Claude Agent SDK, adding unlob as an MCP server alongside the SDK’s built-in file and shell tools.",
      "cluster": "build"
    },
    {
      "url": "https://www.unlob.com/build/openai-agents-sdk",
      "title": "Build a research agent with OpenAI Agents SDK",
      "summary": "Build a research agent on the OpenAI Agents SDK, exposing unlob search and context assembly as function tools with handoffs and tracing.",
      "cluster": "build"
    },
    {
      "url": "https://www.unlob.com/build/pydantic-ai",
      "title": "Build a research agent with Pydantic AI",
      "summary": "Build a research agent on Pydantic AI with typed dependencies, validated structured output and unlob as a tool.",
      "cluster": "build"
    },
    {
      "url": "https://www.unlob.com/build/vercel-ai-sdk",
      "title": "Build a research agent with Vercel AI SDK",
      "summary": "Build a research agent with the Vercel AI SDK, defining unlob tools with Zod schemas and streaming the result to a React UI.",
      "cluster": "build"
    },
    {
      "url": "https://www.unlob.com/build/mastra",
      "title": "Build a research agent with Mastra",
      "summary": "Build a research agent on Mastra, combining typed tools, durable workflows and built-in memory in one TypeScript codebase.",
      "cluster": "build"
    },
    {
      "url": "https://www.unlob.com/build/crewai",
      "title": "Build a research agent with CrewAI",
      "summary": "Build a research crew on CrewAI, giving a researcher and a fact-checker separate roles over the same unlob index.",
      "cluster": "build"
    },
    {
      "url": "https://www.unlob.com/build/llamaindex-workflows",
      "title": "Build a research agent with LlamaIndex Workflows",
      "summary": "Build a research agent as an event-driven LlamaIndex Workflow, with explicit steps for search, corroboration and synthesis.",
      "cluster": "build"
    },
    {
      "url": "https://www.unlob.com/build/google-adk",
      "title": "Build a research agent with Google ADK",
      "summary": "Build a research agent on Google’s Agent Development Kit, wrapping unlob as a FunctionTool alongside Gemini models.",
      "cluster": "build"
    },
    {
      "url": "https://www.unlob.com/build/n8n",
      "title": "Build a research agent with n8n",
      "summary": "Build a research workflow in n8n by wiring the unlob HTTP endpoint into an AI Agent node — no code, and schedulable.",
      "cluster": "build"
    },
    {
      "url": "https://www.unlob.com/use-cases/rag-pipelines",
      "title": "RAG over the open web",
      "summary": "Retrieve, deduplicate, trust-rank and pack to a token budget — either as separate calls you control, or as one call that does the whole loop.",
      "cluster": "use-cases"
    },
    {
      "url": "https://www.unlob.com/use-cases/research-agents",
      "title": "Autonomous research agents",
      "summary": "Graph traversal replaces the search-read-search loop: triage a field by centrality, build entity briefs in one call, and follow edges instead of guessing new queries.",
      "cluster": "use-cases"
    },
    {
      "url": "https://www.unlob.com/use-cases/fact-checking",
      "title": "Fact-checking with corroboration counts",
      "summary": "Count distinct hosts asserting a claim rather than counting copies — and get the count from an index where deduplication does not destroy it.",
      "cluster": "use-cases"
    },
    {
      "url": "https://www.unlob.com/use-cases/news-monitoring",
      "title": "Monitoring topics and entities",
      "summary": "Browse by recency with no query at all, bound by publication date, and collapse syndication so a monitoring feed carries distinct events.",
      "cluster": "use-cases"
    },
    {
      "url": "https://www.unlob.com/use-cases/competitive-intelligence",
      "title": "Competitive and market intelligence",
      "summary": "Entity dossiers, co-mention discovery and connecting paths — the operations that make competitive research structural rather than a search loop.",
      "cluster": "use-cases"
    },
    {
      "url": "https://www.unlob.com/use-cases/developer-tools",
      "title": "Documentation search for coding agents",
      "summary": "The code vertical and the docs content type remove tutorial blogspam; the term filter makes error-code lookup exact.",
      "cluster": "use-cases"
    },
    {
      "url": "https://www.unlob.com/use-cases/question-answering",
      "title": "Grounded question answering",
      "summary": "Get a packed, corroborated context set in one call, with a reason attached to every passage so the answer can be explained.",
      "cluster": "use-cases"
    },
    {
      "url": "https://www.unlob.com/use-cases/compliance-research",
      "title": "Regulatory and compliance research",
      "summary": "Time-bounded queries, authority filters, uniform corroboration thresholds and an endpoint that explains any exclusion.",
      "cluster": "use-cases"
    },
    {
      "url": "https://www.unlob.com/use-cases/content-discovery",
      "title": "Finding sources worth following",
      "summary": "Centrality surfaces what a field treats as foundational; similar and related widen from a seed without inventing new queries.",
      "cluster": "use-cases"
    },
    {
      "url": "https://www.unlob.com/use-cases/multilingual-products",
      "title": "Serving users in many languages",
      "summary": "One embedding space for 101 languages means retrieval crosses languages without a translation step or a per-language index.",
      "cluster": "use-cases"
    },
    {
      "url": "https://www.unlob.com/compare/unlob-vs-parallel",
      "title": "unlob vs Parallel Search",
      "summary": "Two own-index, agent-first search APIs with the same founding thesis. Parallel has $230M and 100,000 developers; unlob is a quarter of the price and traverses a coverage graph.",
      "cluster": "compare"
    },
    {
      "url": "https://www.unlob.com/compare/unlob-vs-exa",
      "title": "unlob vs Exa",
      "summary": "Exa is the best-funded neural search API in the category at a $2.2B valuation. unlob is 17.5× cheaper and adds graph traversal and coverage auditing.",
      "cluster": "compare"
    },
    {
      "url": "https://www.unlob.com/compare/unlob-vs-brave-search-api",
      "title": "unlob vs the Brave Search API",
      "summary": "Brave runs a genuinely independent index of 40B+ pages. It ended its free tier in February 2026 and costs 12.5× more per query.",
      "cluster": "compare"
    },
    {
      "url": "https://www.unlob.com/compare/unlob-vs-tavily",
      "title": "unlob vs Tavily",
      "summary": "Tavily pioneered LLM-shaped search responses and was acquired by Nebius for $275M in February 2026. It does not own an index; unlob does, at a twentieth of the price.",
      "cluster": "compare"
    },
    {
      "url": "https://www.unlob.com/compare/unlob-vs-gemini-grounding",
      "title": "unlob vs Grounding with Google Search",
      "summary": "Google’s first-party grounding gives Gemini the best index in the world at $14 per 1,000 search queries — 35× unlob, and only usable from Gemini.",
      "cluster": "compare"
    },
    {
      "url": "https://www.unlob.com/compare/unlob-vs-perplexity-sonar",
      "title": "unlob vs Perplexity Sonar",
      "summary": "Sonar returns a synthesised answer with citations. unlob returns results you control, at a fraction of the per-request search fee.",
      "cluster": "compare"
    },
    {
      "url": "https://www.unlob.com/compare/unlob-vs-serper",
      "title": "unlob vs Serper",
      "summary": "Serper is the cheapest way to get raw Google results into an agent. It is also a Google SERP wrapper, with everything that implies.",
      "cluster": "compare"
    },
    {
      "url": "https://www.unlob.com/compare/unlob-vs-serpapi",
      "title": "unlob vs SerpAPI",
      "summary": "SerpAPI is the mature multi-engine SERP API. At roughly $25 per 1,000 it is 62× unlob, and it is a scraping product rather than an index.",
      "cluster": "compare"
    },
    {
      "url": "https://www.unlob.com/compare/unlob-vs-firecrawl",
      "title": "unlob vs Firecrawl",
      "summary": "Firecrawl turns URLs into clean markdown. unlob finds the URLs. They are complements more often than alternatives.",
      "cluster": "compare"
    },
    {
      "url": "https://www.unlob.com/compare/unlob-vs-linkup",
      "title": "unlob vs Linkup",
      "summary": "Linkup is a well-regarded grounding API with a sub-second tier and native parallel search. unlob owns its index and publishes a flat rate.",
      "cluster": "compare"
    },
    {
      "url": "https://www.unlob.com/compare/unlob-vs-valyu",
      "title": "unlob vs Valyu",
      "summary": "Valyu spans web plus licensed proprietary corpora with publisher attribution. unlob is open-web only, at a published flat rate.",
      "cluster": "compare"
    },
    {
      "url": "https://www.unlob.com/compare/unlob-vs-diffbot",
      "title": "unlob vs Diffbot",
      "summary": "Diffbot runs one of the few independent commercial crawls and a structured Knowledge Graph of entities. unlob indexes passages and exposes a coverage graph over them.",
      "cluster": "compare"
    },
    {
      "url": "https://www.unlob.com/compare/unlob-vs-bright-data",
      "title": "unlob vs Bright Data",
      "summary": "Bright Data is proxy and unblocking infrastructure at industrial scale. unlob is a search index. Different layers of the stack.",
      "cluster": "compare"
    },
    {
      "url": "https://www.unlob.com/compare/unlob-vs-dataforseo",
      "title": "unlob vs DataForSEO",
      "summary": "DataForSEO is the cheapest SERP data in the market at roughly $0.60–1 per 1,000. It is built for SEO tooling, not for agents.",
      "cluster": "compare"
    },
    {
      "url": "https://www.unlob.com/compare/unlob-vs-google-custom-search",
      "title": "unlob vs Google Custom Search JSON API",
      "summary": "Google’s Programmable Search gives you real Google results at $5 per 1,000, with a hard 10,000-per-day ceiling and terms written for site search.",
      "cluster": "compare"
    },
    {
      "url": "https://www.unlob.com/compare/unlob-vs-azure-grounding-with-bing",
      "title": "unlob vs Grounding with Bing Search",
      "summary": "Microsoft’s designated successor to the retired Bing Search API, available only inside Azure AI Foundry. A platform commitment, not an API swap.",
      "cluster": "compare"
    },
    {
      "url": "https://www.unlob.com/compare/unlob-vs-openai-web-search",
      "title": "unlob vs the OpenAI web search tool",
      "summary": "OpenAI’s built-in search tool needs no integration if you are already on the Responses API — and gives you no control over retrieval.",
      "cluster": "compare"
    },
    {
      "url": "https://www.unlob.com/compare/unlob-vs-jina-reader",
      "title": "unlob vs Jina Reader",
      "summary": "Jina Reader converts a URL to markdown with a URL prefix. unlob finds which URLs matter and returns their text.",
      "cluster": "compare"
    },
    {
      "url": "https://www.unlob.com/compare/unlob-vs-mojeek",
      "title": "unlob vs Mojeek",
      "summary": "Mojeek has crawled and indexed the web independently since 2004. unlob is a newer index built specifically for agent retrieval.",
      "cluster": "compare"
    },
    {
      "url": "https://www.unlob.com/compare/exa-vs-parallel",
      "title": "Exa vs Parallel Search",
      "summary": "The two best-funded own-index search APIs, compared on price, product surface and funding — with sources.",
      "cluster": "compare"
    },
    {
      "url": "https://www.unlob.com/compare/exa-vs-tavily",
      "title": "Exa vs Tavily",
      "summary": "Neural search over a proprietary index against an LLM-shaped retrieval layer, one of which was acquired in February 2026.",
      "cluster": "compare"
    },
    {
      "url": "https://www.unlob.com/compare/brave-vs-exa",
      "title": "Brave Search API vs Exa",
      "summary": "Two independent indexes with different design targets: a conventional web search API against a neural one built for AI.",
      "cluster": "compare"
    },
    {
      "url": "https://www.unlob.com/compare/tavily-vs-linkup",
      "title": "Tavily vs Linkup",
      "summary": "Two grounding APIs for LLMs, one now owned by Nebius and one independently funded.",
      "cluster": "compare"
    },
    {
      "url": "https://www.unlob.com/compare/serper-vs-serpapi",
      "title": "Serper vs SerpAPI",
      "summary": "Two Google SERP APIs, twenty-five times apart on price.",
      "cluster": "compare"
    },
    {
      "url": "https://www.unlob.com/alternatives/exa",
      "title": "Exa alternatives",
      "summary": "Neural, embeddings-first search over a proprietary index, sold alongside content extraction, answers and agentic research products.",
      "cluster": "alternatives"
    },
    {
      "url": "https://www.unlob.com/alternatives/parallel",
      "title": "Parallel Search alternatives",
      "summary": "A suite of web search, extraction and research APIs on a proprietary index, from the former Twitter CEO. The closest competitor to unlob by thesis.",
      "cluster": "alternatives"
    },
    {
      "url": "https://www.unlob.com/alternatives/brave-search-api",
      "title": "Brave Search API alternatives",
      "summary": "A genuinely independent index of 40B+ pages, sold as a conventional search API with an LLM-context option. Long the default independent choice.",
      "cluster": "alternatives"
    },
    {
      "url": "https://www.unlob.com/alternatives/mojeek",
      "title": "Mojeek alternatives",
      "summary": "A UK independent crawler and index, running since 2004. Small by comparison, but genuinely its own — and the oldest independent index still standing.",
      "cluster": "alternatives"
    },
    {
      "url": "https://www.unlob.com/alternatives/tavily",
      "title": "Tavily alternatives",
      "summary": "An LLM-shaped retrieval layer returning cleaned, ranked, cited chunks rather than raw SERPs. Acquired by Nebius in February 2026.",
      "cluster": "alternatives"
    },
    {
      "url": "https://www.unlob.com/alternatives/linkup",
      "title": "Linkup alternatives",
      "summary": "A French grounding API returning structured, citation-carrying content for LLMs, with a sub-second \"fast\" tier and native parallel search.",
      "cluster": "alternatives"
    },
    {
      "url": "https://www.unlob.com/alternatives/valyu",
      "title": "Valyu alternatives",
      "summary": "A London deep-search API spanning web plus licensed proprietary sources, with content attribution and pay-per-use monetisation for publishers.",
      "cluster": "alternatives"
    },
    {
      "url": "https://www.unlob.com/alternatives/serpapi",
      "title": "SerpAPI alternatives",
      "summary": "The mature multi-engine SERP API. Returns real Google, Bing and Baidu result pages with all their features — at SERP-scraping prices.",
      "cluster": "alternatives"
    },
    {
      "url": "https://www.unlob.com/alternatives/serper",
      "title": "Serper alternatives",
      "summary": "The cheapest way to get raw Google results into an agent. Fast, minimal, and entirely dependent on Google continuing to be scrapeable.",
      "cluster": "alternatives"
    },
    {
      "url": "https://www.unlob.com/alternatives/dataforseo",
      "title": "DataForSEO alternatives",
      "summary": "Industrial SERP infrastructure built for SEO tooling rather than agents. The cheapest per query in the field, with the lowest-level API to match.",
      "cluster": "alternatives"
    },
    {
      "url": "https://www.unlob.com/alternatives/google-custom-search",
      "title": "Google Custom Search JSON API alternatives",
      "summary": "Google's own programmable search endpoint. Real Google results, a hard 10,000/day ceiling, and terms written for site search rather than agents.",
      "cluster": "alternatives"
    },
    {
      "url": "https://www.unlob.com/alternatives/gemini-grounding",
      "title": "Grounding with Google Search alternatives",
      "summary": "Google's first-party grounding for Gemini. The best index in the world, billed per search query on top of tokens, and only usable from Gemini.",
      "cluster": "alternatives"
    },
    {
      "url": "https://www.unlob.com/alternatives/perplexity-sonar",
      "title": "Perplexity Sonar alternatives",
      "summary": "Search and synthesis in one call. You get an answer rather than results, which is convenient until you need to control retrieval yourself.",
      "cluster": "alternatives"
    },
    {
      "url": "https://www.unlob.com/alternatives/azure-grounding-with-bing",
      "title": "Grounding with Bing Search alternatives",
      "summary": "Microsoft's designated successor to the retired Bing Search API, available only inside Azure AI Foundry. A platform commitment, not an API swap.",
      "cluster": "alternatives"
    },
    {
      "url": "https://www.unlob.com/alternatives/bing-web-search-api",
      "title": "Bing Web Search API alternatives",
      "summary": "For a decade the default independent web search API. Retired on 11 August 2025, taking Web, Image, News, Video, Entity and Custom Search with it.",
      "cluster": "alternatives"
    },
    {
      "url": "https://www.unlob.com/alternatives/openai-web-search",
      "title": "OpenAI web search tool alternatives",
      "summary": "The built-in search tool in the Responses API. Zero integration work if you are already on OpenAI, and no control over retrieval whatsoever.",
      "cluster": "alternatives"
    },
    {
      "url": "https://www.unlob.com/alternatives/firecrawl",
      "title": "Firecrawl alternatives",
      "summary": "Crawl, scrape and clean any URL into markdown for an LLM. A complement to a search API rather than a replacement — it needs URLs to start from.",
      "cluster": "alternatives"
    },
    {
      "url": "https://www.unlob.com/alternatives/jina-reader",
      "title": "Jina Reader alternatives",
      "summary": "Prefix any URL and get clean markdown back. The lowest-friction extraction tool there is, and priced per token rather than per page.",
      "cluster": "alternatives"
    },
    {
      "url": "https://www.unlob.com/alternatives/diffbot",
      "title": "Diffbot alternatives",
      "summary": "One of the very few independent commercial web crawls, feeding a structured Knowledge Graph. Entity-shaped rather than passage-shaped.",
      "cluster": "alternatives"
    },
    {
      "url": "https://www.unlob.com/alternatives/bright-data",
      "title": "Bright Data alternatives",
      "summary": "Proxy and unblocking infrastructure with a scraping suite and an agent-facing MCP server. Built for volume collection, priced accordingly.",
      "cluster": "alternatives"
    },
    {
      "url": "https://www.unlob.com/migrate/bing-web-search-api",
      "title": "Migrating off the Bing Web Search API",
      "summary": "The Bing Search API was retired in August 2025, taking Web, Image, News, Video, Entity, Autosuggest, Spell Check and Custom Search with it. Microsoft’s designated successor requires adopting Azure AI Foundry.",
      "cluster": "migrate"
    },
    {
      "url": "https://www.unlob.com/migrate/brave-free-tier",
      "title": "The Brave Search API free tier ended — what now",
      "summary": "Brave replaced its long-running free developer tier with a $5 monthly credit in February 2026. For projects built on the free tier, that is a new bill; for onboarding funnels that depended on it, a problem.",
      "cluster": "migrate"
    },
    {
      "url": "https://www.unlob.com/migrate/tavily",
      "title": "Migrating from Tavily after the Nebius acquisition",
      "summary": "Tavily was acquired by Nebius in February 2026. The service continues, but acquisitions prompt re-evaluation — and Tavily never owned a web index.",
      "cluster": "migrate"
    },
    {
      "url": "https://www.unlob.com/migrate/gemini-grounding",
      "title": "Moving off Google Search grounding to cut cost",
      "summary": "Google Search grounding is the best retrieval available and priced accordingly — $14 per 1,000 search queries on Gemini 3.x, $35 on 2.5 models, with one prompt able to trigger several billed queries.",
      "cluster": "migrate"
    },
    {
      "url": "https://www.unlob.com/integrations/claude-code",
      "title": "unlob for Claude Code",
      "summary": "Add unlob to Claude Code as an MCP server and give it all eleven tools in one config block.",
      "cluster": "integrations"
    },
    {
      "url": "https://www.unlob.com/integrations/claude-desktop",
      "title": "unlob for Claude Desktop",
      "summary": "Configure unlob as an MCP server in Claude Desktop for web search and graph traversal in chat.",
      "cluster": "integrations"
    },
    {
      "url": "https://www.unlob.com/integrations/cursor",
      "title": "unlob for Cursor",
      "summary": "Add unlob to Cursor as an MCP server so the editor agent can search documentation and the open web.",
      "cluster": "integrations"
    },
    {
      "url": "https://www.unlob.com/integrations/chatgpt",
      "title": "unlob for ChatGPT",
      "summary": "Connect unlob to ChatGPT through MCP for retrieval you control rather than the built-in web tool.",
      "cluster": "integrations"
    },
    {
      "url": "https://www.unlob.com/integrations/langchain",
      "title": "unlob for LangChain",
      "summary": "Wrap the unlob search API as a LangChain tool in a few lines — it is a plain HTTP GET.",
      "cluster": "integrations"
    },
    {
      "url": "https://www.unlob.com/integrations/llamaindex",
      "title": "unlob for LlamaIndex",
      "summary": "Use unlob as a retriever in LlamaIndex — metadata first, then fetch the documents you actually selected.",
      "cluster": "integrations"
    },
    {
      "url": "https://www.unlob.com/integrations/vercel-ai-sdk",
      "title": "unlob for Vercel AI SDK",
      "summary": "Define unlob as a tool in the Vercel AI SDK with a Zod schema and a fetch call.",
      "cluster": "integrations"
    },
    {
      "url": "https://www.unlob.com/integrations/openai-agents-sdk",
      "title": "unlob for OpenAI Agents SDK",
      "summary": "Register unlob as a function tool so your agent has retrieval you control rather than the built-in web tool.",
      "cluster": "integrations"
    },
    {
      "url": "https://www.unlob.com/integrations/crewai",
      "title": "unlob for CrewAI",
      "summary": "Give CrewAI agents a shared unlob search tool with filters appropriate to each role.",
      "cluster": "integrations"
    },
    {
      "url": "https://www.unlob.com/integrations/n8n",
      "title": "unlob for n8n",
      "summary": "Call unlob from an n8n HTTP Request node — no code, no custom node needed.",
      "cluster": "integrations"
    },
    {
      "url": "https://www.unlob.com/content-types/docs",
      "title": "Documentation",
      "summary": "Official product, API and library documentation — reference material maintained by whoever built the thing.",
      "cluster": "content-types"
    },
    {
      "url": "https://www.unlob.com/content-types/code",
      "title": "Code",
      "summary": "Source files, repository content and code-bearing pages.",
      "cluster": "content-types"
    },
    {
      "url": "https://www.unlob.com/content-types/academic",
      "title": "Academic",
      "summary": "Papers, preprints and scholarly writing.",
      "cluster": "content-types"
    },
    {
      "url": "https://www.unlob.com/content-types/news",
      "title": "News",
      "summary": "Reported news articles with a publication date and an identifiable outlet.",
      "cluster": "content-types"
    },
    {
      "url": "https://www.unlob.com/content-types/article",
      "title": "Article",
      "summary": "Long-form editorial writing that is not news reporting.",
      "cluster": "content-types"
    },
    {
      "url": "https://www.unlob.com/content-types/reference",
      "title": "Reference",
      "summary": "Encyclopedic and reference material — definitions, tables, standards.",
      "cluster": "content-types"
    },
    {
      "url": "https://www.unlob.com/content-types/qa",
      "title": "Q&A",
      "summary": "Question-and-answer pages: one problem, one or more proposed solutions.",
      "cluster": "content-types"
    },
    {
      "url": "https://www.unlob.com/content-types/forum",
      "title": "Forum",
      "summary": "Threaded discussion: mailing lists, message boards, community threads.",
      "cluster": "content-types"
    },
    {
      "url": "https://www.unlob.com/content-types/how-to",
      "title": "How-to",
      "summary": "Procedural content: step-by-step instructions for accomplishing a task.",
      "cluster": "content-types"
    },
    {
      "url": "https://www.unlob.com/content-types/product",
      "title": "Product",
      "summary": "Product and service pages, including pricing and specifications.",
      "cluster": "content-types"
    },
    {
      "url": "https://www.unlob.com/content-types/opinion",
      "title": "Opinion",
      "summary": "Explicitly argumentative writing: columns, editorials, position pieces.",
      "cluster": "content-types"
    },
    {
      "url": "https://www.unlob.com/content-types/video",
      "title": "Video",
      "summary": "Pages whose primary content is video, indexed via their text metadata and transcripts.",
      "cluster": "content-types"
    },
    {
      "url": "https://www.unlob.com/content-types/document",
      "title": "Document",
      "summary": "Standalone documents: PDFs, reports, filings and papers published as files.",
      "cluster": "content-types"
    },
    {
      "url": "https://www.unlob.com/topics/technology",
      "title": "Technology",
      "summary": "Software, hardware, infrastructure and the industry around them.",
      "cluster": "topics"
    },
    {
      "url": "https://www.unlob.com/topics/science",
      "title": "Science",
      "summary": "Research findings, methods and scientific reporting across disciplines.",
      "cluster": "topics"
    },
    {
      "url": "https://www.unlob.com/topics/health",
      "title": "Health",
      "summary": "Medicine, public health, clinical research and health policy.",
      "cluster": "topics"
    },
    {
      "url": "https://www.unlob.com/topics/finance",
      "title": "Finance",
      "summary": "Markets, banking, monetary policy and corporate finance.",
      "cluster": "topics"
    },
    {
      "url": "https://www.unlob.com/topics/business",
      "title": "Business",
      "summary": "Companies, strategy, funding, operations and industry structure.",
      "cluster": "topics"
    },
    {
      "url": "https://www.unlob.com/topics/politics",
      "title": "Politics",
      "summary": "Government, policy, elections and regulation.",
      "cluster": "topics"
    },
    {
      "url": "https://www.unlob.com/topics/education",
      "title": "Education",
      "summary": "Teaching, learning, institutions and educational policy.",
      "cluster": "topics"
    },
    {
      "url": "https://www.unlob.com/topics/sports",
      "title": "Sports",
      "summary": "Competition, results, and the business of sport.",
      "cluster": "topics"
    },
    {
      "url": "https://www.unlob.com/topics/entertainment",
      "title": "Entertainment",
      "summary": "Film, television, music, games and the industries behind them.",
      "cluster": "topics"
    },
    {
      "url": "https://www.unlob.com/topics/food",
      "title": "Food",
      "summary": "Cooking, ingredients, restaurants and food production.",
      "cluster": "topics"
    },
    {
      "url": "https://www.unlob.com/topics/travel",
      "title": "Travel",
      "summary": "Destinations, transport, accommodation and travel logistics.",
      "cluster": "topics"
    },
    {
      "url": "https://www.unlob.com/topics/lifestyle",
      "title": "Lifestyle",
      "summary": "Personal finance, home, wellness, relationships and consumer advice.",
      "cluster": "topics"
    },
    {
      "url": "https://www.unlob.com/languages/english",
      "title": "English web search",
      "summary": "The largest slice of the corpus by a wide margin, and the language most technical documentation is written in.",
      "cluster": "languages"
    },
    {
      "url": "https://www.unlob.com/languages/spanish",
      "title": "Spanish web search",
      "summary": "Broad coverage across Spain and Latin America; regional variation is handled by the embedding rather than by separate indexes.",
      "cluster": "languages"
    },
    {
      "url": "https://www.unlob.com/languages/chinese",
      "title": "Chinese web search",
      "summary": "Tokenised as character bigrams at index and query time, because the script does not delimit words.",
      "cluster": "languages"
    },
    {
      "url": "https://www.unlob.com/languages/german",
      "title": "German web search",
      "summary": "Compound-heavy, which suits semantic retrieval — a compound and its parts sit close together in the embedding space.",
      "cluster": "languages"
    },
    {
      "url": "https://www.unlob.com/languages/french",
      "title": "French web search",
      "summary": "Strong institutional and academic coverage, particularly in the .fr top-level domain.",
      "cluster": "languages"
    },
    {
      "url": "https://www.unlob.com/languages/japanese",
      "title": "Japanese web search",
      "summary": "Character-bigram tokenisation, mixing three scripts within a single passage without a separate pipeline.",
      "cluster": "languages"
    },
    {
      "url": "https://www.unlob.com/languages/portuguese",
      "title": "Portuguese web search",
      "summary": "Covers both Brazilian and European variants in one space.",
      "cluster": "languages"
    },
    {
      "url": "https://www.unlob.com/languages/russian",
      "title": "Russian web search",
      "summary": "Highly inflected, which is where semantic retrieval outperforms keyword matching most clearly.",
      "cluster": "languages"
    },
    {
      "url": "https://www.unlob.com/languages/italian",
      "title": "Italian web search",
      "summary": "Well-represented in academic and institutional writing.",
      "cluster": "languages"
    },
    {
      "url": "https://www.unlob.com/languages/dutch",
      "title": "Dutch web search",
      "summary": "Compound-forming like German, with heavy English borrowing in technical text.",
      "cluster": "languages"
    },
    {
      "url": "https://www.unlob.com/languages/korean",
      "title": "Korean web search",
      "summary": "Agglutinative; bigram tokenisation handles the morphology without a language-specific analyser.",
      "cluster": "languages"
    },
    {
      "url": "https://www.unlob.com/languages/arabic",
      "title": "Arabic web search",
      "summary": "Right-to-left, root-based morphology, and frequently written without short vowels — a case where semantic mode substantially outperforms keyword.",
      "cluster": "languages"
    },
    {
      "url": "https://www.unlob.com/languages/hindi",
      "title": "Hindi web search",
      "summary": "Devanagari script, with substantial code-mixing with English in technical writing.",
      "cluster": "languages"
    },
    {
      "url": "https://www.unlob.com/languages/polish",
      "title": "Polish web search",
      "summary": "Seven cases and rich inflection; semantic retrieval avoids the stemming problem entirely.",
      "cluster": "languages"
    },
    {
      "url": "https://www.unlob.com/languages/turkish",
      "title": "Turkish web search",
      "summary": "Agglutinative, so a single token can carry what several English words would.",
      "cluster": "languages"
    },
    {
      "url": "https://www.unlob.com/languages/swedish",
      "title": "Swedish web search",
      "summary": "Compound-forming, with strong institutional and technical coverage.",
      "cluster": "languages"
    },
    {
      "url": "https://www.unlob.com/languages/indonesian",
      "title": "Indonesian web search",
      "summary": "One of the fastest-growing slices of the web corpus.",
      "cluster": "languages"
    },
    {
      "url": "https://www.unlob.com/languages/vietnamese",
      "title": "Vietnamese web search",
      "summary": "Latin script with extensive diacritics; retrieval is diacritic-aware.",
      "cluster": "languages"
    },
    {
      "url": "https://www.unlob.com/languages/ukrainian",
      "title": "Ukrainian web search",
      "summary": "Cyrillic and highly inflected; distinguished from Russian in the index rather than folded into it.",
      "cluster": "languages"
    },
    {
      "url": "https://www.unlob.com/languages/czech",
      "title": "Czech web search",
      "summary": "Seven cases and free word order, both of which favour semantic mode.",
      "cluster": "languages"
    },
    {
      "url": "https://www.unlob.com/languages/romanian",
      "title": "Romanian web search",
      "summary": "A Romance language with Slavic borrowing, which the shared space handles without special casing.",
      "cluster": "languages"
    },
    {
      "url": "https://www.unlob.com/languages/greek",
      "title": "Greek web search",
      "summary": "Its own script and a heavy technical-vocabulary contribution to every other language here.",
      "cluster": "languages"
    },
    {
      "url": "https://www.unlob.com/languages/hebrew",
      "title": "Hebrew web search",
      "summary": "Right-to-left, root-based, and usually unvocalised — semantic mode is strongly preferable.",
      "cluster": "languages"
    },
    {
      "url": "https://www.unlob.com/languages/danish",
      "title": "Danish web search",
      "summary": "Compound-forming, and close enough to Swedish and Norwegian that cross-language retrieval works well.",
      "cluster": "languages"
    },
    {
      "url": "https://www.unlob.com/languages/finnish",
      "title": "Finnish web search",
      "summary": "Fifteen cases and extreme agglutination — the clearest case in the index for retrieving by meaning rather than by form.",
      "cluster": "languages"
    },
    {
      "url": "https://www.unlob.com/languages/norwegian",
      "title": "Norwegian web search",
      "summary": "Two written standards, both handled in the same space.",
      "cluster": "languages"
    },
    {
      "url": "https://www.unlob.com/languages/hungarian",
      "title": "Hungarian web search",
      "summary": "Agglutinative and unrelated to its neighbours, so cross-language retrieval is genuinely doing work here.",
      "cluster": "languages"
    },
    {
      "url": "https://www.unlob.com/languages/thai",
      "title": "Thai web search",
      "summary": "No spaces between words; segmentation is handled at index and query time.",
      "cluster": "languages"
    },
    {
      "url": "https://www.unlob.com/languages/bengali",
      "title": "Bengali web search",
      "summary": "One of the largest languages by speaker count and among the most under-served by search APIs.",
      "cluster": "languages"
    },
    {
      "url": "https://www.unlob.com/languages/persian",
      "title": "Persian web search",
      "summary": "Right-to-left Arabic script with distinct morphology from Arabic.",
      "cluster": "languages"
    }
  ]
}