1. Docs
  2. Developer API
  3. Demographics

Demographics

ip, zip, lat+lng, city+state, or address.

Endpoint:GET /api/v1/demographics

Query

Exactly one starter. Omit all to use the caller IP.

NameRequiredDescription
ipOne ofPublic IPv4 or IPv6. Omit all parameters to use the caller.
zipOne of5-digit U.S. ZIP. Tract-weighted mix.
lat, lngOne of Decimal degrees. ZCTA if the point is inside one, else place or county. lon accepted.
city, stateOne ofU.S. place. state is a two-letter code or full name.
addressOne ofU.S. street address. Geocoded to rooftop geography.

Request

curl "https://speckinsights.netlify.app/api/v1/demographics?ip=8.8.8.8" \
  -H "Authorization: Bearer sk_live_YOUR_KEY"
curl "https://speckinsights.netlify.app/api/v1/demographics?zip=94043" \
  -H "Authorization: Bearer sk_live_YOUR_KEY"
curl "https://speckinsights.netlify.app/api/v1/demographics?lat=37.4056&lng=-122.0775" \
  -H "Authorization: Bearer sk_live_YOUR_KEY"
curl "https://speckinsights.netlify.app/api/v1/demographics?city=Mountain%20View&state=CA" \
  -H "Authorization: Bearer sk_live_YOUR_KEY"
curl "https://speckinsights.netlify.app/api/v1/demographics?address=680%20Folsom%20Street%2C%20San%20Francisco%2C%20CA%2094107" \
  -H "Authorization: Bearer sk_live_YOUR_KEY"

Response

Non-U.S. IPs return geo. demographics is null. Missing values are null.

FieldReturns
ipThe public address that was resolved, or null.
geoCity, region, country, ZIP/postal code, coordinates, timezone, ISP.
demographicsACS payload, or null.
jobs LODES jobs, industry, commute, or null. See jobs.
vulnerabilityCDC/ATSDR SVI (0–1) when a tract is known.
health CDC PLACES: diabetes, smoking, mental distress, uninsured. Tract when known; else ZCTA.
riskFEMA National Risk Index. Tract only.
notesWhy a block is missing, if it is.
resolutioninput, geography (tracts, tract, zcta, place, or county), geography_id, tract, and confidence. IP and ZIP prefer a weighted tract mix.

Fields

ACS 5-year. ACS 1-year overlay for places/counties 65,000+. PEP for county/place population when present. demographics.sources lists vintages.

GroupFields
Sourcesacs5, optional acs1, optional pep for population.total
PopulationTotal, median age, households
IncomeMedian household, per capita, poverty rate
EducationShare with bachelor’s or higher
HousingUnits, owner occupancy, median value and rent
LaborLabor force, unemployment
Race / ethnicityRace categories plus Hispanic/Latino

Enrichment

vulnerability, health, and risk are extra fields on the same GET. A miss or timeout leaves ACS in place and may add a notes line.

StarterVulnerabilityHealthRisk
address, lat+lngTract SVITract PLACES, ZCTA fallbackTract NRI
ip, zipOnly if that ZIP is a single tractZCTA PLACESOnly if that ZIP is a single tract
city+statenullnullnull

Example

{
  "ip": "8.8.8.8",
  "geo": {
    "ip": "8.8.8.8",
    "city": "Mountain View",
    "region": "California",
    "region_code": "CA",
    "country": "United States",
    "country_code": "US",
    "postal_code": "94043",
    "latitude": 37.4056,
    "longitude": -122.0775,
    "timezone": "America/Los_Angeles",
    "isp": "Google LLC",
    "org": "Google Public DNS"
  },
  "demographics": {
    "zipcode": "94043",
    "geography": "tracts",
    "geography_id": "94043",
    "name": "ZIP 94043 (4 tracts)",
    "vintage": "2024",
    "sources": {
      "acs5": {
        "vintage": "2024"
      }
    },
    "population": {
      "total": 31442,
      "median_age": 35.2,
      "households": 13210
    },
    "income": {
      "median_household": 161250,
      "per_capita": 89210,
      "poverty_rate": 6.4
    },
    "education": {
      "bachelors_or_higher_pct": 72.1
    },
    "labor": {
      "labor_force": 19840,
      "unemployment_rate": 3.8
    },
    "housing": {
      "units": 14102,
      "owner_occupied_pct": 42.5,
      "median_home_value": 1850000,
      "median_gross_rent": 2850
    },
    "race_ethnicity": {
      "white": 48.2,
      "black": 2.1,
      "american_indian": 0.4,
      "asian": 33.6,
      "pacific_islander": 0.3,
      "other": 6.8,
      "two_or_more": 8.6,
      "hispanic_or_latino": 18.9
    }
  },
  "vulnerability": null,
  "health": {
    "geography": "zcta",
    "geography_id": "94043",
    "vintage": "2025",
    "source": "cdc_places",
    "diabetes_pct": 6.8,
    "smoking_pct": 7.1,
    "mental_health_pct": 13.2,
    "uninsured_pct": 4.9
  },
  "risk": null,
  "jobs": {
    "zipcode": "94043",
    "geography": "zcta",
    "geography_id": "94043",
    "name": "94043, CA",
    "vintage": "2023",
    "workplace": {
      "jobs": 84210,
      "age": {
        "under_30": 22140,
        "age_30_54": 49280,
        "age_55_plus": 12790
      },
      "earnings": {
        "low": 6840,
        "mid": 14820,
        "high": 62550
      },
      "industry": {
        "agriculture": 40,
        "mining": 10,
        "utilities": 180,
        "construction": 1420,
        "manufacturing": 4100,
        "wholesale": 1680,
        "retail": 3920,
        "transportation": 2110,
        "information": 24680,
        "finance": 1890,
        "real_estate": 980,
        "professional": 22140,
        "management": 2640,
        "administrative": 3870,
        "education": 2140,
        "health_care": 4680,
        "arts": 720,
        "accommodation_food": 4120,
        "other_services": 1420,
        "public_admin": 1470
      },
      "firm_size": {
        "private_jobs": 78120,
        "employees_0_19": 8420,
        "employees_20_49": 7360,
        "employees_50_249": 14880,
        "employees_250_499": 6120,
        "employees_500_plus": 41340
      }
    },
    "residence": {
      "jobs": 19840,
      "age": {
        "under_30": 5120,
        "age_30_54": 11680,
        "age_55_plus": 3040
      },
      "earnings": {
        "low": 1680,
        "mid": 4120,
        "high": 14040
      },
      "industry": {
        "agriculture": 20,
        "mining": 0,
        "utilities": 80,
        "construction": 540,
        "manufacturing": 1680,
        "wholesale": 420,
        "retail": 1240,
        "transportation": 480,
        "information": 4120,
        "finance": 860,
        "real_estate": 310,
        "professional": 5240,
        "management": 420,
        "administrative": 780,
        "education": 980,
        "health_care": 1420,
        "arts": 210,
        "accommodation_food": 980,
        "other_services": 360,
        "public_admin": 700
      },
      "firm_size": null
    },
    "daytime_index": 4.24,
    "commute": {
      "into": [
        {
          "geography": "zcta",
          "geography_id": "94040",
          "name": "94040, CA",
          "jobs": 4120,
          "share": 4.9
        },
        {
          "geography": "zcta",
          "geography_id": "94041",
          "name": "94041, CA",
          "jobs": 3680,
          "share": 4.4
        },
        {
          "geography": "zcta",
          "geography_id": "94087",
          "name": "94087, CA",
          "jobs": 2910,
          "share": 3.5
        }
      ],
      "out": [
        {
          "geography": "zcta",
          "geography_id": "94043",
          "name": "94043, CA",
          "jobs": 6240,
          "share": 31.5
        },
        {
          "geography": "zcta",
          "geography_id": "94041",
          "name": "94041, CA",
          "jobs": 1880,
          "share": 9.5
        },
        {
          "geography": "zcta",
          "geography_id": "94301",
          "name": "94301, CA",
          "jobs": 1420,
          "share": 7.2
        }
      ]
    }
  },
  "notes": [],
  "resolution": {
    "input": "ip",
    "geography": "tracts",
    "geography_id": "94043",
    "tract": null,
    "confidence": "medium"
  }
}

Example. Values vary by starter.

Address or coordinates at tract. 680 Folsom Street, San Francisco — tract 06075061503:

{
  "vulnerability": {
    "geography": "tract",
    "geography_id": "06075061503",
    "vintage": "2022",
    "source": "cdc_atsdr_svi",
    "overall": 0.4602,
    "themes": {
      "socioeconomic": 0.3443,
      "household": 0.0344,
      "minority_status": 0.7318,
      "housing_transport": 0.9331
    }
  },
  "health": {
    "geography": "tract",
    "geography_id": "06075061503",
    "vintage": "2025",
    "source": "cdc_places",
    "diabetes_pct": 4.6,
    "smoking_pct": 6.2,
    "mental_health_pct": 14,
    "uninsured_pct": 4.4
  },
  "risk": {
    "geography": "tract",
    "geography_id": "06075061503",
    "vintage": "2025.1.20",
    "source": "fema_nri",
    "risk_score": 91.6,
    "risk_rating": "Relatively High"
  },
  "resolution": {
    "input": "address",
    "geography": "zcta",
    "geography_id": "94107",
    "tract": "06075061503",
    "confidence": "high"
  }
}