Skip to main content

Documentation Index

Fetch the complete documentation index at: https://rocks.docs.rive.wtf/llms.txt

Use this file to discover all available pages before exploring further.

Every API key is tied to one IP. To apply for a key, DM southctrl on Discord.
Use the endpoint path below, replace the required params, and send Authorization: Bearer YOUR_API_KEY.

Quick Start

1

Choose a URL

Use a public website URL and include https://.
2

Set capture options

Pick width, height, image format, and optional delay.
3

Call the screenshot route

Send a request to /api/screenshot.
Add a delay for sites that need time to finish loading.

Capture Screenshot

Capture a screenshot of any publicly accessible website.

Endpoint

GET /api/screenshot

Query Parameters

url
string
required
URL of the website (must include https://).
width
integer
default:"1920"
Width in pixels.
height
integer
default:"1080"
Height in pixels.
format
string
default:"png"
Image format: png, jpg, jpeg, or webp.
delay
integer
default:"0"
Delay before capture, in milliseconds.

Example Request

cURL
curl -X GET "https://rocks.rive.wtf/api/screenshot?url=https://google.com&width=1920&height=1080&format=png" \
  -H "Authorization: Bearer YOUR_API_KEY"
Python
import base64
import requests

API_KEY = "YOUR_API_KEY"
BASE_URL = "https://rocks.rive.wtf/api/screenshot"

response = requests.get(
    BASE_URL,
    params={
        "url": "https://google.com",
        "width": 1920,
        "height": 1080,
        "format": "png",
        "delay": 0,
    },
    headers={"Authorization": f"Bearer {API_KEY}"},
)

data = response.json()
b64_string = data["screenshot"].split(",", 1)[1]
image_bytes = base64.b64decode(b64_string)

with open("screenshot.png", "wb") as f:
    f.write(image_bytes)

with open("screenshot_base64.txt", "w") as f:
    f.write(b64_string)

Example Response

{
  "url": "https://google.com",
  "width": "1920",
  "height": "1080",
  "format": "png",
  "delay": "0",
  "screenshot": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABVYAAAMACAIAAABAXKuVAAAAAXNSR0IArs4c..."
}

Response Fields

url
string
URL that was captured
width
string
Width of the screenshot in pixels
height
string
Height of the screenshot in pixels
format
string
Image format used (png, jpg, jpeg, or webp)
delay
string
Delay in milliseconds that was applied before capture
screenshot
string
Base64-encoded image data with data URI prefix (data:image/{format};base64,)

Common Resolutions

DeviceWidthHeight
Desktop HD19201080
Desktop 4K38402160
Tablet1024768
Mobile375667
Mobile (iPhone)390844
Use the delay parameter when capturing dynamic websites that load content via JavaScript. A delay of 1000–3000ms is usually sufficient for most sites.
Screenshots can only be captured from publicly accessible websites. Password-protected or authentication-required pages cannot be captured.
The screenshot is returned as a base64-encoded data URI, which can be directly used in HTML <img> tags or decoded and saved as a file.

Use Cases

Website Monitoring

Monitor website changes and layouts

Thumbnail Generation

Generate preview thumbnails for URLs

Archiving

Archive web pages visually

Testing

Visual regression testing

Image Format Options

PNG

  • Best for: Screenshots with text, sharp edges
  • Lossless compression
  • Larger file sizes
  • Transparency support

JPG/JPEG

  • Best for: Photographs, complex images
  • Lossy compression
  • Smaller file sizes
  • No transparency support

WebP

  • Best for: Modern browsers
  • Superior compression
  • Smaller file sizes than PNG/JPG
  • Transparency support