Skip to main content
The /v1/stats endpoint returns a single aggregated snapshot of the entire Bhumi dataset. Use it to display platform coverage, build dashboards, or power data-driven landing pages.
GET https://api.bhumifarms.co/v1/stats
This endpoint requires authentication but accepts no query parameters. Results are cached server-side for one hour.

Example request

curl "https://api.bhumifarms.co/v1/stats" \
  -H "X-API-Key: bh_live_your_key_here"

Example response

{
  "data": {
    "total_farms": 4821,
    "total_products": 312,
    "states_covered": 47,
    "delivery_enabled_farms": 1093,
    "place_types": {
      "farm": 3105,
      "ranch": 642,
      "market": 489,
      "csa": 301,
      "orchard": 174,
      "greenhouse": 68,
      "apiary": 42
    },
    "top_products": [
      { "name": "pastured eggs", "count": 1842 },
      { "name": "honey", "count": 1654 },
      { "name": "grass-fed beef", "count": 1421 },
      { "name": "tomatoes", "count": 1308 },
      { "name": "sweet corn", "count": 1102 },
      { "name": "pastured pork", "count": 987 },
      { "name": "raw milk", "count": 743 },
      { "name": "apples", "count": 698 },
      { "name": "leafy greens", "count": 651 },
      { "name": "blueberries", "count": 589 }
    ]
  }
}

Response fields

total_farms
number
Total number of farms in the dataset with valid geographic coordinates.
total_products
number
Count of distinct product types listed across all farms in the dataset.
states_covered
number
Number of distinct US states represented in the dataset.
delivery_enabled_farms
number
Number of farms with at least one active delivery option (local delivery, CSA, or online ordering).
place_types
object
A breakdown of farm counts by place type. Keys are place type strings (e.g., farm, ranch, market) and values are the integer count of farms with that classification.
top_products
object[]
The top 10 products by farm count across the platform. Each entry contains a product name and the number of farms that carry it.
Stats are cached for one hour. The numbers reflect the state of the dataset at the time the cache was last populated, not real-time updates.