SearchCans

Screenshot API

Built for visual archiving, change detection, and compliance evidence. One POST captures full-page screenshots, PDF renders, or element-level images from any URL — JavaScript-heavy pages and SPAs included, no headless browser to manage.

Try in Playground →

Screenshot API — Live Preview

url="searchcans.com/pricing/"
Screenshot Output
imageUrl · read-only
Full-page screenshot of searchcans.com/pricing/ captured by Web Screenshot API (image:2)

Use "image": 2 for full-page capture or "image": 1 for first screen only. Response includes a hosted imageUrl.

API Endpoint

POST https://www.searchcans.com/api/v1/url

Code Examples

curl -X POST "https://www.searchcans.com/api/v1/url" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "t": "url",
    "s": "https://www.searchcans.com",
    "image": 2,
    "mode": 1,
    "w": 1000,
    "d": 20000
  }'

Example Response

imageUrl markdown
{
  "code": 0,
  "data": {
    "id": "q_2054485360406171648_a28c14f7-c6e3-4346-b66f-5226102490ae",
    "title": "SERP API Pricing: $0.56/1K | Unlimited Hourly Throughput",
    "description": "SERP API + Reader API pricing with prepaid credits from $18, 100 free credits for new users, and Parallel Lanes that scale with bursty AI and data workloads.",
    "markdown": "[![SearchCans](https://www.searchcans.com/logo/logo.svg)](https://www.searchcans.com/)\n\n[Pricing](https://www.searchcans.com/pricing/) [Docs](https://www.searchcans.com/apis/) [Playground](https://www.searchcans.com/playground/) [Blog](https://www.searchcans.com/blog/)\n\n[Login](h… (8646 chars total)",
    "imageUrl": "/serp-preview/screenshot_api.png"
  },
  "msg": "success",
  "requestId": null
}

Request Body (JSON)

Parameter Type Description
t string API type — always "url" for Screenshot API "url"
s string Target URL to capture a screenshot of "https://example.com"
image integer Screenshot mode: 0 = none, 1 = first screen only, 2 = full page 2
mode integer Render mode: 0 = standard HTTP (default), 1 = headless browser 1
w integer Wait time after page load in milliseconds (default: 5000). Only applies when mode=1 1000
d integer Request timeout in milliseconds (default: 30000) 30000

API Response — Hosted Image URL & Page Content

When "image": 2 (full page) or "image": 1 (first screen) is set, the response includes a hosted screenshot URL alongside the page's Markdown content.

data.imageUrl

Hosted URL of the captured screenshot PNG — ready to download, embed, or pass to a vision model.

data.markdown

Page content as clean Markdown — included alongside the screenshot automatically.

data.title

Page title extracted from the captured URL.

data.description

Meta description from the captured page.

data.id

Unique request ID for this job. Useful for deduplication, logging, and support queries.

requestId

Top-level trace identifier returned by the backend. May be null for synchronous requests.

Browser Automation API — Headless Rendering

Enable headless browser rendering (not full browser automation) to load JavaScript-heavy pages before extraction. Set "mode": 1 to load the page in a real browser environment — ideal for single-page applications, React/Vue/Angular sites, and dynamically rendered content. Use the "w" parameter to set a wait time in milliseconds after page load.

JavaScript Rendering API — Capture Dynamic Pages

With "mode": 1, the Screenshot API acts as a JavaScript Rendering API — executing scripts, waiting for async content, and capturing the final rendered state. Ideal for React, Vue, Angular, and any page that loads content dynamically. Use the "w" parameter to set a custom wait time in milliseconds.

Web Screenshot API — Capture Full Pages, PDFs or Elements

Control capture mode via the "image" parameter: 1 for first viewport (above the fold), 2 for full-page capture. Response includes a hosted PNG URL — ready to download, embed in a report, or pass to a vision model.

Get 100 Free Credits — No Card Required

Get 100 free credits on sign up. No credit card required.