PixelGust Soil API: SoilGrids 2.0 Data in ISRIC's Request Format
SoilGrids 2.0 is ISRIC - World Soil Information's global map of soil properties: 250 m predictions of texture, bulk density, coarse fragments, organic carbon, nitrogen, cation exchange capacity and pH at six depths, published under CC BY 4.0. PixelGust now serves those maps through its own soil API and through an endpoint that takes ISRIC's request format, so code written for ISRIC's REST API can switch by changing one base URL. PixelGust is not affiliated with or endorsed by ISRIC: the maps and the science behind them are ISRIC's work, and we thank ISRIC for publishing them openly.
Try it without a key: curl "https://pixelgust.com/v1/soil?lat=41.196&lon=-7.557" gives SoilGrids' estimate for a 250 m pixel in the Douro Valley, 20 calls a day per network address. The full reference is in the API docs.
What You Get
Eleven SoilGrids 2.0 properties, each the map's mean prediction for a 250 m pixel. Ten of them come at the six standard depths (0-5, 5-15, 15-30, 30-60, 60-100 and 100-200 cm), and the organic carbon stock for 0-30 cm.
| Property | What it is | Unit in /v1/soil |
|---|---|---|
bdod | Bulk density of the fine earth | g/cm3 |
cec | Cation exchange capacity at pH 7 | cmol(c)/kg |
cfvo | Coarse fragments (gravel and stones) | vol% |
clay, sand, silt | Texture of the fine earth | % |
nitrogen | Total nitrogen | g/kg |
ocd | Organic carbon density | kg/m3 |
ocs | Organic carbon stock, 0-30 cm | kg/m2 |
phh2o | pH in water | pH |
soc | Soil organic carbon content | g/kg |
Not served: ISRIC's quantiles (Q0.05, Q0.5, Q0.95), its uncertainty layer, the water content layers (wv0010, wv0033, wv1500) and the WRB soil classes. The SoilGrids-compatible endpoint answers null for the statistics and the water content, so existing code keeps its shape, and 501 for classification.
Why a Second Endpoint
ISRIC runs a free REST API for SoilGrids at rest.isric.org, and many tools call it, from R's soilDB package to Python scripts and AI assistant plugins. ISRIC describes the API as a beta service without a guarantee of uptime. ISRIC's FAQ carries a pause notice and a fair-use limit of 5 calls a minute. On 2026-10-29 the API still answered.
For a one-off script that is all you need. An application that looks up soil on demand, or many sites a day, may want a second source with its own keys and quotas. PixelGust built its copy from the files ISRIC publishes, checked every tile against ISRIC's checksums, and serves the same integers at the same 250 m pixels.
Switch in One Line
Change the base URL from https://rest.isric.org/soilgrids/v2.0 to https://pixelgust.com/soilgrids/v2.0. The parameters and the JSON stay ISRIC's: layers sorted by name, integers in ISRIC's mapped units (divide by d_factor), null where there is no prediction.
curl "https://pixelgust.com/soilgrids/v2.0/properties/query?lon=-7.557&lat=41.196&property=clay&property=soc&depth=0-5cm&value=mean"
import requests
BASE = "https://pixelgust.com/soilgrids/v2.0" # was https://rest.isric.org/soilgrids/v2.0
r = requests.get(f"{BASE}/properties/query",
params={"lon": -7.557, "lat": 41.196, "property": ["clay", "soc"],
"depth": ["0-5cm"], "value": ["mean"]},
headers={"X-API-Key": "YOUR_API_KEY"}, timeout=30)
for layer in r.json()["properties"]["layers"]:
d = layer["depths"][0]
print(layer["name"], d["values"]["mean"] / layer["unit_measure"]["d_factor"], layer["unit_measure"]["target_units"])
library(soilDB)
sites <- data.frame(id = "douro", lat = 41.196, lon = -7.557)
s <- fetchSoilGrids(sites, endpoint = "https://pixelgust.com/soilgrids/v2.0/properties/query")
# With a key, for tools that cannot send headers
s <- fetchSoilGrids(sites, endpoint = "https://pixelgust.com/k/YOUR_API_KEY/soilgrids/v2.0/properties/query")
soilDB waits 61 seconds after every 5 sites to respect ISRIC's fair use, whatever the endpoint, so for many sites call /v1/soil directly (below). Errors other than an invalid request come back as plain text, as ISRIC's do: soilDB then records NA for that site and carries on. The details and the differences from ISRIC's service are in the docs.
PixelGust's Own Format: /v1/soil
The /v1/soil endpoint returns values already divided by d_factor, in the units listed in each answer, together with the pixel used and the credit to pass on:
GET https://pixelgust.com/v1/soil?lat=41.196&lon=-7.557&property=clay,soc,nitrogen&depth=0-5cm,5-15cm
{
"soil": {
"clay": { "0-5cm": 12.6, "5-15cm": 11.1 },
"nitrogen": { "0-5cm": 6.49, "5-15cm": 2.11 },
"soc": { "0-5cm": 75.8, "5-15cm": 38.1 },
"units": { "clay": "%", "nitrogen": "g/kg", "soc": "g/kg" }
},
"pixel": { "lat": 41.19621, "lon": -7.55831, "distance_m": 112, "nearest": false, "note": null },
"source": { "provider": "ISRIC - World Soil Information", "license": "CC BY 4.0", ... }
}
SoilGrids has no predictions for built-up areas, water and permanent ice. On such a pixel, /v1/soil uses the nearest mapped pixel within a few kilometres and reports its true distance in pixel. The SoilGrids-compatible endpoint never does: like ISRIC, it answers null for the pixel itself.
Limits and Plans
| Access | Calls a day | Calls a minute |
|---|---|---|
| Without a key | 20 | 5 |
| Free key | 50 | 10 |
| Basic, EUR 19 a month | 500 | 30 |
| Pro, EUR 49 a month | 5,000 | 120 |
A soil call counts once against your account's daily pool, which all PixelGust endpoints share. Keys are free to create in the dashboard (API Keys menu), and the keyless allowance is counted per network address.
Get a Free API Key
50 calls a day for soil, weather, climate, terrain and hazard data. No payment details needed.
Create a KeyAccuracy and Licence
SoilGrids values are model estimates for 250 m pixels, not measurements. ISRIC reports that its models explain between 30% and 70% of the variation in measured soil data, and advises against using SoilGrids at the local or farm level. They suit regional screening, modelling and first looks, not engineering design, foundations or site investigation.
The data is licensed under CC BY 4.0, which allows commercial use and sharing with credit. Cite: Poggio, L., de Sousa, L. M., Batjes, N. H., Heuvelink, G. B. M., Kempen, B., Ribeiro, E., and Rossiter, D. (2021). SoilGrids 2.0: producing soil information for the globe with quantified spatial uncertainty. SOIL, 7, 217-240. https://doi.org/10.5194/soil-7-217-2021. What PixelGust changes is described under soil data attribution.
Frequently Asked Questions
Is it the same data as ISRIC's?
Yes. PixelGust serves ISRIC's SoilGrids 2.0 mean maps, built from the files ISRIC publishes, on ISRIC's own 250 m grid. The SoilGrids-compatible endpoint returns ISRIC's integers for the pixel that holds the point, and /v1/soil converts them to the units it lists.
Is PixelGust affiliated with ISRIC?
No. PixelGust is not affiliated with or endorsed by ISRIC. It uses SoilGrids under its CC BY 4.0 licence and credits ISRIC in every answer.
Are the quantiles and the uncertainty available?
Not yet. ISRIC publishes them as files too, so PixelGust could add them later without new data from ISRIC. Until then the SoilGrids-compatible endpoint returns null for Q0.05, Q0.5, Q0.95 and uncertainty, and soilDB shows those columns as NA.
Is soil water content available?
No. The water content layers wv0010, wv0033 and wv1500 come back as layers of null values, so code that asks for them keeps working.
Can I use the values commercially?
Yes. SoilGrids is licensed under CC BY 4.0, which allows commercial use and sharing as long as you credit ISRIC - World Soil Information. Every answer carries the credit to pass on.
Can I use SoilGrids for foundations or site engineering?
No. The values are model predictions for 250 m pixels, not measurements, and ISRIC advises against using SoilGrids at the local or farm level. Engineering design needs a site investigation.