> ## Documentation Index
> Fetch the complete documentation index at: https://docs.areahub.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Enterprise Bundle

> All 37 topics for one location. Costs 35 credits.

Returns every supported topic for a location in a single call — all 18 natural, all 14 proximity counts, and all 5 measurements.

This is the most efficient way to get a complete picture of a location. 37 topics for 35 credits.

Requires the `bundle` scope.

<Note>
  **Responses are large** — typically 5–7 MB. Confirm your HTTP client doesn't
  impose a smaller `maxContentLength`. Many default to 10 MB or less.
</Note>

<ParamField query="lat" type="number" required>
  Latitude in decimal degrees. US locations only.
</ParamField>

<ParamField query="lng" type="number" required>
  Longitude in decimal degrees. US locations only.
</ParamField>

### Response

<ResponseField name="data.topics" type="object">
  Map of topic slug to result — 37 entries.

  **`value` has three different shapes** depending on the topic's category. Do not assume a uniform structure:

  * **Natural** (18) → object with `rating`, `score`, `frequency`
  * **Proximity** (14) → a plain number
  * **Measurements** (5) → topic-specific object

  See the [Topics Reference](/reference/topics) for the exact shape of each.
</ResponseField>

<ResponseField name="meta.credit_cost" type="number">
  Always `35` on success, `0` on failure.
</ResponseField>

<Warning>
  **Type-check before you parse.** `brownfield.value` is a number.
  `wildfire.value` is an object. Code that assumes one shape across all topics
  will break.
</Warning>

<RequestExample>
  ```bash cURL theme={null}
  curl "https://api.areahub.com/v1/bundle/enterprise?lat=40.71&lng=-74.00" \
    -H "X-API-Key: YOUR_API_KEY"
  ```

  ```python Python theme={null}
  import requests

  r = requests.get(
      "https://api.areahub.com/v1/bundle/enterprise",
      params={"lat": 40.71, "lng": -74.00},
      headers={"X-API-Key": YOUR_API_KEY},
  )
  topics = r.json()["data"]["topics"]

  for slug, topic in topics.items():
      if topic.get("error"):
          continue

      value = topic["value"]

      if isinstance(value, (int, float)):
          print(f"{slug}: {value} nearby")
      elif isinstance(value, dict) and "rating" in value:
          print(f"{slug}: {value['rating']}")
      else:
          print(f"{slug}: {value}")
  ```

  ```javascript Node.js theme={null}
  const res = await fetch(
    "https://api.areahub.com/v1/bundle/enterprise?lat=40.71&lng=-74.00",
    { headers: { "X-API-Key": process.env.YOUR_API_KEY } },
  );

  const { data } = await res.json();

  for (const [slug, topic] of Object.entries(data.topics)) {
    if (topic.error) continue;

    const { value } = topic;

    if (typeof value === "number") {
      console.log(`${slug}: ${value} nearby`);
    } else if (value?.rating) {
      console.log(`${slug}: ${value.rating}`);
    }
  }
  ```
</RequestExample>

<ResponseExample>
  ```json Response (truncated) theme={null}
  {
    "data": {
      "location": { "lat": 40.71, "lng": -74.0 },
      "topics": {
        "wildfire": {
          "value": {
            "title": "Wildfires",
            "rating": "No Rating",
            "score": 0,
            "frequency": 0
          },
          "details": {}
        },
        "brownfield": {
          "value": 60,
          "details": { "type": "FeatureCollection", "features": [] }
        },
        "superfund": {
          "value": 4,
          "details": { "type": "FeatureCollection", "features": [] }
        },
        "airQuality": {
          "value": {
            "metric": "Unhealthy for Sensitive Groups",
            "progressValue": 101,
            "additionalInfo": {
              "daysWithAqi": 366,
              "goodDays": 107,
              "medianAqi": 59
            }
          },
          "details": null
        },
        "ozone": {
          "value": {
            "measurement": { "value": 116.83, "unit": "µg/m³" },
            "rating": "Good",
            "timestamp": "2026-07-14T16:31:55.009Z"
          },
          "details": null
        },
        ...
      }
    },
    "meta": {
      "request_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
      "timestamp": "2026-07-14T16:31:55.009Z",
      "credit_cost": 35
    }
  }
  ```
</ResponseExample>
