Quattro Expertise

screenshot3

Headless screenshot service for vos3. Give it a page URL and an API3 token; it renders the page in a real browser and returns a PNG.

It drives a real Chromium against vos3, so Mapbox tiles, contours and DOM markers render exactly as a user sees them. Works for any vos3 page, not only map frames.

Endpoint

GET https://screenshot3-staging.q-e.nl/screenshot?url=<page>&token=<api3 token>
ParamReqDefaultNotes
urlyesFull target URL. Host must be allowed (see below). URL-encode it if it contains &.
tokenyesAPI3 access token. Validated against API3 before rendering; the shot shows only what that user may see.
waitnomap-readymap-ready · networkidle · load · selector:<css>. Use networkidle for non-map pages.
widthno1600Viewport width, px (320–4000).
heightno1200Viewport height, px (320–4000).
scaleno2Device pixel ratio (1–4). Higher = print quality.
fullPagenofalsetrue captures the full scrollable page.

Examples

# a map frame (default map-ready wait)
curl "https://screenshot3-staging.q-e.nl/screenshot?url=https://vos3.q-e.nl/frames/projects/22022/sensor-map&token=<API3_TOKEN>" -o map.png

# any other page
curl "https://screenshot3-staging.q-e.nl/screenshot?url=https://vos3.q-e.nl/console/projecten&token=<API3_TOKEN>&wait=networkidle" -o page.png

Responses

StatusMeaning
200image/png
400Missing/invalid url, or host not allowed
401Missing token, or API3 rejected it
502API3 unreachable for token validation
504Timed out waiting for the page to render

Allowed hosts

url must point at one of: q-e.nl, localhost, 127.0.0.1. Other hosts are rejected (SSRF guard).

Health check: GET https://screenshot3-staging.q-e.nl/health