{"specVersion":"1.0","host":{"displayName":"AlterLab","identifier":"did:web:alterlab.io","url":"https://alterlab.io"},"entries":[{"identifier":"urn:air:alterlab.io:server:mcp","displayName":"AlterLab MCP server","type":"application/mcp-server-card+json","url":"https://alterlab.io/.well-known/mcp/server-card.json","description":"Remote MCP server for web data extraction: scrape, search, crawl, map, extract and estimate the cost of any public URL.","capabilities":["alterlab_scrape","alterlab_extract","alterlab_screenshot","alterlab_crawl","alterlab_search","alterlab_map","alterlab_batch_scrape","alterlab_batch","alterlab_estimate_cost","alterlab_create_account"],"representativeQueries":["scrape a web page from my agent","search the web and return the results as markdown","crawl a website and extract structured data","estimate the cost of scraping a list of URLs"]},{"identifier":"urn:air:alterlab.io:agent:alterlab","displayName":"AlterLab agent (A2A)","type":"application/a2a-agent-card+json","url":"https://alterlab.io/.well-known/agent-card.json","description":"A2A agent that retrieves web data for other agents: scraping, search, crawling and structured extraction.","capabilities":["alterlab_scrape","alterlab_extract","alterlab_screenshot","alterlab_crawl","alterlab_search","alterlab_map","alterlab_batch_scrape","alterlab_batch","alterlab_estimate_cost","alterlab_create_account"],"representativeQueries":["delegate web scraping to another agent","ask an agent to fetch and summarise a web page","find an agent that can crawl a website"]},{"identifier":"urn:air:alterlab.io:data:reliability","displayName":"AlterLab live reliability feed","type":"application/json","url":"https://alterlab.io/.well-known/alterlab-reliability.json","description":"Rolling 24h and 7d success rate, p50/p95 latency and median cost by anti-bot class and tier, with sample sizes. Stale or low-sample data is null with a reason.","representativeQueries":["how reliable is AlterLab against Cloudflare right now","what is the current scrape success rate by tier","check the live latency and cost of web scraping"]},{"identifier":"urn:air:alterlab.io:doc:llms-txt","displayName":"AlterLab llms.txt","type":"text/plain","url":"https://alterlab.io/llms.txt","description":"Plain-text overview of the AlterLab API for LLMs: what it does, endpoints, tiers and pricing summary.","representativeQueries":["read the AlterLab API overview","what does AlterLab do","AlterLab pricing summary"]},{"identifier":"urn:air:alterlab.io:doc:agent-setup","displayName":"AlterLab agent setup","type":"text/markdown","url":"https://alterlab.io/agent-setup.md","description":"Step-by-step setup instructions an agent can follow to add AlterLab to a project: MCP server, SDKs and API key.","representativeQueries":["set up AlterLab in my project","add AlterLab MCP to Claude Code","install the AlterLab SDK"]},{"identifier":"urn:air:alterlab.io:doc:auth","displayName":"AlterLab auth.md","type":"text/markdown","url":"https://alterlab.io/auth.md","description":"How an agent gets access to AlterLab: API keys, OAuth for MCP and trial tokens.","representativeQueries":["how does an agent get an AlterLab key","AlterLab OAuth for MCP","AlterLab trial token"]},{"identifier":"urn:air:alterlab.io:api:openapi","displayName":"AlterLab REST API","type":"application/vnd.oai.openapi+json","url":"https://alterlab.io/openapi.json","description":"OpenAPI schema for the AlterLab REST API: scrape, batch, search, crawl and extract endpoints with parameters.","representativeQueries":["AlterLab REST API schema","scrape endpoint parameters","AlterLab batch API"]},{"identifier":"urn:air:alterlab.io:data:pricing","displayName":"AlterLab price list","type":"application/json","url":"https://alterlab.io/api/v1/pricing","description":"Public machine-readable price list: cost per request by tier. No authentication required.","representativeQueries":["AlterLab price per request","how much does a scrape cost","AlterLab tier prices"]},{"identifier":"urn:air:alterlab.io:skill:alterlab-scrape","displayName":"alterlab-scrape","type":"application/agent-skills+md","url":"https://alterlab.io/agent-skills/alterlab-scrape/SKILL.md","description":"Use when a normal fetch returns 403/429, a bot-protection challenge page, a CAPTCHA, or an empty JavaScript shell. Fetch any URL as clean markdown, text, HTML or JSON with AlterLab, including JavaScript-heavy and protected pages. Also use when the user asks to read, fetch, download or summarize a web page, take a screenshot, or scrape a list of URLs.","representativeQueries":["fetch this URL as clean markdown","read a JavaScript-heavy page that blocks bots","download the text of this product page"]},{"identifier":"urn:air:alterlab.io:skill:alterlab-search","displayName":"alterlab-search","type":"application/agent-skills+md","url":"https://alterlab.io/agent-skills/alterlab-search/SKILL.md","description":"Search the web with AlterLab and get structured results. Use when the user asks a question that needs current web information or asks you to find pages and you do not have a URL yet. Do not use it to read a known URL (use alterlab-scrape).","representativeQueries":["search the web for the latest news on this topic","find pages that mention this company","get structured search results for a query"]},{"identifier":"urn:air:alterlab.io:skill:alterlab-crawl","displayName":"alterlab-crawl","type":"application/agent-skills+md","url":"https://alterlab.io/agent-skills/alterlab-crawl/SKILL.md","description":"Crawl a whole website or list its URLs with AlterLab. Use when the user wants every page of a docs site or blog, a sitemap of a domain, or a site-wide content export. Works on JavaScript-heavy and protected sites. Do not use it for one or two known URLs (use alterlab-scrape).","representativeQueries":["crawl every page of this docs site","list all URLs on this domain","export a whole blog as markdown"]},{"identifier":"urn:air:alterlab.io:skill:alterlab-extract","displayName":"alterlab-extract","type":"application/agent-skills+md","url":"https://alterlab.io/agent-skills/alterlab-extract/SKILL.md","description":"Extract structured JSON from any web page with AlterLab using a JSON schema. Use when the user wants specific fields (prices, titles, listings, contacts) rather than the full page text. Works on JavaScript-heavy and protected pages. Do not use it when the full page text is enough (use alterlab-scrape).","representativeQueries":["extract product names and prices from this page as JSON","pull contact details from a website into a schema","turn this listing page into structured data"]},{"identifier":"urn:air:alterlab.io:skill:alterlab-monitor","displayName":"alterlab-monitor","type":"application/agent-skills+md","url":"https://alterlab.io/agent-skills/alterlab-monitor/SKILL.md","description":"Watch a web page for changes with AlterLab monitors and scheduled scrapes. Use when the user asks to be told when a price, page or listing changes, or to re-scrape a URL on a schedule.","representativeQueries":["tell me when the price on this page changes","watch this listing for updates","re-scrape this page every day"]}]}