# Webpage to Image Rendering
Render a public webpage as a PNG image.
## API Overview
- **HTTP Protocol:** HTTPS
- **HTTP Method:** GET
- **HTTP Endpoint:** https://api.gugudata.io/v1/websitetools/url2image
- **Response Type:** Binary stream on success; application/json on authentication or validation errors
- **DEMO Endpoint:** https://api.gugudata.io/v1/websitetools/url2image/demo
- **Live Demo:** https://gugudata.io/demo/url2image
- **Postman:** https://www.postman.com/gugudata/gugudata-io
- **LLM Page:** https://gugudata.io/details/url2image/llm
- **Raw Markdown:** https://gugudata.io/details/url2image/llm.md
## Remote MCP
- **MCP Endpoint:** https://mcp.gugudata.io/mcp
- **MCP Guide:** https://gugudata.io/mcp/
- **Authorization:** OAuth authorization opens in the browser; do not paste appkeys into MCP clients.
- **Tool Scope:** MCP clients receive GuGuData API tools available to the authorized account.
## Data & API Features
- Webpage PNG rendering: Render a public webpage as a PNG image.
- Viewport or full page: Capture a fixed viewport or the full rendered page.
- Configurable dimensions: Choose output and viewport dimensions for the target display or report.
- Mobile and dark mode: Emulate mobile layout or dark color preferences when needed.
- Sharper image output: Adjust device scale to produce higher-density screenshots.
- Visual review workflows: Create previews, evidence images, reports, and automated visual checks.
## API Request Parameters
| Name | Type | Is Required | Default Value | Remark |
| --- | --- | --- | --- | --- |
| appkey | string | true | YOUR_APPKEY | API key used to authenticate the request. |
| url | string | true | | Target webpage URL. |
| isFullPage | boolean | false | false | Whether the renderer should capture the full page height. |
| width | integer | false | 250 | Output width in pixels. |
| height | integer | false | 250 | Output height in pixels. |
| viewportWidth | integer | false | 1080 | Viewport width in pixels used during page rendering. |
| viewportHeight | integer | false | 1080 | Viewport height in pixels used during page rendering. |
| forceReload | boolean | false | false | Set to true to bypass a cached rendering and capture the page again. |
| isMobile | boolean | false | false | Whether the renderer should emulate a mobile device viewport. |
| isDarkMode | boolean | false | false | Whether the renderer should emulate dark mode when rendering the target page. |
| deviceScaleFactor | integer | false | 1 | Device scale factor used during page rendering. |
## API Response Parameters
| Name | Type | Remark |
| --- | --- | --- |
| image | binary | Rendered image binary stream returned on success. On failure, the endpoint returns a JSON error payload instead of binary content. |
## API Response Status Codes
| Status Code | Explanation of Status Code | Remarks |
| --- | --- | --- |
| 200 | Request processed successfully. | Some endpoints expose a separate application-level status field in the response body, such as `dataStatus.statusCode`. |
| 400 | Invalid request parameters or request format. | Check required fields, data types, and request body format. |
| 401 | Missing or unknown application key. | Provide a valid `appkey` with the request. |
| 403 | The application key is recognized but access is not allowed. | The key may be expired, inactive, or not permitted for the requested API. |
| 429 | Request rate or trial usage limit exceeded. | Reduce request frequency and retry with backoff. If a trial allowance is exhausted, check Trial Keys for remaining requests and subscribe to continue. |
| 500 | Internal service error. | Retry later or contact support if the error persists. |
| 503 | Upstream service unavailable. | Retry later; the requested upstream dependency is temporarily unavailable. |
## cURL Example
```bash
curl --location 'https://api.gugudata.io/v1/websitetools/url2image?appkey=YOUR_APPKEY&url=YOUR_VALUE&isFullPage=false&width=250&height=250&viewportWidth=1080&viewportHeight=1080&forceReload=false&isMobile=false&isDarkMode=false&deviceScaleFactor=1'
```