Access Australian agricultural conditions data programmatically via the agriIQ REST API. Available on Professional and Enterprise plans.
All API requests require a valid API key sent via the Authorization header as a Bearer token. API keys start with the agri_ prefix.
Authorization: Bearer agri_a1b2c3d4e5f6...
To obtain an API key:
Keys are shown only once at creation. Store them securely. Never commit API keys to source control or expose them in client-side code.
Each API key has a per-minute rate limit (default: 30 requests/minute). When exceeded, the API returns 429 Too Many Requests.
Rate limits are applied per API key. If you need higher limits, contact support.
All successful responses return a JSON envelope with data and meta fields:
{
"data": { ... },
"meta": {
"generated_at": "2026-03-14T10:30:00.000Z",
"source": "agriiq.com.au"
}
}Error responses return a JSON object with an error field:
{
"error": "Description of what went wrong."
}| Status | Meaning |
|---|---|
| 200 | Success |
| 400 | Bad request (missing or invalid parameters) |
| 401 | Unauthorised (missing, invalid, or expired API key) |
| 403 | Forbidden (plan does not include API access) |
| 429 | Rate limit exceeded |
| 500 | Internal server error |
Returns the current composite score and all seven dimension scores.
curl -H "Authorization: Bearer agri_YOUR_KEY" \ https://agriiq.com.au/api/v1/scores
{
"data": {
"composite_score": 58,
"dimensions": [
{
"dimension": "farm_profitability",
"score": 62,
"previous_score": 59,
"key_driver": "Strong commodity prices offsetting rising input costs",
"updated_at": "2026-03-14T08:00:00.000Z"
}
]
},
"meta": {
"generated_at": "2026-03-14T10:30:00.000Z",
"source": "agriiq.com.au"
}
}Returns commodity prices and indicators. Optionally filter by slug.
| Parameter | Type | Required | Description |
|---|---|---|---|
| slug | string | optional | Filter by commodity slug (e.g. beef, wheat, wool) |
curl -H "Authorization: Bearer agri_YOUR_KEY" \ "https://agriiq.com.au/api/v1/commodities?slug=beef"
{
"data": [
{
"slug": "beef",
"name": "Beef",
"price": 742.5,
"unit": "c/kg",
"change_pct": 2.3,
"updated_at": "2026-03-14T08:00:00.000Z"
}
],
"meta": {
"generated_at": "2026-03-14T10:30:00.000Z",
"source": "agriiq.com.au"
}
}Returns state/territory level condition scores. Optionally filter by slug.
| Parameter | Type | Required | Description |
|---|---|---|---|
| slug | string | optional | Filter by region slug (e.g. nsw, vic, qld) |
curl -H "Authorization: Bearer agri_YOUR_KEY" \ "https://agriiq.com.au/api/v1/regions?slug=nsw"
{
"data": [
{
"slug": "nsw",
"name": "New South Wales",
"composite_score": 61,
"rainfall_status": "above_average",
"updated_at": "2026-03-14T08:00:00.000Z"
}
],
"meta": {
"generated_at": "2026-03-14T10:30:00.000Z",
"source": "agriiq.com.au"
}
}Returns SA4 sub-regional scores (57 statistical areas). Optionally filter by state.
| Parameter | Type | Required | Description |
|---|---|---|---|
| state | string | optional | Filter by state code (e.g. NSW, VIC, QLD) |
curl -H "Authorization: Bearer agri_YOUR_KEY" \ "https://agriiq.com.au/api/v1/sa4?state=NSW"
{
"data": [
{
"slug": "nsw-central-west",
"sa4_code": "103",
"sa4_name": "Central West",
"state": "NSW",
"rainfall_recent_mm": 42.3,
"rainfall_avg_mm": 38.1,
"rainfall_ratio": 1.11,
"soil_moisture_pct": 65.2,
"composite_score": 63,
"max_temp_avg": 28.4,
"heat_stress_days": 3,
"evap_avg_mm": 5.2,
"vpd_avg": 1.8,
"updated_at": "2026-03-14T08:00:00.000Z"
}
],
"meta": {
"generated_at": "2026-03-14T10:30:00.000Z",
"source": "agriiq.com.au"
}
}Returns the most recent AI-generated narrative for a given type. Some types require a slug parameter.
| Parameter | Type | Required | Description |
|---|---|---|---|
| type | string | required | Narrative type: overview, commodity_outlook, regional_summary, lending_risk, farm_impact, lender_consideration, forward_outlook, sa4_summary |
| slug | string | optional | Required for commodity/regional types (e.g. beef, nsw) |
curl -H "Authorization: Bearer agri_YOUR_KEY" \ "https://agriiq.com.au/api/v1/narratives?type=overview" curl -H "Authorization: Bearer agri_YOUR_KEY" \ "https://agriiq.com.au/api/v1/narratives?type=commodity_outlook&slug=beef"
{
"data": {
"type": "overview",
"slug": null,
"title": "National Agricultural Conditions Overview",
"content": "Australian agricultural conditions remain...",
"generated_at": "2026-03-14T08:10:00.000Z"
},
"meta": {
"generated_at": "2026-03-14T10:30:00.000Z",
"source": "agriiq.com.au"
}
}import requests
API_KEY = "agri_YOUR_KEY"
BASE_URL = "https://agriiq.com.au/api/v1"
headers = {"Authorization": f"Bearer {API_KEY}"}
# Get all dimension scores
scores = requests.get(f"{BASE_URL}/scores", headers=headers).json()
print(f"Composite score: {scores['data']['composite_score']}")
# Get beef commodity data
beef = requests.get(
f"{BASE_URL}/commodities",
headers=headers,
params={"slug": "beef"}
).json()
print(f"Beef price: {beef['data'][0]['price']}")
# Get SA4 data for NSW
sa4 = requests.get(
f"{BASE_URL}/sa4",
headers=headers,
params={"state": "NSW"}
).json()
for region in sa4["data"]:
print(f"{region['sa4_name']}: {region['composite_score']}")
# Get the latest overview narrative
narrative = requests.get(
f"{BASE_URL}/narratives",
headers=headers,
params={"type": "overview"}
).json()
print(narrative["data"]["content"])const API_KEY = "agri_YOUR_KEY";
const BASE_URL = "https://agriiq.com.au/api/v1";
const headers = { Authorization: `Bearer ${API_KEY}` };
// Get all dimension scores
const scoresRes = await fetch(`${BASE_URL}/scores`, { headers });
const scores = await scoresRes.json();
console.log("Composite score:", scores.data.composite_score);
// Get commodity data with optional filter
const beefRes = await fetch(`${BASE_URL}/commodities?slug=beef`, { headers });
const beef = await beefRes.json();
console.log("Beef price:", beef.data[0]?.price);
// Get SA4 data for Victoria
const sa4Res = await fetch(`${BASE_URL}/sa4?state=VIC`, { headers });
const sa4 = await sa4Res.json();
sa4.data.forEach((region) => {
console.log(`${region.sa4_name}: ${region.composite_score}`);
});
// Get the latest overview narrative
const narrativeRes = await fetch(
`${BASE_URL}/narratives?type=overview`,
{ headers }
);
const narrative = await narrativeRes.json();
console.log(narrative.data?.content);Need help? Manage your API keys or contact us at support@agriiq.com.au