# Datum Property Intelligence MCP (`the-stack-underflow/datum-property`) Actor

Which US county is this address in, and who lives there: Census boundaries and ACS demographics with sources on every answer.

- **URL**: https://apify.com/the-stack-underflow/datum-property.md
- **Developed by:** [The Stack Underflow](https://apify.com/the-stack-underflow) (community)
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $10.00 / 1,000 area demographics lookups

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Datum Property Intelligence MCP

**Which US county is this address in, and who lives there?** An MCP server that
gives AI agents **county, state and Census GEOIDs** for any US coordinate, plus
**population and median household income** for that county, from official US
Census Bureau data. Every answer says exactly **which dataset and which release**
it came from, so your agent can cite it.

- **Two tools, built for agents:** clear inputs (latitude and longitude), small
  JSON answers, and errors that say what to do next.
- **Official data, held and served directly:** Census TIGER/Line 2024
  boundaries and American Community Survey 2018–2022 5-year estimates. No
  scraping, no third-party API in the path.
- **Provenance on every answer:** each response lists its sources with the
  dataset version and retrieval date.
- **Pay only for answers:** $0.01 per demographics lookup, county lookups free,
  nothing charged for errors.

### Tools and pricing

| Tool                | What it answers                                                                                         | Price per call |
| ------------------- | ------------------------------------------------------------------------------------------------------- | -------------- |
| `admin_areas`       | State and county containing a point, each with its Census GEOID                                         | Free           |
| `area_demographics` | Population and median household income for the county containing a point (or a five-digit county GEOID) | $0.01          |

Pay-per-event pricing:

- **$0.01 per successful `area_demographics` call** ($10 per 1,000).
- **`admin_areas` is free**, so an agent can resolve a location before deciding
  whether it needs the paid lookup.
- **No charge for errors**: an invalid coordinate, a point outside the US, or a
  county with no published estimate costs nothing.
- **No charge for listing the tools** or connecting.
- **$0.00005 per Actor start.** The server starts when the first request arrives
  and then serves many calls, so this is a fraction of a cent per session.
- **Platform usage is included** in the prices above.

### How to connect

The MCP endpoint (Streamable HTTP) is:

```
https://kohjpyrumr4p27cv8.apify.actor/mcp
```

Every request needs your Apify API token (Apify Console → **Settings** →
**API & Integrations**).

**Claude Code**

```bash
claude mcp add --transport http datum-property https://kohjpyrumr4p27cv8.apify.actor/mcp \
  --header "Authorization: Bearer YOUR_APIFY_TOKEN"
```

**Any MCP client that can send headers:** use the URL above and send
`Authorization: Bearer YOUR_APIFY_TOKEN`.

**Clients that cannot send headers:** append `?token=YOUR_APIFY_TOKEN` to the
URL. This works, but the token then sits in the client's configuration and
possibly its logs, so prefer the header where you can.

Then ask your agent things like:

1. "What county is 39.1582, -75.5244 in?"
2. "What's the median household income around 18.4655, -66.1057?"
3. "Compare the population of the counties containing these three coordinates."

### Example

`area_demographics` with `{ "lat": 39.1582, "lon": -75.5244 }` (Dover, Delaware)
returns, shortened:

```json
{
  "data": {
    "area": { "geoid": "10001", "level": "county", "name": "Kent County" },
    "metrics": [
      { "metric": "population", "value": 182400, "unit": "people", "period": "2022-5yr" },
      { "metric": "median_household_income", "value": 69278, "unit": "USD", "period": "2022-5yr" }
    ]
  },
  "sources": [
    {
      "name": "U.S. Census Bureau TIGER/Line",
      "dataset_version": "tiger_counties@2024",
      "licence": "public-domain"
    },
    {
      "name": "U.S. Census Bureau American Community Survey",
      "dataset_version": "acs_county_profile@2022-5yr",
      "attribution": "Source: U.S. Census Bureau, American Community Survey 5-Year Estimates"
    }
  ]
}
```

`admin_areas` for the same point returns Kent County (GEOID `10001`) and
Delaware (GEOID `10`). The GEOID is the key every other Census dataset uses, so
it is the right first call before any further Census lookup.

### Coverage and data notes

- **Coverage:** all US counties and county equivalents in the 50 states, the
  District of Columbia and Puerto Rico. For Guam and the other island areas,
  `admin_areas` returns the county but `area_demographics` has no estimates,
  because the American Community Survey does not cover them.
- **Releases:** boundaries from TIGER/Line 2024; demographics from the ACS
  2018–2022 5-year estimates. Each answer names the release in
  `dataset_version` and each value's `period`.
- **Estimates, not counts:** ACS values are survey estimates with margins of
  error. A value the Census Bureau suppressed comes back as `null`, never
  filled in.
- **Points on a county line** are inside both counties, so both are returned,
  most specific first. Take the first if you need one answer.
- **County level today.** Tract and ZIP-code (ZCTA) answers are not yet
  available.

### FAQ

**Is the data free to use?** Census TIGER/Line and ACS data are works of the US
federal government and are not subject to copyright (17 U.S.C. §105). You pay
for the hosted, agent-ready service, not for the data. Keep the attribution in
`sources[]` when you show the numbers.

**How fresh is it?** Census publishes these releases yearly. When a new release
is loaded, `dataset_version` changes, so you can tell exactly which one
answered.

**What if something looks wrong?** Open an issue on the **Issues** tab of this
Actor with the coordinate and the `request_id` from the response.

This product uses the Census Bureau Data API but is not endorsed or certified by the Census Bureau.

# Actor input Schema

## Actor input object example

```json
{}
```

# Actor output Schema

## `mcpEndpoint` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("the-stack-underflow/datum-property").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("the-stack-underflow/datum-property").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call the-stack-underflow/datum-property --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,the-stack-underflow/datum-property"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/KoHJPYRuMr4p27Cv8/builds/rFFHuFFqgih7AYgfq/openapi.json
