STAC Catalog
Raad publishes a standards-compliant SpatioTemporal Asset Catalog (STAC API 1.0). Collections map to your sites; each site contains four nested sub-collections listed below. For a full QGIS walkthrough — native connection setup, searching captures with thumbnail previews, and streaming COG/COPC assets onto the canvas — see the dedicated guide: QGIS: Browse and Stream Your Raad Catalog.
Sub-collection Item Assetssurveys
One completed aerial capture (processed ODM run)
Orthophoto COG, DSM, DTM, point cloud (COPC), 3D models, report PDF, thumbnail, preview tiles
coverage-groups
An acquisition set (mission × geometry × sensor)
Thumbnail
artifact-groups
A curated group of source photos
Thumbnail, union footprint
raw-imagery
A single captured photo
Source JPEG, EXIF thumbnail
URLs
Catalog: https://app.raad.com/stac
Collections: https://app.raad.com/stac/collections
Items: https://app.raad.com/stac/collections/{site-uuid}/items
Sub-collections: https://app.raad.com/stac/collections/{site-uuid}/collections
Search: https://app.raad.com/stac/search
Sites GeoJSON: https://app.raad.com/stac/sites.geojson
Streaming vs downloading — what to expect
Asset hrefs are HTTPS URLs that render or download without extra credentials (your map access token is carried in the URL). How an asset behaves depends on its format:
Asset type In QGIS COG / COPC (orthophoto, DSM, DTM, point cloud) Streams directly onto the map — no download. Drag the asset onto the canvas; QGIS fetches only the tiles it needs over HTTP range requests GeoJSON (site geometries, footprints) Download then open, or use WFS/vector tiles for the click-to-add experience JPEG photos (raw imagery) Download/view — oblique photos carry no georeferencing, so they cannot be draped on a map. Browse them via item footprints instead PDF / OBJ / GLB DownloadQGIS — native STAC support (recommended)
Requires QGIS 3.42 or later.
- In the Browser panel, right-click STAC → New STAC Connection…
- URL:
https://app.raad.com/stac; under Authentication, add an HTTP Header config withAuthorization=Bearer YOUR_MAP_ACCESS_TOKEN - Expand the connection → a site → Surveys → a capture → drag the Orthophoto (COG) node onto the canvas to stream it, or right-click for details/download
Searching with previews (Data Source Manager)
- Open Layer → Data Source Manager → STAC, select your connection, and click Filters…
- Set a spatial extent and/or date range (optionally limit to specific site collections) and search
- The results list shows each capture with a thumbnail preview, date, and summary — check Show Footprints to see footprints on the map, then add the COG asset directly
Free-text search
The search endpoint accepts a q parameter (STAC free-text search extension) matching site and mission names/descriptions, always scoped to your account:
curl -H "Authorization: Bearer YOUR_MAP_ACCESS_TOKEN" \
"https://app.raad.com/stac/search?q=sweetwater+infrared&limit=10"
bbox (as west,south,east,north) and datetime filters compose with q, and a GeoJSON intersects filter is supported on POST bodies.
Which service should I use?
- Just show the imagery on a map → XYZ raster tiles or WMS (no STAC needed)
- Browse/search captures and stream analysis-ready rasters → STAC (this section)
- Editable vector geometries → WFS or vector tiles
- Scripted pipelines → pystac-client against the STAC API
For site geometry polygons, use the WFS link above — the STAC browser shows geometry assets as downloads, but WFS gives you a click-to-add experience directly in QGIS.
pystac-client — Search and Download
from pystac_client import Client
TOKEN = "YOUR_MAP_ACCESS_TOKEN"
SITE_ID = "YOUR_SITE_UUID"
client = Client.open(
"https://app.raad.com/stac",
headers={"Authorization": f"Bearer {TOKEN}"}
)
# Search a site collection
results = client.search(
collections=[SITE_ID],
max_items=10
)
for item in results.items():
print(item.id, item.datetime)
for asset_key, asset in item.assets.items():
print(f" {asset_key}: {asset.href}")
pystac-client — Spatial and Date Search
from pystac_client import Client
from datetime import datetime, timezone
TOKEN = "YOUR_MAP_ACCESS_TOKEN"
client = Client.open(
"https://app.raad.com/stac",
headers={"Authorization": f"Bearer {TOKEN}"}
)
results = client.search(
bbox=[-81.9, 33.5, -81.8, 33.6], # west, south, east, north
datetime=[datetime(2025, 1, 1, tzinfo=timezone.utc), None], # since Jan 2025
max_items=50
)
items = list(results.items())
print(f"Found {len(items)} captures in the search area")
Sites GeoJSON as a Vector Layer
The /stac/sites.geojson endpoint returns all your sites as labeled point features. Load it in QGIS for a quick overview map:
- Go to Layer → Add Layer → Add Vector Layer
- Set Source Type to Protocol (HTTP/HTTPS) and paste the Sites GeoJSON URL
- Click Add — each site appears as a point with its name and links to STAC, WMS, and WFS in the feature attributes