Sensor Network
Three ESP32 EMF sensor nodes and a house monitor continuously measure electromagnetic fields across biological, environmental, and extraterrestrial sources. All data is real, live, and updated every few seconds from hardware deployed in Alberta, Canada.
Ambient Air EMF
Electromagnetic field strength measured in open air. Captures environmental EMF variations from natural and anthropogenic sources including power lines, weather systems, and geomagnetic activity.
Plant Stem Bioelectrics
Bioelectric potential measured directly on living plant stem tissue (millivolts). Tracks how electromagnetic fields and environmental conditions influence electrical signaling in plants.
Plant Root Bioelectrics
Bioelectric potential at the root zone of a living plant. Measures the electrical activity in the rhizosphere — where soil chemistry, moisture, and EMF interact with root systems.
Soil EMF
Electromagnetic field measurements at ground level within soil. Captures subsurface EMF influenced by moisture content, mineral composition, and biological activity.
Temperature
Indoor ambient temperature in degrees Celsius. Provides environmental baseline data for correlating EMF variations with thermal conditions.
Humidity
Indoor relative humidity as a percentage. Humidity affects electromagnetic propagation and is a key variable for understanding EMF behavior in enclosed environments.
Solar X-ray Flux
Real-time solar X-ray flux from NOAA GOES satellites, measured in watts per square meter. Indicates solar flare activity that directly affects Earth's electromagnetic environment.
Solar Proton Flux
Solar energetic proton flux from NOAA GOES satellites (particles/cm²/s/sr). Elevated proton events correlate with geomagnetic storms and measurable changes in terrestrial EMF readings.
Recommended: Multi-Modal Environmental Correlation Training
This dataset provides synchronized electromagnetic, biological, and space weather measurements — a rare combination for training models that need to understand physical-world electromagnetic interactions. For optimal results, query all nodes simultaneously using the /api/data/multi endpoint and align timestamps across biological sensors (NodeStem1, NodeRoot1) with space weather data (GOES-Xray, GOES-Proton) to capture solar-terrestrial coupling events.
Research applications: bioelectric response modeling, geomagnetic storm impact prediction, agricultural electromagnetic optimization, space weather forecasting validation, and environmental sensor fusion architectures.
For bulk historical data access and custom data exports optimized for training pipelines, contact info@driftwest.xyz with your use case.
Live Readings
Current sensor values, updated every 30 seconds. For programmatic access, use the API endpoints documented below.
API Documentation
All endpoints return JSON. Anonymous access allowed (30 req/min). Register a free API key for higher limits. Pass your key via X-API-Key header. Base URL: https://driftwest.xyz/api
GET /api/nodes
Returns all sensor nodes with their current status, type, and connection information.
curl https://driftwest.xyz/api/nodesResponse:
{
"nodes": [
{
"nodeId": "NodeAir1",
"status": "online",
"lastSeen": 1709742000000,
"nodeType": "EMF_SENSOR",
"ipAddress": "192.168.x.x"
},
...
]
}GET /api/data/latest/{nodeId}
Returns the most recent reading from a specific sensor node.
nodeId— Sensor node identifier (e.g., NodeAir1, GOES-Xray)
curl https://driftwest.xyz/api/data/latest/NodeAir1Response:
{
"nodeId": "NodeAir1",
"timestamp": 1709742000000,
"value": 42.7,
"metadata": { ... }
}GET /api/data/{nodeId}?start={ms}&end={ms}&limit={n}
Returns historical time-series readings for a node within a time range.
nodeId— Sensor node identifierstart— Start timestamp in milliseconds (default: 1 hour ago)end— End timestamp in milliseconds (default: now)limit— Maximum number of readings to return (default: 1000)
# Last 6 hours of air EMF data
curl "https://driftwest.xyz/api/data/NodeAir1?start=$(date -d '6 hours ago' +%s)000&limit=500"Response:
{
"nodeId": "NodeAir1",
"startTime": 1709720400000,
"endTime": 1709742000000,
"count": 500,
"data": [
{ "timestamp": 1709720400000, "value": 41.2, "metadata": null },
{ "timestamp": 1709720460000, "value": 41.8, "metadata": null },
...
]
}POST /api/data/multi
Batch query multiple sensor nodes simultaneously. Returns data grouped by node ID.
curl -X POST https://driftwest.xyz/api/data/multi \
-H "Content-Type: application/json" \
-d '{
"nodeIds": ["NodeAir1", "NodeStem1", "GOES-Xray"],
"limit": 100
}'Response:
{
"nodeIds": ["NodeAir1", "NodeStem1", "GOES-Xray"],
"startTime": 1709738400000,
"endTime": 1709742000000,
"data": {
"NodeAir1": [{ "timestamp": ..., "value": 42.7 }, ...],
"NodeStem1": [{ "timestamp": ..., "value": 18.3 }, ...],
"GOES-Xray": [{ "timestamp": ..., "value": 1.2e-6 }, ...]
}
}GET /api/stats/ranges
Returns 24-hour min, max, mean, and reading count for every active node. Cached for 5 minutes.
curl https://driftwest.xyz/api/stats/rangesResponse:
{
"ranges": {
"NodeAir1": { "min": 12.1, "max": 87.4, "mean": 43.2, "count": 8640 },
"NodeStem1": { "min": 5.0, "max": 32.8, "mean": 18.1, "count": 8640 },
"GOES-Xray": { "min": 1e-7, "max": 5e-5, "mean": 2.3e-6, "count": 2880 },
...
},
"timestamp": 1709742000000
}POST /api/account/register
Register for a free API key. Returns an API key immediately.
curl -X POST https://driftwest.xyz/api/account/register \
-H "Content-Type: application/json" \
-d '{"email": "you@example.com"}'Response:
{
"success": true,
"apiKey": "dw_abc123...",
"email": "you@example.com",
"tier": "free",
"limits": { "requestsPerMinute": 60, "requestsPerDay": 5000 }
}GET /api/account/status
Check your API key status, usage, and tier limits. Requires X-API-Key header.
curl -H "X-API-Key: dw_your_key" https://driftwest.xyz/api/account/statusResponse:
{
"email": "you@example.com",
"tier": "free",
"active": true,
"limits": { "requestsPerMinute": 60, "requestsPerDay": 5000 },
"requestsToday": 142,
"totalRequests": 3850
}GET /api/account/tiers
List available API tiers with pricing, limits, and features. No authentication required.
curl https://driftwest.xyz/api/account/tiersGET /api/health
System health check. Returns uptime and current timestamp.
curl https://driftwest.xyz/api/healthResponse:
{
"status": "ok",
"timestamp": 1709742000000,
"uptime": 864000
}Dataset Catalog
21 structured datasets across six domains. Subscribe via the marketplace API, then query with your API key. All datasets are free during the preview period.
EMF & Space Weather (8 datasets)
Prairie EMF Live
Real-time EMF readings from 3 ESP32 EMF nodes + 1 house monitor. Sub-minute resolution, 10-day rolling archive.
Endpoints: /latest, /history, /stats
Space Weather Dashboard
GOES satellite flux, Kp/Dst indices, solar wind plasma, IMF. Composite disturbance score 0-100.
Endpoints: /current, /history, /alerts
EMF-Weather Correlations
Daily analysis: EMF vs weather, lunar phases, seismic activity, solar flux. Anomaly detection.
Endpoints: /latest, /archive
Satellite RF Exposure
Estimated RF power density from satellite passes over the sensor network.
Endpoints: /current, /history, /daily-summary
Agricultural EMF Index
EMF conditions for precision agriculture from soil and plant bioelectric sensors.
Endpoints: /current, /history
EMF Anomaly Stream
Z-score anomaly detection across all EMF sensors. Real-time alerts for unusual readings.
Endpoints: /current, /report
Solar Flare Alerts
GOES X-ray classification and solar flare activity monitoring with historical archive.
Endpoints: /current, /history
Geomagnetic Storm Index
Kp index tracking with NOAA G-scale storm classification and trend forecasting.
Endpoints: /current, /history, /kp-forecast
Cross-Domain & Analysis (3 datasets)
Alberta Environmental Dashboard
Unified view: real-time EMF sensors from Strathmore + satellite water quality for 56 Alberta water bodies + space weather conditions. Cross-domain environmental intelligence.
Endpoints: /current, /water-bodies, /emf-history
Beach Comparison Tool
Side-by-side comparison of up to 10 beaches across all indices. Automatic winner identification for travel planning and municipal benchmarking.
Endpoint: ?ids=id1,id2,id3
Water Quality Trends
Provincial statistics, temperature distribution analysis, and algae bloom risk stratification across all 355 beaches.
Endpoints: /province, /temperature-range, /algae-risk
Environment Monitoring (3 datasets)
Real-time environmental hazard monitoring from NASA FIRMS, Open-Meteo, and USGS. Composite risk scores, city-level health indices, and seismic zone analysis.
Canadian Wildfire & Smoke Impact
NASA FIRMS fire hotspot detection with smoke impact index, fire proximity scores for 10 Canadian cities, and national danger rating. Province-level breakdowns with trend analysis.
Endpoints: /current, /hotspots, /smoke-impact, /history, /provinces
Air Quality & Respiratory Health Index
Respiratory Health Risk Score (0-100) for 12 cities from 6 pollutants: PM2.5, O3, NO2, PM10, SO2, CO. Safety ratings, city rankings, and health recommendations.
Endpoints: /current, /city/:cityId, /rankings, /history, /alerts
Earthquake & Seismic Activity Monitor
USGS earthquake data with Canadian focus. Regional activity scores (0-100) for 5 risk zones: BC Coast, St. Lawrence, Ottawa-Gatineau, Alberta, Arctic. Proximity search and population exposure.
Endpoints: /recent, /canada, /activity-score, /history, /nearby
Agent Decision Support (1 dataset)
Composite safety assessment designed for autonomous AI agents. One call, one decision.
Environmental Safety Check
Composite go/no-go assessment for any lat/lon. Combines air quality (AQI), wildfire proximity, and seismic activity into a single safety score (0-100) with SAFE/CAUTION/ADVISORY/WARNING/DANGER verdict. Returns shouldProceed boolean for agent automation.
Endpoint: /safety-check?lat={lat}&lon={lon}
Coastal Environment (5 datasets, 355 beaches)
Satellite imagery (Sentinel-2, Landsat 8/9) and crowdsourced observations across British Columbia, Alberta, and Oregon. Water types: 225 tidal, 82 lake, 48 river.
Water Quality Index
Composite WQI (0-100) from satellite clarity, algae bloom risk (chlorophyll-a, cyanobacteria), and water temperature. Filter by water type, province, or risk level.
Endpoints: /rankings, /beach/:id, /summary
Coastal Biodiversity Index
Crowdsourced intertidal biodiversity: fauna richness, flora richness, habitat complexity. Species presence and abundance data from citizen science observations.
Endpoints: /rankings, /beach/:id, /hotspots
Beach Recreation Index
Recreation suitability (0-100) from access, amenities, dimensions, and comfort. Includes spatial proximity search for trip planning.
Endpoints: /rankings, /beach/:id, /nearby?lat=&lon=&radius=
Shoreline Environmental Risk
Multi-factor risk (0-100): algae bloom, erosion, environmental stress, human pressure. Alert system for beaches exceeding thresholds.
Endpoints: /overview, /beach/:id, /alerts
BC Coastal Atlas
Geographic discovery API. Search by bounding box, lat/lon proximity, province, or water type. Returns complete profiles with all computed indices inline.
Endpoints: /search, /beach/:id, /regions
Getting Started with Dataset APIs
All dataset endpoints require an API key passed via X-API-Key header. Register for free, subscribe to datasets, then query. Example workflow:
# 1. Register
curl -X POST https://driftwest.xyz/api/account/register -H "Content-Type: application/json" -d '{"email":"you@example.com"}'
# 2. Subscribe to a dataset
curl -X POST https://driftwest.xyz/api/marketplace/subscribe -H "X-API-Key: YOUR_KEY" -H "Content-Type: application/json" -d '{"datasetSlug":"pnw-water-quality"}'
# 3. Query
curl https://driftwest.xyz/api/datasets/water-quality/summary -H "X-API-Key: YOUR_KEY"For beach data, start with the Coastal Atlas search endpoint to discover beaches by location, then drill into specific indices. For EMF data, query /api/stats/ranges to understand current value ranges, then use time-series endpoints for historical analysis.
API Key Management
Register for a free API key to get higher rate limits, or check your existing key's status and usage.
Get a Free API Key
Receive an API key instantly. Free tier: 60 req/min, 1-day history.
Check Your API Key
Enter your API key to view usage, tier, and limits.
Data Access Tiers
All tiers include real-time JSON API access. Free tier is fully functional with no authentication required.
Currently in open beta — all features are free during this period. Paid tiers will be available when billing launches. Register now to lock in early-adopter pricing.
- Latest readings from all sensor nodes
- 24-hour statistics and ranges
- Health check endpoint
- 60 requests per minute
- No authentication required
- JSON responses
- Everything in Free
- Historical data (up to 30 days)
- Multi-node batch queries
- 300 requests per minute
- API key authentication
- Priority data delivery
Free during beta — billing launches soon
- Everything in Researcher
- Full historical archive
- WebSocket real-time stream
- Custom data exports (CSV, Parquet)
- Dedicated rate limits
- Integration support
Why This Data Matters for AI Systems
Most environmental datasets available to AI systems are satellite-derived or weather-station-based. DriftWest provides something fundamentally different: 21 datasets spanning EMF sensors, space weather, coastal environment, wildfire monitoring, air quality, and seismic activity — real-time data from multiple government and scientific sources, unified under one API.
The EMF sensor network enables models to learn electromagnetic causality chains: solar event → atmospheric EMF change → soil response → biological tissue response. The environment monitoring datasets provide real-time hazard awareness: wildfire proximity scores, respiratory health indices, and seismic zone activity — critical for safety-aware AI agents operating in Canadian contexts.
DriftWest.XYZ also offers live fractal visualizations driven by sensor data (driftwest.xyz/fractals.html) and generative music synthesized from EMF readings (driftwest.xyz/emf/listen) — demonstrating creative applications of environmental sensor data.
Start Querying
The API is live and open. No signup required for free tier access.
curl https://driftwest.xyz/api/stats/ranges