ParseForge Scrapers

USDA Cattle Market Report Scraper

parseforge/usda-cattle-market-report-scraper

BusinessAutomationDeveloper tools

Scrape USDA cattle market reports into flat rows with class, grade, head count, weight range and weighted average price. Export to CSV, Excel, JSON or XML.

Run this scraper See the API call
Total runs
27
Bookmarked
0
Last modified
2 days ago

This scraper was last updated on .

What does the USDA Cattle Market Report Scraper return?

ParseForge Banner

๐Ÿ„ USDA Cattle Market Report Scraper

๐Ÿš€ Export USDA cattle prices in seconds. 59 live Livestock Mandatory Reporting cattle reports, 25 fields per row, head count and weighted average price on every line, straight to CSV, Excel, JSON or XML.

USDA Agricultural Marketing Service publishes fed cattle trade under the Livestock Mandatory Reporting program. Packers report every purchase, AMS aggregates it, and the result is the price the whole beef supply chain settles against. The catch is the format: PDFs, fixed width text, and a query API that most teams never wire up. This Actor turns those reports into one flat row per class and grade combination, with the numbers already parsed into real numbers.

Coverage: 59 cattle reports from the open USDA Market News datamart, daily, weekly and monthly, covering the 5 Area negotiated trade, the Texas-Oklahoma-New Mexico, Kansas, Nebraska, Colorado and Iowa-Minnesota regions, national formulated and forward contract purchases, premiums and discounts, and the direct cow and bull trade. Every row carries the report slug, AMS code, report date, publication timestamp, market location, cattle class, quality grade, selling basis, purchase type, head count, weight range low, high and average, price range low and high, weighted average price and dressing percentage. USDA serves the full published history, so a single run can pull one week or ten years.

๐ŸŽฏ Target Audience ๐Ÿ’ก Primary Use Cases
Cattle feeders and ranchers Benchmark last week's sale against the regional weighted average
Beef packers and procurement teams Track negotiated versus formula purchase mix by region
Commodity traders and analysts Build live cash basis series against CME live cattle futures
Ag lenders and insurers Value collateral and loss claims against official USDA prices
Ag-tech and data teams Backfill a price database without maintaining a PDF parser
Academics and extension services Study price discovery and mandatory reporting coverage

๐Ÿ“‹ What the USDA Cattle Market Report Scraper does

๐Ÿ’ก Why it matters: the weighted average price in these reports is the reference price for a large share of US fed cattle contracts. Getting it as a typed number, on a schedule, is the difference between a spreadsheet somebody updates by hand and a data pipeline.

  1. Reads the open USDA Market News datamart, which needs no account and no API key.
  2. Pulls the Detail section of every report you select, for the look back window you choose.
  3. Normalises USDA's varying column names into one stable schema, so class_description and class_desc both land in cattleClass.
  4. Converts "24,032" into 24032 and "08/31/2026" into 2026-08-31, so sorting and charting work immediately.
  5. Drops USDA's placeholder lines for class and grade combinations with no confirmed trade, unless you ask for them.
  6. Applies your class, grade, selling basis and date filters, deduplicates, and spreads the row budget evenly across every report you picked.

๐ŸŽฌ Full Demo (๐Ÿšง Coming soon)

๐Ÿ“Š Output

Field Type Description
๐Ÿ“Œ reportTitle string Report name, for example National Weekly Direct Slaughter Cattle - Negotiated Purchases
๐Ÿท reportSlug string USDA Market News slug, for example AMS_2481
๐Ÿ”ค reportCode string Legacy AMS report code, for example LM_CT154, or N/A when the report has none
๐Ÿ†” reportId string Numeric report id used by My Market News
๐Ÿ”— reportUrl string Public report page on mymarketnews.ams.usda.gov
๐Ÿ“… reportDate string Report date as YYYY-MM-DD
๐Ÿ•˜ publishedAt string Publication timestamp as reported by AMS
๐Ÿ“ marketLocation string Market location the AMS office reports for
๐Ÿ—บ marketState string Two letter state code
๐Ÿ› officeName string AMS market news office that issued the report
๐Ÿฎ marketType string AMS market type, for example Direct Livestock - LMR Cattle
๐Ÿ„ cattleClass string Steer, heifer, mixed, dairybred, cow or bull class as USDA prints it
โญ gradeDescription string Quality grade band, for example Over 80% Choice
โš–๏ธ sellingBasis string Live or dressed, FOB or delivered
๐Ÿค purchaseType string Negotiated cash, negotiated grid, formula base or forward contract base
๐Ÿ”ข headCount number Head reported for the class, grade and basis combination
๐Ÿ“‰ weightRangeLow number Low end of the reported weight range in pounds
๐Ÿ“ˆ weightRangeHigh number High end of the reported weight range in pounds
๐Ÿ“Š weightRangeAvg number Weighted average weight in pounds
๐Ÿ’ต priceRangeLow number Low end of the reported price range
๐Ÿ’ฐ priceRangeHigh number High end of the reported price range
๐ŸŽฏ weightedAvgPrice number Weighted average price, the headline number of the report
๐Ÿฅฉ dressedPercent number Weighted average dressing percentage where USDA reports it
๐Ÿ•’ scrapedAt string ISO timestamp of the extraction
โŒ error string Populated only on an error row, otherwise null

Fields USDA withholds on a given line come back as Not Disclosed. Fields that do not apply to a report come back as N/A. Numbers are never returned as text.

Three real records from a run:

[
  {
    "reportTitle": "National Weekly Direct Slaughter Cattle - Negotiated Purchases",
    "reportSlug": "AMS_2481",
    "reportCode": "LM_CT154",
    "reportId": "2481",
    "reportUrl": "https://mymarketnews.ams.usda.gov/viewReport/2481",
    "reportDate": "2026-08-31",
    "publishedAt": "2026-08-31T11:48:23",
    "marketLocation": "St. Joseph, MO",
    "marketState": "MO",
    "officeName": "St Joseph, MO",
    "marketType": "Direct Livestock - LMR Cattle",
    "cattleClass": "STEER",
    "gradeDescription": "Over 80% Choice",
    "sellingBasis": "LIVE FOB",
    "purchaseType": "NEGOTIATED CASH",
    "headCount": 24032,
    "weightRangeLow": 1305,
    "weightRangeHigh": 1700,
    "weightRangeAvg": 1546,
    "priceRangeLow": 214,
    "priceRangeHigh": 227,
    "weightedAvgPrice": 219.54,
    "dressedPercent": 63.2,
    "scrapedAt": "2026-09-08T05:36:45.003Z",
    "error": null
  },
  {
    "reportTitle": "National Weekly Direct Slaughter Cattle - Negotiated Purchases",
    "reportSlug": "AMS_2481",
    "reportCode": "LM_CT154",
    "reportId": "2481",
    "reportUrl": "https://mymarketnews.ams.usda.gov/viewReport/2481",
    "reportDate": "2026-08-31",
    "publishedAt": "2026-08-31T11:48:23",
    "marketLocation": "St. Joseph, MO",
    "marketState": "MO",
    "officeName": "St Joseph, MO",
    "marketType": "Direct Livestock - LMR Cattle",
    "cattleClass": "STEER",
    "gradeDescription": "65 - 80% Choice",
    "sellingBasis": "LIVE FOB",
    "purchaseType": "NEGOTIATED CASH",
    "headCount": 3617,
    "weightRangeLow": 1250,
    "weightRangeHigh": 1650,
    "weightRangeAvg": 1514,
    "priceRangeLow": 218,
    "priceRangeHigh": 222,
    "weightedAvgPrice": 221.67,
    "dressedPercent": 62.8,
    "scrapedAt": "2026-09-08T05:36:45.004Z",
    "error": null
  },
  {
    "reportTitle": "National Weekly Direct Slaughter Cattle - Negotiated Purchases",
    "reportSlug": "AMS_2481",
    "reportCode": "LM_CT154",
    "reportId": "2481",
    "reportUrl": "https://mymarketnews.ams.usda.gov/viewReport/2481",
    "reportDate": "2026-08-31",
    "publishedAt": "2026-08-31T11:48:23",
    "marketLocation": "St. Joseph, MO",
    "marketState": "MO",
    "officeName": "St Joseph, MO",
    "marketType": "Direct Livestock - LMR Cattle",
    "cattleClass": "STEER",
    "gradeDescription": "35 - 65% Choice",
    "sellingBasis": "LIVE FOB",
    "purchaseType": "NEGOTIATED CASH",
    "headCount": 798,
    "weightRangeLow": 1250,
    "weightRangeHigh": 1500,
    "weightRangeAvg": 1441,
    "priceRangeLow": 221,
    "priceRangeHigh": 222,
    "weightedAvgPrice": 221.93,
    "dressedPercent": 62.3,
    "scrapedAt": "2026-09-08T05:36:45.004Z",
    "error": null
  }
]

โœจ Why choose this Actor

  • No account, no key, no proxy. The Actor reads the open USDA Market News datamart. A run works out of the box.
  • Numbers arrive as numbers. Head counts, weights and prices are parsed, so a chart or a SUM works on the first try.
  • One schema across 59 reports. USDA uses different column names in different report families. The Actor maps them all to the same 25 fields.
  • No empty rows by default. USDA prints a line for every class and grade combination even when nothing traded. Those lines are filtered out unless you want them.
  • Full history, not just today. Set the look back window to 3,650 days and pull ten years of weighted average prices in one run.
  • Even coverage across reports. Pick five reports and a budget of 500 rows and the Actor spreads the budget across all five instead of exhausting the first one.
  • Never a silent null. Withheld values come back as Not Disclosed, inapplicable ones as N/A.

๐Ÿ“ˆ How it compares to alternatives

Approach Setup Structured numbers Coverage Maintenance
This Actor None, run it Yes, 25 typed fields 59 LMR cattle reports, full history None
USDA report PDFs Download by hand No, you parse the layout Everything AMS publishes Layout changes break your parser
My Market News API direct Free key by eAuth registration, hours to issue Yes, raw column names vary by report Full AMS catalog You write the normalisation
Generic web scrapers Selector tuning Rarely Whatever renders in HTML Breaks on every site change

Honest ceiling: the open datamart carries the Livestock Mandatory Reporting catalog, which is direct trade between producers and packers. Auction barn reports live in the wider My Market News catalog and need the free API key, which you can paste into the optional API key input.

๐Ÿš€ How to use

  1. Create a free Apify account with $5 in starting credit through this link.
  2. Open the Actor and go to the Input tab.
  3. Pick one or more USDA cattle reports from the dropdown. The default is the National Weekly Direct Slaughter Cattle negotiated purchases report.
  4. Set the look back window, or set a From date to pull a specific stretch of history.
  5. Optionally filter by cattle class, quality grade or selling basis.
  6. Set Max Items and click Start.
  7. Download the dataset as CSV, Excel, JSON or XML, or read it from the Apify API.

๐Ÿ’ผ Business use cases

Cash basis and hedging

Pull the 5 Area weekly weighted average alongside the regional negotiated reports, join it to your futures settlements, and you have a live basis series per region. Feeders use it to time hedge placement, packers use it to price forward contracts.

Procurement benchmarking

A feedlot that sold 1,200 head of Over 80% Choice steers on a live FOB basis can compare its realised price against the national weighted average for the exact same class, grade and basis on the same report date. That comparison is a single filtered query once the data is in a table.

Market intelligence products

Ag-tech platforms and farm management apps embed cattle price widgets. Running this Actor on a schedule and writing the rows to a database is a complete backend for that feature, with no PDF parsing and no scraper to maintain.

Lending and risk

Ag lenders value cattle collateral against official USDA prices. Pulling the historical weighted average for the relevant class and weight range gives an auditable valuation basis that a regulator recognises.

๐Ÿ”Œ Automating USDA Cattle Market Report Scraper

  • Schedules: run it every weekday at 4 pm Central, after the afternoon reports publish.
  • Make and Zapier: trigger on a finished run and append new rows to Google Sheets or Airtable.
  • Slack: post the weighted average price and head count to a trading channel the moment a report lands.
  • Airbyte and Fivetran: pull the dataset through the Apify API into Snowflake, BigQuery or Postgres.
  • GitHub Actions: call the Actor from a workflow and commit the CSV to a data repository for versioned history.
  • Google Drive: drop the CSV into a shared folder so the analysts who live in spreadsheets always have the latest file.

๐ŸŒŸ Beyond business use cases

  • Research: study how much of the fed cattle trade is negotiated versus formula, region by region, over a decade.
  • Personal: a small producer can check whether the local buyer's bid is close to the national weighted average before loading the trailer.
  • Non-profit: food policy groups can document price discovery and market concentration with primary government data.
  • Experimentation: train a forecasting model on ten years of weighted average prices with head counts as a volume signal.

๐Ÿค– Ask an AI assistant about this scraper

Paste this into ChatGPT, Claude or any assistant:

I am using the ParseForge USDA Cattle Market Report Scraper on Apify. It returns one row per USDA report line with reportSlug, reportDate, marketLocation, cattleClass, gradeDescription, sellingBasis, purchaseType, headCount, weightRangeLow, weightRangeHigh, weightRangeAvg, priceRangeLow, priceRangeHigh, weightedAvgPrice and dressedPercent. Help me build a weekly cash basis series for Nebraska live FOB steers and chart it.

โ“ Frequently Asked Questions

๐Ÿ”‘ Do I need a USDA account or an API key?

No. The Actor reads the open USDA Market News datamart, which answers without any credentials. The API key input is optional and only widens the report catalog.

๐Ÿฎ Which reports are covered?

59 Livestock Mandatory Reporting cattle reports that publish a Detail section: daily, weekly and monthly negotiated purchases, formula and grid purchases, forward contract purchases, premiums and discounts, and the direct cow and bull trade, at national and regional level.

๐Ÿš Are auction barn reports included?

Not through the open route. Auction reports live in the wider My Market News catalog, which needs the free API key. Register at the My Market News API page and paste the key into the API key input.

๐Ÿ“… How far back can I go?

USDA serves the full published history through this route. The look back window accepts up to 3,650 days, and you can also set explicit From and To dates.

๐Ÿ’ฒ What unit are the prices in?

Exactly what USDA published on that report line. Live basis rows are dollars per hundredweight of live weight, dressed basis rows are dollars per hundredweight of carcass weight. The Actor does not convert between them.

๐Ÿˆณ Why do some rows show Not Disclosed?

USDA suppresses a value when too few packers reported it, which protects confidentiality. Those lines are kept with a Not Disclosed sentinel rather than a null, so you can see the gap instead of guessing.

๐Ÿšซ Why are so many report lines missing from my output?

USDA prints a placeholder line for every class and grade combination, including the ones with no confirmed trade. Those lines are dropped by default. Turn on "Include rows with no reported sales" to keep them.

๐Ÿ” How often should I run it?

Daily reports publish every weekday, weekly reports on Monday, monthly reports once a month. A weekday afternoon schedule catches everything.

๐Ÿ“ฆ Can I pull several reports in one run?

Yes. Select as many as you like and the Actor spreads your item budget evenly across them, so no single report eats the whole run.

๐Ÿงพ What formats can I export?

CSV, Excel, JSON, XML, JSONL and RSS, either from the Apify Console or through the dataset API.

โฑ How long does a run take?

A single report over a 30 day window returns in a few seconds. Ten reports over ten years is a couple of minutes, since the whole job is a handful of JSON calls.

๐ŸŒ Do I need a proxy?

No. USDA answers plain requests, so the proxy input defaults to off. Turn it on only if you run very high volume from one account.

๐Ÿ”Œ Integrate with any app

Every run writes a standard Apify dataset, so anything that speaks HTTP can read it. Use the REST API, the JavaScript or Python client, the Make and Zapier integrations, or a plain scheduled export to Google Drive, Amazon S3 or a webhook.

๐Ÿ”— Recommended Actors

๐Ÿ’ก Pro Tip: browse the complete ParseForge collection for more government and market data Actors.

๐Ÿ†˜ Need Help? Open our contact form

โš ๏ธ Disclaimer: This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by the United States Department of Agriculture or its Agricultural Marketing Service. It collects only publicly available data published by USDA Market News.

What input does the USDA Cattle Market Report Scraper accept?

FieldTypeWhat it doesDefault
startUrls array Optional. My Market News report pages such as https://mymarketnews.ams.usda.gov/viewReport/2481. Each URL adds its report to the ones picked below. Leave empty to use the report list only. []
reportSlugs array USDA Livestock Mandatory Reporting cattle reports to pull. Every value is a live AMS report slug verified against the public Market News datamart. ["AMS_2481"]
maxItems integer Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000 10
lastDays integer How far back to pull report dates. USDA serves the full published history, so a larger window returns more rows. Daily reports publish every weekday, weekly reports every Monday, monthly reports once a month. 30
dateFrom string Optional. Earliest report date to keep, as YYYY-MM-DD. Overrides the look back window when set. not set
dateTo string Optional. Latest report date to keep, as YYYY-MM-DD. Defaults to today. not set
cattleClass array Keep only these cattle classes. Matching ignores letter case, so STEER and Steer both match. Leave empty for every class. []
grade array Keep only these USDA quality grade bands. Leave empty for every grade. []
sellingBasis array Keep only live weight or dressed weight rows. Leave empty for both. []
includeNoSaleRows boolean USDA prints a placeholder line for every class and grade combination, including the ones with no confirmed trade that day. Turn this on to keep those empty lines. Off by default so every delivered row carries a head count or a price. false
marsApiKey string Optional. Free My Market News (MARS) API key. Register at https://mymarketnews.ams.usda.gov/mymarketnews-api/authentication to unlock the full AMS report catalog through marsapi.ams.usda.gov. Leave empty to use the open Market News datamart, which needs no key. not set
proxyConfiguration object USDA Market News answers plain requests, so the proxy is off by default. Turn it on only when you run very high volume from one account. {"useApifyProxy":false}

How much does the USDA Cattle Market Report Scraper cost?

from $4.07 per 1,000 results

Charged forWhat it isPrice each
result Single result in the default dataset. $0.00407 to $0.0045

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

How do I call the USDA Cattle Market Report Scraper API?

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST ยท run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~usda-cattle-market-report-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "startUrls": [],
    "reportSlugs": [
      "AMS_2481"
    ],
    "maxItems": 10,
    "lastDays": 30,
    "cattleClass": []
  }'

What example inputs can I use?

Use these inputs to see how a run is configured.

input.json
{
  "startUrls": [],
  "reportSlugs": [
    "AMS_2481"
  ],
  "maxItems": 10,
  "lastDays": 30,
  "cattleClass": []
}

What do users say about the USDA Cattle Market Report Scraper?

No reviews yet. Be the first.

How do I report an issue with the USDA Cattle Market Report Scraper?

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

What related scrapers can I use?

Run USDA Cattle Market Report Scraper on Apify All scrapers