AI Data Platform

Environmental Data for AI

21 datasets across EMF sensors, space weather, coastal environment, wildfire monitoring, air quality, and seismic activity. Real data from western Canada, built for AI agents and research pipelines.

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.

Data Disclaimer — This is an experimental sensor network. EMF readings from the local sensors (NodeAir1, NodeStem1, NodeRoot1, NodeSoil1) are raw, uncalibrated measurements from ESP32-based hardware. Values may reflect power supply fluctuations, wiring artifacts, sensor drift, or environmental noise rather than true electromagnetic field variations. Sensor configurations, positions, and settings are changed periodically without notice, which may cause sudden shifts in baseline readings. The GOES satellite data (GOES-Xray, GOES-Proton) is sourced from NOAA and is scientifically calibrated. Indoor climate readings (temperature, humidity) are from consumer-grade sensors. Do not use this data for safety-critical, medical, or regulatory decisions. It is provided as-is for research, experimentation, and curiosity.
NodeAir1

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.

NodeStem1

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.

NodeRoot1

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.

NodeSoil1

Soil EMF

Electromagnetic field measurements at ground level within soil. Captures subsurface EMF influenced by moisture content, mineral composition, and biological activity.

HouseMonitor-Temp

Temperature

Indoor ambient temperature in degrees Celsius. Provides environmental baseline data for correlating EMF variations with thermal conditions.

HouseMonitor-Humidity

Humidity

Indoor relative humidity as a percentage. Humidity affects electromagnetic propagation and is a key variable for understanding EMF behavior in enclosed environments.

GOES-Xray

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.

GOES-Proton

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.

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/nodes

Response:

{ "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/NodeAir1

Response:

{ "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 identifier
  • start — 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/ranges

Response:

{ "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/status

Response:

{ "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/tiers

GET /api/health

System health check. Returns uptime and current timestamp.

curl https://driftwest.xyz/api/health

Response:

{ "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

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

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

EMF-Weather Correlations

Daily analysis: EMF vs weather, lunar phases, seismic activity, solar flux. Anomaly detection.

Endpoints: /latest, /archive

satellite-rf-exposure

Satellite RF Exposure

Estimated RF power density from satellite passes over the sensor network.

Endpoints: /current, /history, /daily-summary

agricultural-emf-index

Agricultural EMF Index

EMF conditions for precision agriculture from soil and plant bioelectric sensors.

Endpoints: /current, /history

emf-anomaly-stream

EMF Anomaly Stream

Z-score anomaly detection across all EMF sensors. Real-time alerts for unusual readings.

Endpoints: /current, /report

solar-flare-alerts

Solar Flare Alerts

GOES X-ray classification and solar flare activity monitoring with historical archive.

Endpoints: /current, /history

geomagnetic-storm-index

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-environment

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-compare

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-trends

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

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-health

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

seismic-monitor

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.

safety-check

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.

pnw-water-quality

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

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

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-risk

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

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

API Key Management

Register for a free API key to get higher rate limits, or check your existing key's status and usage.

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.

Free
$0 / forever
  • Latest readings from all sensor nodes
  • 24-hour statistics and ranges
  • Health check endpoint
  • 60 requests per minute
  • No authentication required
  • JSON responses
Enterprise
Custom
  • Everything in Researcher
  • Full historical archive
  • WebSocket real-time stream
  • Custom data exports (CSV, Parquet)
  • Dedicated rate limits
  • Integration support
Contact Us

Start Querying

The API is live and open. No signup required for free tier access.

curl https://driftwest.xyz/api/stats/ranges