Lookup, the web search API for agents

One call returns the ranked results and the pages behind them.

Free while in beta. No card. 500 ops a month.

POST /v2/lookup
curl -X POST https://api.enconvert.com/v2/lookup \
  -H "X-API-Key: sk_your_private_key" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "model context protocol specification",
    "num_results": 5,
    "perceive_top": 1
  }'

200 OKTrimmed

{
  "results": [
    {
      "title": "Specification",
      "url": "https://modelcontextprotocol.io/specification/2025-06-18",
      "position": 1,
      "perceive": { "render_quality": 1.0, "outputs": { […] } }
    },
    […]
  ],
  "perceive_top": 1
}

A query in, pages out

Five results, and the top one already read into Markdown.

The five results, ranked
1  Specification
   https://modelcontextprotocol.io/specification/2025-06-18

2  Model Context Protocol
   https://github.com/modelcontextprotocol

3  Specification
   https://modelcontextprotocol.io/specification/draft

4  Model Context Protocol Specification
   https://modelcontextprotocol.info/specification/

5  Introducing the Model Context Protocol
   https://www.anthropic.com/news/model-context-protocol
The top result’s page, as Markdown
[…]

# Specification
[Model Context Protocol](https://modelcontextprotocol.io) (MCP) is an open protocol that enables seamless integration between LLM applications and external data sources and tools. […]

## Overview
MCP provides a standardized way for applications to:
  * Share contextual information with language models
  * Expose tools and capabilities to AI systems
  * Build composable integrations and workflows

[…]

Real output, captured 2026-11-11. […] marks a cut.

What you send and get

FieldWhat it does
queryThe search, up to 512 characters.
categoryOne of six: web (the default), news, images, scholar, patents or maps.
perceive_topFrom 0 to 10. That many top results are rendered in a real browser and returned inline.
resultsA flat list. Each has a title, url, snippet and position, whatever the category.
time_filterLimits results to the past hour, day, week, month or year.

What one call replaces

  • A search API

    Six categories behind one neutral request and response.

  • A result parser

    Title, url, snippet and position are always typed the same way.

  • A scraper fan-out

    The top results are rendered and scored in the same round trip.

Left: a large haystack. Right: a single needle on a cloth under a magnifying glass, a green thread through its eye.

Your first search

  1. Get an API key

    X-API-Key: sk_your_private_key
  2. Send a query

    POST /v2/lookup
  3. Read the top page

    results[0].perceive.outputs.markdown.url

More of the same API

Questions about the search API

How do I run a web search and get page content in one API call?

Send POST /v2/lookup with a query and set perceive_top from 0 to 10. That many top results are rendered in a real browser, and each carries an inline perceive object whose Markdown sits behind a pre-signed URL at perceive.outputs.markdown.url.

Which search categories does it support?

Six: web (the default), news, images, scholar, patents and maps. The universal fields (title, url, snippet, position) are always typed, and category-specific extras land in extra.

Am I locked in to one search provider?

No. Serper is the search provider behind it, but the request and response speak a neutral vocabulary (category, country, locale, time_filter), so a provider swap does not change the contract you code against.

Why did it read fewer pages than my perceive_top?

Auto-perceive skips results with no url, stops if the monthly ops allowance runs out mid-loop, and degrades a failed render to a warning. The response’s perceive_top reports how many pages were read, and warnings explains the gaps.

What does it cost?

One op per query, plus one op for each result it reads. Lookup is available on every plan, and the free Founding plan includes 500 ops a month with no credit card.

Search and read in one call