Skip to documentation content
Browse documentation

Build your integration

Evergreen screenshots: auto-updating image URLs

Create a website screenshot with a fixed image URL that refreshes daily or weekly. Embed it once and ScreenshotEngine keeps the image current.

View as Markdown

What an evergreen screenshot is

An evergreen screenshot is a saved capture with a permanent public image URL. ScreenshotEngine re-captures the page on a daily or weekly schedule and replaces the image behind the same link, so embeds in your website, directory, or app stay current without code changes.

Use it for website thumbnails in SaaS directories, client site overviews, and bookmark libraries. For a one-off capture, use the regular screenshot endpoint instead.

Create an evergreen screenshot

Send a POST request to https://api.screenshotengine.com/v1/evergreen-screenshot. The body accepts every POST /v1/screenshot parameter plus schedule ("daily" or "weekly", default "weekly"). Only image output is supported, and the format is fixed after creation because it is part of the image URL.

The first capture runs immediately, so the image URL works as soon as the request returns HTTP 201.

Create a weekly WebP thumbnail
curl --fail-with-body --request POST 'https://api.screenshotengine.com/v1/evergreen-screenshot' \
  --header "Authorization: Bearer $SCREENSHOTENGINE_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{
  "url": "https://example.com",
  "format": "webp",
  "blockBanners": true,
  "schedule": "weekly"
}'

Read the response

The response is JSON. Store the id to manage the screenshot later and use imageUrl wherever you want the image to appear.

HTTP 201
{
  "id": "94620f70-6d71-4cb6-9088-7d10e1daa7ea",
  "imageUrl": "https://cdn.screenshotengine.com/e/94620f70-6d71-4cb6-9088-7d10e1daa7ea.webp",
  "url": "https://example.com",
  "format": "webp",
  "schedule": "weekly",
  "status": "active",
  "nextRunAt": "2026-10-07T02:28:55.501Z",
  "lastSuccessAt": "2026-09-30T02:28:55.501Z",
  "lastError": null
}

Embed the image URL

Use imageUrl as a normal image source. The link never changes when the image refreshes.

Images are served with a 12-hour cache lifetime, so browsers and CDNs can show the previous capture for up to 12 hours after a refresh. Tools that download their own copy of an image need to fetch it again to show updates.

HTML
<img
  src="https://cdn.screenshotengine.com/e/94620f70-6d71-4cb6-9088-7d10e1daa7ea.webp"
  alt="Screenshot of example.com"
  loading="lazy"
/>

Schedules, credits, and plan limits

Every capture uses one screenshot credit from your monthly allowance: the first capture, each scheduled refresh, and each manual refresh. Each plan also allows a fixed number of evergreen screenshots. Free plans refresh weekly only and include a small watermark.

If you downgrade to a plan with fewer slots, the newest evergreen screenshots beyond the limit stop refreshing (status over_limit) but keep serving their last image. They resume after an upgrade.

Schedules, credits, and plan limits
PlanEvergreen screenshotsSchedules
Free1Weekly
Starter25Daily or weekly
Professional100Daily or weekly
Engine500Daily or weekly

Manage evergreen screenshots

All endpoints use the same Bearer authentication as the screenshot API. Listing, reading, updating, and deleting do not use credits. You can also manage evergreen screenshots from the dashboard.

PATCH accepts schedule, paused (true or false), and any capture setting except format. New capture settings apply on the next refresh.

Manage evergreen screenshots
MethodPathPurpose
POST/v1/evergreen-screenshotCreate and capture immediately
GET/v1/evergreen-screenshotList screenshots and slot usage
GET/v1/evergreen-screenshot/{id}Read status and last refresh
PATCH/v1/evergreen-screenshot/{id}Change schedule or settings, pause or resume
DELETE/v1/evergreen-screenshot/{id}Delete; the image URL stops working
POST/v1/evergreen-screenshot/{id}/refreshRe-capture now (once every 10 minutes)

Refresh status and failures

A failed refresh never replaces the image; the URL keeps serving the last successful capture and the refresh is retried the next day. Check lastSuccessAt and lastError to see whether an image is current. After five failures in a row, the account owner gets an email.

Refresh status and failures
StatusMeaning
activeRefreshing on schedule.
pausedPaused by you. The last image is still served.
failingSeveral refreshes in a row failed. Retries continue daily.
quota_exceededYour monthly allowance is used up. Refreshes resume after it resets.
over_limitBeyond your plan's evergreen limit. Upgrade or delete another to resume.

Create evergreen screenshots from an AI agent

The ScreenshotEngine MCP server at https://api.screenshotengine.com/mcp includes create_evergreen_screenshot, list_evergreen_screenshots, and delete_evergreen_screenshot tools, so an agent can set up auto-updating thumbnails for you.