Welcome to the EXPERIMENTAL wrapper for the Copernicus Data Space Ecosystem: Sentinel-2 imagery (WMS) — Sentinel-1 too, if the configured Sentinel Hub instance has SAR layers set up — and its acquisition catalogue (WFS) exposed as Linked Data, with Memento temporal negotiation over the time dimension.
We maintain a document with Frequently Asked Questions.
Open the viewer — pan to an area, then slide through its Sentinel-2 acquisitions. Enter your API key there once and the example links below work in this browser too; without one they answer 401.
A single Web-Mercator tile over Munich, followed through the wrapper's formats — the same resource, negotiated:
A WMS render is always resampled to the requested width/height;
these three requests are the same patch of ground at increasing fidelity to
the underlying Sentinel-2 grid (see the FAQ):
width than that returns native, not an upscale)Below that is the raw JPEG2000 itself: the WFS record for the covering
acquisition (see the acquisition catalogue below) carries an
rdfs:seeAlso link to the CDSE OData product — downloading it
needs CDSE credentials, so the wrapper does not proxy it.
The WMS URI is its own TimeGate; asking it for a past date redirects to the memento that was true then, and the TimeMap lists every acquisition in between:
Or negotiate by date — the same WMS URI, no time=, resolved
via Accept-Datetime:
curl -sI -H 'Accept-Datetime: Thu, 05 Jun 2025 12:00:00 GMT' \ 'https://wunderfacts.com/cdse/wms?layer=TRUE_COLOR&bbox=11.4,48.0,11.7,48.2&width=600&height=400'
The tile and WMS renders above are drawn from acquisitions in this catalogue — the same Munich bbox, as metadata rather than pixels:
Two endpoints, no service parameter — this wrapper fronts a single Copernicus Data Space Ecosystem instance, and its instance id is a credential (see the FAQ), so it never appears in a URI.
/tile/{layer}/{z}/{x}/{y} a tile, as a resource
.png · .jpg the image
.ttl · .rdf · .nt what it is: footprint, resolution, acquisitions
optional: ?time={date|interval} ?maxcc={percent}
/wms?layer={layer}&bbox={W,S,E,N}&width={px}&height={px}
optional: &time={date|interval} &maxcc={percent}
&sw={lat,lon}&ne={lat,lon} instead of bbox
/wms.png · /wms.jpg force the image format
/wms/describe the layers, their extent and zoom range
/wfs?typenames={typename}&bbox={W,S,E,N}
optional: &time={date|interval} &count={n}&offset={n} &filter={fes-xml}
&typenames=* every feature type at once
&type={rdf-type-uri} instead of typenames
/wfs.json · /wfs.ttl · /wfs.rdf · /wfs.nt · /wfs.gml
format suffixes; bare /wfs negotiates on Accept
/wfs/describe the feature types and their schema
A feature is a fragment of the document that carries it, so its URI dereferences to a description of it:
<wfs?typenames=DSS2&bbox=11.4,48.0,11.7,48.2#S2A_MSIL2A_20260721T102041_N0512_R065_T32UPV_20260721T170018.SAFE>
a <https://www.sentinel-hub.com/DSS2> ;
locn:geometry "MULTIPOLYGON (((…)))"^^geo:wktLiteral .
Types and property names are the service's own
(https://www.sentinel-hub.com/…); the wrapper coins no
vocabulary of its own.
A URI without time= is the original resource and its
own TimeGate; the same URI with time= is a memento.
Accept-Datetime: {RFC 1123 date} on /wms or /wfs → 302 to the memento
&time={YYYY-MM-DD} a single day
&time={start}/{end} an interval, e.g. 2025-05-06/2025-06-05
/wms/timemap?layer=&bbox= the list of acquisitions (application/link-format)
optional: &maxcc={percent} drop acquisitions cloudier than this
/wms/timemap.json?layer=&bbox= the same list with per-date cloud cover
Responses carry Link: <…> rel="original timegate",
rel="timemap" and, on a memento, Memento-Datetime.
prov:SoftwareAgent, with the build it is running. There is no
/vocab: types and predicates in /wfs are the service's own
featureNamespace, verbatim; the wrapper coins no terms.