# Webpage Screenshot Capture
Capture webpage screenshots with configurable viewport settings.
## API Overview
- **HTTP Protocol:** HTTPS
- **HTTP Method:** POST
- **HTTP Endpoint:** https://api.gugudata.io/v1/websitetools/url2snapshot
- **Response Type:** application/json; charset=utf-8
- **DEMO Endpoint:** https://api.gugudata.io/v1/websitetools/url2snapshot/demo
- **Live Demo:** https://gugudata.io/demo/url2snapshot
- **Postman:** https://www.postman.com/gugudata/gugudata-io
- **LLM Page:** https://gugudata.io/details/url2snapshot/llm
- **Raw Markdown:** https://gugudata.io/details/url2snapshot/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 screenshots: Capture public pages for visual records and content reviews.
- Full-page or viewport: Choose a page-height capture or a fixed viewport.
- Desktop and mobile: Select mobile emulation and viewport dimensions for your workflow.
- Flexible image output: Receive PNG Base64 text or a public image link.
- Rendered HTML: Receive available page HTML alongside the image for your own processing.
- Review workflows: Add visual page references to reports and review tasks.
## 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. |
| responseFormat | string | false | base64 | Requested output format for the generated response. |
| fullPage | boolean | false | true | Whether the capture should include the full page height instead of the visible viewport only. |
| width | integer | false | 1920 | Output width in pixels. |
| height | integer | false | 1080 | Output height in pixels. |
| deviceScaleFactor | integer | false | 1 | Device scale factor used during page rendering. |
| userAgent | string | false | Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 | Optional user agent string used for page rendering. |
| isMobile | boolean | false | false | Whether the renderer should emulate a mobile device viewport. |
## API Response Parameters
| Name | Type | Remark |
| --- | --- | --- |
| dataStatus | object | Response metadata returned by the current v1 contract. |
| dataStatus.requestParameter | string | Privacy-safe summary of the normalized request. |
| dataStatus.statusCode | integer | Application-level status code. |
| dataStatus.status | string | Application-level result status. |
| dataStatus.statusDescription | string | Human-readable application status message. |
| dataStatus.responseDateTime | string | Time at which the response was generated. |
| dataStatus.dataTotalCount | integer | Number of matching or returned records for this request. |
| data | object | Primary response payload returned by the endpoint. |
| data.image | string | Base64 string or CDN URL of the screenshot. |
| data.content | string | HTML content returned by Cloudflare snapshot. |
## 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/url2snapshot?appkey=YOUR_APPKEY' --request POST --header 'Content-Type: application/json' --data '{
"url": "YOUR_VALUE",
"responseFormat": "base64",
"fullPage": true,
"width": 1920,
"height": 1080,
"deviceScaleFactor": 1,
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36",
"isMobile": false
}'
```