Cover Crop Nitrogen Calculator (CC-NCALC) API

Base URL:

https://api.covercrop-ncalc.org/

(also available at https://developapi.covercrop-ncalc.org/ for testing)

Endpoint

The endpoint returns nitrogen mineralization estimates based on weather, soil, and crop traits.

Parameter Type Units Required Description Model
latnumberdegreesLatitudeboth
lonnumberdegreesLongitudeboth
startstringYYYY-MM-DDStart (planting) dateboth
endstringYYYY-MM-DDTermination date. Defaults to start + 90 daysboth
nnumber%N concentration in cover cropboth
biomassnumberkg/haDry biomass at terminationboth
lwcnumberg water/
g dry biomass
Leaf water content (default: 4)surface
carbnumber%Carbohydrate content (default: 24.7 + 10.5 * n)both
cellnumber%Holocellulose (default: 69 - 10.2 * n)both
lignnumber%Lignin (default: 100 - (carb + cell))both
omnumber%Organic matter (from SSURGO if omitted)both
bdnumberg/cm³Bulk density (from SSURGO if omitted)both
innumberppmInorganic N in soil (default: 10)both
pmnnumbermg N/kgPotentially mineralizable N (default: 7)both

Output Format

Default: JSON

To get CSV, add &output=csv to your request.

Notes

Streaming Support

Use the query string stream=true to enable streaming output for large batch queries (only available on POST requests).

This can help overcome Cloudflare's ~20s timeout due to lack of output activity. However, it will not bypass Cloudflare’s total timeout limit of 100 seconds.

To avoid timeouts, you can:

Example GET Request

Example POST Requests

Single Site

{ "start": "2023-10-01", "end": "2024-04-15", "lat": 35.9, "lon": -83.95, "summary": true, "stream": true, "n": [2.6], "biomass": [3000], "carb": [50], "cell": [45], "lign": [5], "site": ["TN_101"] }

Multiple Sites

{ "start": "2023-10-01", "end": "2024-04-15", "lat": 35.9, "lon": -83.95, "summary": true, "stream": true, "site": ["TN_101", "TN_102"], "n": [2.6, 3.1], "biomass": [3000, 1800], "carb": [50, 60], "cell": [45, 35.5], "lign": [5, 4.5] }