{
  "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."
    }
  ]
}
