WFS — Web Feature Service
OGC-compliant Web Feature Service (WFS 2.0) serving site geometry polygons as GeoJSON features. Ideal for loading editable vector layers into QGIS, running spatial analysis in Python (geopandas), or querying geometries from any WFS-capable client.
URL
https://app.raad.com/wfs
Feature Types
Each site has two kinds of feature types:
Type Name Contentsraad:{site-uuid}
All geometry polygons for that site
raad:{site-uuid}__building_structure
Only building structure polygons
raad:{site-uuid}__cooling
Only cooling system polygons
raad:{site-uuid}__grid_power
Only power infrastructure polygons
raad:{site-uuid}__capture_area
Only capture area boundaries
Setup in QGIS — Click to Add
- Go to Layer → Add Layer → Add WFS / OGC API — Features Layer
- Click New, set name to Raad WFS, URL to
https://app.raad.com/wfs - Open the Authentication tab → click the green + → choose HTTP Header auth
- Set header name
Authorization, valueBearer YOUR_MAP_ACCESS_TOKEN, and save - Click OK → Connect — browse the feature type list and double-click any row to add it
Setup in ArcGIS Pro
- On the Insert tab → Connections → New WFS Server
- Set the URL to
https://app.raad.com/wfs - Expand Custom request headers, add
Authorization→Bearer YOUR_MAP_ACCESS_TOKEN - Click OK — in the Catalog pane, expand the connection and add a feature type to the map
Python — geopandas
import geopandas as gpd
import requests
from io import BytesIO
TOKEN = "YOUR_MAP_ACCESS_TOKEN"
SITE_ID = "YOUR_SITE_UUID"
headers = {"Authorization": f"Bearer {TOKEN}"}
params = {
"SERVICE": "WFS",
"REQUEST": "GetFeature",
"TYPENAMES": f"raad:{SITE_ID}",
"outputFormat": "application/json"
}
response = requests.get("https://app.raad.com/wfs", headers=headers, params=params)
gdf = gpd.GeoDataFrame.from_features(response.json()["features"], crs="EPSG:4326")
print(gdf[["label", "system_type", "geometry"]].head())
# Filter to just building structures
buildings = gdf[gdf["system_type"] == "building_structure"]
buildings.plot(color="steelblue", alpha=0.5)
Python — requests (raw GeoJSON)
import requests
TOKEN = "YOUR_MAP_ACCESS_TOKEN"
SITE_ID = "YOUR_SITE_UUID"
SYSTEM_TYPE = "cooling" # or omit for all types
headers = {"Authorization": f"Bearer {TOKEN}"}
params = {
"SERVICE": "WFS",
"REQUEST": "GetFeature",
"TYPENAMES": f"raad:{SITE_ID}__{SYSTEM_TYPE}",
"outputFormat": "application/json"
}
response = requests.get("https://app.raad.com/wfs", headers=headers, params=params)
geojson = response.json()
print(f"{geojson['numberReturned']} features returned")