The most comprehensive live agricultural dataset in East Africa

27 datasets and 251 declared fields on Kenya, Tanzania, Uganda and Rwanda, all behind 1 API key: county prices from the official market system and the auctions, cropland vegetation read against each district's own seasonal normal, customs flows, the legal record, the daily press, and readings from stations already standing in the field. No field reaches an account until it was declared in code and approved by hand.

The catalogue Create a free account

A live snapshot, read 2026-10-19

Every row and chart below came off the platform on that date, through the exact call printed on its own dataset page. Run the same call today and the numbers will have moved.

DAP retail in Kirinyaga county, weekly means over 52 weeks. Commodity and fertilizer prices
World benchmarks for DAP and urea, 121 months. Global commodity benchmarks
NDVI inside 1 potato field at Naivasha, 61 weekly values. Satellite indices for your own field

DAP retail, official market table, KES per kg

DateMarketCountyWholesaleRetail
2026-10-18KhayegaKakamega124128
2026-10-16MumiasKakamega—114
2026-10-16Ngurubani MarketKirinyaga136140
2026-10-15KatitoKisumu—116
2026-10-13Ngurubani MarketKirinyaga136140
2026-10-13HoloKisumu—150
2026-10-12AheroKisumu130136

Blank wholesale means the market reported retail only. 7 counties carried a fertilizer price fresher than a month at the snapshot.

Latest high-trust news signal

Annual egg consumption in Tanzania was reported at 132 per person, compared with a recommended 300, indicating a large demand gap.

"Egg consumption was 132 per person annually, compared with the recommended 300."

dailynews.co.tz, 2026-10-19. Type demand_direction, commodity eggs, confidence 0.7. Direction is left as unknown when the article does not support a causal claim.

Latest legal signal

EU border rejection: bifenthrin in green beans from Kenya

RASFF-2026.9194, Kenya, status in_force, comment deadline . Regulatory and legal signals

243 counties and districts, each against its own normal

Turkana, Kenya · -0.12 vs own seasonal normalMarsabit, Kenya · -0.02 vs own seasonal normalMandera, Kenya · 0.00 vs own seasonal normalWajir, Kenya · 0.00 vs own seasonal normalWest Pokot, Kenya · -0.19 vs own seasonal normalSamburu, Kenya · -0.10 vs own seasonal normalIsiolo, Kenya · -0.02 vs own seasonal normalBaringo, Kenya · -0.17 vs own seasonal normalElgeyo-Marakwet, Kenya · -0.13 vs own seasonal normalTrans Nzoia, Kenya · -0.04 vs own seasonal normalBungoma, Kenya · -0.03 vs own seasonal normalGarissa, Kenya · 0.00 vs own seasonal normalUasin Gishu, Kenya · -0.05 vs own seasonal normalKakamega, Kenya · -0.02 vs own seasonal normalLaikipia, Kenya · -0.15 vs own seasonal normalBusia, Kenya · -0.03 vs own seasonal normalMeru, Kenya · -0.02 vs own seasonal normalNandi, Kenya · -0.01 vs own seasonal normalSiaya, Kenya · -0.04 vs own seasonal normalNakuru, Kenya · -0.08 vs own seasonal normalVihiga, Kenya · -0.01 vs own seasonal normalNyandarua, Kenya · -0.05 vs own seasonal normalTharaka, Kenya · 0.00 vs own seasonal normalKericho, Kenya · -0.03 vs own seasonal normalKisumu, Kenya · -0.06 vs own seasonal normalNyeri, Kenya · -0.04 vs own seasonal normalTana River, Kenya · 0.00 vs own seasonal normalKitui, Kenya · 0.00 vs own seasonal normalKirinyaga, Kenya · -0.01 vs own seasonal normalEmbu, Kenya · -0.02 vs own seasonal normalHoma Bay, Kenya · -0.05 vs own seasonal normalBomet, Kenya · -0.02 vs own seasonal normalNyamira, Kenya · -0.01 vs own seasonal normalNarok, Kenya · -0.06 vs own seasonal normalKisii, Kenya · -0.01 vs own seasonal normalMurang'a, Kenya · -0.02 vs own seasonal normalMigori, Kenya · -0.03 vs own seasonal normalKiambu, Kenya · -0.03 vs own seasonal normalMachakos, Kenya · 0.00 vs own seasonal normalKajiado, Kenya · 0.00 vs own seasonal normalNairobi, Kenya · -0.02 vs own seasonal normalMakueni, Kenya · 0.00 vs own seasonal normalLamu, Kenya · +0.02 vs own seasonal normalKilifi, Kenya · +0.01 vs own seasonal normalTaita Taveta, Kenya · 0.00 vs own seasonal normalKwale, Kenya · +0.03 vs own seasonal normalMombasa, Kenya · -0.01 vs own seasonal normalDodoma, Tanzania · +0.01 vs own seasonal normalArusha, Tanzania · 0.00 vs own seasonal normalKilimanjaro, Tanzania · +0.02 vs own seasonal normalTanga, Tanzania · +0.03 vs own seasonal normalMorogoro, Tanzania · +0.03 vs own seasonal normalPwani, Tanzania · +0.02 vs own seasonal normalDar-es-salaam, Tanzania · 0.00 vs own seasonal normalLindi, Tanzania · +0.01 vs own seasonal normalMtwara, Tanzania · +0.01 vs own seasonal normalRuvuma, Tanzania · +0.03 vs own seasonal normalIringa, Tanzania · +0.01 vs own seasonal normalMbeya, Tanzania · +0.01 vs own seasonal normalSingida, Tanzania · +0.01 vs own seasonal normalTabora, Tanzania · 0.00 vs own seasonal normalRukwa, Tanzania · 0.00 vs own seasonal normalKigoma, Tanzania · 0.00 vs own seasonal normalShinyanga, Tanzania · 0.00 vs own seasonal normalKagera, Tanzania · -0.01 vs own seasonal normalMwanza, Tanzania · -0.02 vs own seasonal normalMara, Tanzania · -0.03 vs own seasonal normalManyara, Tanzania · +0.01 vs own seasonal normalNjombe, Tanzania · +0.02 vs own seasonal normalKatavi, Tanzania · 0.00 vs own seasonal normalSimiyu, Tanzania · -0.01 vs own seasonal normalGeita, Tanzania · -0.02 vs own seasonal normalSongwe, Tanzania · +0.01 vs own seasonal normalKaskazini Unguja, Tanzania · +0.01 vs own seasonal normalKusini Unguja, Tanzania · +0.02 vs own seasonal normalMjini Magharibi, Tanzania · +0.02 vs own seasonal normalKaskazini Pemba, Tanzania · +0.01 vs own seasonal normalKusini Pemba, Tanzania · 0.00 vs own seasonal normalBuikwe, Uganda · 0.00 vs own seasonal normalBukomansimbi, Uganda · no live value in this windowButambala, Uganda · no live value in this windowBuvuma, Uganda · 0.00 vs own seasonal normalGomba, Uganda · no live value in this windowKalangala, Uganda · 0.00 vs own seasonal normalKalungu, Uganda · no live value in this windowKampala, Uganda · no live value in this windowKassanda, Uganda · no live value in this windowKayunga, Uganda · no live value in this windowKiboga, Uganda · no live value in this windowKyankwanzi, Uganda · no live value in this windowKyotera, Uganda · no live value in this windowLuwero, Uganda · no live value in this windowLwengo, Uganda · no live value in this windowLyantonde, Uganda · no live value in this windowMasaka, Uganda · no live value in this windowMityana, Uganda · no live value in this windowMpigi, Uganda · no live value in this windowMubende, Uganda · no live value in this windowMukono, Uganda · -0.04 vs own seasonal normalNakaseke, Uganda · no live value in this windowNakasongola, Uganda · -0.03 vs own seasonal normalRakai, Uganda · no live value in this windowSsembabule, Uganda · no live value in this windowWakiso, Uganda · no live value in this windowAmuria, Uganda · no live value in this windowBudaka, Uganda · no live value in this windowBududa, Uganda · -0.03 vs own seasonal normalBugiri, Uganda · no live value in this windowBugweri, Uganda · no live value in this windowBukedea, Uganda · no live value in this windowBukwo, Uganda · no live value in this windowBulambuli, Uganda · no live value in this windowBusia, Uganda · no live value in this windowButaleja, Uganda · no live value in this windowButebo, Uganda · no live value in this windowBuyende, Uganda · no live value in this windowIganga, Uganda · no live value in this windowJinja, Uganda · no live value in this windowKaberamaido, Uganda · -0.01 vs own seasonal normalKalaki, Uganda · -0.01 vs own seasonal normalKaliro, Uganda · no live value in this windowKamuli, Uganda · no live value in this windowKapchorwa, Uganda · -0.05 vs own seasonal normalKapelebyong, Uganda · no live value in this windowKatakwi, Uganda · no live value in this windowKibuku, Uganda · no live value in this windowKumi, Uganda · no live value in this windowKween, Uganda · no live value in this windowLuuka, Uganda · no live value in this windowManafwa, Uganda · no live value in this windowMayuge, Uganda · no live value in this windowMbale, Uganda · no live value in this windowNamayingo, Uganda · no live value in this windowNamisindwa, Uganda · -0.06 vs own seasonal normalNamutumba, Uganda · no live value in this windowNgora, Uganda · no live value in this windowPallisa, Uganda · no live value in this windowSerere, Uganda · no live value in this windowSironko, Uganda · -0.04 vs own seasonal normalSoroti, Uganda · no live value in this windowTororo, Uganda · no live value in this windowAbim, Uganda · no live value in this windowAdjumani, Uganda · -0.05 vs own seasonal normalAgago, Uganda · no live value in this windowAlebtong, Uganda · no live value in this windowAmolatar, Uganda · no live value in this windowAmudat, Uganda · no live value in this windowAmuru, Uganda · -0.04 vs own seasonal normalApac, Uganda · -0.03 vs own seasonal normalArua, Uganda · -0.02 vs own seasonal normalDokolo, Uganda · no live value in this windowGulu, Uganda · -0.04 vs own seasonal normalKaabong, Uganda · no live value in this windowKarenga, Uganda · no live value in this windowKitgum, Uganda · -0.06 vs own seasonal normalKoboko, Uganda · -0.03 vs own seasonal normalKole, Uganda · -0.03 vs own seasonal normalKotido, Uganda · no live value in this windowKwania, Uganda · -0.01 vs own seasonal normalLamwo, Uganda · -0.05 vs own seasonal normalLira, Uganda · no live value in this windowMadi Okollo, Uganda · no live value in this windowMaracha, Uganda · 0.00 vs own seasonal normalMoroto, Uganda · no live value in this windowMoyo, Uganda · -0.06 vs own seasonal normalNabilatuk, Uganda · no live value in this windowNakapiripirit, Uganda · no live value in this windowNapak, Uganda · no live value in this windowNebbi, Uganda · no live value in this windowNwoya, Uganda · -0.01 vs own seasonal normalObongi, Uganda · -0.05 vs own seasonal normalOmoro, Uganda · -0.05 vs own seasonal normalOtuke, Uganda · no live value in this windowOyam, Uganda · -0.04 vs own seasonal normalPader, Uganda · -0.05 vs own seasonal normalPakwach, Uganda · no live value in this windowYumbe, Uganda · -0.04 vs own seasonal normalZombo, Uganda · 0.00 vs own seasonal normalBuhweju, Uganda · -0.05 vs own seasonal normalBuliisa, Uganda · +0.01 vs own seasonal normalBundibugyo, Uganda · -0.01 vs own seasonal normalBunyangabu, Uganda · -0.05 vs own seasonal normalBushenyi, Uganda · -0.02 vs own seasonal normalHoima, Uganda · -0.01 vs own seasonal normalIbanda, Uganda · no live value in this windowIsingiro, Uganda · no live value in this windowKabale, Uganda · no live value in this windowKabarole, Uganda · -0.03 vs own seasonal normalKagadi, Uganda · -0.05 vs own seasonal normalKakumiro, Uganda · no live value in this windowKamwenge, Uganda · no live value in this windowKanungu, Uganda · -0.02 vs own seasonal normalKasese, Uganda · no live value in this windowKazo, Uganda · no live value in this windowKibaale, Uganda · no live value in this windowKikuube, Uganda · -0.02 vs own seasonal normalKiruhura, Uganda · no live value in this windowKiryandongo, Uganda · 0.00 vs own seasonal normalKisoro, Uganda · -0.01 vs own seasonal normalKitagwenda, Uganda · -0.02 vs own seasonal normalKyegegwa, Uganda · no live value in this windowKyenjojo, Uganda · -0.05 vs own seasonal normalMasindi, Uganda · +0.01 vs own seasonal normalMbarara, Uganda · no live value in this windowMitooma, Uganda · no live value in this windowNtoroko, Uganda · no live value in this windowNtungamo, Uganda · no live value in this windowRubanda, Uganda · no live value in this windowRubirizi, Uganda · -0.03 vs own seasonal normalRukiga, Uganda · no live value in this windowRukungiri, Uganda · -0.02 vs own seasonal normalRwampara, Uganda · no live value in this windowSheema, Uganda · no live value in this windowNyarugenge, Rwanda · -0.04 vs own seasonal normalGasabo, Rwanda · -0.02 vs own seasonal normalKicukiro, Rwanda · -0.02 vs own seasonal normalNyanza, Rwanda · -0.01 vs own seasonal normalGisagara, Rwanda · 0.00 vs own seasonal normalNyaruguru, Rwanda · +0.03 vs own seasonal normalHuye, Rwanda · 0.00 vs own seasonal normalNyamagabe, Rwanda · 0.00 vs own seasonal normalRuhango, Rwanda · -0.01 vs own seasonal normalMuhanga, Rwanda · 0.00 vs own seasonal normalKamonyi, Rwanda · -0.02 vs own seasonal normalKarongi, Rwanda · -0.01 vs own seasonal normalRutsiro, Rwanda · -0.04 vs own seasonal normalRubavu, Rwanda · -0.05 vs own seasonal normalNyabihu, Rwanda · -0.01 vs own seasonal normalNgororero, Rwanda · -0.01 vs own seasonal normalRusizi, Rwanda · +0.02 vs own seasonal normalNyamasheke, Rwanda · 0.00 vs own seasonal normalRulindo, Rwanda · -0.02 vs own seasonal normalGakenke, Rwanda · 0.00 vs own seasonal normalMusanze, Rwanda · -0.01 vs own seasonal normalBurera, Rwanda · 0.00 vs own seasonal normalGicumbi, Rwanda · 0.00 vs own seasonal normalRwamagana, Rwanda · -0.01 vs own seasonal normalNyagatare, Rwanda · -0.03 vs own seasonal normalGatsibo, Rwanda · -0.02 vs own seasonal normalKayonza, Rwanda · +0.01 vs own seasonal normalKirehe, Rwanda · +0.01 vs own seasonal normalNgoma, Rwanda · +0.01 vs own seasonal normalBugesera, Rwanda · -0.02 vs own seasonal normal
≤ −0.10 −0.10 to −0.04 near normal +0.02 to +0.05 ≥ +0.05

Cropland NDVI minus each unit's own seasonal baseline: a 10 m composite calibrated onto an eight-year 300 m climatology. 243 units: 47 Kenyan counties, 31 Tanzanian regions, 135 Ugandan districts, 30 Rwandan districts. Snapshot 2026-10-19.

No unit on this map is compared with its neighbour. Each is compared with itself: this dekad's cropland vegetation against what the same weeks looked like over the 8 years before. A county that is always greener than everyone around it only counts as above normal once it beats its own history.

At this snapshot 12 of the 243 units read at or above normal, and most of the region was still climbing out of a dry July. The story is the same across 3 independent sources: the July early-warning bulletin named Kakamega, Bungoma, Uasin Gishu, Elgeyo Marakwet and Trans Nzoia as a hotspot; the rainfall anomaly of 26 August put Bungoma at 26 % and Kakamega at 39 % of normal for the long rains; the press signals a week later named the same 5 counties. 4 datasets, 1 shared county vocabulary, 1 answer.

The fresh reading is a 10 m optical product, cloud-masked and cropland-masked, calibrated per unit against an 8-year 300 m climatology. Where the 2 disagree past a fixed tolerance, the platform falls back to the lagged product and says so in the response rather than guessing.

Demand and crop stress

Sensor data from your own weather station and soil nodes

A farmer's sensor readings, and everything the platform computes on them, go to the account that owns the hardware and nowhere else. They sit on this public site only so a station owner can see what the hardware delivers; the stations and soil nodes themselves are described at nuasense.com/products. Below: 48 hours of spray quality at the Naivasha station, 1 cell per hour, straight from the derived variables dataset.

ideal good marginal poor unsuitable
Nights unsuitable for inversion risk, afternoons limited by delta-T, the usable windows in the hours after sunrise and before sunset. Derived weather variables, Disease and pest risk, Root-zone water balance

The agriculture dataset catalogue: 9 groups, 27 datasets

FamilyGroupDatasetsFieldsCadenceAccess
Market Data Price intelligence Commodity prices, Input prices, Realtime prices, Global benchmarks 31 daily / weekly / monthly by source; daily; monthly every account
Market Data Demand & crop stress Demand indices, Rainfall anomaly, Agri stress 10 10-daily / weekly; per season/dekad; dekadal every account
Market Data Regulatory & legal Regulatory 18 weekly, Saturday every account
Market Data News & reporting News signals, Crop production 18 daily 10:00 UTC; per season, annual revisions every account
Sensor Data Weather data Weather station data, Derived variables, Disease risk 70 ~10 min; hourly; daily own hardware
Sensor Data Soil data Soil sensor data, Water balance 23 ~10 min; hourly; daily own hardware
Sensor Data Water data Water readings 4 ~10 min own hardware
Sensor Data Farm records Fields and sensor settings, Alerts and advisories 53 on edit; 10 min engine cycle; daily own hardware
Location Data Crop condition Field indices, Climate archive, Soil baseline 24 weekly; weekly top-up; once per location own hardware

9 groups, 27 datasets, 251 fields. Every dataset with its fields and filters

API access and pricing for East Africa agriculture data

ItemDetail
AccountFree. Confirm the email and the market layer, the full catalogue and the documentation are open. No payment details.
KeyBearer token, 1 per integration, scopes for market, farm and alerts. 10 active keys per account, 1,500 calls per key per day, 60 per minute.
Free calls50 a month without a station, 500 with one, plus 500 in the first 30 days.
ThenUSD 1.00 per 1,000 calls to 50,000, 0.75 to 500,000, 0.55 to 2,000,000, 0.40 beyond. Graduated: each band prices only the calls inside it.
REST1 GET per dataset with the same arguments everywhere: start, end, every with agg, fields, the declared filters, limit to 5,000.
ClaudeAn MCP server with 41 tools at mcp.nuasense.com; USD 10 a month per key that used it, plus calls.
PushSigned webhooks, 1 call per delivered push. Scheduled exports, USD 2 per 100,000 rows, own farm data free. SMS watches on price, demand and news.
Own sensorsSensor Ingest at USD 2 per station per month, with the same derived variables and risk models computed on the readings.

The full rate card, the error codes and how the platform is built