Free, open access to 72 quarters of validated U.S. agricultural financial conditions data. No API key. No rate limits. No auth. Just JSON.
Endpoints
Current Quarter
Historical Time Series
Model Metadata & Data Dictionary
Embeddable Badge
Response Format
current.json
{
"quarter": "Q4'25",
"composite": 68.0,
"regime": "FAVORABLE",
"sub_indexes": {
"grain": 9.8,
"dairy": 53.3,
"livestock": 94.6
},
"outlook": 61.4,
"regimes": {
"grain": "STRESSED",
"dairy": "GUARDED",
"livestock": "STRONG",
"outlook": "FAVORABLE"
},
"previous": { ... previous quarter ... }
}
history.json
{
"count": 72,
"quarters": [
{
"quarter": "Q1'08",
"date": "2008-01-01",
"composite": 55.2,
"grain": 100.0,
"dairy": 4.8,
"livestock": 4.8
},
... 71 more quarters ...
]
}
Fields
| Field | Type | Description |
|---|---|---|
| composite | float | National FFAI score (0-100). Higher = lower delinquency risk. |
| regime | string | STRONG (70+), FAVORABLE (55-70), GUARDED (40-55), STRESSED (0-40) |
| grain | float | Row crop margin sub-index. Corn/soy/wheat revenue vs input costs. |
| dairy | float | Dairy margin sub-index. Milk/cheese/butter revenue vs feed costs. |
| livestock | float | Livestock margin sub-index. Cattle/hog revenue vs feed costs. |
| outlook | float | 12-15 month forward outlook based on Fed Funds rate trajectory. |
| quarter | string | Quarter label, e.g. "Q4'25" |
| date | string | ISO date of quarter start (YYYY-MM-DD) |
Code Examples
JavaScript (fetch)
fetch('https://farmers1st.com/api/v3/current.json') .then(r => r.json()) .then(d => { console.log(`FFAI: ${d.composite} ${d.regime}`); console.log(`Grain: ${d.sub_indexes.grain}`); console.log(`Dairy: ${d.sub_indexes.dairy}`); console.log(`Livestock: ${d.sub_indexes.livestock}`); });
Python
import requests # Current reading r = requests.get('https://farmers1st.com/api/v3/current.json') d = r.json() print(f"FFAI {d['composite']} {d['regime']}") # Full history for analysis h = requests.get('https://farmers1st.com/api/v3/history.json').json() import pandas as pd df = pd.DataFrame(h['quarters']) df.set_index('date', inplace=True) print(df.describe())
curl
curl -s https://farmers1st.com/api/v3/current.json | python3 -m json.tool
R
library(jsonlite) ffai <- fromJSON("https://farmers1st.com/api/v3/history.json") df <- ffai$quarters plot(df$composite, type="l", main="FFAI Composite")
Embeddable Badge
Add the FFAI score to any website with two lines of HTML. The badge fetches current data from the API and renders automatically.
Standard
<div id="ffai-badge"></div> <script src="https://farmers1st.com/api/v3/badge.js"></script>
Live Preview
Full (with sub-indexes)
<div id="ffai-badge" data-size="full"></div> <script src="https://farmers1st.com/api/v3/badge.js"></script>
Live Preview
Compact
<div id="ffai-badge" data-size="compact"></div> <script src="https://farmers1st.com/api/v3/badge.js"></script>
Live Preview
Sector-Specific (Dairy)
<div id="ffai-badge" data-sector="dairy"></div> <script src="https://farmers1st.com/api/v3/badge.js"></script>
Live Preview
Dark Theme
<div id="ffai-badge" data-size="full" data-theme="dark"></div> <script src="https://farmers1st.com/api/v3/badge.js"></script>
Live Preview
Notes
CORS: GitHub Pages serves all files with permissive CORS headers. Fetch from any origin.
Rate limits: None. It's static JSON on a CDN. Hammer away.
Versioning: The /v3/ path will remain stable. If the model changes substantially, we'll ship /v4/ and keep /v3/ frozen.
Update cadence: Quarterly, typically within 2 weeks of FRED publishing the complete quarter's data. The generated field in each response tells you when.
Validation: Cross-validated r = 0.49 against USDA ag loan delinquency (91 quarters). Full methodology: PDF or meta.json.
The model explains 28% of delinquency variance. The other 72% is weather, trade, management, and policy. Use accordingly.
Contact
Questions, integrations, or just want to say hi:
Sig Lindquist — sig@farmers1st.com — 715-797-2428
Farmers First Agri Service, Chetek, WI