Agents can't see or understand websites. SnapAPI renders any page and returns a snapshot, page type, CTAs, structure, and technologies — in one HTTP call. No browser, no headless setup, no infrastructure.
Get Free API KeyMost pages rely on JavaScript rendering. A simple HTTP GET returns empty shells, broken layouts, or bot-detection walls.
Spinning up headless Chrome in your agent pipeline adds complexity, memory overhead, and infrastructure you have to maintain.
One GET request. Full page render, DOM analysis, and structured intelligence — page type, primary CTA, technologies, and a visual snapshot. No infrastructure required.
Cookie banner dismissal, JavaScript execution, and device emulation built in. Returns machine-readable data your agent can reason about, not just raw HTML.
Define SnapAPI as a tool your LLM can invoke.
{
"type": "function",
"function": {
"name": "capture_screenshot",
"description": "Capture a screenshot of a webpage",
"parameters": {
"type": "object",
"properties": {
"url": { "type": "string", "description": "The URL to screenshot" },
"device": { "type": "string", "enum": ["desktop", "iphone14", "pixel7"] },
"full_page": { "type": "boolean" }
},
"required": ["url"]
}
}
}
Call SnapAPI from any Python-based agent framework.
import requests
def screenshot_tool(url, device="desktop", full_page=False):
"""Give your agent eyes — capture any webpage as an image."""
resp = requests.get("https://snapapi.tech/v1/screenshot", params={
"url": url,
"api_key": API_KEY,
"device": device,
"full_page": str(full_page).lower(),
"meta": "true" # returns base64 image + page title
})
return resp.json()
# Agent calls this tool when it needs to see a webpage
result = screenshot_tool("https://example.com", device="iphone14")
Register as a LangChain tool in 10 lines.
from langchain.tools import tool
import requests
@tool
def screenshot(url: str) -> str:
"""Capture a visual screenshot of any webpage. Returns base64 image and page metadata."""
resp = requests.get("https://snapapi.tech/v1/screenshot", params={
"url": url, "api_key": API_KEY, "meta": "true"
})
data = resp.json()
return f"Title: {data['title']}\nImage: {data['screenshot'][:100]}..."
Works with any language or framework that can make HTTP requests.
GET https://snapapi.tech/v1/screenshot?url=example.com&api_key=YOUR_KEY&meta=true
# Returns JSON:
{
"title": "Example Domain",
"description": "This domain is for use in illustrative examples.",
"language": "en",
"headings": [{ "level": 1, "text": "Example Domain" }],
"links": [{ "text": "More information...", "href": "https://www.iana.org/domains/example" }],
"text": "Example Domain This domain is for use in illustrative examples...",
"screenshot": "data:image/png;base64,iVBOR...",
"format": "png",
"width": 1280,
"height": 800
}
Agents verify UI changes by comparing screenshots before and after deploys.
Feed rendered pages to vision models when HTML parsing isn't enough.
Monitor competitor pages for pricing, layout, or content changes over time.
Agents screenshot reference sites to inform design or copywriting tasks.
Capture pages across devices and pass to models for accessibility review.
Screenshot receipts, dashboards, or confirmations as part of automated workflows.
Agents and platforms that support the OpenAI plugin standard can discover SnapAPI automatically.
GET https://snapapi.tech/.well-known/ai-plugin.json
Import this directly as a function calling tool definition — works with OpenAI, Claude, and any function-calling LLM.
GET https://snapapi.tech/v1/tool
// Returns a complete function schema:
{
"type": "function",
"function": {
"name": "snapapi_screenshot",
"description": "Capture a screenshot of any webpage...",
"parameters": { ... }
}
}
When meta=true, the response includes everything an agent needs to reason about a page — not just the image.
{
"url": "https://example.com",
"title": "Example Domain",
"description": "This domain is for use in illustrative examples.",
"language": "en",
"headings": [
{ "level": 1, "text": "Example Domain" }
],
"links": [
{ "text": "More information...", "href": "https://www.iana.org/domains/example" }
],
"text": "Example Domain This domain is for use in illustrative examples...",
"screenshot": "data:image/png;base64,iVBOR...",
"format": "png",
"width": 1280,
"height": 800
}
Give agents structured understanding of a page without parsing images. Returns page type, primary CTA, nav, buttons, forms, technologies, word count, and more.
// Perfect for agents that need to understand a page, not just see it
const data = await fetch(
"https://snapapi.tech/v1/analyze?url=https://stripe.com",
{ headers: { "x-api-key": "YOUR_KEY" } }
).then(r => r.json());
// Agent can reason directly about structure:
console.log(data.page_type); // "landing"
console.log(data.primary_cta.text); // "Start now"
console.log(data.primary_cta.href); // "https://stripe.com/register"
console.log(data.technologies); // ["react", "stripe", "google-analytics"]
console.log(data.forms.length); // 0 (no forms on the homepage)
console.log(data.nav_items[0].text); // "Products"
console.log(data.word_count); // 1432
console.log(data.load_time_ms); // 980
Import directly into agent frameworks that support tool discovery via OpenAPI.
100 free screenshots per month. No credit card required.
Get Free API Key