{"uid":"cap_noOD2iDIZGJoL0IdW3sz9","slug":"animica-batch-url-content-extractor-e5155718","name":"Animica Batch URL Content Extractor","description":"Give it up to 10 URLs and get back the readable text of each — titles, clean body text, navigation and scripts removed — in a single call and a single payment. The half of every retrieval pipeline an agent already has links for: search results, a sitemap, an RSS feed, a user's reading list. Pages are fetched concurrently under a deadline. Every URL you send is accounted for: the ones that could not be read come back in failed[] WITH the reason (403, timeout, paywall, no extractable text, private address), because a bad input and a broken fetcher need opposite responses from you. If not one URL could be read, you are NOT charged.","url":"https://animica.dev/x402/contents?utm_source=zero.xyz","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"urls":{"type":"array","description":"1..10 absolute http(s) URLs"},"max_chars":{"type":"integer","description":"truncate each page to this many characters (default 6000)"}}},"responseSchema":{"type":"json","example":{"pages":[{"url":"https://x402.org/","text":"x402 \n\n Close Search \n\n x402 \n\n x402 is an open, neutral standard for internet-native payments. It absolves the Internet’s original sin by natively making payments possible between clients and servers, creating win-win economies that empower agentic payments at scale. x402 exists to build a more free and fair internet.\n\n Read x402 Foundation Announcement Last 30 Days\n\n 75.41M\n\n Transactions\n\n $24.24M\n\n Volume\n\n 94.06K\n\n Buyers\n\n 22K\n\n Sellers\n\n → Accept payments with a single line of code\n\n app.","chars":4121,"title":"x402","truncated":true,"content_type":"text/html; charset=utf-8"},{"url":"https://docs.x402.org/introduction","text":"Welcome to x402 - x402 \n Documentation Index\n Fetch the complete documentation index at: /llms.txt \n Use this file to discover all available pages before exploring further.\n\n Skip to main content \n x402 is the open payment standard that enables services to charge for access to their APIs and content directly over HTTP. It is built around the HTTP 402 Payment Required status code and allows clients to programmatically pay for resources without accounts, sessions, or credential management. \n With ","chars":3090,"title":"Welcome to x402 - x402","truncated":true,"content_type":"text/html; charset=utf-8"}],"failed":[],"took_ms":507,"fetched_at":"2026-08-21T23:44:13.495Z","pages_read":2,"urls_requested":2}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.002319","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.002317/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.002317","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.002317","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_OnL9WDMxQgiyH-JH38zwY","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.002317","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Fetches up to 10 URLs concurrently and returns clean, readable text (title + body) for each, with detailed failure reasons for any URLs that could not be read, in a single pay-per-call API.","exampleAgentPrompt":"Grab the readable text from these 5 URLs for me — https://example.com/article1, https://example.com/article2, https://news.site/story, https://blog.io/post, https://docs.io/page — and cap each one at 4000 characters so I can summarize them.","exampleUseCases":[{"title":"Summarizing search result pages","prompt":"I just got 8 search results for 'quantum computing breakthroughs 2025' — can you fetch the readable text from all of them at once and cap each page at 5000 characters so I can summarize the key findings?"},{"title":"Processing RSS feed articles","prompt":"Here are 10 article links from my tech RSS feed — please pull the clean body text from each one, up to 6000 characters per page, and let me know if any of them are paywalled or blocked."},{"title":"Reading a curated reading list","prompt":"I have this list of 7 blog posts I saved — can you fetch the readable content from all of them in one shot, keeping each to about 3000 characters, so I can read them offline?"}],"resultDescription":"A JSON object with a `pages` array (one entry per successfully read URL, each containing the page title, clean extracted body text, character count, truncation flag, and content type) and a `failed` array listing every URL that could not be read along with the specific reason (e.g. 403, timeout, paywall, no extractable text, private address). Also includes total fetch time in milliseconds, a fetch timestamp, counts of pages read and URLs requested. If zero URLs succeed, no charge is applied.","failureModes":["403 Forbidden — server rejected the request; returned in failed[] with reason","Timeout — page took too long to load under the concurrent deadline; returned in failed[]","Paywall detected — content not extractable due to access restriction; returned in failed[]","No extractable text — page has no readable body content (e.g. pure JS app or media page); returned in failed[]","Private/non-routable address — URL resolves to a private IP range; returned in failed[]","All URLs fail — if every URL is in failed[], the call is not charged","Invalid URL format — malformed or non-http(s) URLs rejected at input validation","Exceeding 10 URLs — input array limited to 10 entries per call"],"whenToPreferThis":"Choose this endpoint when you already have a list of URLs (from search results, sitemaps, RSS feeds, or user-provided lists) and need to retrieve clean readable text from multiple pages in a single call without managing concurrency, browser infrastructure, or per-URL billing. It is especially suited for agentic pipelines where partial success is acceptable and you need to know exactly which URLs failed and why. Prefer it over single-URL fetchers when you have 2–10 links to process at once. Not appropriate when you need to discover URLs yourself (use a search endpoint first) or when you need structured data extraction beyond plain text.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-12T18:39:28.945Z","isFirstParty":false,"canonicalSlug":"animica-batch-url-content-extractor-e5155718"}