{"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_research","alterlab_map","alterlab_batch_scrape","alterlab_batch","alterlab_estimate_cost","alterlab_pricing","alterlab_news","alterlab_keyword_ideas","alterlab_ai_visibility","alterlab_feedback","alterlab_support_ticket","alterlab_create_account","alterlab_create_api_key","search_alterlab","read_alterlab_page","alterlab_serp","alterlab_job","alterlab_balance","alterlab_monitor","alterlab_schedule","alterlab_workflow_run","alterlab_store_search","alterlab_store_get","alterlab_store_quote","alterlab_store_run","alterlab_listing_draft_create","alterlab_listing_draft_test","alterlab_listing_publish","alterlab_run_create","alterlab_run_approve","alterlab_run_stream","alterlab_run_result","alterlab_run_cancel","alterlab_hands_pending","alterlab_hands_answer","alterlab_connect","alterlab_sessions","alterlab_task_start","alterlab_task_act","alterlab_task_observe","alterlab_task_schema","alterlab_task_vision_capture","alterlab_task_vision_act","alterlab_task_answer","alterlab_task_status","alterlab_request_credential","alterlab_task_control","alterlab_facts","alterlab_hands_triggers","alterlab_hands_conversations","alterlab_requirements","alterlab_policy_evaluate","alterlab_content_check","alterlab_hands_run","alterlab_hands_share","alterlab_routes","alterlab_hands_access","alterlab_feed_create","alterlab_feed_list","alterlab_feed_update","alterlab_feed_delete","alterlab_feed_deltas"],"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_research","alterlab_map","alterlab_batch_scrape","alterlab_batch","alterlab_estimate_cost","alterlab_pricing","alterlab_news","alterlab_keyword_ideas","alterlab_ai_visibility","alterlab_feedback","alterlab_support_ticket","alterlab_create_account","alterlab_create_api_key","search_alterlab","read_alterlab_page","alterlab_serp","alterlab_job","alterlab_balance","alterlab_monitor","alterlab_schedule","alterlab_workflow_run","alterlab_store_search","alterlab_store_get","alterlab_store_quote","alterlab_store_run","alterlab_listing_draft_create","alterlab_listing_draft_test","alterlab_listing_publish","alterlab_run_create","alterlab_run_approve","alterlab_run_stream","alterlab_run_result","alterlab_run_cancel","alterlab_hands_pending","alterlab_hands_answer","alterlab_connect","alterlab_sessions","alterlab_task_start","alterlab_task_act","alterlab_task_observe","alterlab_task_schema","alterlab_task_vision_capture","alterlab_task_vision_act","alterlab_task_answer","alterlab_task_status","alterlab_request_credential","alterlab_task_control","alterlab_facts","alterlab_hands_triggers","alterlab_hands_conversations","alterlab_requirements","alterlab_policy_evaluate","alterlab_content_check","alterlab_hands_run","alterlab_hands_share","alterlab_routes","alterlab_hands_access","alterlab_feed_create","alterlab_feed_list","alterlab_feed_update","alterlab_feed_delete","alterlab_feed_deltas"],"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:knowledge-search","displayName":"AlterLab knowledge search","type":"application/vnd.oai.openapi+json","url":"https://alterlab.io/api/knowledge/search","description":"Free, keyless search and read over AlterLab docs, blog and guides. Public tools, no API key and no credits: search_alterlab, read_alterlab_page.","capabilities":["search_alterlab","read_alterlab_page"],"representativeQueries":["how do I use the AlterLab API","what does AlterLab cost for JavaScript rendering","migrate from Firecrawl or ScrapingBee to AlterLab","find the AlterLab guide for scraping a specific site"]},{"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:api:store","displayName":"AlterLab data store","type":"text/html","url":"https://alterlab.io/store","description":"Callable data products billed per valid result. Listings index (also at https://store.alterlab.io), keyless GET /api/v1/listings search, get and quote, and a per-listing agent setup doc at https://store.alterlab.io/{slug}/agent.md. MCP tools: alterlab_store_search, alterlab_store_get, alterlab_store_quote, alterlab_store_run.","capabilities":["alterlab_store_search","alterlab_store_get","alterlab_store_quote","alterlab_store_run"],"representativeQueries":["find a ready-made data API for a site","buy structured data per result","quote and run a data listing from my agent"]},{"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 you have one URL and want its content; for an image use alterlab_screenshot, for 2-20 URLs alterlab_batch_scrape, for a whole site alterlab_crawl. 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-knowledge","displayName":"alterlab-knowledge","type":"application/agent-skills+md","url":"https://alterlab.io/agent-skills/alterlab-knowledge/SKILL.md","description":"Search and read AlterLab's own docs, blog and guides, free and without an API key. Use first when the user asks how to do something with AlterLab: API parameters, SDKs, MCP setup, pricing, error codes, migration from Firecrawl or ScrapingBee, or a guide for scraping a specific site. Do not use it to fetch a third-party URL (use alterlab-scrape).","representativeQueries":["how do I use the AlterLab API","what does AlterLab cost for JavaScript rendering","migrate from Firecrawl or ScrapingBee to AlterLab","find the AlterLab guide for scraping a specific site"]},{"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"]},{"identifier":"urn:air:alterlab.io:skill:alterlab-hands","displayName":"alterlab-hands","type":"application/agent-skills+md","url":"https://alterlab.io/agent-skills/alterlab-hands/SKILL.md","description":"Use the user's own logged-in accounts through AlterLab Hands: connect a site, read their own data, and act with their approval. Use when the data is behind the user's login (saved posts, analytics, applications) and a public scrape cannot reach it.","representativeQueries":["read my saved posts while logged in to my account","connect my account so an agent can use my logged-in site","fill in a job application and ask me before submitting"]}]}