# 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
```
### CSS Background
```css
.screenshot {
background-image: url('https://cdn.capture.page/API_KEY/HASH/image?url=https://example.com');
}
```
### Markdown
```markdown

```
## 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