Response Object
Every successful call returns a JSON object with four top-level keys: success, data, metadata, and billing.
{
"success": true,
"data": {
"content": "<html>...</html>",
"extracted_data": { "title": "Example Domain", "links": ["..."] },
"css_extracted": { "price": "$99.99" },
"template_extracted": { "links": ["..."], "images": ["..."] },
"screenshot": "iVBORw0KGgo...",
"status_code": 200,
"final_url": "https://example.com",
"headers": { "content-type": "text/html" },
"cookies": { "session": "abc123" }
},
"metadata": {
"method_used": "js_rendering",
"output_format": "html",
"elapsed_time": 5.23,
"solver_used": true,
"challenge_solved": true,
"timestamp": "2026-06-23T10:30:00Z"
},
"billing": {
"charged": 0.0035,
"cost_per_request": 0.0035,
"balance_after": 49.91
}
}
data
| Field | Type | Present when | Description |
|---|---|---|---|
content | string | always (unless extractor-only) | The page body in the requested output_format. |
extracted_data | object | output_format: autoparse | Auto-detected structured data. |
css_extracted | object | css_selectors provided | Your mapped selector results. |
template_extracted | object | templates provided | Built-in extractor results. |
screenshot | string | screenshot: true | Base64-encoded PNG. |
status_code | integer | always | HTTP status from the target. |
final_url | string | always | URL after redirects. |
headers | object | always | Response headers from the target. |
cookies | object | always | Cookies set by the target. |
metadata
| Field | Type | Description |
|---|---|---|
method_used | string | Which lane actually ran (fast / js_rendering). |
output_format | string | Format applied to content. |
elapsed_time | float | Total processing time in seconds. |
solver_used | boolean | Whether the anti-bot solver ran. |
challenge_solved | boolean | Whether a challenge was successfully solved. |
timestamp | string | ISO 8601 completion time. |
billing
| Field | Type | Description |
|---|---|---|
charged | float | Amount billed for this request (USD). 0 for failed unlocks. |
cost_per_request | float | Standard Web Unlocker price — 0.0035. |
balance_after | float | Remaining account balance after the charge. |
Web Unlocker is a flat $0.0035 per successful request, regardless of whether fast or js_rendering ran. See Pricing.
:::tip Only pay for success
Core unlock requests that fail to return usable data are not charged. Inspect billing.charged to confirm.
:::
Checking success in code
data = resp.json()
if data["success"] and data["data"]["status_code"] == 200:
html = data["data"]["content"]
else:
print("Failed:", data.get("error"))
See Errors for what success: false looks like.