/api/v1/fertiliser
The current estimate for every tracked grade, returned as one JSON array.
Parameters
No parameters.
Example
https://intelligence.tilth.uk/api/v1/fertiliserAPI reference
Seven read-only Intelligence Hub endpoints for UK fertiliser estimates, price series, market facts and public scoring. No key and no login.
Every endpoint is a plain GET over HTTPS. Nothing to sign up for, and no header is required. This returns today's estimate for all nine grades.
Try it
curl https://intelligence.tilth.uk/api/v1/fertiliserResponse shape
[
{
"product": "AN_UK",
"estimate_gbp_t": 436.5,
"band_low_gbp_t": 420.88,
"band_high_gbp_t": 452.11,
"as_of": "2026-07-23",
"method": "modelled",
"within_gbp_t": 6.25,
"hit_rate_n_of_10": 8,
"scored_prints": 10,
"signal_stage": "early"
}
]Absolute paths against the branded Intelligence Hub origin above. All seven accept GET only.
The current estimate for every tracked grade, returned as one JSON array.
Parameters
No parameters.
Example
https://intelligence.tilth.uk/api/v1/fertiliserThe published price series for one grade, newest first, returned as a JSON array.
Parameters
Example
https://intelligence.tilth.uk/api/v1/fertiliser/series?product=AN_UK&cadence=weeklyThe daily estimate history for one grade, newest first, capped at 400 points and returned as a JSON array.
Parameters
Example
https://intelligence.tilth.uk/api/v1/fertiliser/estimates/history?product=UREA_GRANULARRanked market facts for one grade, ordered for concise human or agent consumption.
Parameters
Example
https://intelligence.tilth.uk/api/v1/fertiliser/narrative?product=AN_UKThe market-wide weekly aggregate across tracked grades.
Parameters
No parameters.
Example
https://intelligence.tilth.uk/api/v1/fertiliser/overviewThe public forward-error scoring record, optionally narrowed by grade and time window.
Parameters
Example
https://intelligence.tilth.uk/api/v1/fertiliser/divergence?product=AN_UK&days=365The daily forecast rebased against the official DEFRA agricultural price index for one nutrient family, so you can see how the estimate tracks the official series.
Parameters
Example
https://intelligence.tilth.uk/api/v1/fertiliser/official-index-comparison?product=DAPThe current operation returns an array directly. Every entry carries the estimate, confidence band, method and available scoring record.
| Field | Meaning |
|---|---|
| product | The grade code, one of the nine listed below. |
| estimate_gbp_t | The modelled price in pounds per tonne. |
| band_low_gbp_t | The lower bound of the uncertainty band. |
| band_high_gbp_t | The upper bound of the uncertainty band. |
| as_of | The day this estimate is for. |
| method | How the point was produced: modelled, or flat_carry when the driver data was unavailable. |
| within_gbp_t | Recent accuracy, the typical gap in pounds per tonne between the estimate and the settled price. |
| hit_rate_n_of_10 | How many of the scored estimates landed inside the band. A count, not a rate: read it over scored_prints. |
| scored_prints | The denominator for hit_rate_n_of_10: how many settled prints the count was measured over, at most ten. |
| signal_stage | How far the underlying driver is through validation. |
The history operation also returns an array directly. Every entry is one dated estimate for the requested grade.
| Field | Meaning |
|---|---|
| product | The grade code, one of the nine listed below. |
| date | The date this historical estimate is for. |
| estimate_gbp_t | The modelled price in pounds per tonne. |
| band_low_gbp_t | The lower bound of the uncertainty band. |
| band_high_gbp_t | The upper bound of the uncertainty band. |
| method | How the point was produced: modelled, or flat_carry when the driver data was unavailable. |
| signal_stage | How far the underlying driver is through validation. |
Pass one of these as the product parameter. See the machine-readable contract for each operation's handling of unknown codes.
| Code | Grade |
|---|---|
| AN_UK | Ammonium Nitrate |
| UREA_GRANULAR | Granular Urea |
| DAP | DAP |
| MOP | Muriate of Potash |
| AN_IMPORT | Ammonium Nitrate (Imported) |
| UAN | UAN |
| TSP | Triple Superphosphate |
| POLYSULPHATE | Polysulphate |
| NITRATE_SULPHUR | Nitrate Sulphur |
Failures can return the status codes below. Throttle and timeout responses return JSON with code and message; a 429 response also includes Retry-After. Cache responses and pace calls rather than polling in a loop.
| Status | When it happens |
|---|---|
| 400 | A required query parameter is missing or invalid. |
| 429 | The public request rate or concurrency limit was reached. The JSON code is ERR_HUB_THROTTLED and the message is "Too many requests. This API is free and keyless; please pace your calls." Read Retry-After: 60 seconds for a request budget or 1 second when all public request slots are in use, then retry after that delay. |
| 500 | The Intelligence Hub could not read the requested dataset. Retry shortly. |
| 503 | The public request exceeded the Hub timeout. The JSON code is ERR_HUB_INTERNAL and the message is "The Intelligence Hub could not complete this request". Retry shortly. |
The OpenAPI 3.1 document describes every endpoint, parameter and response on this page. Point a client generator at it rather than hand-writing types.
https://intelligence.tilth.uk/openapi.jsonOpen the OpenAPI documentTilth also runs a Model Context Protocol server, so an agent can call the index directly as a tool instead of you wiring up the HTTP calls above by hand.
MCP endpoint
https://www.tilth.uk/mcpDiscovery document
https://www.tilth.uk/.well-known/mcp.jsonClient config
{
"mcpServers": {
"tilth": {
"url": "https://www.tilth.uk/mcp"
}
}
}Tools
The server exposes six tools. Five are read-only; the sixth needs the user's explicit consent before it does anything.
The Intelligence Hub contract does not currently assert a licence. Source licence metadata is informational and does not define terms for the public API.
This page documents the interface. The methodology, the sources behind each grade and the validation record are set out on the data page.
Read the methodology