canonical: https://jentic.com/apis/api.ers.usda.gov/usda-ers

# Ers Usda Gov USDA ERS ARMS Data API

Jentic publishes the only available OpenAPI specification for USDA ERS ARMS Data API, keeping it validated and agent-ready. The Agricultural Resource Management Survey (ARMS) Data API exposes the USDA Economic Research Service's flagship dataset on US farm financial and production economics. Researchers, journalists, and policy analysts query farm types, states, years, categories, and survey variables, then pull aggregated reports and raw survey data. The 7-endpoint surface covers reference lookups (states, years, farm types, categories, variables) plus the core report and survey data endpoints.

## For AI agents

Query US farm financial and production data from the USDA Economic Research Service ARMS survey by state, year, farm type, category, and variable.

## Scope

Does not handle commodity prices, weather data, or farm-level NASS production statistics - use for ARMS farm financial and production survey aggregates only.

## Capabilities

- List the states covered by the ARMS survey for a given year
- Look up which years of ARMS survey data are available
- Browse the category and variable taxonomy used in ARMS reports
- Retrieve aggregated farm finance and production reports by filter
- Pull raw survey data slices for custom analysis
- Resolve farm type classifications used in survey segmentation

## Use cases

### Agricultural Economics Research

Pull ARMS survey aggregates for academic and policy research on US farm finance, production cost structure, and rural economy. Researchers query by state, year, and farm type to build longitudinal datasets without scraping ERS publications. Eliminates manual CSV downloads and keeps analysis tied to the canonical USDA dataset.

Example prompt: GET `/arms/report` with state=IA, year=2023, and farmtype=cash-grain to retrieve net farm income aggregates

### Policy and Journalism Briefings

Build reproducible briefings on US agriculture for policy memos and news coverage. Use the reference endpoints to discover which states, years, and variables are available, then pull report numbers with citation-ready confidence intervals. Replaces ad hoc requests to USDA staff with a self-service data layer.

Example prompt: GET `/arms/state` to list covered states, then GET `/arms/report` with the chosen state and variable to fetch the cited figure

### AgTech and Lender Benchmarking

Lenders, insurers, and agtech platforms use ARMS aggregates to benchmark borrower or customer performance against the regional and farm-type averages. The variable taxonomy supports drilling into expenses, revenues, and balance sheet ratios. The API delivers the official ERS figures so benchmarks are defensible.

Example prompt: GET `/arms/farmtype` to enumerate farm typologies, then GET `/arms/surveydata` filtered to the relevant typology and variable for benchmarking

### AI Agent Data Lookup via Jentic

An AI research agent answering questions about US agriculture ("what was net farm income in Kansas in 2022?") can call the ARMS Data API through Jentic. Jentic resolves the api_key query parameter and surfaces the seven operations, so the agent picks the right endpoint and returns a cited figure.

Example prompt: Search Jentic for 'get USDA farm income data', load the GET `/arms/report` schema, and execute with state, year, and variable to return a cited number

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/arms/state` | List states covered by the survey |
| GET | `/arms/year` | List available survey years |
| GET | `/arms/category` | List report categories |
| GET | `/arms/farmtype` | List farm type classifications |
| GET | `/arms/variable` | List survey variables and their codes |
| GET | `/arms/report` | Retrieve aggregated ARMS reports by filter |
| GET | `/arms/surveydata` | Retrieve raw ARMS survey data slices |

## Key resources

- **Reference** — Lookups for states, years, categories, farm types, and variables in the ARMS survey
- **Survey** — Aggregated reports and raw survey data slices from ARMS

## AI readiness

This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.

- **Score:** 48 / 100
- **Maturity:** Foundational
- **Dimensions:**
  - Foundational Compliance: 100 / 100
  - Developer Experience & Jentic Compatibility: 63 / 100
  - AI-Readiness & Agent Experience: 44 / 100
  - Agent Usability: 94 / 100
  - Security: 15 / 100
  - AI Discoverability: 100 / 100
- **View full report:** https://jentic.com/apis/api.ers.usda.gov/usda-ers/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** Wiring the USDA ERS ARMS Data API by hand means setting up its API key auth and coding your own reads across the state, year, category, and survey data endpoints. Through Jentic you install once, import the USDA ERS ARMS Data API from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** The ARMS query filters travel as request parameters rather than as ids in the URL path, and every operation here is read-only, so limit the agent to the read operations it needs, such as arms/surveydata or arms/report. Every operation you grant is your explicit choice.
- **Credential handling:** Your USDA ERS API key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'get ARMS farm financial data by state' or 'list available survey variables', and Jentic returns the matching ERS operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Data.gov** — Federal data catalogue umbrella that lists ARMS alongside other USDA and federal datasets
- **US Census Bureau** — Demographic and economic statistics that complement ARMS farm-level data with rural population context
- **NOAA** — Weather and climate data relevant to interpreting year-over-year ARMS production figures

## FAQ

### Why is there no official OpenAPI spec for USDA ERS ARMS Data API?

USDA ERS does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call USDA ERS ARMS Data API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the USDA ERS ARMS Data API use?

ARMS uses an API key passed as the api_key query parameter on every request. Keys are issued free at api.data.gov. When called through Jentic, the key is stored in the vault and appended to the query string at execution time.

### How do I find which states or years are covered before pulling a report?

Call GET `/arms/state` and GET `/arms/year` first. These reference endpoints return the valid filter values for `/arms/report` and `/arms/surveydata`, so you can build a query without hitting empty results.

### What is the difference between `/arms/report` and `/arms/surveydata`?

`/arms/report` returns published aggregated figures (the same numbers as ERS report tables). `/arms/surveydata` returns finer slices intended for custom analysis, with the same survey weighting applied so you can compute your own aggregates.

### How do I retrieve a USDA farm income figure through Jentic?

Run pip install jentic, then search 'get USDA farm income data'. Jentic returns the GET `/arms/report` operation. Execute with state, year, and variable parameters; the response includes the cited value and metadata.

### Are there rate limits on the ARMS Data API?

The api.data.gov gateway applies a default limit of 1,000 requests per hour per key, which is shared across api.data.gov-fronted services. Higher limits are available on request to USDA.

### Can I limit what my agent is allowed to do with the USDA ERS ARMS Data API?

Yes. Because you run Jentic One yourself, your own rules decide which of the ARMS operations and which credentials the agent may use. Every operation here is read-only and its filters travel as request parameters rather than as ids in the URL path, so you can grant only the reads the agent needs, such as GET `/arms/report` and GET `/arms/surveydata`, while withholding the reference lookups it does not. Each operation you expose is your explicit choice, and your stored API key stays on your instance rather than in the agent's context.
