Use case

Capture dated screenshots of competitor pages to watch what changes

Screenshot web pages as PNG, JPEG, WebP or PDF and get a link to each image, to keep a visual record of competitor pages, ads and your own site.

Prepaid, no subscriptionREST or MCPOne key for models, data and agents
Weblovelyjsonitems[0]"url": "https://example.com/p…"format": "png""width": 1280"image": "https://files.example…

Text tools cannot tell you that a competitor moved its pricing table, swapped a banner or redesigned a landing page. You need to see the page as a visitor does, and you need yesterday's version to compare. Lovely Router takes the screenshot for you. Send a URL, get one JSON object per screenshot with a link to the image, pay per screenshot from a prepaid balance. Call it from a scheduled job or an AI agent with one API key.

Hand it to your AI agent

Copy this prompt into Claude Code, Cursor, Codex or any coding agent. It tells the agent where the docs are and how to use your API key.

Capture dated screenshots of competitor pages to watch what changes. Use the Lovely Router data tools: each returns JSON and is billed per result.

- Docs (read first): https://lovelyrouter.com/docs/tools/find.md and https://lovelyrouter.com/docs/tools/run.md
- Plan first: POST https://lovelyrouter.com/v1/tools/suggest with `{"task": "<my task in plain words>"}` (free). It returns the tools to run in order, each with an example `input`, the `input_required` fields, an estimated cost and a ready-made `run` request. Replace the example values with my task's; if a field is unclear, read the tool with GET https://lovelyrouter.com/v1/tools/<id>. To browse instead, POST https://lovelyrouter.com/v1/tools/discover searches the catalog.
- Show me the plan and its estimated cost (`total_est_cost_usd`) before running anything large.
- Run: POST https://lovelyrouter.com/v1/tools/<id>/run with `{"input": {...}, "max_results": N}`. A 200 has the finished run with `items`; a 202 means it is still running, so poll the `poll` path until `status` is `succeeded`, `failed`, `timed_out` or `stopped`.
- Only delivered results are billed. Keep max_results small on the first run, check the output, then scale up.
- If you support MCP, connect https://lovelyrouter.com/mcp instead (Streamable HTTP, same key; https://lovelyrouter.com/docs/tools/mcp.md) and use suggest_tools, get_tool and run_tool.
- Auth: read my API key from the LOVELY_API_KEY environment variable and send it as `Authorization: Bearer $LOVELY_API_KEY`. Never print or commit the key. If it is not set, ask me to create one at https://lovelyrouter.com/app/keys.
- Billing is prepaid: every call is charged to my balance, so test with a small request before running anything large.
- Every docs page is plain Markdown; the full index is https://lovelyrouter.com/llms.txt.

My task: <the inputs (links, keywords or accounts) and how many results you need>
01

How it works

010203
  1. List the pages

    Pick the pages you want a record of: competitor pricing and landing pages, your own checkout, a campaign page.

  2. Run the tool with a cap

    Send the input to POST /v1/tools/website-screenshot/run with max_results. Send the URL, or several in urls, with max_results. The run holds its maximum cost from your balance and returns a link to each image.

  3. Save and compare

    Download each image under the date, then compare it with the previous capture by eye or with a model that can read images.

02

Take a screenshot with one request

Screenshot a web page takes a url, or a list in urls to capture several pages in one run. format is png, jpeg, webp or pdf, and width sets the viewport width in pixels:

curl https://lovelyrouter.com/v1/tools/website-screenshot/run \
  -H "Authorization: Bearer $LOVELY_API_KEY" \
  -H "content-type: application/json" \
  -d '{
    "input": {
      "url": "https://example.com",
      "format": "png",
      "width": 1280
    },
    "max_results": 1
  }'

Pages are captured full-length. Use delayMs to wait after the page is ready so animations or late content can settle. A run still going after 60 seconds returns 202; Run a tool shows how to poll.

03

What each screenshot holds

Field groupWhat you get
ImageA link to the full-page capture
FormatPNG, JPEG, WebP or PDF, as you choose
ViewportThe width you set, or the default device width

Download the image file when you need to keep it; store the link with the capture date. A pdf is also a full-page capture, useful for archiving a page as a document.

04

Recipes

Keep a pricing page history

Capture a competitor's pricing page every week and file the images by date, so you can show how the plans changed.

Check your own pages after a release

Capture the home page and checkout at a set width and look for broken layouts.

Archive a page as PDF

Set format to pdf to save a full-page copy of terms, a regulation page or an ad landing page.

Compare widths

Run the same URL at a narrow and a wide width to see how the layout changes.

Review captures with a model

Send two dated images to a model that reads images and ask what changed.

Prefer plain words? Connect the MCP server and tell Claude Code or Cursor: "Take full-page PNG screenshots of the 10 URLs in pages.txt at width 1280 and list the image links. Set max_results to 10."

06

What you pay

You pay per screenshot: starting a run holds its maximum cost, the per-call fee plus the per-screenshot fee times max_results, and the run settles to what it returned. The rest of the hold goes back to your balance. A run that fails or times out pays only for the screenshots it delivered, and a run refused at the start costs nothing.

Capturing 20 pages a week is billed as 20 screenshots a week. There is no subscription and no monthly minimum: top up from $5, and one balance pays for tools and models. The card above shows today's price; pricing lists every tool.

07

Frequently asked questions

?
Which formats can I get?+

PNG, JPEG, WebP and PDF, set with format.

Can I capture several pages at once?+

Yes. Put them in urls. One run takes up to 20 screenshots.

Does it capture the whole page?+

Yes, it captures the full page. A pdf always captures the full page.

Can I wait for a slow page?+

Set delayMs to add a delay after the page is ready, so animations or late content can settle.

Can I set the screen size?+

Set width for a custom viewport width in pixels; leave it empty for the device default.

Do I need a subscription?+

No. You add credit to a prepaid balance and each run draws it down. Failed runs pay only for the results they delivered, and nothing renews automatically.

Watching ads or sites at scale? See ad intelligence, and the rest of the tool catalog.

One prepaid key for models, data and agents

No subscription. Top up, use what you need, see every charge in your logs.