Free JSON · no key · open CORS

Stumpage Data API

Every number published on Stumpage (stumpage.news) as free JSON: the board, auction calendar, regions & forests, counties, species and price chart. No key, no sign-up, callable from any website or script. The files are rebuilt every time the site rebuilds with new data, so they always match the pages.

Base URL
https://stumpage.news/api/v1
Auth
None
Format
JSON, UTF-8, GET only
CORS
Access-Control-Allow-Origin: *
Series
27 · 7 key statistics
Data as of
Nov 2026

Quick start

The newest reading of every series, from a terminal:

curl https://stumpage.news/api/v1/latest.json

Or in JavaScript, from any page:

const res = await fetch("https://stumpage.news/api/v1/latest.json");
const { data_as_of, data } = await res.json();
for (const row of data) console.log(row.title, row.headline, row.data_through);

Endpoints

GET /api/v1/index.json

API index. What this API is, its license and attribution, the sections it covers, and every endpoint.

Example: https://stumpage.news/api/v1/index.json

Sample response
{
  "api": "Stumpage Data API",
  "version": "v1",
  "docs": "https://stumpage.news/api",
  "data_as_of": "2026-11",
  "data_as_of_label": "Nov 2026",
  "data_pulled_at": "2026-11-11T18:00:24.184Z",
  "generated_at": "2026-11-12T08:00:17.757Z",
  "attribution": "Credit Stumpage (stumpage.news) with a visible link to the page the figure came from; every record carries its page_url.",
  "name": "Stumpage Data API",
  "description": "Free JSON for every number published on Stumpage (stumpage.news): the board, auction calendar, regions & forests, counties, species, price chart. The public timber sale screen for mills and buyers.",
  "publisher": {
    "name": "Stumpage",
    "url": "https://stumpage.news"
  },
  "auth": "none",
  "cors": "*",
  "format": "application/json; charset=utf-8",
  "license": "Free to use and republish with attribution; no key or sign-up. The underlying figures are public records from the agencies named in each series' provenance; Stumpage collects, checks and publishes them.",
  "update_policy": "Static files rebuilt every time the site rebuilds with new data. data_as_of in each response is the newest observation it holds; data_pulled_at is when the site last pulled its sources.",
  "counts": {
    "series": 27,
    "stats": 7
  },
  "sections": [
    {
      "key": "board",
      "label": "The board",
      "series": 1,
      "example": "https://stumpage.news/api/v1/series/board/recent-results.json"
    },
    {
      "key": "calendar",
      "label": "Auction calendar",
      "series": 1,
      "example": "https://stumpage.news/api/v1/series/calendar/upcoming.json"
    },
    {
      "key": "region",
      "label": "Regions & forests",
      "series": 22,
      "example": "https://stumpage.news/api/v1/series/region/idl.json"
    },
    {
      "key": "county",
      "label": "Counties",
      "series": 1,
      "example": "https://stumpage.news/api/v1/series/county/index.json"
    },
    {
      "key": "species",
      "label": "Species",
      "series": 1,
      "example": "https://stumpage.news/api/v1/series/species/douglas-fir.json"
    },
    {
      "key": "prices",
      "label": "Price chart",
      "series": 1,
      "example": "https://stumpage.news/api/v1/series/prices/timber-prices-chart.json"
    }
  ],
  "endpoints": [
    {
      "method": "GET",
      "path": "/api/v1/index.json",
      "url": "https://stumpage.news/api/v1/index.json",
      "description": "What this API is, its license and attribution, the sections it covers, and every endpoint."
    },
    {
      "method": "GET",
      "path": "/api/v1/latest.json",
      "url": "https://stumpage.news/api/v1/latest.json",
      "description": "The newest reading of every data page on Stumpage (27 series): the headline value as the site shows it, the newest point of each charted line with its date, whether it is current, and links to its page and full history."
    },
    {
      "method": "GET",
      "path": "/api/v1/stats.json",
      "url": "https://stumpage.news/api/v1/stats.json",
      "description": "The 7 headline numbers on the stumpage.news/stats page, each as a quotable sentence with its data date and a ready-made citation."
    },
    {
      "method": "GET",
      "path": "/api/v1/series/{section}/{slug}.json",
      "url": "https://stumpage.news/api/v1/series/prices/timber-prices-chart.json",
      "description": "Everything behind one data page: every charted point (date + value), the historical band where the page draws one, the page's tables exactly as shown, its source and citation. Find each series_url in latest.json."
    },
    {
      "method": "GET",
      "path": "/api/v1/openapi.json",
      "url": "https://stumpage.news/api/v1/openapi.json",
      "description": "A machine-readable OpenAPI 3.1 description of these endpoints."
    }
  ]
}

GET /api/v1/latest.json

Latest readings. The newest reading of every data page on Stumpage (27 series): the headline value as the site shows it, the newest point of each charted line with its date, whether it is current, and links to its page and full history.

Example: https://stumpage.news/api/v1/latest.json

Sample response
{
  "api": "Stumpage Data API",
  "version": "v1",
  "docs": "https://stumpage.news/api",
  "data_as_of": "2026-11",
  "data_as_of_label": "Nov 2026",
  "data_pulled_at": "2026-11-11T18:00:24.184Z",
  "generated_at": "2026-11-12T08:00:17.757Z",
  "attribution": "Credit Stumpage (stumpage.news) with a visible link to the page the figure came from; every record carries its page_url.",
  "count": 27,
  "data": [
    {
      "id": "board/recent-results",
      "section": "board",
      "section_label": "The board",
      "title": "The public timber board",
      "headline": "+32% median premium",
      "unit": "%",
      "data_through": "2026-11",
      "date_precision": "monthly",
      "frequency": "Event-based; WA DNR auctions monthly",
      "status": "current",
      "values": [
        {
          "series": "Median premium over minimum",
          "date": "2026-11",
          "value": 0.5
        },
        {
          "series": "No-bid rate, all sales",
          "date": "2026-11",
          "value": 0
        }
      ],
      "source": "Washington DNR, Oregon Department of Forestry, Idaho Department of Lands, Montana DNRC and US Forest Service Region 6 timber sale results",
      "page_url": "https://stumpage.news/board/recent-results",
      "series_url": "https://stumpage.news/api/v1/series/board/recent-results.json"
    },
    {
      "id": "calendar/upcoming",
      "section": "calendar",
      "section_label": "Auction calendar",
      "title": "Upcoming timber auctions",
      "headline": "60 sales scheduled",
      "unit": null,
      "data_through": null,
      "frequency": "Event-based, advertised dockets",
      "status": "current",
      "values": [],
      "source": "Washington DNR, Oregon Department of Forestry, Idaho Department of Lands, US Forest Service and Bureau of Land Management advertised timber sales",
      "page_url": "https://stumpage.news/calendar/upcoming",
      "series_url": "https://stumpage.news/api/v1/series/calendar/upcoming.json"
    }
  ]
}

Trimmed to 2 of 27 entries.

GET /api/v1/stats.json

Key statistics. The 7 headline numbers on the stumpage.news/stats page, each as a quotable sentence with its data date and a ready-made citation.

Example: https://stumpage.news/api/v1/stats.json

Sample response
{
  "api": "Stumpage Data API",
  "version": "v1",
  "docs": "https://stumpage.news/api",
  "data_as_of": "2026-11",
  "data_as_of_label": "Nov 2026",
  "data_pulled_at": "2026-11-11T18:00:24.184Z",
  "generated_at": "2026-11-12T08:00:17.757Z",
  "attribution": "Credit Stumpage (stumpage.news) with a visible link to the page the figure came from; every record carries its page_url.",
  "stats_page": "https://stumpage.news/stats",
  "count": 7,
  "stats": [
    {
      "id": "current-prices",
      "label": "Current timber prices (state sawtimber stumpage)",
      "sentence": "Current timber prices: standing green sawtimber sold at state timber auctions for a volume-weighted $343 per MBF over the three months through October 2026, across 39 Idaho Department of Lands, Oregon Department of Forestry and Washington DNR sales. That is stumpage, the price of trees on the stump, not the price of lumber or delivered logs.",
      "data_date": "2026-10",
      "date_precision": "monthly",
      "citation": "Current timber prices: standing green sawtimber sold at state timber auctions for a volume-weighted $343 per MBF over the three months through October 2026, across 39 Idaho Department of Lands, Oregon Department of Forestry and Washington DNR sales. That is stumpage, the price of trees on the stump, not the price of lumber or delivered logs. Stumpage. https://stumpage.news/stats#current-prices",
      "stats_url": "https://stumpage.news/stats#current-prices",
      "page_url": "https://stumpage.news/prices/timber-prices-chart",
      "series_url": "https://stumpage.news/api/v1/series/prices/timber-prices-chart.json",
      "provenance": "Oregon Department of Forestry, Washington DNR and Idaho Department of Lands timber sale results · Winning bids on sold green sawtimber sales, by sale month and agency · Stumpage; $/MBF (state) · State timber sales in Oregon, Washington and Idaho · through Oct 2026"
    },
    {
      "id": "sales-ytd",
      "label": "Public timber sales in 2026",
      "sentence": "231 public timber sales have been auctioned so far in 2026 across Washington DNR, Montana DNRC, the Oregon Department of Forestry and the Idaho Department of Lands, of which 222 sold.",
      "data_date": "2026-11",
      "date_precision": "monthly",
      "citation": "231 public timber sales have been auctioned so far in 2026 across Washington DNR, Montana DNRC, the Oregon Department of Forestry and the Idaho Department of Lands, of which 222 sold. Stumpage. https://stumpage.news/stats#sales-ytd",
      "stats_url": "https://stumpage.news/stats#sales-ytd",
      "page_url": null,
      "series_url": null,
      "provenance": null
    }
  ]
}

Trimmed to 2 of 7 statistics.

GET /api/v1/series/{section}/{slug}.json

One series, full history. Everything behind one data page: every charted point (date + value), the historical band where the page draws one, the page's tables exactly as shown, its source and citation. Find each series_url in latest.json.

Example: https://stumpage.news/api/v1/series/prices/timber-prices-chart.json

Sample response
{
  "api": "Stumpage Data API",
  "version": "v1",
  "docs": "https://stumpage.news/api",
  "data_as_of": "2026-10",
  "data_as_of_label": "Oct 2026",
  "data_pulled_at": "2026-11-11T18:00:24.184Z",
  "generated_at": "2026-11-12T08:00:17.757Z",
  "attribution": "Credit Stumpage (stumpage.news) with a visible link to the page the figure came from; every record carries its page_url.",
  "id": "prices/timber-prices-chart",
  "section": "prices",
  "section_label": "Price chart",
  "title": "Timber prices chart: state stumpage by month",
  "subtitle": "Standing green sawtimber sold at state timber auctions for a volume-weighted $343 per MBF over the three months through October 2026, across 39 sales by the Oregon Department of Forestry, Washington DNR and Idaho Department of Lands. The chart tracks that price month by month from July 2023, one line per agency.",
  "description": "Timber prices chart: state green sawtimber stumpage by month since Jul 2023, $343/MBF over the three months through Oct 2026, one line per state agency.",
  "page_url": "https://stumpage.news/prices/timber-prices-chart",
  "headline": "$343/MBF",
  "unit": "$/MBF",
  "data_through": "2026-10",
  "date_precision": "monthly",
  "frequency": "Event-based; agencies post results after each auction",
  "status": "current",
  "source": "Oregon Department of Forestry, Washington DNR and Idaho Department of Lands timber sale results",
  "provenance": {
    "source": "Oregon Department of Forestry, Washington DNR and Idaho Department of Lands timber sale results",
    "series": "Winning bids on sold green sawtimber sales, by sale month and agency",
    "basis": "Stumpage; $/MBF (state)",
    "geography": "State timber sales in Oregon, Washington and Idaho",
    "unit": "$/MBF",
    "period": "Volume-weighted monthly average of sold green sawtimber sales",
    "lastObservation": "Oct 2026",
    "frequency": "Event-based; agencies post results after each auction"
  },
  "citation": "Standing green sawtimber sold at state timber auctions for a volume-weighted $343 per MBF over the three months through October 2026, across 39 sales by the Oregon Department of Forestry, Washington DNR and Idaho Department of Lands. Stumpage. https://stumpage.news/prices/timber-prices-chart",
  "series": [
    {
      "label": "Oregon Department of Forestry",
      "unit": "$/MBF",
      "points": [
        {
          "date": "2026-08",
          "value": 678.675027
        },
        {
          "date": "2026-09",
          "value": 649.875712
        },
        {
          "date": "2026-10",
          "value": 587.61
        }
      ]
    },
    {
      "label": "Washington DNR",
      "unit": "$/MBF",
      "points": [
        {
          "date": "2026-08",
          "value": 345.072914
        },
        {
          "date": "2026-09",
          "value": 257.65053
        },
        {
          "date": "2026-10",
          "value": 277.750635
        }
      ]
    }
  ],
  "tables": [
    {
      "caption": "State green sawtimber price by month (newest first)",
      "columns": [
        "Month",
        "All state sales ($/MBF)",
        "Priced sales",
        "Volume sold",
        "ODF ($/MBF, sales)",
        "WA DNR ($/MBF, sales)",
        "IDL ($/MBF, sales)"
      ],
      "rows": [
        [
          "Oct 2026",
          "$296/MBF",
          11,
          "66,815 MBF",
          "$588 (1)",
          "$278 (10)",
          null
        ],
        [
          "Sep 2026",
          "$330/MBF",
          18,
          "85,355 MBF",
          "$650 (3)",
          "$258 (6)",
          "$233 (9)"
        ],
        [
          "Aug 2026",
          "$451/MBF",
          10,
          "38,473 MBF",
          "$679 (3)",
          "$345 (7)",
          null
        ]
      ]
    }
  ]
}

Trimmed: the live response carries all 120 points, all 3 lines, all 2 tables.

GET /api/v1/openapi.json

OpenAPI description. A machine-readable OpenAPI 3.1 description of these endpoints.

Example: https://stumpage.news/api/v1/openapi.json

Sample response
{
  "openapi": "3.1.0",
  "info": {
    "title": "Stumpage Data API",
    "version": "1.0.0",
    "description": "Free JSON for every number published on Stumpage (stumpage.news): the board, auction calendar, regions & forests, counties, species, price chart. The public timber sale screen for mills and buyers. No key needed. Credit Stumpage (stumpage.news) with a visible link to the page the figure came from; every record carries its page_url.",
    "license": {
      "name": "Free to use with attribution",
      "url": "https://stumpage.news/api"
    }
  },
  "servers": [
    {
      "url": "https://stumpage.news/api/v1"
    }
  ],
  "externalDocs": {
    "description": "Docs",
    "url": "https://stumpage.news/api"
  },
  "paths": {
    "/index.json": {
      "get": {
        "operationId": "getIndex",
  ...

First lines only.

What's in it

One series file per data page on the site, at https://stumpage.news/api/v1/series/{section}/{slug}.json. Every valid pair is listed in latest.json (its id and series_url fields).

SectionSeriesExample
The boardRecent green sawtimber results from the tracked agencies, ranked by the premium the winning bid ran over its appraised minimum, with a monthly trend. Salvage and deck sales are listed separately. No single agency publishes this read on how hard buyers competed. 1 The public timber board
Auction calendarThe forward book: advertised public timber sales that have been noticed but not yet auctioned, soonest first, with the auction date, offered volume and appraised minimum where published, and the species where reported. 1 Upcoming timber auctions
Regions & forestsAverage stumpage price and bid intensity by state region and national forest, with every completed sale listed. State sales price in dollars per MBF (per ton where a sale is sold by weight), national forests in dollars per CCF; the units are never blended. 22 Idaho Department of Lands timber sale prices
CountiesOne table of every county with a tracked public timber sale, state and federal: completed sales, offered volume, the median sawtimber price, the latest result and the next scheduled auction. 1 Public timber sales by county
SpeciesStumpage prices by species: Douglas-fir month by month, with pine, true firs, Sitka spruce and every other species a sale notice names as rows. Species mix drives a tract's value more than volume alone. 1 Douglas-fir stumpage price and other species
Price chartState green sawtimber stumpage charted month by month in dollars per MBF, one line per agency, with the monthly and yearly figures in tables beneath. Federal CCF and per-ton sales are kept off it. 1 Timber prices chart: state stumpage by month

Fields every response carries

In latest.json and each series file, headline is the value exactly as the site shows it (with its unit), values / series carry the raw numbers with their dates, and status is current or not_current. A series that is out of season or not recently quoted says so, with last_quoted, rather than passing an old reading off as today's. See an example series.

Use, credit and limits

Free to use and republish with attribution; no key or sign-up. The underlying figures are public records from the agencies named in each series' provenance; Stumpage collects, checks and publishes them.

Attribution: Credit Stumpage (stumpage.news) with a visible link to the page the figure came from; every record carries its page_url.

No rate limit is set and there is nothing to sign up for: the files are static and served from Cloudflare's network. Please cache responses rather than polling; they change only when the site rebuilds. Fields are only ever added within v1, never renamed or removed. Questions or a series you need: contact us. How each number is collected: methodology.