Shotanvil

com.shotanvil.apiPublished by api.shotanvil.comOfficial publisherv1.0.0Updated Nov 2, 2026

Screenshot/PDF/HTML rendering API. API key or x402 required — keyless access disabled.

VerifiedStreamable HTTPWeb executableBrowser AutomationMedia & Design

Overview

AI-generated overview

Remote screenshot, PDF and HTML rendering API that lets an assistant capture web pages or inline HTML as images or PDFs.

What you can do
  • Capture a web page as PNG, JPEG, WebP or PDF, with full-page, viewport size, dark mode and cache options
  • Render inline HTML to an image or PDF
  • Return either raw bytes or JSON with base64 image plus extracted text and metadata
  • Optionally block ads and hide cookie-consent banners during capture
  • Check the current key's daily usage and rate-limit status
When to use it
Useful when an assistant needs to turn a live URL or a snippet of HTML into a visual snapshot or PDF, for example for reports, previews or visual checks, without running a browser locally.
Requirements
A remote endpoint at api.shotanvil.com over streamable HTTP. Access needs either an API key (sent as X-Api-Key or an access_key query parameter) or an X-Payment header for pay-per-call; keyless access only works if the operator has enabled it. Network access to the service is required.
Before you install
Requests are billed: an API key is tied to a paid plan with a free tier, and the x402 path pays per call, so usage can cost money. The API key is a secret and should be kept out of shared logs. Target URLs and any submitted HTML are sent to a third-party service, so avoid pages or content that should not leave your environment.

Installation

In SourceWeft

  1. Open Shotanvil in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/com.shotanvil.api%2Fshotanvil/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "shotanvil": {
      "type": "http",
      "url": "https://api.shotanvil.com/mcp"
    }
  }
}

README

shotanvil-examples

Usage examples and a live-synced OpenAPI spec copy for the shotanvil screenshot API — 1 screenshot = 1 request, a free tier that's actually free, from $9/mo.

Base URL: https://api.shotanvil.com

Access paths

GET /take and POST /render-html accept three access paths, checked in this order:

  1. x402 — send an X-Payment header (pay-per-call, no signup, testnet-settled).
  2. API key — send X-Api-Key: <key> or ?access_key=<key>.
  3. Keyless — no credential, IP-rate-limited, only when the operator has keyless access enabled.

An invalid API key always fails with 401 and never falls through to keyless, even when keyless is enabled — a typo'd paying key never silently downgrades to a lower tier.

Get an API key at shotanvil.com.

Quickstart

Take a screenshot:

bash
curl "https://api.shotanvil.com/take?url=https://example.com" \  -H "X-Api-Key: $SHOTANVIL_API_KEY" \  -o screenshot.png

Get text + metadata as JSON instead of raw bytes:

bash
curl "https://api.shotanvil.com/take?url=https://example.com&response_format=json" \  -H "X-Api-Key: $SHOTANVIL_API_KEY"

Render inline HTML:

bash
curl -X POST https://api.shotanvil.com/render-html \  -H "Content-Type: application/json" \  -H "X-Api-Key: $SHOTANVIL_API_KEY" \  -d '{"html": "<html><body><h1>Hello</h1></body></html>"}' \  -o out.png

More runnable examples: examples/curl.sh, examples/node/screenshot.mjs.

Common GET /take parameters

ParamTypeNotes
urlstring, requiredTarget page URL, http/https only.
formatstringpng (default), jpeg, webp, or pdf.
full_pageboolCapture the full scrollable page height, not just the viewport.
viewport_width / viewport_heightint320–3840 / 240–2160.
cache_ttlintSeconds to cache this exact render, 0–86400.
freshboolBypass the cache read for this request.
block_adsboolBlock ad-network requests via an EasyList-derived blocklist.
block_cookie_bannersboolInject a CSS kill-list that hides common cookie-consent banners.
dark_modeboolEmulate prefers-color-scheme: dark before navigation.
response_formatstringbinary (default) returns raw bytes; json wraps image (base64) + extracted text/metadata.

Full parameter reference, request/response schemas, and every field's worked example live in openapi.json — open it in any OpenAPI viewer (e.g. editor.swagger.io) for the browsable version.

Rate limits

Each API key has a per-second rate limit and a daily call cap. GET /usage reports the current key's usage for the day. Exceeding either returns 429 with a retry_after_s field.

Keeping openapi.json in sync

openapi.json in this repo is a point-in-time copy, fetched from the live GET https://api.shotanvil.com/openapi.json endpoint — it is not hand-written and will drift as the API evolves.

Before relying on it for anything beyond casual browsing, or before any future update to this repo, re-fetch and diff:

bash
curl -sS https://api.shotanvil.com/openapi.json -o /tmp/openapi.latest.jsondiff openapi.json /tmp/openapi.latest.json

If they differ, review the diff, replace openapi.json with the fresh copy, and commit — do not hand-edit openapi.json directly.

License

Examples in this repo are MIT-licensed — copy and adapt freely. openapi.json describes the shotanvil API and is provided for reference only.

Source: README.md at commit 30362bb

Tools

0
SourceWeft has not read this server's tools yet.

Version history

1
  1. v1.0.0LatestSep 16, 2026

Score

75% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.