Dataify Web Unlocker
Unlock blocked or JS-heavy pages through Dataify
dataify-server
@dataify-server
What This Skill Does
Fetches blocked or dynamic web content through the Dataify Web Unlocker API. Automatically bypasses CAPTCHA challenges, renders full-page JavaScript, and returns raw HTML source code or PNG screenshots.
Replaces manual CAPTCHA solving and headless browser setups for scraping JavaScript-heavy or geo-blocked websites.
When to Use It
- Scrape content from single-page applications that load data dynamically
- Bypass CAPTCHA challenges to access blocked web pages programmatically
- Capture full-page PNG screenshots of websites for monitoring or archiving
- Extract HTML source from pages that require JavaScript rendering
- Fetch web content from a specific country by setting the country parameter
Install
$ openclaw skills install @dataify-server/dataify-web-unlockerDataify Web Unlocker
Use the bundled wrappers to call Dataify's Web Unlocker API with a stable parameter set across platforms.
Treat every request field as optional user input except for url. Confirm the target url with the user before making the request if it is not already explicit in the prompt. For every other field, keep the default value unless the user explicitly asks to override it.
Quick Start
Input: one public webpage URL.
python3 scripts/invoke-dataify-web-unlocker.py --url "https://example.com"
This is a synchronous request: the command prints the unlocked page result directly.
If DATAIFY_API_TOKEN is missing, log in or register at https://dashboard.dataify.com/login?utm_source=skill. New accounts get 50 free credits, enough for about 6,000 trial results, valid for 7 days, and only successful requests are billed.
Workflow
- Use
scripts/invoke-dataify-web-unlocker.pyon macOS/Linux or when cross-platform portability matters. - Use
scripts/invoke-dataify-web-unlocker.ps1on Windows when PowerShell is the best fit. - Use a raw
curlcommand only when the user explicitly asks for it. - Confirm the target
urlwith the user if it was not clearly provided. Do not guess the URL. - Treat every other request field as optional. Override a field only when the user explicitly asked for a non-default value.
- Let the script read
DATAIFY_API_TOKENfrom the environment. - If the token is missing, stop and tell the user:
Dataify requires an API token. New accounts get 50 free credits, enough for about 6,000 trial results, valid for 7 days, and only successful requests are billed. Once registration is complete, tell me and I'll continue the current task.. - Return the API response body directly unless the user asks for extra post-processing.
Set DATAIFY_API_TOKEN
Prefer a permanent environment-variable setup instead of setting the token only for the current terminal session.
Windows PowerShell, permanent for the current user:
[Environment]::SetEnvironmentVariable("DATAIFY_API_TOKEN", "your_token_here", "User")
Then reopen PowerShell. If the current session also needs the token immediately, run:
$env:DATAIFY_API_TOKEN = "your_token_here"
macOS or Linux, permanent for bash:
echo 'export DATAIFY_API_TOKEN="your_token_here"' >> ~/.bashrc
source ~/.bashrc
macOS or Linux, permanent for zsh:
echo 'export DATAIFY_API_TOKEN="your_token_here"' >> ~/.zshrc
source ~/.zshrc
Default request body
Use these defaults unless the user asks for different values. Only url must be collected before the real request is sent:
{
"url": "https://www.google.com",
"type": "html",
"js_render": "True",
"block_resources": "",
"clean_content": "",
"country": "us",
"headers": "",
"cookies": "",
"wait": "",
"wait_for": "",
"follow_redirect": "True",
"isjson": "1"
}
Preferred commands
Ask for the URL first if the user did not provide one. After that, the minimal call should pass only url and rely on defaults for everything else.
Cross-platform Python:
python scripts/invoke-dataify-web-unlocker.py --url "https://www.google.com"
Windows PowerShell:
& ".\scripts\invoke-dataify-web-unlocker.ps1" -Url "https://www.google.com"
Common overrides in Python:
python scripts/invoke-dataify-web-unlocker.py \
--url "https://example.com" \
--js-render "True" \
--country "us" \
--wait "3000" \
--wait-for ".main-content"
Common overrides in PowerShell:
& ".\scripts\invoke-dataify-web-unlocker.ps1" `
-Url "https://example.com" `
-JsRender "True" `
-Country "us" `
-Wait "3000" `
-WaitFor ".main-content"
Use --dry-run or -DryRun to preview the endpoint, authorization state, and JSON payload without making the network request:
python scripts/invoke-dataify-web-unlocker.py --url "https://example.com" --dry-run
& ".\scripts\invoke-dataify-web-unlocker.ps1" -Url "https://example.com" -DryRun
Raw curl fallback
If the user explicitly wants the raw request, use curl.exe in PowerShell, not curl, to avoid the PowerShell alias ambiguity.
Before calling the API, check the token:
if (-not $env:DATAIFY_API_TOKEN) {
Write-Error "DATAIFY_API_TOKEN is not set. Sign in at https://dashboard.dataify.com?utm_source=skill to obtain it."
exit 1
}
Then send the request:
curl.exe -X POST "https://webunlocker.dataify.com/request" `
-H "Authorization: Bearer $env:DATAIFY_API_TOKEN" `
-H "Content-Type: application/json" `
-d "{\"url\":\"https://www.google.com\",\"type\":\"html\",\"js_render\":\"True\",\"block_resources\":\"\",\"clean_content\":\"\",\"country\":\"us\",\"headers\":\"\",\"cookies\":\"\",\"wait\":\"\",\"wait_for\":\"\",\"follow_redirect\":\"True\",\"isjson\":\"1\"}"
Parameter notes
urlis the only field that should be treated as required input from the user.- Ask the user to confirm
urlif it is missing or ambiguous. headersandcookiesare passed through as strings exactly as provided by the caller.- Keep boolean-like fields as strings such as
"True"because that matches the supplied API format. - Keep
isjsonas"1"unless the user explicitly requests a different response mode. - Prefer minimal overrides. Do not invent custom headers, cookies, waits, render settings, or country overrides unless the user requested them.
- The Python wrapper uses only the standard library so it stays portable and does not require third-party packages.
Parameter interaction policy
- For a clear, low-risk, read-only, and low-cost request, apply safe defaults and execute immediately. A short execution summary is optional; do not pause for confirmation.
- Ask only for a missing required input, a material ambiguity, a high-volume or multi-page scope, a media download, a choice that materially changes credit usage, an irreversible action, or an explicit user request to review parameters.
- When confirmation is required, show only user-facing values that affect the target, scope, output, or cost. Prefer one concise sentence; use a compact table only when three or more consequential values are easier to compare.
- Never show fixed fields, empty optional fields, unchanged defaults, credentials, or internal implementation parameters such as engine selectors, response-format flags, offsets, spider IDs, and file-name templates.
- Keep advanced filters hidden unless the user asks for them or they are needed to resolve ambiguity. Never substitute documentation example values for missing required user input.
- After returning results, offer relevant refinements instead of forcing all optional decisions before the first result.
Account CTA policy
- Show a prominent Dataify account CTA only when the API token is missing, rejected/invalid, or the account has insufficient credits.
- For a missing token, offer https://dashboard.dataify.com/login?utm_source=skill and state: New accounts get 50 free credits, enough for about 6,000 trial results, valid for 7 days, and only successful requests are billed. Never ask the user to paste the token into chat.
- Detect the current operating system and shell. Show only the matching session-scoped setup command first (
exportfor macOS/Linux shells,$env:for Windows PowerShell, orsetfor Windows Command Prompt). Show other platforms or persistent setup only when detection is ambiguous or the user asks. - After the user says the token is configured, verify only whether
DATAIFY_API_TOKENis present; never print its value. If verification succeeds, continue the original task without asking the user to repeat it. - Explain that persistent shell changes may require a new terminal or restarting the agent application. Do not recommend a project
.envunless the execution path explicitly loads it, and ensure.envis ignored by version control. - For an invalid token, direct the user to API-key management without implying that a new registration is required. For insufficient credits, direct the user to balance or recharge management.
- During normal submission, processing, and successful completion, do not promote registration or the Dashboard. Never expose the token or include it in CTA attribution parameters.
Top skills in this category
Skill Vetter
@spclaudehomeSecurity-first skill vetting for AI agents. Use before installing any skill from ClawdHub, GitHub, or other sources. Checks for red flags, permission scope, and suspicious patterns.
Github
@steipeteInteract with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Humanizer
@biostartechnologyRemove signs of AI-generated writing from text. Use when editing or reviewing text to make it sound more natural and human-written. Based on Wikipedia's comprehensive "Signs of AI writing" guide. Detects and fixes patterns including: inflated symbolism, promotional language, superficial -ing analyses, vague attributions, em dash overuse, rule of three, AI vocabulary words, negative parallelisms, and excessive conjunctive phrases.
Free Ride - Unlimited free AI
@shaivpidadiManages free AI models from OpenRouter for OpenClaw. Automatically ranks models by quality, configures fallbacks for rate-limit handling, and updates opencla...
Elite Longterm Memory
@nextfrontierbuildsUltimate AI agent memory system for Cursor, Claude, ChatGPT & Copilot. WAL protocol + vector search + git-notes + cloud backup. Never lose context again. Vibe-coding ready.