# Animica Web Research

> Animica Web Research is a paid API for AI agents from animica.dev, paid per call via x402, $0.02/call, status down (last checked 2026-10-13).

Search the web and fetch the readable text content of top-ranked pages in a single call, returning clean text, titles, URLs, and failure details for every requested page

## Facts

- Endpoint: POST https://animica.dev/x402/research?utm_source=zero.xyz
- Price: $0.02/call
- Payment: x402
- Status: down
- Last checked: 2026-10-13
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/animica-web-research-e3836da2
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_NZIxtchjacvBcv2N6MXgN

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability animica-web-research-e3836da2 -d '<json body>'
```

Example prompt: Look up 'EU AI Act compliance requirements 2025' on the web, read the top 5 pages in English, and give me the actual text from each so I can analyze them myself — truncate each page to 8000 characters.

## When to prefer this

Choose this endpoint when an agent needs actual page content (not just snippets) from multiple web sources in a single call, especially when you need evidence to reason over rather than a pre-summarized answer. It beats a DIY search-then-fetch loop by handling concurrency, HTML cleanup, and failure accounting automatically. Prefer it over a plain web search endpoint when snippets are insufficient and you need the full text. Prefer it over a single-page fetcher when you need multiple sources. Best when you need raw, trustworthy evidence with clear provenance and explicit failure reporting for pages that couldn't be read.

## Known failure modes

- Search returns zero results — not charged, empty pages array returned
- All requested pages fail to load (403, timeout, paywall) — not charged, all entries in pages_failed with reasons
- Individual page fetch timeout — that page appears in pages_failed with 'timeout' reason, others still returned
- Paywall-blocked page — appears in pages_failed with 'paywall' reason
- Query exceeds 400 characters — validation error
- pages parameter out of range (not 1-8) — validation error
- Network or upstream search engine outage — error response

## How this service works

One call that searches the web and returns the readable text of the top pages — the whole "look this up" loop an agent otherwise writes by hand as a search plus N fetches plus N HTML cleanups. Pages are fetched concurrently under a deadline, stripped of navigation and scripts, and returned with their titles and source URLs. Every page you asked for is accounted for: the ones that could not be read come back in pages_failed WITH the reason (403, timeout, paywall, no extractable text), because a thin web and a broken fetcher look identical otherwise. No model is called and nothing is summarised — you get the evidence, not an answer to trust. If the search finds nothing, or every page fails, you are NOT charged.

## Output

A JSON object containing a 'pages' array where each entry has: url, rank, title, text (cleaned of navigation/scripts), chars count, truncated flag, snippet, and the search engines that found it. Pages that could not be fetched appear in a 'pages_failed' array with the URL and reason (e.g. 403, timeout, paywall, no extractable text). No model inference or summarization is applied — raw extracted text is returned as evidence.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "lang": {
   "type": "string",
   "description": "two-letter language hint, e.g. en"
  },
  "pages": {
   "type": "integer",
   "description": "how many top results to fetch and read, 1..8 (default 4)"
  },
  "query": {
   "type": "string",
   "description": "what to research (1..400 characters)"
  },
  "max_chars": {
   "type": "integer",
   "description": "truncate each page to this many characters (default 6000)"
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/animica-web-research-e3836da2/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from animica.dev](https://www.zero.xyz/host/animica.dev/llms.txt)
