API and MCP

    Screenshots as an API.

    One call turns any URL into a finished mockup: captured headlessly, framed, shadowed and placed on a background. 1 credit per shot. Use the HTTP API directly or install the MCP server in Claude, Cursor or any MCP client.

    Loading…

    Quick start

    Returns a PNG. Add response=json for a base64 data URL instead.

    curl -X POST https://dropashot.com/api/v1/screenshot \
      -H "Authorization: Bearer das_live_YOUR_KEY" \
      -H "Content-Type: application/json" \
      -d '{"url":"https://stripe.com","look":"midnight","title":"stripe.com"}' \
      --output shot.png

    Brand-matched backgrounds

    Pass look: "brand" and Dropashot reads the page's accent colors from the capture and builds the background from them. The detected colors come back as brand.colors in JSON responses and an X-Brand-Colors header. GET /api/v1/brand?url=… returns just the colors.

    Packages

    One request, a complete set. Each package charges one credit per shot and refunds any shot that fails. Add up to eight pages for one framed shot each.

    curl -X POST https://dropashot.com/api/v1/package   -H "Authorization: Bearer das_live_YOUR_KEY"   -H "Content-Type: application/json"   -d '{"url":"https://yourapp.com","package":"product-hunt",
           "pages":["https://yourapp.com/pricing","https://yourapp.com/app"]}'
    PackageOutputShots
    product-hunt1270×760Brand hero, dark hero, mobile, full page, + pages
    app-store1290×2796iPhone light, iPhone dark, + pages
    launch16:9, 1:1, 4:5, 1.91:1, 3:1The hero in every social size
    docscapture sizeDesktop, desktop dark, mobile, full page

    Responses are JSON with a base64 PNG per shot. GET /api/v1/packages describes them, free.

    Parameters

    FieldTypeNotes
    urlstringRequired. http(s) page to capture.
    lookstringDefault "clean". One of brand, raw, clean, midnight, dusk, float, studio, soft, mono, sunset, ocean, none. "brand" matches the site's colors; "raw" skips styling.
    brandboolDetect accent colors and use them as the background with any look.
    width / heightintViewport in px. Default 1440×900. Max 4000.
    fullPageboolCapture the whole scrollable page.
    darkModeboolEmulate prefers-color-scheme: dark.
    delayint msExtra wait after load (0–10000). Default 300.
    hideCookieBannersboolDefault true. Pre-answers consent platforms, sends Global Privacy Control, declines what still appears and hides chat widgets.
    blockTrackersboolDefault true. Blocks analytics and ad-pixel hosts so the capture isn't counted as a visit.
    titlestringAddress-bar text for browser-frame looks.
    aspectstringOutput aspect for styled looks, e.g. "16:9", "1:1", "4:5".
    outputWidthintStyled output width in px (640–3200). Default 1600.
    responsestring"binary" (default) or "json".

    Errors come back as { "error": { "code", "message" } }. 401 bad key · 402 out of credits · 400 bad input · 502 the page couldn't be captured (not charged). X-Credits-Remaining is set on every success.

    MCP server

    Give Claude, Cursor or any MCP client a screenshot_url tool. Add this to your MCP config:

    {
      "mcpServers": {
        "dropashot": {
          "command": "npx",
          "args": ["-y", "dropashot-mcp"],
          "env": { "DROPASHOT_API_KEY": "das_live_YOUR_KEY" }
        }
      }
    }

    Tools: screenshot_url, list_looks, get_usage. The server is a thin wrapper over the HTTP API above, so anything you can do in one you can do in the other.

    Usage

    curl https://dropashot.com/api/v1/usage -H "Authorization: Bearer das_live_YOUR_KEY"