canonical: https://jentic.com/apis/capturekit.dev/capturekit

# CaptureKit API Reference

The CaptureKit API captures webpages as PNG, JPEG, WebP, or PDF screenshots and extracts their content for agents and automation. Screenshots can emulate a phone or tablet device, capture the full page or a single selector, hide cookie banners and ads, and upload straight to S3-compatible storage. The Content endpoint returns a page's metadata, links, HTML, Markdown, and optional sitemap, while the Analyze endpoint returns an AI summary with value proposition, features, categories, and use cases. A request-mode Website Crawler fetches raw HTML without rendering for fast audits and monitoring.

## For AI agents

Screenshot any webpage to PNG, JPEG, WebP, or PDF, extract its Markdown, HTML, metadata, and links, or get an AI summary of what the page offers.

## Scope

Does not host websites, edit images after capture, or crawl whole sites link by link. Use for single-page screenshots, content extraction, and AI page analysis only.

## Capabilities

- Capture a webpage as a PNG, JPEG, WebP, or PDF screenshot, full page or a single CSS selector
- Emulate a device such as iphone_14_pro or galaxy_s23 and set viewport_width, viewport_height, and scale_factor
- Extract a page's metadata, links, and optionally its HTML, Markdown, and sitemap in one request
- Analyze a webpage with AI to get a summary, value proposition, features, categories, and use cases, guided by a custom_prompt
- Fetch raw HTML from a URL in request mode without rendering, with redirect control
- Remove cookie banners, ads, and chosen selectors, or block resource types, before capturing
- Upload a screenshot directly to an S3 bucket and get the S3 URL back

## Use cases

### Agent web reading through Jentic

An AI agent asked about a webpage needs the page's text in a form it can reason over. Through Jentic the agent searches for 'get the markdown of a webpage', receives the CaptureKit Content operation with its input schema, and calls GET `/v1/content` with the url and include_markdown set to true. With remove_cookie_banners and remove_ads enabled, the agent reads clean Markdown and the page's links and metadata.

Example prompt: Call GET `/v1/content` with url 'https://example.com/blog/post', include_markdown true, and remove_cookie_banners true, then summarise the Markdown returned

### Visual QA and monitoring screenshots

A team checking releases wants screenshots of key pages on desktop and mobile. GET `/v1/capture` takes a url, format, device such as iphone_14_pro, and full_page with full_page_scroll to load lazy content, and can wait_for_selector before capturing. Setting s3_url with s3_bucket and the S3 keys uploads the image straight to storage for later comparison.

Example prompt: Call GET `/v1/capture` with url 'https://example.com/pricing', format 'png', device 'iphone_14_pro', and full_page true, then return the image

### Company page analysis for research

A sales or research agent needs a quick read of what a company's website says. GET `/v1/analyze` returns an AI summary of the page with its value proposition, features, categories, and use cases, and accepts a custom_prompt to steer the analysis and custom_response to add fields to the output. Caching with cache and cache_ttl avoids paying twice for the same page.

Example prompt: Call GET `/v1/analyze` with url 'https://example.com' and custom_prompt 'List the pricing tiers mentioned', then report the summary and features

### Lightweight HTML fetch for audits

An SEO audit script needs raw HTML quickly, without a browser render. GET `/v1/website/crawler` fetches a URL in request mode, follows or ignores redirects with allow_redirects, and returns the HTML source when return_page_source is true. It suits link and metadata extraction across many URLs where screenshots are not needed.

Example prompt: Call GET `/v1/website/crawler` with query 'https://example.com', allow_redirects false, and return_page_source true, then list the canonical and meta description tags found

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/v1/capture` | Capture a screenshot or PDF |
| GET | `/v1/content` | Extract page content, metadata, and links |
| GET | `/v1/analyze` | AI analysis of a webpage |
| GET | `/v1/website/crawler` | Fetch raw HTML |
| GET | `/v1/usage` | Usage and credit balance |
| GET | `/v1/jobs/{id}` | Poll an asynchronous job |

## Key resources

- **Capture** — Screenshots and PDFs with device emulation, full-page capture, element selection, and S3 upload
- **Content** — Page metadata, links, HTML, Markdown, and sitemap extraction
- **Analyze** — AI summary of a page with value proposition, features, categories, and use cases
- **Website Crawler** — Raw HTML fetch in request mode without rendering

## AI readiness

This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.

- **Score:** 57 / 100
- **Maturity:** Foundational
- **Dimensions:**
  - Foundational Compliance: 64 / 100
  - Developer Experience & Jentic Compatibility: 64 / 100
  - AI-Readiness & Agent Experience: 38 / 100
  - Agent Usability: 94 / 100
  - Security: 50 / 100
  - AI Discoverability: 69 / 100
- **View full report:** https://jentic.com/apis/capturekit.dev/capturekit/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** Wiring CaptureKit by hand means sending the x-api-key header, choosing among dozens of capture options per request, and polling async jobs when a capture runs in the background. Through Jentic you install once, import CaptureKit from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** CaptureKit puts each tool in its own URL path (`/v1/capture`, `/v1/content`, `/v1/analyze`), so a rule can limit your agent to the tools it needs. The target page travels as a url parameter, so rules bound which operations your agent may call, not which websites it visits.
- **Credential handling:** Your CaptureKit API key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'take a screenshot of a webpage' or 'get the markdown of a page', and Jentic returns the matching CaptureKit operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **ApiFlash Screenshot API** — Website screenshot API built on Chrome
- **Urlbox API** — Screenshot and PDF rendering API for websites
- **Firecrawl API** — Crawl websites and convert pages to clean markdown
- **Autom API** — Structured Google, Bing, and Brave search results

## FAQ

### What authentication does the CaptureKit API use?

The CaptureKit API authenticates with an API key in the `x-api-key` request header, declared as the ApiKeyAuth scheme in its OpenAPI spec. The capture endpoint also accepts optional s3_access_key_id and s3_secret_key values when you want screenshots uploaded to your own bucket. Through Jentic the CaptureKit key is held by your own Jentic One instance and attached at call time.

### Can I take a mobile screenshot with the CaptureKit API?

Yes. GET `/v1/capture` takes a device parameter with emulated devices such as iphone_14_pro, galaxy_s23, and huawei_p60_pro, plus viewport_width, viewport_height, and scale_factor for custom sizes. Set full_page to capture the whole page and format to png, jpeg, webp, or pdf.

### What is the difference between the Content and Website Crawler endpoints?

GET `/v1/content` loads the page and returns structured data: metadata and links, plus HTML, Markdown, and the sitemap when you ask for them, with options to remove ads and cookie banners first. GET `/v1/website/crawler` fetches raw HTML in request mode without rendering, which is faster but does not run the page's scripts.

### What are the rate limits for the CaptureKit API?

The OpenAPI spec does not specify rate limits. It does describe credit pricing per call and a GET `/v1/usage` endpoint for your balance; check the CaptureKit documentation at https://capturekit.dev for current limits.

### How do I screenshot a page through Jentic?

Search Jentic for 'take a screenshot of a webpage', load the GET `/v1/capture` operation, and execute it with url, format, and full_page. Add remove_cookie_banners to get a clean capture. To run it on your own infrastructure, install Jentic One from its GitHub repo.

### Is there a CaptureKit MCP server?

You don't need an MCP server to give your agent CaptureKit. Jentic connects it directly from the API Directory: import it, store your API key once, and your agent calls the capture, content, and analyze operations on demand without extra tool definitions loaded into its context.

### Can I limit what my agent is allowed to do with the CaptureKit API?

Yes. For an agent that only reads pages, write a rule that allows GET `/v1/content` and GET `/v1/website/crawler.` The agent can then fetch page content and HTML but cannot take screenshots, run AI analysis, or push files to S3, and each call it makes is logged.
