FreeSerp
← Search
Free Search for AI Agents

API & MCP

One free endpoint that gives an AI agent real-time web search over 20M+ live sites — ranked JSON with LLM summaries, filterable and sortable on every field. No key, CORS-open, or wire it in as an MCP tool.

Quickstart

A single GET request. No authentication.

curl 'https://freeserp.ai/api.php?q=ai+chatbot&size=3'

Returns ranked results as JSON — domain, title, LLM summary, Domain Rating, live date, tech stack and more.

Built for agents: results come pre-cleaned — no HTML to scrape, no pagination games. Each hit carries an ai_summary your model can read directly.

Endpoint

GET https://freeserp.ai/api.php

Also reachable as /api. Read-only. Responses are cached ~30s at the edge.

Parameters

ParamTypeDefaultDescription
qstringFull-text query. Matches title, AI summary and page text; exact domain names are boosted to the top. Omit q to browse/filter the whole index.
sortenumrelevanceAny sortable field (see Sorting). relevance = text score × Domain Rating.
orderasc·descdescSort direction (ignored for relevance).
sizeint20Results per page, 1–100.
fromint0Offset for paging (max 10,000).
all0·101 also returns parked/empty domains. Default: real content sites only.
ai0·101 restricts to AI-built sites (ai_source ∈ ai_likely, lovable, base44, v0, bolt).
content0·101 also returns the full extracted page text of each result under content (not just the AI summary).
content_maxintCap the returned page text to N characters. Omit for the full text.
dr_min / dr_maxintDomain Rating range filter (0–100).
from_date / to_datedateFilter by went_live (YYYY-MM-DD).
Plus an exact-match filter for every keyword field — pass the field name as a query param:
categorykeyworde.g. ai, betting/casino
ai_sourcekeyworde.g. shopify, nextjs, lovable
ai_categorieskeywordAI sub-niche, e.g. Image Generation
tldkeyworde.g. ai, io
webserverkeyworde.g. cloudflare, nginx
http_statusnumbere.g. 200

Response

{
  "ok": true,
  "query": "ai chatbot",
  "total": 48213,
  "count": 3,
  "from": 0, "size": 3,
  "sort": "relevance", "order": "desc",
  "filters": { "real_site": "1" },
  "took_ms": 34, "engine_ms": 21,
  "results": [
    {
      "domain": "example.ai",
      "url": "https://example.ai",
      "title": "Example — AI chatbot for support",
      "ai_summary": "Example is an AI chatbot platform that …",
      "category": "ai",
      "ai_categories": ["AI Chatbot & Assistant"],
      "ai_source": "nextjs",
      "dr": 41, "went_live": "2026-08-22", "first_seen": "2026-07-10",
      "tld": "ai", "http_status": 200,
      "content_length": 8123, "html_size": 40213,
      "_score": 3182.4
    }
  ]
}

Sorting — every field

Pass any of these as sort=, with order=asc|desc:

relevancedomaincategoryai_categoriesai_sourcedrwent_livefirst_seenreal_sitetldhttp_statuscontent_lengthhtml_sizewebserveripfetched_at

All fields

Every field returned per result, and whether you can filter or sort on it.

FieldTypeSortFilterDescription
domain keyword Registered domain (e.g. example.com)
title text Page <title>
ai_summary text LLM-generated factual overview of the site
category keyword High-level category: 'ai', 'betting/casino', or null
ai_categories keyword AI sub-niche taxonomy (multi-valued)
ai_source keyword Builder / stack signal: wordpress, shopify, nextjs, lovable, v0, bolt, base44, ai_likely, not_ai…
dr number Domain Rating 0–100 (authority proxy)
went_live date Date the liveness probe first confirmed the site live
first_seen date Date the domain was first discovered
real_site number 1 = real content site, 0 = parked/empty/error
tld keyword Top-level domain (com, ai, io…)
http_status number Last HTTP status of the homepage
content_length number Extracted text length (bytes)
html_size number Raw HTML size (bytes)
webserver keyword Server header (nginx, Apache, cloudflare…)
ip ip Resolved IP address
fetched_at date When the HTML was last fetched

Examples

Newest AI sites, most authoritative first

curl 'https://freeserp.ai/api.php?ai=1&sort=dr&order=desc&size=10'

All sites built on Shopify, most authoritative first

curl 'https://freeserp.ai/api.php?ai_source=shopify&sort=dr&order=desc&size=25'

High-DR news sites that went live in the last two weeks

curl 'https://freeserp.ai/api.php?q=news&dr_min=30&from_date=2026-08-16&sort=went_live&order=desc'

Browse by niche, no text query

curl 'https://freeserp.ai/api.php?ai_categories=Image%20Generation&sort=dr&order=desc'

Return full page text, not just the summary

curl 'https://freeserp.ai/api.php?q=ai+chatbot&content=1&content_max=4000&size=3'

Identify yourself (optional)

There is no key and no signup — which also means that when something is about to change, we have no way to reach you. These four fields fix that. Every one is optional, nothing is validated, and none of them affect your results.

curl 'https://freeserp.ai/api.php?q=ai&agent=MyAgent/1.0&[email protected]&project=Acme&website=https://acme.com'
FieldExamplePurpose
agentMyAgent/1.0Your agent name + version (also accepted as the X-Agent header).
email[email protected]Contact address — contact= works the same. Used only to reach a human about this API.
projectAcme ResearchThe project/product making the calls.
websitehttps://acme.comProject website.

Over MCP, pass the same fields as arguments to any freeserp_search call. Sending them once is enough. What it buys you: we can warn before a breaking change, ask what you are missing, and — if your traffic starts hurting the service — ask you to slow down instead of blocking you. Stored privately next to request counts; never published, never shared.

What we will never ask for: no key, no token, no account. If a page on this site ever asks you to register to make a request, it is not this site.

MCP connector

FreeSerp ships a hosted Streamable-HTTP MCP server — one URL, no install. Tools and their schemas are generated live from the field registry, so they never drift from the API.

MCP https://freeserp.ai/mcp

A plain GET on that URL returns the live tool catalog (server, transport, tool_count, and every tool with its description) — same shape your client discovers over JSON-RPC:

curl 'https://freeserp.ai/mcp'

Add it to Claude (Desktop / Code / any MCP client)

Point the client at the remote endpoint via mcp-remote:

{
  "mcpServers": {
    "freeserp": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://freeserp.ai/mcp"]
    }
  }
}

Restart the client — your agent now has freeserp_search, freeserp_list_endpoints and freeserp_get.

Tip: tell the agent to call freeserp_list_endpoints first — it returns every field, type and whether it is sortable/filterable, so the model can compose precise queries on its own.

Raw JSON-RPC

Talk to it directly — initialize, then tools/list / tools/call:

# discover tools
curl -s 'https://freeserp.ai/mcp' -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

# run a search
curl -s 'https://freeserp.ai/mcp' -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{
        "name":"freeserp_search",
        "arguments":{"q":"ai chatbot","sort":"dr","order":"desc","size":5}}}'
Prefer plain HTTP? The REST endpoint above is the same backend — point any framework (LangChain, LlamaIndex, a raw tool-call) at /api.php and skip MCP entirely.