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.
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.pngBrand-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"]}'| Package | Output | Shots |
|---|---|---|
| product-hunt | 1270×760 | Brand hero, dark hero, mobile, full page, + pages |
| app-store | 1290×2796 | iPhone light, iPhone dark, + pages |
| launch | 16:9, 1:1, 4:5, 1.91:1, 3:1 | The hero in every social size |
| docs | capture size | Desktop, desktop dark, mobile, full page |
Responses are JSON with a base64 PNG per shot. GET /api/v1/packages describes them, free.
Parameters
| Field | Type | Notes |
|---|---|---|
| url | string | Required. http(s) page to capture. |
| look | string | Default "clean". One of brand, raw, clean, midnight, dusk, float, studio, soft, mono, sunset, ocean, none. "brand" matches the site's colors; "raw" skips styling. |
| brand | bool | Detect accent colors and use them as the background with any look. |
| width / height | int | Viewport in px. Default 1440×900. Max 4000. |
| fullPage | bool | Capture the whole scrollable page. |
| darkMode | bool | Emulate prefers-color-scheme: dark. |
| delay | int ms | Extra wait after load (0–10000). Default 300. |
| hideCookieBanners | bool | Default true. Pre-answers consent platforms, sends Global Privacy Control, declines what still appears and hides chat widgets. |
| blockTrackers | bool | Default true. Blocks analytics and ad-pixel hosts so the capture isn't counted as a visit. |
| title | string | Address-bar text for browser-frame looks. |
| aspect | string | Output aspect for styled looks, e.g. "16:9", "1:1", "4:5". |
| outputWidth | int | Styled output width in px (640–3200). Default 1600. |
| response | string | "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"