# Web search API for your agent

Web search API for an agent: it sends a search query to a catalog endpoint and reads ranked links, titles and snippets back. Several providers sell the call, so the agent tries the cheapest first. You pay per call, and a failed call costs nothing.

## What this does

Your agent knows nothing that happened after its training ended. To answer with current facts, it needs to search, read the top links and cite them. One search call returns the ranked links for a query, and the agent decides which pages to open next.

On looot the route customers use most is the job itself: send job:web.search with fallback on, and looot picks a provider and tries the next one when the first returns nothing. The providers differ in what they search and return. Brave runs its own index, Exa offers neural search, Linkup and Tavily can write a sourced answer, and Firecrawl can scrape each result in the same call.

You give: a search query. Example: postgres vector search extensions.

## What differs between providers

- TinyFish Web Agent Automation API (tinyfish-search): takes a query with optional include and exclude domain lists and date bounds, and can switch to news or research papers.
- Brave Search API (brave-search-res-web-search): searches Brave's own index, with optional news, videos, FAQ, discussions and infobox blocks, and a freshness filter.
- Linkup (linkup-search): returns ranked results, a sourced answer or structured output, with a fast, standard or deep mode and date filters.
- Exa Public API (exa-search): runs a neural or keyword search, filters by category, domain and date, and can add the page text to each result.
- Tavily Search and Extract API (tavily-search): returns each result with its content and a relevance score, plus a written answer when you ask for one.
- Firecrawl API (firecrawl-search): can scrape each result page in the same call, and filters by location and time.
- Jina Search Foundation API (jina-search): returns results in search-engine order, formatted for a language model, with country and language options.

## Before you start

- Most endpoints here return links and snippets, not whole pages. To read a page, send its link to the URL to markdown API.
- Check how each endpoint bills. Most charge per search, Firecrawl charges per result, so set a result limit before a broad query.
- Set the country when the answer depends on it. Several endpoints take a location or a country code, and the results change with it.
- Ask for a written answer only when your agent will not read the sources itself. Linkup and Tavily return one on request, with the links behind it.

## Prompt

Use looot to run job:web.search with fallback on for postgres vector search extensions, and return the title, link and snippet of the top 10 results with the provider that answered. 1. Set up https://looot.ai/skill.md. 2. Search the catalog for each step and check its price before you call. 3. Run the cheapest endpoint that fits. 4. Show the results as a table and the total cost.

## Steps and providers

- Search the web: tinyfish, brave-search, linkup, exa, tavily, firecrawl, jina. 1 call per search.

## What comes back

- Ranked links
- Titles and snippets
- Page text
- Sourced answer
- Result date

## The request and what comes back

Each run is one POST to /v1/runs with an endpoint id and an input. These are illustrative calls with generic values. The run's result holds the provider's own fields.

- TinyFish Web Agent Automation API: {"endpointId":"tinyfish-search","input":{"query":"postgres vector search extensions"},"wait":30}
- Brave Search API: {"endpointId":"brave-search-res-web-search","input":{"q":"postgres vector search extensions"},"wait":30}

## What it cannot do

It does not sign in to sites, so it cannot search pages behind a login or a paywall. It returns links and snippets, not Google's own results page; the Google SERP API page covers that. Running the same search on a timer needs scheduled runs, not available yet.

## What is a web search API for AI agents?

It is an endpoint your agent calls with a query to get ranked links back as data, instead of a results page made for people. The agent reads the titles and snippets, opens the pages it needs and cites them in its answer.

## Is this an alternative to the Tavily or Exa API?

Tavily and Exa are two of the providers on this page. One looot key reaches both and the others, so your agent can run the same query on each and compare. With job:web.search and fallback on, a miss at one provider moves to the next.

## Can my agent search news or research papers?

Yes. TinyFish can switch to news or research papers, Brave can add a news block, and Tavily takes a topic. The notes above say which endpoint does what.

## How do I limit results to certain sites or dates?

Use an endpoint that filters. TinyFish, Linkup and Exa take domains to include or exclude and a date range. Your agent passes them with the query.

## Does a search return the text of each page?

Some do. Exa can add the page text, Tavily returns content per result and Firecrawl can scrape each result. The others return snippets, and the agent reads a full page with the URL to markdown API.

## How much does one search cost?

You pay per call, and the price depends on the provider your agent picks. This page reads the cheapest live price from the catalog and shows no number when the catalog is unreachable.

## Do I pay when a web search call fails?

No. A call that fails at the provider costs nothing, and your agent can retry it or send it to another provider.

## Do I need an account with each web search provider?

No. One looot key reaches every provider in the catalog. You top up once, and each call is billed at the price shown before it runs.

## How do I call web search from code?

Send a POST to /v1/runs with the endpoint id, the input and a new idempotency key, and your looot token in the Authorization header. With wait set to 30, the answer comes back in the response when the run ends within 30 seconds. Otherwise poll GET /v1/runs/<runId>.

## Can I run web search on a schedule?

That needs scheduled runs, not available yet. Run it by hand whenever you want fresh results.

## Do I pay while my agent is idle?

No. looot bills per call, and nothing runs while your agent is idle.

## Related pages

- /use-cases/url-to-markdown-api
- /use-cases/google-serp-api
- /use-cases/rank-tracking-api

## Last reviewed

2026-10-04. The cost per 1,000 search runs is read live from the catalog on the web page.

## Agent skill for this page

https://looot.ai/use-cases/web-search-api/skill.md sets an agent up for exactly the jobs on this page, with the live price of each, and offers the page's starter task once the user has picked a job and seen the price. The line to give an agent is under "Give this to your agent" below.

## For agents

### Give this to your agent

```text
set up looot for Web search API - https://looot.ai/use-cases/web-search-api/skill.md
```
