API Documentation
Access weather, climate, terrain, environment, hazard, and proximity data for any coordinates on Earth. All responses are JSON.
🔑 Authentication
All API requests require an API key. You can get one from the PixelGust dashboard under your account settings.
Pass your key via header (recommended) or query parameter:
⏱️ Rate Limits
Rate limits are applied per API key based on your subscription tier:
| Tier | Daily Calls | Burst (per min) | Polygon Area |
|---|---|---|---|
| Free | 50 | 10 | — |
| Basic | 500 | 30 | ≤ 5,000 km² |
| Pro | 5,000 | 120 | ≤ 50,000 km² |
| Enterprise | 50,000 | Unlimited | ≤ 150,000 km² |
Rate-limited responses return 429 with Retry-After header.
Base URL
GET /v1/weather
Get current weather conditions (GFS nowcast) for a point. Returns temperature, humidity, precipitation, wind, pressure, cloud cover, solar radiation, and more.
| Parameter | Type | Description | |
|---|---|---|---|
lat | float | required | Latitude (-90 to 90) |
lon | float | required | Longitude (-180 to 180) |
GET /v1/weather/forecast
Get weather forecast for a point. Supports up to 7 days ahead. Requires Basic tier or above.
| Parameter | Type | Description | |
|---|---|---|---|
lat | float | required | Latitude |
lon | float | required | Longitude |
day | int | optional | Forecast day: 0 = today, 1 = tomorrow, ... up to 7. Default: 0 |
GET /v1/weather/historical
Get historical weather averages (ERA5 reanalysis, 2015–2024) for a point. Optionally filter by month. Requires Basic tier or above.
| Parameter | Type | Description | |
|---|---|---|---|
lat | float | required | Latitude |
lon | float | required | Longitude |
month | int | optional | Month (1–12) for monthly average. Omit for annual average. |
GET /v1/terrain
Get terrain data for a point including elevation, slope, aspect, and topographic wetness index (TWI).
| Parameter | Type | Description | |
|---|---|---|---|
lat | float | required | Latitude |
lon | float | required | Longitude |
GET /v1/hazards
Get hazard assessment for a point including soil erosion risk (RUSLE model) and flood susceptibility (TWI-based).
| Parameter | Type | Description | |
|---|---|---|---|
lat | float | required | Latitude |
lon | float | required | Longitude |
GET /v1/environment
Get environmental data including NDVI (vegetation index), evapotranspiration, and land cover classification.
| Parameter | Type | Description | |
|---|---|---|---|
lat | float | required | Latitude |
lon | float | required | Longitude |
GET /v1/proximity
Get nearest features including cities, water bodies, coastline, airports, protected areas, and more.
| Parameter | Type | Description | |
|---|---|---|---|
lat | float | required | Latitude |
lon | float | required | Longitude |
POST /v1/polygon/stats
Compute zonal statistics (weather, terrain, hazard, environment) for a polygon area. Coordinates are [longitude, latitude] pairs. Max area depends on tier.
Request Body (JSON)
| Field | Type | Description | |
|---|---|---|---|
coordinates | array | required | Array of [lon, lat] pairs forming a closed polygon |
mode | string | optional | nowcast (default), forecast, or omit for historical |
day | int | optional | Forecast day (0–7), used when mode is forecast |
month | int | optional | Month (1–12) for historical monthly average |
GET /v1/usage
Check your current daily API usage, tier, and remaining quota.
Error Codes
All errors return a JSON object with a detail field.
| Status | Meaning |
|---|---|
401 | Missing or invalid API key |
400 | Invalid parameters (e.g., polygon too large or too many vertices) |
429 | Rate limit exceeded — check Retry-After header |
500 | Server error — data unavailable for the requested location |
503 | Service temporarily unavailable |