FFAI API v3.0

← Back to FFAI

Free, open access to 72 quarters of validated U.S. agricultural financial conditions data. No API key. No rate limits. No auth. Just JSON.

License: CC BY 4.0 — use freely with attribution to Farmers First Agri Service (farmers1st.com). Updated quarterly after FRED publishes complete quarter data.

Endpoints

Current Quarter

GETJSON
https://farmers1st.com/api/v3/current.json
Latest FFAI composite, sub-indexes, regime, and outlook. ~1 KB.

Historical Time Series

GETJSON
https://farmers1st.com/api/v3/history.json
All 72 quarters (Q1 2008 – Q4 2025). Composite + grain/dairy/livestock sub-indexes. ~12 KB.

Model Metadata & Data Dictionary

GETJSON
https://farmers1st.com/api/v3/meta.json
Complete model specification: validation stats, component weights, regime thresholds, all 16 FRED series IDs, structural validation. ~5 KB.

Embeddable Badge

GETJS
https://farmers1st.com/api/v3/badge.js
Self-rendering widget. Drop two lines of HTML onto any page.

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

FieldTypeDescription
compositefloatNational FFAI score (0-100). Higher = lower delinquency risk.
regimestringSTRONG (70+), FAVORABLE (55-70), GUARDED (40-55), STRESSED (0-40)
grainfloatRow crop margin sub-index. Corn/soy/wheat revenue vs input costs.
dairyfloatDairy margin sub-index. Milk/cheese/butter revenue vs feed costs.
livestockfloatLivestock margin sub-index. Cattle/hog revenue vs feed costs.
outlookfloat12-15 month forward outlook based on Fed Funds rate trajectory.
quarterstringQuarter label, e.g. "Q4'25"
datestringISO 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 Lindquistsig@farmers1st.com715-797-2428
Farmers First Agri Service, Chetek, WI