{"uid":"cap_U7A03oibuF-n0B5brByZP","slug":"otto-ai-web-links-extractor-771259cc","name":"Otto AI Web Links Extractor","description":"Extract all links (hrefs) from any web page as structured JSON — every internal, external and anchor link, deduplicated, returned with a total count. Renders the page in a real headless browser, so it captures links injected after JavaScript runs that fetch-only scrapers miss. For crawling, sitemap building, link audits and site-structure mapping. Keyless, pay-per-call.","url":"https://x402.ottoai.services/web-links","method":"GET","headers":{},"bodySchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["input"],"properties":{"input":{"type":"object","required":["type","method"],"properties":{"type":{"type":"string","const":"http"},"method":{"enum":["GET"],"type":"string"},"queryParams":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"Public http(s) URL to extract links from (e.g. https://blog.ethereum.org/2024/02/27/dencun-mainnet-announcement)"}}}},"additionalProperties":false},"output":{"type":"object","required":["type"],"properties":{"type":{"type":"string"},"example":{"type":"object","required":["status"],"properties":{"data":{},"meta":{"type":"object"},"reason":{"type":"string","description":"status=unavailable only; every >=400 is UNCHARGED"},"status":{"enum":["success","unavailable"],"type":"string"}}}}}}},"responseSchema":{"type":"json","example":{"data":{"url":"https://blog.ethereum.org/2024/02/27/dencun-mainnet-announcement","count":63,"links":["https://eips.ethereum.org/EIPS/eip-7569"],"generatedAt":"2026-08-10T09:43:01.185Z"},"meta":{"degraded":false,"validUntil":"","generatedAt":"","stalenessSec":0},"status":"success"}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.003","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.003/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.003","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.003","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_9Di_6rNUuWOGI-CgrjyBw","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.003","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Extracts all hyperlinks from a given public HTTP/HTTPS URL and returns them as a structured list","exampleAgentPrompt":"Can you extract all the hyperlinks from https://example.com and give me the full list of URLs found on that page?","exampleUseCases":null,"resultDescription":"Returns a JSON object containing the source URL, total count of links found, an array of all extracted hyperlink URLs, and a generatedAt timestamp. Also includes metadata about data freshness (validUntil, stalenessSec, degraded flag).","failureModes":["Invalid or non-public URL returns an error or empty result","URL behind authentication or paywall cannot be fetched","Timeout if the target page is slow to respond","Non-HTML responses (e.g. PDFs, images) may yield no links","Rate limiting or blocking by the target server may cause degraded mode"],"whenToPreferThis":"Use this endpoint when you need a quick, pay-per-call extraction of all hyperlinks from a single public webpage without running your own scraper infrastructure. Ideal for lightweight link discovery tasks where you want structured JSON output including freshness metadata.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-14T06:35:06.551Z","isFirstParty":false}