WFS 2.0
The same data is served as classic WFS 2.0 at https://ogc.deepfire.co/ows. Reach for
WFS when you need:
- Existing GIS tooling — QGIS, ArcGIS, GDAL/OGR and friends speak WFS natively.
- Server-side sorting — the OGC API
sortbyparameter is a no-op on this service; WFSsortByis the only way to get ordered results from the server. - Feature counts —
resultType=hitsreturnsnumberMatchedwithout features.
Service metadata
# Capabilities
curl -s "https://ogc.deepfire.co/ows?service=WFS&version=2.0.0&request=GetCapabilities"
# Feature schema for a collection
curl -s "https://ogc.deepfire.co/ows?service=WFS&version=2.0.0&request=DescribeFeatureType&typeNames=deepfire:hotspots"
GetFeature
Features as GeoJSON, filtered with CQL_FILTER:
curl -sG "https://ogc.deepfire.co/ows" \
--data-urlencode "service=WFS" --data-urlencode "version=2.0.0" \
--data-urlencode "request=GetFeature" --data-urlencode "typeNames=deepfire:clusters" \
--data-urlencode "outputFormat=application/json" --data-urlencode "count=100" \
--data-urlencode "CQL_FILTER=active=true"
Paging uses count + startIndex (same 10,000 cap and shallow-offset advice as the
OGC API).
Sorted output
# The 100 most recent live detections
curl -sG "https://ogc.deepfire.co/ows" \
--data-urlencode "service=WFS" --data-urlencode "version=2.0.0" \
--data-urlencode "request=GetFeature" --data-urlencode "typeNames=deepfire:hotspots" \
--data-urlencode "outputFormat=application/json" --data-urlencode "count=100" \
--data-urlencode "CQL_FILTER=active=true" \
--data-urlencode "sortBy=observed_at D"
sortBy=<attribute> A sorts ascending, <attribute> D descending.
Counting
curl -sG "https://ogc.deepfire.co/ows" \
--data-urlencode "service=WFS" --data-urlencode "version=2.0.0" \
--data-urlencode "request=GetFeature" --data-urlencode "typeNames=deepfire:hotspots" \
--data-urlencode "resultType=hits" --data-urlencode "CQL_FILTER=active=true"
QGIS
Layer → Add Layer → Add WFS Layer…, create a connection with URL
https://ogc.deepfire.co/ows (no credentials), and the three collections appear as
layers. Apply a provider filter like active = true unless you want full history.