GEOAMCAN API / GUIDE

Custom-area demographic analysis

Analyze supported US boundaries or custom areas while keeping allocation methods and aggregation limits explicit.

By the geoamcan data team · Reviewed 2026-10-26

Define a defensible area

Use /v1/geo/analyze with a supported published boundary or validated custom geometry. Start with a small service area and a short metric list. This analysis is currently US-only.

Understand allocation

Counts for custom areas may be geographically allocated from source units. The output reports its method and coverage. An allocated estimate is not a direct survey of the exact polygon, and overlapping service areas cannot be summed without double counting.

Treat medians differently

A median cannot be added or averaged like a count. Supported median calculations depend on distributions and approved aggregation methods. Preserve unavailable and insufficient-data results rather than filling them with zero.

Start with a verified dataset request

Install the Python requests package in your application environment, then set GEOAMCAN_API_KEY on the server. This bounded example demonstrates retrieval; the sections above describe how to extend the workflow.

import os
import requests

response = requests.get(
    'https://api.geoamcan.com/v1/demographics',
    params={'limit': 1, 'dataset': 'acs-extended', 'geo_type': 'cbsa', 'geoid': '10100', 'metrics': 'B01001_001,B01001_002,B01001_003,B01001_004,B01001_005,B01001_006'},
    headers={"Authorization": "Bearer " + os.environ["GEOAMCAN_API_KEY"]},
    timeout=30,
)
response.raise_for_status()
result = response.json()
print(result)
Verified API request
curl --fail --get "https://api.geoamcan.com/v1/demographics?limit=1&dataset=acs-extended&geo_type=cbsa&geoid=10100&metrics=B01001_001%2CB01001_002%2CB01001_003%2CB01001_004%2CB01001_005%2CB01001_006" \
  -H "Authorization: Bearer $GEOAMCAN_API_KEY"

Saved response excerpt

{
  "source_attribution": {},
  "requested_area": {
    "geographic_resolution": "cbsa",
    "geoid": "10100"
  },
  "data": [
    {
      "dataset": "acs-extended",
      "source": "Census Bureau",
      "release": "2024",
      "geographic_resolution": "cbsa",
      "geoid": "10100",
      "geography_vintage": "2024",
      "period": "2024",
      "naics": "",
      "component": "B01001",
      "metrics": {
        "B01001_001": 41925,
        "B01001_002": 20842,
        "B01001_003": 1154,
        "B01001_004": 1381,
        "B01001_005": 1593,
        "B01001_006": 844
      },
      "margins_of_error": {
        "B01001_001": null,
        "B01001_002": 220,
        "B01001_003": 114,
        "B01001_004": 215,
        "B01001_005": 243,
        "B01001_006": 70
      },
      "flags": {
        "native_geo_id": "310M700US10100",
        "survey_window": "2020-2024",
        "B01001_001_moe": "source_annotation:-555555555",
        "source_geographic_variant": "M7"
      }
    }
  ],
  "availability": {
    "acs-extended": "available"
  },
  "next_offset": 1,
  "returned_count": 1,
  "complete": false,
  "snapshot": {
    "acs-extended": {
      "release_id": 32,
      "release": "2024",
      "fingerprint": "9a1bb6e057a0e0c2e6de41b10636e129"
    }
  },
  "metric_definitions": {
    "acs-extended": {
      "B01001_006": {
        "label": "15 to 17 years",
        "unit": "count; see source universe",
        "universe": "Total population",
        "source_definition": {
          "Line": "6.0",
          "Type": "int",
          "Label": "15 to 17 years",
          "Title": "Sex by Age",
          "Indent": "2",
          "Table ID": "B01001",
          "Universe": "Total population",
          "Unique ID": "B01001_006"
        }
      },
      "B01001_005": {
        "label": "10 to 14 years",
        "unit": "count; see source universe",
        "universe": "Total population",
        "source_definition": {
          "Line": "5.0",
          "Type": "int",
          "Label": "10 to 14 years",
          "Title": "Sex by Age",
          "Indent": "2",
          "Table ID": "B01001",
          "Universe": "Total population",
          "Unique ID": "B01001_005"
        }
      },
      "B01001_004": {
        "label": "5 to 9 years",
        "unit": "count; see source universe",
        "universe": "Total population",
        "source_definition": {
          "Line": "4.0",
          "Type": "int",
          "Label": "5 to 9 years",
          "Title": "Sex by Age",
          "Indent": "2",
          "Table ID": "B01001",
          "Universe": "Total population",
          "Unique ID": "B01001_004"
        }
      },
      "B01001_003": {
        "label": "Under 5 years",
        "unit": "count; see source universe",
        "universe": "Total population",
        "source_definition": {
          "Line": "3.0",
          "Type": "int",
          "Label": "Under 5 years",
          "Title": "Sex by Age",
          "Indent": "2",
          "Table ID": "B01001",
          "Universe": "Total population",
          "Unique ID": "B01001_003"
        }
      },
      "B01001_002": {
        "label": "Male:",
        "unit": "count; see source universe",
        "universe": "Total population",
        "source_definition": {
          "Line": "2.0",
          "Type": "int",
          "Label": "Male:",
          "Title": "Sex by Age",
          "Indent": "1",
          "Table ID": "B01001",
          "Universe": "Total population",
          "Unique ID": "B01001_002"
        }
      },
      "B01001_001": {
        "label": "Total:",
        "unit": "count; see source universe",
        "universe": "Total population",
        "source_definition": {
          "Line": "1.0",
          "Type": "int",
          "Label": "Total:",
          "Title": "Sex by Age",
          "Indent": "0",
          "Table ID": "B01001",
          "Universe": "Total population",
          "Unique ID": "B01001_001"
        }
      }
    }
  },
  "coverage_limitations": {
    "acs-extended": []
  },
  "native_area_contexts": {},
  "commuting_flows": []
}

Captured 2026-10-26. Excerpt omits pagination credentials and may shorten nested records. Download verified source responses.

Production checklist

Explore the source dataset · API reference · Methodology

Get API access ↗