{
  "schemaVersion": "1.0",
  "item": {
    "slug": "mrscraper",
    "name": "MrScraper",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/ai-mrscraper/mrscraper",
    "canonicalUrl": "https://clawhub.ai/ai-mrscraper/mrscraper",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/mrscraper",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=mrscraper",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/mrscraper"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/mrscraper",
    "agentPageUrl": "https://openagent3.xyz/skills/mrscraper/agent",
    "manifestUrl": "https://openagent3.xyz/skills/mrscraper/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/mrscraper/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "MrScraper",
        "body": "Run AI-powered, unblockable web scraping, data extraction with natural language via the MrScraper API"
      },
      {
        "title": "Actions",
        "body": "This skill supports:\n\nOpening blocked pages through unblocker (stealth browser + IP rotation)\nStarting AI scraper runs from natural-language instructions\nRerunning existing scraper configurations on one or multiple URLs\nRunning manual workflow-based reruns\nFetching paginated results and detailed results by ID\n\nThis skill is API-only and does not depend on bundled local scripts."
      },
      {
        "title": "Base URLs",
        "body": "Unblocker API: https://api.mrscraper.com\nPlatform API: https://api.app.mrscraper.com"
      },
      {
        "title": "Unblocker API auth",
        "body": "Use query-param auth on unblocker endpoint:\n\ntoken=<MRSCRAPER_API_TOKEN>"
      },
      {
        "title": "Platform API auth",
        "body": "Use header-based auth on platform endpoints:\n\nx-api-token: <MRSCRAPER_API_TOKEN>\naccept: application/json\ncontent-type: application/json"
      },
      {
        "title": "How to get MRSCRAPER_API_TOKEN?",
        "body": "An API token lets your applications securely interact with MrScraper APIs and rerun scrapers created in the dashboard.\n\nFollow these steps in the dashboard:\n\nClick your User Profile at the top-right corner.\nSelect API Tokens.\nClick New Token.\nEnter a name and set an expiration date.\nClick Create.\nCopy the new token and store it securely as MRSCRAPER_API_TOKEN.\nUse it in requests through the x-api-token header.\n\nSecurity rule:\n\nNever expose tokens in client-side code (browser/mobile app bundles).\nStore tokens in environment variables or server-side secret managers.\n\nNotes from the auth docs:\n\nThe API key works for all V3 Platform endpoints.\nThe same key can be used for endpoints on sync.scraper.mrscraper.com.\nFor access to endpoints on other hosts, contact support@mrscraper.com."
      },
      {
        "title": "Install and Runtime",
        "body": "No local install step is required by this skill document.\nNo bundled scripts/ are required.\nCalls are direct HTTPS requests to the two base URLs above."
      },
      {
        "title": "Data and Scope",
        "body": "Data is sent only to api.app.mrscraper.com and api.mrscraper.com.\nResponses may contain extracted page content and scrape metadata.\nThis skill does not define hidden persistence or background jobs.\nNever expose tokens in logs, commits, or output."
      },
      {
        "title": "1. Unblocker",
        "body": "Method: GET\nURL: https://api.mrscraper.com\nAuth: token query parameter\n\nOpens a target URL through stealth browsing and IP rotation, then returns HTML. Use this when direct access is blocked by captcha or anti-bot protections.\n\nQuery parameters:\n\nFieldTypeRequiredDefaultDescriptiontokenstringYes—Unblocker token (MRSCRAPER_API_TOKEN)urlstringYes—URL-encoded target URLtimeoutnumberNo60Max wait in seconds (example 120)geoCodestringNoNoneGeographic routing code (example SG)blockResourcesbooleanNofalseBlock non-essential resources\n\nRequest example:\n\ncurl --location 'https://api.mrscraper.com?token=<MRSCRAPER_API_TOKEN>&timeout=120&geoCode=SG&url=https%3A%2F%2Fwww.lazada.sg%2Fproducts%2Fpdp-i111650098-s23209659764.html&blockResources=false'\n\nResponse example:\n\n<!doctype html>\n<html>\n  <head>...</head>\n  <body>...</body>\n</html>\n\nNotes:\n\nPrefer explicit geoCode and practical timeouts for repeatable behavior.\nOnly pass cookies when session-specific content is required."
      },
      {
        "title": "2. Create AI Scraper",
        "body": "Method: POST\nHost: https://api.app.mrscraper.com\nPath: /api/v1/scrapers-ai\nAuth: x-api-token\n\nCreate a new AI scraper run from natural-language instructions.\n\nPayload parameters (for agent: general or agent: listing):\n\nFieldTypeRequiredDefaultDescriptionurlstringYes—Target URLmessagestringYes—Extraction instructionagentstringNogeneralThe AI agent type to use for scraping: general, listing, or mapproxyCountrystringNoNoneISO country code for proxy-based scraping\n\nPayload parameters (for agent: map):\n\nFieldTypeRequiredDefaultDescriptionurlstringYes—Target URLagentstringNomapThe AI agent type to use for scraping (for this case it is map)maxDepthnumberNo2Maximum depth level for crawling links from the starting URL.<br>0 = only the starting URL, 1 = +direct linksmaxPagesnumberNo50Maximum number of pages to scrape during the crawling process.limitnumberNo1000Maximum number of data records to extract across all pages. Scraping stops when this limit is reached.includePatternsstringNo\"\"Regex patterns to include (separate multiple with ||)excludePatternsstringNo\"\"Regex patterns to exclude (separate multiple with ||)\n\nRequest example:\n\ncurl -X POST \"https://api.app.mrscraper.com/api/v1/scrapers-ai\" \\\n  -H \"x-api-token: <MRSCRAPER_API_TOKEN>\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"url\": \"https://books.toscrape.com/catalogue/a-light-in-the-attic_1000/index.html\",\n    \"message\": \"Extract title, price, stocks, and rating\",\n    \"agent\": \"general\"\n  }'\n\nResponse example:\n\n{\n  \"id\": \"497f6eca-6276-4993-bfeb-53cbbbba6f08\",\n  \"createdAt\": \"2019-08-24T14:15:22Z\",\n  \"createdById\": \"e13e432a-5323-4484-a91d-b5969bc564d9\",\n  \"updatedAt\": \"2019-08-24T14:15:22Z\",\n  \"updatedById\": \"d8bc6076-4141-4a88-80b9-0eb31643066f\",\n  \"deletedAt\": \"2019-08-24T14:15:22Z\",\n  \"deletedById\": \"8ef578ad-7f1e-4656-b48b-b1b4a9aaa1cb\",\n  \"userId\": \"2c4a230c-5085-4924-a3e1-25fb4fc5965b\",\n  \"scraperId\": \"6695bf87-aaa6-46b0-b1ee-88586b222b0b\",\n  \"type\": \"AI\",\n  \"url\": \"http://example.com\",\n  \"status\": \"Finished\",\n  \"error\": \"string\",\n  \"tokenUsage\": 0,\n  \"runtime\": 0,\n  \"data\": {}, // MAIN SCRAPED DATA\n  \"htmlPath\": \"string\",\n  \"recordingPath\": \"string\",\n  \"screenshotPath\": \"string\",\n  \"dataPath\": \"string\"\n}\n\nNotes:\n\nChoose agent type correctly as each agent is specialized for specified use cases. Use general for most standard web scraping tasks. The go to agent if the user doesn't specify or the connected LLM is not confident about the type of page. But mostly used for scraping product page, but handles any type of page very well as well. Use listing for scraping listing pages like product listings, job listings, etc. Choose this if the connected LLM can confidently identify whether the given URL is a listing page. Use map for crawling and getting all subdomain or subpages of a website. Choose this if the user specifies that the given URL is a website and not a specific page. For map agent type, there is a special args that can be used to configure the scraping process.\nFor the map agent, you can use special arguments to control crawling:<br>maxDepth (lower values 1–2 for focused scraping, max 3 recommended),<br>maxPages (limits total pages regardless of depth),<br>limit (caps total records extracted),<br>and includePatterns/excludePatterns (regex patterns separated by || to specify which URLs to crawl or skip, e.g., */products/*||*/blog/* or */cart/*||*.pdf).<br>If includePatterns is an empty string, all URLs are included. If excludePatterns is an empty string, no URLs are excluded."
      },
      {
        "title": "3. Rerun AI Scraper",
        "body": "Method: POST\nHost: https://api.app.mrscraper.com\nPath: /api/v1/scrapers-ai-rerun\nAuth: x-api-token\n\nReruns an existing scraper configuration on a new URL.\n\nPayload parameters:\n\nFieldTypeRequiredDefaultDescriptionscraperIdstringYes—Scraper ID retrieved from created AI scraperurlstringYes—Target URL\n\nOptional payload parameters for map agent:\n\nFieldTypeRequiredDefaultDescriptionmaxDepthnumberNo2Crawl depthmaxPagesnumberNo50Maximum pages to crawllimitnumberNo1000Result limitincludePatternsstringNo\"\"Regex patterns to include (separate multiple with ||)excludePatternsstringNo\"\"Regex patterns to exclude (separate multiple with ||)\n\nRequest example:\n\ncurl -X POST \"https://api.app.mrscraper.com/api/v1/scrapers-ai-rerun\" \\\n  -H \"accept: application/json\" \\\n  -H \"x-api-token: <MRSCRAPER_API_TOKEN>\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"scraperId\": \"6695bf87-aaa6-46b0-b1ee-88586b222b0b\",\n    \"url\": \"https://shopee.sg/\"\n  }'\n\nResponse example:\n\n{\n  \"message\": \"Successful operation!\",\n  \"data\": {\n    \"id\": \"497f6eca-6276-4993-bfeb-53cbbbba6f08\",\n    \"createdAt\": \"2019-08-24T14:15:22Z\",\n    \"createdById\": \"e13e432a-5323-4484-a91d-b5969bc564d9\",\n    \"updatedAt\": \"2019-08-24T14:15:22Z\",\n    \"updatedById\": \"d8bc6076-4141-4a88-80b9-0eb31643066f\",\n    \"deletedAt\": \"2019-08-24T14:15:22Z\",\n    \"deletedById\": \"8ef578ad-7f1e-4656-b48b-b1b4a9aaa1cb\",\n    \"userId\": \"2c4a230c-5085-4924-a3e1-25fb4fc5965b\",\n    \"scraperId\": \"6695bf87-aaa6-46b0-b1ee-88586b222b0b\",\n    \"type\": \"Rerun-AI\",\n    \"url\": \"http://example.com\",\n    \"status\": \"Finished\",\n    \"error\": \"string\",\n    \"tokenUsage\": 0,\n    \"runtime\": 0,\n    \"data\": {}, // MAIN SCRAPED DATA\n    \"htmlPath\": \"string\",\n    \"recordingPath\": \"string\",\n    \"screenshotPath\": \"string\",\n    \"dataPath\": \"string\",\n    \"htmlContent\": \"string\"\n  }\n}"
      },
      {
        "title": "4. Bulk Rerun AI Scraper",
        "body": "Method: POST\nHost: https://api.app.mrscraper.com\nPath: /api/v1/scrapers-ai-rerun/bulk\nAuth: x-api-token\n\nRuns one scraper configuration over multiple URLs.\n\nPayload parameters:\n\nFieldTypeRequiredDefaultDescriptionscraperIdstringYes—Existing AI scraper configuration IDurlsarray[string]Yes—Target URLs to run\n\nRequest example:\n\ncurl -X POST \"https://api.app.mrscraper.com/api/v1/scrapers-ai-rerun/bulk\" \\\n  -H \"x-api-token: \" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"scraperId\": \"6695bf87-aaa6-46b0-b1ee-88586b222b0b\",\n    \"urls\": [\n      \"https://books.toscrape.com/catalogue/a-light-in-the-attic_1000/index.html\",\n      \"https://books.toscrape.com/catalogue/tipping-the-velvet_999/index.html\",\n      \"https://books.toscrape.com/catalogue/soumission_998/index.html\"\n    ]\n  }'\n\nResponse example:\n\n{\n  \"message\": \"Bulk rerun started successfully\",\n  \"data\": {\n    \"bulkResultId\": \"f89f8f58-3c9a-42e5-a72e-59fa6c389f09\",\n    \"status\": \"Running\",\n    \"totalUrls\": 3\n  }\n}"
      },
      {
        "title": "5. Rerun Manual Scraper",
        "body": "Method: POST\nHost: https://api.app.mrscraper.com\nPath: /api/v1/scrapers-manual-rerun\nAuth: x-api-token\n\nExecutes a rerun using a manual browser workflow.\n\nCreating a Manual Scraper\n\nBefore calling the manual rerun endpoint, you need to create and save a manual scraper from the dashboard. Follow these steps:\n\nOpen the MrScraper dashboard and go to Scraper.\nClick New Manual Scraper +.\nEnter your target URL.\nAdd workflow steps that match your site's behavior (e.g., Input, Click, Delay, Extract, Inject JavaScript).\nConfigure pagination if needed (using options like Query Pagination, Directory Pagination, or Next Page Link).\nTest and save the scraper, then copy its scraperId to use in API reruns.\n\nPayload parameters:\n\nFieldTypeRequiredDefaultDescriptionscraperIdstringYes—ID of the manual scraper to rerun.urlstringYes—Target URL for the rerun.workflowarray<object>NoNoneAllows overriding the saved workflow steps. By default, uses the workflow saved during manual creation.\n\nRequest example:\n\ncurl -X POST \"https://api.app.mrscraper.com/api/v1/scrapers-manual-rerun\" \\\n  -H \"accept: application/json\" \\\n  -H \"x-api-token: \" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"scraperId\": \"6695bf87-aaa6-46b0-b1ee-88586b222b0b\",\n    \"url\": \"https://books.toscrape.com/\",\n    \"workflow\": [\n      {\n        \"type\": \"extract\",\n        \"data\": {\n          \"extraction_type\": \"text\",\n          \"attribute\": null,\n          \"name\": \"book\",\n          \"selector\": \"h3 a\"\n        }\n      }\n    ],\n    \"record\": false,\n    \"paginator\": {\n      \"type\": \"query_pagination\",\n      \"max_page\": 1,\n      \"enabled\": false\n    }\n  }'\n\nResponse example:\n\n{\n  \"message\": \"Successful operation!\",\n  \"data\": {\n    \"id\": \"497f6eca-6276-4993-bfeb-53cbbbba6f08\",\n    \"createdAt\": \"2019-08-24T14:15:22Z\",\n    \"createdById\": \"e13e432a-5323-4484-a91d-b5969bc564d9\",\n    \"updatedAt\": \"2019-08-24T14:15:22Z\",\n    \"updatedById\": \"d8bc6076-4141-4a88-80b9-0eb31643066f\",\n    \"deletedAt\": \"2019-08-24T14:15:22Z\",\n    \"deletedById\": \"8ef578ad-7f1e-4656-b48b-b1b4a9aaa1cb\",\n    \"userId\": \"2c4a230c-5085-4924-a3e1-25fb4fc5965b\",\n    \"scraperId\": \"6695bf87-aaa6-46b0-b1ee-88586b222b0b\",\n    \"type\": \"Rerun-AI\",\n    \"url\": \"http://example.com\",\n    \"status\": \"Finished\",\n    \"error\": \"string\",\n    \"tokenUsage\": 0,\n    \"runtime\": 0,\n    \"data\": {}, // MAIN SCRAPED DATA\n    \"htmlPath\": \"string\",\n    \"recordingPath\": \"string\",\n    \"screenshotPath\": \"string\",\n    \"dataPath\": \"string\",\n    \"htmlContent\": \"string\"\n  }\n}"
      },
      {
        "title": "6. Bulk Rerun Manual Scraper",
        "body": "Method: POST\nHost: https://api.app.mrscraper.com\nPath: /api/v1/scrapers-manual-rerun/bulk\nAuth: x-api-token\n\nRuns one scraper configuration over multiple URLs.\n\nPayload parameters:\n\nFieldTypeRequiredDefaultDescriptionscraperIdstringYes—Existing manual scraper configuration IDurlsarray[string]Yes—Target URLs to run\n\nRequest example:\n\ncurl -X POST \"https://api.app.mrscraper.com/api/v1/scrapers-manual-rerun/bulk\" \\\n  -H \"x-api-token: \" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"scraperId\": \"6695bf87-aaa6-46b0-b1ee-88586b222b0b\",\n    \"urls\": [\n      \"https://books.toscrape.com/catalogue/a-light-in-the-attic_1000/index.html\",\n      \"https://books.toscrape.com/catalogue/tipping-the-velvet_999/index.html\",\n      \"https://books.toscrape.com/catalogue/soumission_998/index.html\"\n    ]\n  }'\n\nResponse example:\n\n{\n  \"message\": \"Bulk rerun started successfully\",\n  \"data\": {\n    \"bulkResultId\": \"f89f8f58-3c9a-42e5-a72e-59fa6c389f09\",\n    \"status\": \"Running\",\n    \"totalUrls\": 3\n  }\n}"
      },
      {
        "title": "7. Fetch Results",
        "body": "Method: GET\nHost: https://api.app.mrscraper.com\nPath: /api/v1/results\nAuth: x-api-token\n\nReturns paginated scrape results.\n\nQuery parameters:\n\nFieldTypeRequiredDefaultDescriptionsortFieldstringYesupdatedAtSort columnsortOrderstringYesDESCSort directionpagenumberYes1Page numberpageSizenumberYes10Items per pagesearchstringNoNoneSearch keyworddateRangeColumnstringNocreatedAtDate field to filterstartAtstringNoNoneDate range start (ISO)endAtstringNoNoneDate range end (ISO)\n\nNotes:\n\nsortField options: createdAt, updatedAt, id, type, url, status, error, tokenUsage, runtime\nsortOrder options: ASC, DESC\ndateRangeColumn options: createdAt, updatedAt\n\nRequest example:\n\ncurl -X GET \"https://api.app.mrscraper.com/api/v1/results?sortField=updatedAt&sortOrder=DESC&pageSize=10&page=1\" \\\n  -H \"accept: application/json\" \\\n  -H \"x-api-token: <MRSCRAPER_API_TOKEN>\"\n\nResponse example:\n\n{\n  \"message\": \"Successful fetch\",\n  \"data\": [\n    {\n      \"createdAt\": \"2025-11-11T09:50:09.722Z\",\n      \"id\": \"497f6eca-6276-4993-bfeb-53cbbbba6f08\",\n      \"userId\": \"2c4a230c-5085-4924-a3e1-25fb4fc5965b\",\n      \"scraperId\": \"6695bf87-aaa6-46b0-b1ee-88586b222b0b\",\n      \"type\": \"AI\",\n      \"url\": \"http://example.com\",\n      \"status\": \"Finished\",\n      \"error\": \"string\",\n      \"tokenUsage\": 5,\n      \"runtime\": 0,\n      \"data\": \"{ \\\"title\\\": \\\"Product A\\\", \\\"price\\\": \\\"$10\\\" }\",\n      \"htmlPath\": \"string\",\n      \"recordingPath\": \"string\",\n      \"screenshotPath\": \"string\",\n      \"dataPath\": \"string\"\n    }\n  ],\n  \"meta\": {\n    \"page\": 1,\n    \"pageSize\": 10,\n    \"total\": 1,\n    \"totalPage\": 1\n  }\n}"
      },
      {
        "title": "8. Fetch Detailed Result by ID",
        "body": "Method: GET\nHost: https://api.app.mrscraper.com\nPath: /api/v1/results/{id}\nAuth: x-api-token\n\nReturns one detailed result object for a specific result ID.\n\nQuery parameters:\n\nFieldTypeRequiredDefaultDescriptionidstringYes—Result ID\n\nRequest example:\n\ncurl -X GET \"https://api.app.mrscraper.com/api/v1/results/497f6eca-6276-4993-bfeb-53cbbbba6f08\" \\\n  -H \"accept: application/json\" \\\n  -H \"x-api-token: <MRSCRAPER_API_TOKEN>\"\n\nResponse example:\n\n{\n  \"message\": \"Successful fetch\",\n  \"data\": [\n    {\n      \"createdAt\": \"2025-11-11T09:50:09.722Z\",\n      \"id\": \"497f6eca-6276-4993-bfeb-53cbbbba6f08\",\n      \"userId\": \"2c4a230c-5085-4924-a3e1-25fb4fc5965b\",\n      \"scraperId\": \"6695bf87-aaa6-46b0-b1ee-88586b222b0b\",\n      \"type\": \"AI\",\n      \"url\": \"http://example.com\",\n      \"status\": \"Finished\",\n      \"error\": \"string\",\n      \"tokenUsage\": 5,\n      \"runtime\": 0,\n      \"data\": \"string\",\n      \"htmlPath\": \"string\",\n      \"recordingPath\": \"string\",\n      \"screenshotPath\": \"string\",\n      \"dataPath\": \"string\"\n    }\n  ]\n}"
      },
      {
        "title": "Errors",
        "body": "Standard platform API errors:\n\nStatusMeaning400Invalid request payload401Missing or invalid API token404Scraper or result not found429Rate limit exceeded500Internal scraper error\n\nError format:\n\n{\n  \"message\": \"string\",\n  \"error\": \"string\",\n  \"statusCode\": \"number\"\n}"
      },
      {
        "title": "Operating Rules",
        "body": "Validate required fields before every call.\nUse pagination for large result sets.\nRetry on 429 with exponential backoff.\nNever expose credentials in outputs."
      }
    ],
    "body": "MrScraper\n\nRun AI-powered, unblockable web scraping, data extraction with natural language via the MrScraper API\n\nActions\n\nThis skill supports:\n\nOpening blocked pages through unblocker (stealth browser + IP rotation)\nStarting AI scraper runs from natural-language instructions\nRerunning existing scraper configurations on one or multiple URLs\nRunning manual workflow-based reruns\nFetching paginated results and detailed results by ID\n\nThis skill is API-only and does not depend on bundled local scripts.\n\nBase URLs\nUnblocker API: https://api.mrscraper.com\nPlatform API: https://api.app.mrscraper.com\nAuthentication\nUnblocker API auth\n\nUse query-param auth on unblocker endpoint:\n\ntoken=<MRSCRAPER_API_TOKEN>\nPlatform API auth\n\nUse header-based auth on platform endpoints:\n\nx-api-token: <MRSCRAPER_API_TOKEN>\naccept: application/json\ncontent-type: application/json\n\nHow to get MRSCRAPER_API_TOKEN?\n\nAn API token lets your applications securely interact with MrScraper APIs and rerun scrapers created in the dashboard.\n\nFollow these steps in the dashboard:\n\nClick your User Profile at the top-right corner.\nSelect API Tokens.\nClick New Token.\nEnter a name and set an expiration date.\nClick Create.\nCopy the new token and store it securely as MRSCRAPER_API_TOKEN.\nUse it in requests through the x-api-token header.\n\nSecurity rule:\n\nNever expose tokens in client-side code (browser/mobile app bundles).\nStore tokens in environment variables or server-side secret managers.\n\nNotes from the auth docs:\n\nThe API key works for all V3 Platform endpoints.\nThe same key can be used for endpoints on sync.scraper.mrscraper.com.\nFor access to endpoints on other hosts, contact support@mrscraper.com.\nInstall and Runtime\nNo local install step is required by this skill document.\nNo bundled scripts/ are required.\nCalls are direct HTTPS requests to the two base URLs above.\nData and Scope\nData is sent only to api.app.mrscraper.com and api.mrscraper.com.\nResponses may contain extracted page content and scrape metadata.\nThis skill does not define hidden persistence or background jobs.\nNever expose tokens in logs, commits, or output.\nEndpoints\n1. Unblocker\nMethod: GET\nURL: https://api.mrscraper.com\nAuth: token query parameter\n\nOpens a target URL through stealth browsing and IP rotation, then returns HTML. Use this when direct access is blocked by captcha or anti-bot protections.\n\nQuery parameters:\nField\tType\tRequired\tDefault\tDescription\ntoken\tstring\tYes\t—\tUnblocker token (MRSCRAPER_API_TOKEN)\nurl\tstring\tYes\t—\tURL-encoded target URL\ntimeout\tnumber\tNo\t60\tMax wait in seconds (example 120)\ngeoCode\tstring\tNo\tNone\tGeographic routing code (example SG)\nblockResources\tboolean\tNo\tfalse\tBlock non-essential resources\nRequest example:\ncurl --location 'https://api.mrscraper.com?token=<MRSCRAPER_API_TOKEN>&timeout=120&geoCode=SG&url=https%3A%2F%2Fwww.lazada.sg%2Fproducts%2Fpdp-i111650098-s23209659764.html&blockResources=false'\n\nResponse example:\n<!doctype html>\n<html>\n  <head>...</head>\n  <body>...</body>\n</html>\n\nNotes:\nPrefer explicit geoCode and practical timeouts for repeatable behavior.\nOnly pass cookies when session-specific content is required.\n2. Create AI Scraper\nMethod: POST\nHost: https://api.app.mrscraper.com\nPath: /api/v1/scrapers-ai\nAuth: x-api-token\n\nCreate a new AI scraper run from natural-language instructions.\n\nPayload parameters (for agent: general or agent: listing):\nField\tType\tRequired\tDefault\tDescription\nurl\tstring\tYes\t—\tTarget URL\nmessage\tstring\tYes\t—\tExtraction instruction\nagent\tstring\tNo\tgeneral\tThe AI agent type to use for scraping: general, listing, or map\nproxyCountry\tstring\tNo\tNone\tISO country code for proxy-based scraping\nPayload parameters (for agent: map):\nField\tType\tRequired\tDefault\tDescription\nurl\tstring\tYes\t—\tTarget URL\nagent\tstring\tNo\tmap\tThe AI agent type to use for scraping (for this case it is map)\nmaxDepth\tnumber\tNo\t2\tMaximum depth level for crawling links from the starting URL.<br>0 = only the starting URL, 1 = +direct links\nmaxPages\tnumber\tNo\t50\tMaximum number of pages to scrape during the crawling process.\nlimit\tnumber\tNo\t1000\tMaximum number of data records to extract across all pages. Scraping stops when this limit is reached.\nincludePatterns\tstring\tNo\t\"\"\tRegex patterns to include (separate multiple with ||)\nexcludePatterns\tstring\tNo\t\"\"\tRegex patterns to exclude (separate multiple with ||)\nRequest example:\ncurl -X POST \"https://api.app.mrscraper.com/api/v1/scrapers-ai\" \\\n  -H \"x-api-token: <MRSCRAPER_API_TOKEN>\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"url\": \"https://books.toscrape.com/catalogue/a-light-in-the-attic_1000/index.html\",\n    \"message\": \"Extract title, price, stocks, and rating\",\n    \"agent\": \"general\"\n  }'\n\nResponse example:\n{\n  \"id\": \"497f6eca-6276-4993-bfeb-53cbbbba6f08\",\n  \"createdAt\": \"2019-08-24T14:15:22Z\",\n  \"createdById\": \"e13e432a-5323-4484-a91d-b5969bc564d9\",\n  \"updatedAt\": \"2019-08-24T14:15:22Z\",\n  \"updatedById\": \"d8bc6076-4141-4a88-80b9-0eb31643066f\",\n  \"deletedAt\": \"2019-08-24T14:15:22Z\",\n  \"deletedById\": \"8ef578ad-7f1e-4656-b48b-b1b4a9aaa1cb\",\n  \"userId\": \"2c4a230c-5085-4924-a3e1-25fb4fc5965b\",\n  \"scraperId\": \"6695bf87-aaa6-46b0-b1ee-88586b222b0b\",\n  \"type\": \"AI\",\n  \"url\": \"http://example.com\",\n  \"status\": \"Finished\",\n  \"error\": \"string\",\n  \"tokenUsage\": 0,\n  \"runtime\": 0,\n  \"data\": {}, // MAIN SCRAPED DATA\n  \"htmlPath\": \"string\",\n  \"recordingPath\": \"string\",\n  \"screenshotPath\": \"string\",\n  \"dataPath\": \"string\"\n}\n\nNotes:\nChoose agent type correctly as each agent is specialized for specified use cases. Use general for most standard web scraping tasks. The go to agent if the user doesn't specify or the connected LLM is not confident about the type of page. But mostly used for scraping product page, but handles any type of page very well as well. Use listing for scraping listing pages like product listings, job listings, etc. Choose this if the connected LLM can confidently identify whether the given URL is a listing page. Use map for crawling and getting all subdomain or subpages of a website. Choose this if the user specifies that the given URL is a website and not a specific page. For map agent type, there is a special args that can be used to configure the scraping process.\nFor the map agent, you can use special arguments to control crawling:<br>maxDepth (lower values 1–2 for focused scraping, max 3 recommended),<br>maxPages (limits total pages regardless of depth),<br>limit (caps total records extracted),<br>and includePatterns/excludePatterns (regex patterns separated by || to specify which URLs to crawl or skip, e.g., */products/*||*/blog/* or */cart/*||*.pdf).<br>If includePatterns is an empty string, all URLs are included. If excludePatterns is an empty string, no URLs are excluded.\n3. Rerun AI Scraper\nMethod: POST\nHost: https://api.app.mrscraper.com\nPath: /api/v1/scrapers-ai-rerun\nAuth: x-api-token\n\nReruns an existing scraper configuration on a new URL.\n\nPayload parameters:\nField\tType\tRequired\tDefault\tDescription\nscraperId\tstring\tYes\t—\tScraper ID retrieved from created AI scraper\nurl\tstring\tYes\t—\tTarget URL\nOptional payload parameters for map agent:\nField\tType\tRequired\tDefault\tDescription\nmaxDepth\tnumber\tNo\t2\tCrawl depth\nmaxPages\tnumber\tNo\t50\tMaximum pages to crawl\nlimit\tnumber\tNo\t1000\tResult limit\nincludePatterns\tstring\tNo\t\"\"\tRegex patterns to include (separate multiple with ||)\nexcludePatterns\tstring\tNo\t\"\"\tRegex patterns to exclude (separate multiple with ||)\nRequest example:\ncurl -X POST \"https://api.app.mrscraper.com/api/v1/scrapers-ai-rerun\" \\\n  -H \"accept: application/json\" \\\n  -H \"x-api-token: <MRSCRAPER_API_TOKEN>\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"scraperId\": \"6695bf87-aaa6-46b0-b1ee-88586b222b0b\",\n    \"url\": \"https://shopee.sg/\"\n  }'\n\nResponse example:\n{\n  \"message\": \"Successful operation!\",\n  \"data\": {\n    \"id\": \"497f6eca-6276-4993-bfeb-53cbbbba6f08\",\n    \"createdAt\": \"2019-08-24T14:15:22Z\",\n    \"createdById\": \"e13e432a-5323-4484-a91d-b5969bc564d9\",\n    \"updatedAt\": \"2019-08-24T14:15:22Z\",\n    \"updatedById\": \"d8bc6076-4141-4a88-80b9-0eb31643066f\",\n    \"deletedAt\": \"2019-08-24T14:15:22Z\",\n    \"deletedById\": \"8ef578ad-7f1e-4656-b48b-b1b4a9aaa1cb\",\n    \"userId\": \"2c4a230c-5085-4924-a3e1-25fb4fc5965b\",\n    \"scraperId\": \"6695bf87-aaa6-46b0-b1ee-88586b222b0b\",\n    \"type\": \"Rerun-AI\",\n    \"url\": \"http://example.com\",\n    \"status\": \"Finished\",\n    \"error\": \"string\",\n    \"tokenUsage\": 0,\n    \"runtime\": 0,\n    \"data\": {}, // MAIN SCRAPED DATA\n    \"htmlPath\": \"string\",\n    \"recordingPath\": \"string\",\n    \"screenshotPath\": \"string\",\n    \"dataPath\": \"string\",\n    \"htmlContent\": \"string\"\n  }\n}\n\n4. Bulk Rerun AI Scraper\nMethod: POST\nHost: https://api.app.mrscraper.com\nPath: /api/v1/scrapers-ai-rerun/bulk\nAuth: x-api-token\n\nRuns one scraper configuration over multiple URLs.\n\nPayload parameters:\nField\tType\tRequired\tDefault\tDescription\nscraperId\tstring\tYes\t—\tExisting AI scraper configuration ID\nurls\tarray[string]\tYes\t—\tTarget URLs to run\nRequest example:\ncurl -X POST \"https://api.app.mrscraper.com/api/v1/scrapers-ai-rerun/bulk\" \\\n  -H \"x-api-token: \" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"scraperId\": \"6695bf87-aaa6-46b0-b1ee-88586b222b0b\",\n    \"urls\": [\n      \"https://books.toscrape.com/catalogue/a-light-in-the-attic_1000/index.html\",\n      \"https://books.toscrape.com/catalogue/tipping-the-velvet_999/index.html\",\n      \"https://books.toscrape.com/catalogue/soumission_998/index.html\"\n    ]\n  }'\n\nResponse example:\n{\n  \"message\": \"Bulk rerun started successfully\",\n  \"data\": {\n    \"bulkResultId\": \"f89f8f58-3c9a-42e5-a72e-59fa6c389f09\",\n    \"status\": \"Running\",\n    \"totalUrls\": 3\n  }\n}\n\n5. Rerun Manual Scraper\nMethod: POST\nHost: https://api.app.mrscraper.com\nPath: /api/v1/scrapers-manual-rerun\nAuth: x-api-token\n\nExecutes a rerun using a manual browser workflow.\n\nCreating a Manual Scraper\n\nBefore calling the manual rerun endpoint, you need to create and save a manual scraper from the dashboard. Follow these steps:\n\nOpen the MrScraper dashboard and go to Scraper.\nClick New Manual Scraper +.\nEnter your target URL.\nAdd workflow steps that match your site's behavior (e.g., Input, Click, Delay, Extract, Inject JavaScript).\nConfigure pagination if needed (using options like Query Pagination, Directory Pagination, or Next Page Link).\nTest and save the scraper, then copy its scraperId to use in API reruns.\nPayload parameters:\nField\tType\tRequired\tDefault\tDescription\nscraperId\tstring\tYes\t—\tID of the manual scraper to rerun.\nurl\tstring\tYes\t—\tTarget URL for the rerun.\nworkflow\tarray<object>\tNo\tNone\tAllows overriding the saved workflow steps. By default, uses the workflow saved during manual creation.\nRequest example:\ncurl -X POST \"https://api.app.mrscraper.com/api/v1/scrapers-manual-rerun\" \\\n  -H \"accept: application/json\" \\\n  -H \"x-api-token: \" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"scraperId\": \"6695bf87-aaa6-46b0-b1ee-88586b222b0b\",\n    \"url\": \"https://books.toscrape.com/\",\n    \"workflow\": [\n      {\n        \"type\": \"extract\",\n        \"data\": {\n          \"extraction_type\": \"text\",\n          \"attribute\": null,\n          \"name\": \"book\",\n          \"selector\": \"h3 a\"\n        }\n      }\n    ],\n    \"record\": false,\n    \"paginator\": {\n      \"type\": \"query_pagination\",\n      \"max_page\": 1,\n      \"enabled\": false\n    }\n  }'\n\nResponse example:\n{\n  \"message\": \"Successful operation!\",\n  \"data\": {\n    \"id\": \"497f6eca-6276-4993-bfeb-53cbbbba6f08\",\n    \"createdAt\": \"2019-08-24T14:15:22Z\",\n    \"createdById\": \"e13e432a-5323-4484-a91d-b5969bc564d9\",\n    \"updatedAt\": \"2019-08-24T14:15:22Z\",\n    \"updatedById\": \"d8bc6076-4141-4a88-80b9-0eb31643066f\",\n    \"deletedAt\": \"2019-08-24T14:15:22Z\",\n    \"deletedById\": \"8ef578ad-7f1e-4656-b48b-b1b4a9aaa1cb\",\n    \"userId\": \"2c4a230c-5085-4924-a3e1-25fb4fc5965b\",\n    \"scraperId\": \"6695bf87-aaa6-46b0-b1ee-88586b222b0b\",\n    \"type\": \"Rerun-AI\",\n    \"url\": \"http://example.com\",\n    \"status\": \"Finished\",\n    \"error\": \"string\",\n    \"tokenUsage\": 0,\n    \"runtime\": 0,\n    \"data\": {}, // MAIN SCRAPED DATA\n    \"htmlPath\": \"string\",\n    \"recordingPath\": \"string\",\n    \"screenshotPath\": \"string\",\n    \"dataPath\": \"string\",\n    \"htmlContent\": \"string\"\n  }\n}\n\n6. Bulk Rerun Manual Scraper\nMethod: POST\nHost: https://api.app.mrscraper.com\nPath: /api/v1/scrapers-manual-rerun/bulk\nAuth: x-api-token\n\nRuns one scraper configuration over multiple URLs.\n\nPayload parameters:\nField\tType\tRequired\tDefault\tDescription\nscraperId\tstring\tYes\t—\tExisting manual scraper configuration ID\nurls\tarray[string]\tYes\t—\tTarget URLs to run\nRequest example:\ncurl -X POST \"https://api.app.mrscraper.com/api/v1/scrapers-manual-rerun/bulk\" \\\n  -H \"x-api-token: \" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"scraperId\": \"6695bf87-aaa6-46b0-b1ee-88586b222b0b\",\n    \"urls\": [\n      \"https://books.toscrape.com/catalogue/a-light-in-the-attic_1000/index.html\",\n      \"https://books.toscrape.com/catalogue/tipping-the-velvet_999/index.html\",\n      \"https://books.toscrape.com/catalogue/soumission_998/index.html\"\n    ]\n  }'\n\nResponse example:\n{\n  \"message\": \"Bulk rerun started successfully\",\n  \"data\": {\n    \"bulkResultId\": \"f89f8f58-3c9a-42e5-a72e-59fa6c389f09\",\n    \"status\": \"Running\",\n    \"totalUrls\": 3\n  }\n}\n\n7. Fetch Results\nMethod: GET\nHost: https://api.app.mrscraper.com\nPath: /api/v1/results\nAuth: x-api-token\n\nReturns paginated scrape results.\n\nQuery parameters:\nField\tType\tRequired\tDefault\tDescription\nsortField\tstring\tYes\tupdatedAt\tSort column\nsortOrder\tstring\tYes\tDESC\tSort direction\npage\tnumber\tYes\t1\tPage number\npageSize\tnumber\tYes\t10\tItems per page\nsearch\tstring\tNo\tNone\tSearch keyword\ndateRangeColumn\tstring\tNo\tcreatedAt\tDate field to filter\nstartAt\tstring\tNo\tNone\tDate range start (ISO)\nendAt\tstring\tNo\tNone\tDate range end (ISO)\nNotes:\nsortField options: createdAt, updatedAt, id, type, url, status, error, tokenUsage, runtime\nsortOrder options: ASC, DESC\ndateRangeColumn options: createdAt, updatedAt\nRequest example:\ncurl -X GET \"https://api.app.mrscraper.com/api/v1/results?sortField=updatedAt&sortOrder=DESC&pageSize=10&page=1\" \\\n  -H \"accept: application/json\" \\\n  -H \"x-api-token: <MRSCRAPER_API_TOKEN>\"\n\nResponse example:\n{\n  \"message\": \"Successful fetch\",\n  \"data\": [\n    {\n      \"createdAt\": \"2025-11-11T09:50:09.722Z\",\n      \"id\": \"497f6eca-6276-4993-bfeb-53cbbbba6f08\",\n      \"userId\": \"2c4a230c-5085-4924-a3e1-25fb4fc5965b\",\n      \"scraperId\": \"6695bf87-aaa6-46b0-b1ee-88586b222b0b\",\n      \"type\": \"AI\",\n      \"url\": \"http://example.com\",\n      \"status\": \"Finished\",\n      \"error\": \"string\",\n      \"tokenUsage\": 5,\n      \"runtime\": 0,\n      \"data\": \"{ \\\"title\\\": \\\"Product A\\\", \\\"price\\\": \\\"$10\\\" }\",\n      \"htmlPath\": \"string\",\n      \"recordingPath\": \"string\",\n      \"screenshotPath\": \"string\",\n      \"dataPath\": \"string\"\n    }\n  ],\n  \"meta\": {\n    \"page\": 1,\n    \"pageSize\": 10,\n    \"total\": 1,\n    \"totalPage\": 1\n  }\n}\n\n8. Fetch Detailed Result by ID\nMethod: GET\nHost: https://api.app.mrscraper.com\nPath: /api/v1/results/{id}\nAuth: x-api-token\n\nReturns one detailed result object for a specific result ID.\n\nQuery parameters:\nField\tType\tRequired\tDefault\tDescription\nid\tstring\tYes\t—\tResult ID\nRequest example:\ncurl -X GET \"https://api.app.mrscraper.com/api/v1/results/497f6eca-6276-4993-bfeb-53cbbbba6f08\" \\\n  -H \"accept: application/json\" \\\n  -H \"x-api-token: <MRSCRAPER_API_TOKEN>\"\n\nResponse example:\n{\n  \"message\": \"Successful fetch\",\n  \"data\": [\n    {\n      \"createdAt\": \"2025-11-11T09:50:09.722Z\",\n      \"id\": \"497f6eca-6276-4993-bfeb-53cbbbba6f08\",\n      \"userId\": \"2c4a230c-5085-4924-a3e1-25fb4fc5965b\",\n      \"scraperId\": \"6695bf87-aaa6-46b0-b1ee-88586b222b0b\",\n      \"type\": \"AI\",\n      \"url\": \"http://example.com\",\n      \"status\": \"Finished\",\n      \"error\": \"string\",\n      \"tokenUsage\": 5,\n      \"runtime\": 0,\n      \"data\": \"string\",\n      \"htmlPath\": \"string\",\n      \"recordingPath\": \"string\",\n      \"screenshotPath\": \"string\",\n      \"dataPath\": \"string\"\n    }\n  ]\n}\n\nErrors\n\nStandard platform API errors:\n\nStatus\tMeaning\n400\tInvalid request payload\n401\tMissing or invalid API token\n404\tScraper or result not found\n429\tRate limit exceeded\n500\tInternal scraper error\n\nError format:\n\n{\n  \"message\": \"string\",\n  \"error\": \"string\",\n  \"statusCode\": \"number\"\n}\n\nOperating Rules\nValidate required fields before every call.\nUse pagination for large result sets.\nRetry on 429 with exponential backoff.\nNever expose credentials in outputs."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/ai-mrscraper/mrscraper",
    "publisherUrl": "https://clawhub.ai/ai-mrscraper/mrscraper",
    "owner": "ai-mrscraper",
    "version": "1.0.4",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/mrscraper",
    "downloadUrl": "https://openagent3.xyz/downloads/mrscraper",
    "agentUrl": "https://openagent3.xyz/skills/mrscraper/agent",
    "manifestUrl": "https://openagent3.xyz/skills/mrscraper/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/mrscraper/agent.md"
  }
}