# Capture - Web Automation Platform for Humans and Agents ## Overview Capture is a web automation platform for both developers and AI agents. Capture screenshots, generate PDFs, scrape content, and extract metadata from any website with a single API call — or drive a real browser step by step with persistent, stateful Browser Sessions for multi-step flows like logins, forms, and authenticated scraping. AI agents can use the same capabilities through a hosted MCP server, an agent Skill, or a CLI. It offers superior rendering quality, battle-tested reliability with 99.9%+ uptime, and a pay-per-use model without subscriptions. ## Core Features ### Browser Sessions - Persistent, stateful browser automation over a simple REST API — drive a real Chrome page step by step - Cookies, login state, and navigation history persist across actions within a session - Full action set: navigate (goto), click, type, scroll, select, hover, wait, query the DOM, capture screenshots, and read page content - Batch actions: send multiple actions (e.g. goto + click + type + screenshot) in a single request to reduce round-trips - Stealth mode to bypass bot detection and support for routing through your own proxy - Ideal when a single stateless request isn't enough: logins, multi-step forms, checkout flows, authenticated scraping, and AI agents that browse - Billed by duration: 1 credit per minute the session stays open (rounded up), charged on close or expiry - A session can stay open up to 15 minutes; up to 5 concurrent sessions ### Screenshot API - High-fidelity website screenshots with comprehensive options - Support for all modern web technologies including WebGL, CSS3, animations, video, graphs, and canvas - Advanced features: dark mode, ad blocking, cookie banner dismissal, bot detection bypass - Element-specific capture with CSS selectors - Multiple image formats: PNG, JPEG, WebP - Transparent background support - Device emulation support for 150+ mobile and desktop devices - Animated screenshots (screen recordings) as GIF files ### PDF Generation - Convert web pages to high-quality PDF documents - Multiple paper formats: Letter, Legal, Tabloid, Ledger, A0-A6 - Custom paper dimensions and margins - Portrait/landscape orientation - Scale factor control - S3 integration for storage - Device emulation support for mobile/tablet PDFs ### Content Extraction - Full HTML content extraction including head section - Plain text extraction from web pages - JavaScript-rendered content support - Dynamic content capture with wait conditions ### Metadata Extraction - Comprehensive metadata extraction in JSON format - Fields: title, description, logo, author, language, date, publisher - Social media metadata (Open Graph, Twitter Cards) - Rich media detection (audio, video, images) - Feed and iframe detection ### Batch Processing - Batch image capture for multiple URLs - Batch PDF generation - Webhook notifications for batch completion - HMAC-SHA256 authenticated requests ## Technical Specifications ### Authentication - API Key and API Secret required - Obtain credentials from https://capture.page/dashboard/console - MD5 hash-based authentication system - HMAC-SHA256 for batch operations ### API Endpoints - Base URL: https://cdn.capture.page/ - Screenshot: `https://cdn.capture.page/{API_KEY}/{HASH}/image?url={TARGET_URL}` - PDF: `https://cdn.capture.page/{API_KEY}/{HASH}/pdf?url={TARGET_URL}` - Content: `https://cdn.capture.page/{API_KEY}/{HASH}/content?url={TARGET_URL}` - Metadata: `https://cdn.capture.page/{API_KEY}/{HASH}/metadata?url={TARGET_URL}` - Animated Screenshot: `https://cdn.capture.page/{API_KEY}/{HASH}/animated?url={TARGET_URL}` - Batch Image: `POST https://cdn.capture.page/batch-image/{API_KEY}` - Batch PDF: `POST https://cdn.capture.page/batch-pdf/{API_KEY}` - Device List: `GET https://cdn.capture.page/screenshot/devices` (Public endpoint) ### Browser Session Endpoints - Base URL: https://api.capture.page/ - Authentication: `Authorization: Bearer YOUR_TOKEN` header - Create session: `POST https://api.capture.page/v1/sessions` (body: `{ "maxTtlSeconds": 120 }`) → returns `{ "session": { "id": "sess_abc", "expiresAt": "..." } }` - Run action: `POST https://api.capture.page/v1/sessions/{SESSION_ID}/actions` (body: `{ "type": "goto", "payload": { "url": "https://example.com" } }`) - Close session: `DELETE https://api.capture.page/v1/sessions/{SESSION_ID}` (stops billing) ### Hash Generation - Create MD5 hash using: `md5(api_secret + 'url=target_url')` - Include additional parameters in hash calculation if using options ### Performance Features - Edge-optimized delivery - Queue-less API with real-time rendering - High throughput capability - Industry-leading response times ## Official SDKs ### Node.js/TypeScript ```typescript import { Capture } from "capture-node"; const capture = new Capture("your-api-key", "your-api-secret"); const screenshotUrl = capture.buildImageUrl("https://example.com", { full: true, scaleFactor: 2, delay: 3 }); ``` ### Go ```go package main import ( "github.com/techulus/capture-go" ) func main() { c := capture.New("your-api-key", "your-api-secret") imageURL, err := c.BuildImageURL("https://example.com", capture.RequestOptions{ "scaleFactor": 2, "full": true, }) } ``` ### Rust ```rust use capture_rust::Capture; let capture = Capture::new("your-api-key".to_string(), "your-api-secret".to_string()); let url = capture.build_image_url("https://example.com", Some(&options))?; ``` ### PHP ```php buildImageUrl("https://example.com", [ "full" => true, "delay" => 2, "vw" => 1920, "vh" => 1080, ]); ``` ## AI & Agent Integrations Capture is built for AI agents as first-class users. The same capabilities are available through three agent-friendly surfaces: ### MCP Server (Model Context Protocol) - Hosted MCP server connects Capture directly to AI tools like Claude Code, Claude Desktop, Cursor, and Codex - Server URL: `https://capture.page/mcp/v1` (Streamable HTTP transport) - Authentication: `Authorization: Bearer YOUR_TOKEN` header (generate a token from the dashboard MCP page) - Available tools: - `capture_screenshot` - Full-page screenshots with device emulation, dark mode, ad blocking, and custom viewports - `capture_pdf` - Generate PDFs with custom page sizes, margins, orientation, and background graphics - `capture_content` - Extract HTML and cleaned text content from any website - `capture_metadata` - Extract title, description, Open Graph tags, and publisher info - Browser session tools to create, drive, and close interactive sessions - Quick add (Claude Code): `claude mcp add --transport http capture https://capture.page/mcp/v1 --header "Authorization: Bearer YOUR_TOKEN"` ### AI Agent Skill - Install Capture as a skill for any agent that supports skills: `npx skills add techulus/capture-skills` - Natural-language usage — e.g. "take a screenshot of example.com", "generate a PDF of this article", "extract content from this page as markdown" - Supports device emulation, content extraction (markdown/HTML), and animated GIF recordings ### Capture CLI - A CLI built in Go that any AI agent or pipeline can invoke - Install via Homebrew: `brew tap techulus/tap && brew install capture` - Examples: - `capture screenshot https://example.com -o shot.png` - `capture pdf https://example.com -X format=A4 -o doc.pdf` - `capture content https://example.com --format markdown` - Use `--edge` for faster responses from the nearest edge location ## Key Use Cases 1. **Automated Website Screenshots** - Monitoring, archiving, sharing 2. **Website to PDF Conversion** - Reports, compliance, offline access 3. **Web Content Extraction** - Data scraping, content analysis 4. **Metadata Scraping** - SEO, research, content aggregation 5. **AI Browser Integration** - Augment AI models with web browsing 6. **Automated Testing & Monitoring** - Visual regression testing, uptime monitoring 7. **Social Media Preview Generation** - Rich link previews, thumbnails 8. **Competitive Analysis** - Track competitor websites 9. **Client Reporting** - Automated branded reports 10. **SEO Auditing** - Metadata monitoring, content analysis 11. **Mobile Device Testing** - Preview websites on 150+ device profiles 12. **Screen Recording** - Capture animated interactions and page transitions 13. **Authenticated Scraping** - Log in and extract data behind auth walls with Browser Sessions 14. **Form & Checkout Automation** - Fill multi-step forms, submit, and verify results 15. **AI Agents that Browse** - Give an LLM a live browser via MCP to read pages and act autonomously 16. **End-to-End Checks** - Script real user journeys and screenshot each step ## Pricing Model - No subscription required - Pay-per-use credit system; credits are shared across all APIs and never expire - 100 free credits on signup (no credit card required) - Cost-effective for intermittent usage - Auto-reload options available - Machine-readable pricing for agents: https://capture.page/pricing.md - Human pricing page: https://capture.page/pricing ### Credit Packs (one-time purchase, USD) | Credits | Price | Rate limit | Support | |---|---|---|---| | 5,000 | $15 | 60 req/min | Standard | | 50,000 | $75 | 120 req/min | Standard | | 200,000 | $250 | 240 req/min | Priority | - Per-request APIs (screenshot, PDF, content, metadata): 1 credit per successful request; failed requests are free - Browser Sessions: 1 credit per minute open (rounded up), charged on close or expiry - Guarantee: full refund on your first 2,500 credits within 60 days, no questions asked ## Technical Advantages - **Queue-less Architecture**: Real-time processing without delays - **Superior Rendering**: Handles complex modern web technologies - **Caching System**: 7-day cache reduces costs for repeated requests - **Scalable Infrastructure**: Handles high throughput requirements - **Edge-optimized delivery**: Fast response times worldwide - **Security**: Hash-based authentication prevents unauthorized usage - **Enhanced Cookie Handling**: Improved cookie banner detection and dismissal - **Device Emulation**: Accurate mobile/tablet rendering with 150+ device profiles - **Animated Capture**: GIF screen recording for dynamic content - **Stability**: Advanced browser management for reliable captures ## Integration Examples ### HTML Image Tag ```html Screenshot ``` ### CSS Background ```css .screenshot { background-image: url('https://cdn.capture.page/API_KEY/HASH/image?url=https://example.com'); } ``` ### Markdown ```markdown ![Screenshot](https://cdn.capture.page/API_KEY/HASH/image?url=https://example.com) ``` ## Company Information - **Founded**: 2017 - **Uptime**: 99.9%+ - **Requests Processed**: 17+ million - **Active Developers**: 1,600+ - **Documentation**: https://docs.capture.page - **Support**: Responsive customer support team - **Latest Version**: 6.17.2 (Enhanced cookie banner blocking) ## API Parameters ### Screenshot Options **Required:** - `url`: Target website URL (URL-encoded) **Viewport Control:** - `vw`: Viewport width (default: 1440) - `vh`: Viewport height (default: 900) - `scaleFactor`: Screen scale factor (default: 1) - `emulateDevice`: Device key from /screenshot/devices endpoint (e.g., "iphone_13", "ipad_pro") **Capture Control:** - `delay`: Seconds to wait before capturing (default: 0) - `full`: Capture full page (default: false) - `waitFor`: Wait for CSS selector to appear - `waitForId`: Wait for specific ID to appear **Image Options:** - `type`: Format (png, jpeg, webp - default: png) - `transparent`: Transparent background (default: false) - `resizeWidth`: Resize captured image width - `resizeHeight`: Resize captured image height **Advanced Features:** - `darkMode`: Dark mode screenshot (default: false) - `blockCookieBanners`: Dismiss cookie popups (default: false) - `blockAds`: Block advertisements (default: false) - `bypassBotDetection`: Solve captchas (default: false) **Element Selection:** - `selector`: Screenshot specific CSS selector - `selectorId`: Screenshot specific element ID **Authentication:** - `httpAuth`: HTTP Basic Authentication - `userAgent`: Custom user agent - `fresh`: Force new screenshot (default: false) **Storage:** - `fileName`: Custom file name - `s3Acl`: S3 access control (private, public-read, public-read-write, authenticated-read, bucket-owner-read, bucket-owner-full-control) - `s3Redirect`: Redirect to S3 URL (default: false) - `skipUpload`: Skip S3 upload (default: false) ### PDF Options **Required:** - `url`: Target website URL **Page Format:** - `width`: Paper width - `height`: Paper height - `format`: Paper format (Letter, Legal, Tabloid, Ledger, A0-A6) - `landscape`: Orientation (default: false) **Margins:** - `marginTop`, `marginRight`, `marginBottom`, `marginLeft` **Rendering:** - `scale`: Rendering scale (default: 1) - `delay`: Seconds before capturing (default: 0) - `timestamp`: Force page reload **Storage:** - `fileName`: Custom file name - `s3Acl`: S3 access control - `s3Redirect`: Redirect to S3 URL (default: false) ### Content Extraction Options - `url`: Target URL (required) - `httpAuth`: HTTP Basic Authentication (base64url encoded) - `userAgent`: Custom user agent (base64url encoded) - `delay`: Wait time before capture (default: 0) - `waitFor`: Wait for CSS selector - `waitForId`: Wait for specific ID ### Metadata Options - `url`: Target URL (required) - Returns JSON with fields: author, audio, date, description, feed, iframe, image, lang, logo, publisher, title, url, video ### Animated Screenshot Options **Required:** - `url`: Target website URL **Recording Control:** - `duration`: Recording duration in seconds (default: 5, max: 30) - `delay`: Seconds to wait before recording (default: 0) **Viewport:** - `vw`: Viewport width (default: 1440) - `vh`: Viewport height (default: 900) - `emulateDevice`: Device key for mobile/tablet recording **Display Options:** - `fullPage`: Capture full page height (default: false) - `darkMode`: Enable dark mode (default: false) - `hideScrollbars`: Hide scrollbars in capture (default: false) **Storage:** - `fileName`: Custom file name - `s3Acl`: S3 access control - `s3Redirect`: Redirect to S3 URL (default: false) - `skipUpload`: Skip S3 upload (default: false) **Output:** - Returns GIF file - Suitable for demonstrating interactions, animations, and page transitions ### Browser Session Options & Actions **Create options:** - `maxTtlSeconds`: Maximum session lifetime in seconds before auto-expiry (set a short TTL to control cost) - `proxy`, `bypassBotDetection`, `cdp`: Optional session environment controls - `cdp` can be combined with `proxy` so external CDP clients use the configured proxy; `cdp` cannot be combined with `bypassBotDetection` **Action request shape:** - `POST /v1/sessions/{SESSION_ID}/actions` with body `{ "type": "", "payload": { ... } }` - Multiple actions can be batched in a single request to reduce round-trips - `goto`, `screenshot`, and payloads with `screenshot: true` can include `viewport`, `vw` / `vh`, `scaleFactor` / `deviceScaleFactor`, or `emulateDevice` to update the live viewport before the action. This viewport persists for later actions until changed again. - Viewport width/height are capped at 5000 and must be provided together; scale factor is capped at 3 **Action types:** - `goto`: Navigate to a URL (`payload.url`) - `click`: Click an element by selector - `type`: Type text into an input - `scroll`: Scroll the page - `select`: Select an option in a dropdown - `hover`: Hover over an element - `wait`: Wait for a selector or condition - `query`: Query the DOM and read element data - `screenshot`: Capture a screenshot of the current page state - `content`: Read the current page's HTML/text content **Session limits & billing:** - 1 credit per minute open (rounded up), billed on close or expiry - Up to 15 minutes per session, up to 5 concurrent sessions - Optional stealth mode (bot-detection bypass), custom proxy routing, and CDP connection URLs ### Device Emulation - Available for screenshot, PDF, and animated capture endpoints - Use device keys from `/screenshot/devices` endpoint - Automatically applies device-specific viewport, user agent, and touch capabilities - Popular devices include: iphone_13, iphone_14_pro, ipad_pro, galaxy_s21, pixel_5 - Desktop profiles also available for different screen sizes ## Error Handling The API provides clear error responses and status codes. SDKs include built-in error handling for common scenarios like network timeouts, authentication failures, and invalid URLs. ## Rate Limits The API is designed for high throughput but includes reasonable rate limiting to ensure service stability. Enterprise plans available for higher volume requirements. ## Third-Party Integrations ### Slack Integration - Native Slack app for screenshot capture - `/screenshot` command for direct capture in channels - Supports capture options like delay - Example: `/screenshot https://example.com delay=3` - Account linking required through integration page ### Zapier Integration - Connects Capture with 5,000+ apps - Automates repetitive tasks without coding - Custom workflow creation - Streamlines screenshot/PDF generation workflows ### GitHub Actions Integration - Visual regression testing workflows - Automated screenshot capture in CI/CD pipelines - Compare screenshots across pull requests - Detect visual changes automatically - Example workflow available in documentation ### Batch Processing **Batch Image Capture:** - Endpoint: `POST https://cdn.capture.page/batch-image/{API_KEY}` - Supports webhook notifications - Multiple URL processing in single request - Custom options per URL **Batch PDF Generation:** - Endpoint: `POST https://cdn.capture.page/batch-pdf/{API_KEY}` - HMAC-SHA256 authentication - Webhook notifications for completion - Bulk PDF creation with custom options ## Response Formats ### Screenshot Response - Direct image URL for embedding - PNG, JPEG, or WebP format ### PDF Response - Direct PDF URL for download - Optional S3 storage integration - Custom file naming support ### Content Response ```json { "success": true, "html": "...", "textContent": "Extracted plain text..." } ``` ### Metadata Response ```json { "success": true, "metadata": { "title": "Page Title", "description": "Page description", "image": "https://example.com/image.jpg", "logo": "https://example.com/logo.png", "author": "Author Name", "date": "2023-01-01", "publisher": "Publisher Name", "lang": "en", "url": "https://example.com", "audio": null, "video": null, "feed": null, "iframe": null } } ``` ## Security - Hash-based authentication prevents URL tampering - HTTPS-only API endpoints - No sensitive data stored in URLs - Secure credential management through official SDKs - HMAC-SHA256 signatures for batch operations