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-11-02

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, 69 weekly values. Satellite indices for your own field

DAP retail, official market table, KES per kg

DateMarketCountyWholesaleRetail
2026-11-01KhayegaKakamega122128
2026-10-30MumiasKakamega—112
2026-10-29KatitoKisumu—104
2026-10-29KalunduKitui135145
2026-10-28SabatiaKakamega—142
2026-10-26Ngurubani MarketKirinyaga136140
2026-10-25KhayegaKakamega130134

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

Gakui cooperative in Murang'a sold coffee in the just-ended season at an average of $306 per bag (about Ksh 121/kg cherry), below county and national averages.

"In the season just ended, Gakui sold 52,979 kg of coffee at an average of $306 per bag, about Ksh 121 per kilo of cherry."

Kilimo News, 2026-11-02. Type price_level, commodity coffee, confidence 0.9. Direction is left as unknown when the article does not support a causal claim.

Latest legal signal

Ukraine amends list of non-animal food and feed subject to enhanced import controls

G/SPS/N/UKR/275/Add.1, Uganda, status in_force, comment deadline . Regulatory and legal signals

243 counties and districts, each against its own normal

Turkana, Kenya · -0.09 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.18 vs own seasonal normalSamburu, Kenya · -0.10 vs own seasonal normalIsiolo, Kenya · -0.02 vs own seasonal normalBaringo, Kenya · -0.18 vs own seasonal normalElgeyo-Marakwet, Kenya · -0.11 vs own seasonal normalTrans Nzoia, Kenya · -0.05 vs own seasonal normalBungoma, Kenya · 0.00 vs own seasonal normalGarissa, Kenya · 0.00 vs own seasonal normalUasin Gishu, Kenya · -0.06 vs own seasonal normalKakamega, Kenya · 0.00 vs own seasonal normalLaikipia, Kenya · -0.18 vs own seasonal normalBusia, Kenya · +0.04 vs own seasonal normalMeru, Kenya · -0.04 vs own seasonal normalNandi, Kenya · 0.00 vs own seasonal normalSiaya, Kenya · 0.00 vs own seasonal normalNakuru, Kenya · -0.09 vs own seasonal normalVihiga, Kenya · +0.03 vs own seasonal normalNyandarua, Kenya · -0.06 vs own seasonal normalTharaka, Kenya · -0.01 vs own seasonal normalKericho, Kenya · -0.03 vs own seasonal normalKisumu, Kenya · -0.02 vs own seasonal normalNyeri, Kenya · -0.07 vs own seasonal normalTana River, Kenya · 0.00 vs own seasonal normalKitui, Kenya · -0.01 vs own seasonal normalKirinyaga, Kenya · -0.02 vs own seasonal normalEmbu, Kenya · -0.01 vs own seasonal normalHoma Bay, Kenya · -0.02 vs own seasonal normalBomet, Kenya · -0.03 vs own seasonal normalNyamira, Kenya · 0.00 vs own seasonal normalNarok, Kenya · -0.07 vs own seasonal normalKisii, Kenya · 0.00 vs own seasonal normalMurang'a, Kenya · -0.02 vs own seasonal normalMigori, Kenya · -0.01 vs own seasonal normalKiambu, Kenya · -0.02 vs own seasonal normalMachakos, Kenya · -0.01 vs own seasonal normalKajiado, Kenya · -0.01 vs own seasonal normalNairobi, Kenya · -0.03 vs own seasonal normalMakueni, Kenya · +0.01 vs own seasonal normalLamu, Kenya · 0.00 vs own seasonal normalKilifi, Kenya · +0.02 vs own seasonal normalTaita Taveta, Kenya · 0.00 vs own seasonal normalKwale, Kenya · +0.01 vs own seasonal normalMombasa, Kenya · +0.02 vs own seasonal normalDodoma, Tanzania · 0.00 vs own seasonal normalArusha, Tanzania · 0.00 vs own seasonal normalKilimanjaro, Tanzania · 0.00 vs own seasonal normalTanga, Tanzania · 0.00 vs own seasonal normalMorogoro, Tanzania · -0.01 vs own seasonal normalPwani, Tanzania · -0.01 vs own seasonal normalDar-es-salaam, Tanzania · -0.01 vs own seasonal normalLindi, Tanzania · -0.02 vs own seasonal normalMtwara, Tanzania · -0.02 vs own seasonal normalRuvuma, Tanzania · -0.01 vs own seasonal normalIringa, Tanzania · 0.00 vs own seasonal normalMbeya, Tanzania · 0.00 vs own seasonal normalSingida, Tanzania · 0.00 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.01 vs own seasonal normalKagera, Tanzania · -0.03 vs own seasonal normalMwanza, Tanzania · -0.02 vs own seasonal normalMara, Tanzania · -0.01 vs own seasonal normalManyara, Tanzania · 0.00 vs own seasonal normalNjombe, Tanzania · -0.01 vs own seasonal normalKatavi, Tanzania · 0.00 vs own seasonal normalSimiyu, Tanzania · -0.02 vs own seasonal normalGeita, Tanzania · -0.03 vs own seasonal normalSongwe, Tanzania · 0.00 vs own seasonal normalKaskazini Unguja, Tanzania · 0.00 vs own seasonal normalKusini Unguja, Tanzania · -0.01 vs own seasonal normalMjini Magharibi, Tanzania · 0.00 vs own seasonal normalKaskazini Pemba, Tanzania · 0.00 vs own seasonal normalKusini Pemba, Tanzania · -0.03 vs own seasonal normalBuikwe, Uganda · -0.01 vs own seasonal normalBukomansimbi, Uganda · no live value in this windowButambala, Uganda · no live value in this windowBuvuma, Uganda · no live value in this windowGomba, Uganda · no live value in this windowKalangala, Uganda · -0.04 vs own seasonal normalKalungu, Uganda · no live value in this windowKampala, Uganda · no live value in this windowKassanda, Uganda · -0.01 vs own seasonal normalKayunga, 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 · +0.02 vs own seasonal normalMpigi, Uganda · no live value in this windowMubende, Uganda · no live value in this windowMukono, Uganda · 0.00 vs own seasonal normalNakaseke, Uganda · no live value in this windowNakasongola, Uganda · no live value in this windowRakai, Uganda · no live value in this windowSsembabule, Uganda · no live value in this windowWakiso, Uganda · 0.00 vs own seasonal normalAmuria, Uganda · no live value in this windowBudaka, Uganda · no live value in this windowBududa, Uganda · -0.02 vs own seasonal normalBugiri, Uganda · -0.01 vs own seasonal normalBugweri, Uganda · -0.01 vs own seasonal normalBukedea, Uganda · no live value in this windowBukwo, Uganda · no live value in this windowBulambuli, Uganda · no live value in this windowBusia, Uganda · 0.00 vs own seasonal normalButaleja, Uganda · no live value in this windowButebo, Uganda · no live value in this windowBuyende, Uganda · no live value in this windowIganga, Uganda · 0.00 vs own seasonal normalJinja, Uganda · -0.01 vs own seasonal normalKaberamaido, Uganda · +0.02 vs own seasonal normalKalaki, Uganda · 0.00 vs own seasonal normalKaliro, Uganda · no live value in this windowKamuli, Uganda · -0.02 vs own seasonal normalKapchorwa, Uganda · -0.03 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 · -0.01 vs own seasonal normalManafwa, Uganda · no live value in this windowMayuge, Uganda · no live value in this windowMbale, Uganda · no live value in this windowNamayingo, Uganda · +0.03 vs own seasonal normalNamisindwa, Uganda · 0.00 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.01 vs own seasonal normalSoroti, Uganda · no live value in this windowTororo, Uganda · 0.00 vs own seasonal normalAbim, Uganda · no live value in this windowAdjumani, Uganda · -0.06 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 · no live value in this windowApac, Uganda · -0.03 vs own seasonal normalArua, Uganda · 0.00 vs own seasonal normalDokolo, Uganda · -0.02 vs own seasonal normalGulu, Uganda · no live value in this windowKaabong, Uganda · no live value in this windowKarenga, Uganda · no live value in this windowKitgum, Uganda · no live value in this windowKoboko, Uganda · -0.01 vs own seasonal normalKole, Uganda · -0.02 vs own seasonal normalKotido, Uganda · no live value in this windowKwania, Uganda · no live value in this windowLamwo, Uganda · no live value in this windowLira, Uganda · -0.02 vs own seasonal normalMadi Okollo, Uganda · -0.02 vs own seasonal normalMaracha, Uganda · -0.01 vs own seasonal normalMoroto, Uganda · no live value in this windowMoyo, Uganda · no live value in this windowNabilatuk, 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.02 vs own seasonal normalObongi, Uganda · no live value in this windowOmoro, Uganda · no live value in this windowOtuke, Uganda · no live value in this windowOyam, Uganda · no live value in this windowPader, Uganda · no live value in this windowPakwach, Uganda · no live value in this windowYumbe, Uganda · -0.04 vs own seasonal normalZombo, Uganda · -0.02 vs own seasonal normalBuhweju, Uganda · no live value in this windowBuliisa, Uganda · +0.03 vs own seasonal normalBundibugyo, Uganda · -0.02 vs own seasonal normalBunyangabu, Uganda · -0.01 vs own seasonal normalBushenyi, Uganda · -0.05 vs own seasonal normalHoima, Uganda · -0.02 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.01 vs own seasonal normalKagadi, Uganda · no live value in this windowKakumiro, Uganda · no live value in this windowKamwenge, Uganda · no live value in this windowKanungu, Uganda · 0.00 vs own seasonal normalKasese, Uganda · 0.00 vs own seasonal normalKazo, Uganda · no live value in this windowKibaale, Uganda · no live value in this windowKikuube, Uganda · no live value in this windowKiruhura, Uganda · no live value in this windowKiryandongo, Uganda · -0.05 vs own seasonal normalKisoro, Uganda · 0.00 vs own seasonal normalKitagwenda, Uganda · +0.01 vs own seasonal normalKyegegwa, Uganda · no live value in this windowKyenjojo, Uganda · -0.03 vs own seasonal normalMasindi, Uganda · 0.00 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.02 vs own seasonal normalRukiga, Uganda · no live value in this windowRukungiri, Uganda · no live value in this windowRwampara, 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.04 vs own seasonal normalNyanza, Rwanda · -0.04 vs own seasonal normalGisagara, Rwanda · -0.02 vs own seasonal normalNyaruguru, Rwanda · +0.01 vs own seasonal normalHuye, Rwanda · -0.05 vs own seasonal normalNyamagabe, Rwanda · -0.04 vs own seasonal normalRuhango, Rwanda · -0.02 vs own seasonal normalMuhanga, Rwanda · -0.04 vs own seasonal normalKamonyi, Rwanda · -0.03 vs own seasonal normalKarongi, Rwanda · -0.02 vs own seasonal normalRutsiro, Rwanda · -0.04 vs own seasonal normalRubavu, Rwanda · -0.01 vs own seasonal normalNyabihu, Rwanda · -0.03 vs own seasonal normalNgororero, Rwanda · -0.04 vs own seasonal normalRusizi, Rwanda · 0.00 vs own seasonal normalNyamasheke, Rwanda · -0.02 vs own seasonal normalRulindo, Rwanda · -0.03 vs own seasonal normalGakenke, Rwanda · -0.05 vs own seasonal normalMusanze, Rwanda · 0.00 vs own seasonal normalBurera, Rwanda · -0.03 vs own seasonal normalGicumbi, Rwanda · -0.02 vs own seasonal normalRwamagana, Rwanda · -0.03 vs own seasonal normalNyagatare, Rwanda · -0.03 vs own seasonal normalGatsibo, Rwanda · -0.06 vs own seasonal normalKayonza, Rwanda · -0.04 vs own seasonal normalKirehe, Rwanda · -0.04 vs own seasonal normalNgoma, Rwanda · -0.01 vs own seasonal normalBugesera, Rwanda · -0.03 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-11-02.

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