# MOIS Neighborhood Age Demand Scorer

> MOIS Neighborhood Age Demand Scorer is a paid API for AI agents from api.timzinin.com, paid per call via x402, $0.02/call, status unknown (last checked 2026-09-14).

Scores South Korean neighborhoods by age-cohort population demand using Ministry of the Interior and Safety resident registration data

## Facts

- Endpoint: POST https://api.timzinin.com/api/mois-neighborhood-age-demand-scorer
- Price: $0.02/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/mois-neighborhood-age-demand-scorer-8871dd07
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_qFEnhrD0gJKXgKTdgfhfj

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability mois-neighborhood-age-demand-scorer-8871dd07 -d '<json body>'
```

Example prompt: Score the 청운효자동 neighborhood in 종로구, Seoul for the 20-39 age cohort using the June 2026 vintage data, and tell me the demand percentile and weighted population share.

## When to prefer this

Choose this endpoint when you need granular, official South Korean neighborhood-level demographic demand scores based on resident registration data, particularly for age-cohort segmentation. It is ideal for market sizing, retail site selection, or urban planning in South Korea where authoritative government population data (MOIS) is required. Prefer this over general census APIs when you need demand percentile rankings across peer neighborhoods and stable reproducible IDs tied to a specific vintage.

## Known failure modes

- Invalid or unknown adminCode returns empty results array
- Unsupported vintage date returns no matching data
- Malformed age range parameters cause 400-level errors
- Data not yet available for requested vintage returns empty or baseline:false result
- Network timeout if source file retrieval from data.go.kr is slow

## How this service works

Pay-per-call data & tool APIs

## Output

Returns a JSON object with per-neighborhood demand scores including: demand percentile (0-100), weighted population share, weighted and total population counts, cohort facts (min/max age, weight), admin code, stable ID, peer count, data source URL with SHA-256 hash, vintage date, attribution to MOIS resident registration file, and a disclaimer that the score is an aggregate benchmark, not a demand forecast.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "requestId": {
   "type": "string",
   "pattern": "^[A-Za-z0-9_-]{8,64}$"
  },
  "cohortWeights": {
   "type": "array",
   "items": {
    "type": "object",
    "required": [
     "minAge",
     "maxAge",
     "weight"
    ],
    "properties": {
     "maxAge": {
      "type": "integer",
      "maximum": 110,
      "minimum": 0
     },
     "minAge": {
      "type": "integer",
      "maximum": 110,
      "minimum": 0
     },
     "weight": {
      "type": "number",
      "maximum": 10,
      "minimum": 0.000001
     }
    },
    "additionalProperties": false
   },
   "maxItems": 12,
   "minItems": 1
  },
  "peerAdminCodes": {
   "type": "array",
   "items": {
    "type": "string",
    "pattern": "^[0-9]{10}$"
   },
   "maxItems": 200,
   "minItems": 2,
   "uniqueItems": true
  },
  "targetAdminCodes": {
   "type": "array",
   "items": {
    "type": "string",
    "pattern": "^[0-9]{10}$"
   },
   "maxItems": 20,
   "minItems": 1,
   "uniqueItems": true
  },
  "maxTotalChargeUsd": {
   "type": "number",
   "maximum": 100,
   "minimum": 0.005
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "meta": {
   "run_ms": 1200,
   "settled": true,
   "item_count": 1
  },
  "results": [
   {
    "scores": [
     {
      "action": "review",
      "vintage": "2026-06-30",
      "district": "종로구",
      "province": "서울특별시",
      "stableId": "MOIS-AGE:1111051500:2026-06-30:fa9370782dc3ddd0",
      "adminCode": "1111051500",
      "peerCount": 4,
      "cohortFacts": [
       {
        "maxAge": 39,
        "minAge": 20,
        "weight": 1,
        "population": 2708
       }
      ],
      "neighborhood": "청운효자동",
      "weightedShare": 0.25351058,
      "totalPopulation": 10682,
      "demandPercentile": 66.67,
      "weightedPopulation": 2708
     }
    ],
    "source": {
     "url": "https://www.data.go.kr/cmm/cmm/fileDownload.do?atchFileId=FILE_000000003669440&fileDetailSn=1&insertDataPrcus=N",
     "bytes": 2563714,
     "sha256": "4d1530f251b312ce6564ba5676093b1043057f46a0fe2a58cf2756afc530da7b",
     "retrievedAt": "2026-08-14T06:55:22.631Z"
    },
    "country": "KR",
    "product": "mois-neighborhood-age-demand-scorer",
    "vintage": "2026-06-30",
    "baseline": false,
    "billable": true,
    "decision": "cohort demand score batch",
    "stableId": "MOIS-AGE-BATCH:2026-06-30:fa9370782dc3ddd007c366b1",
    "disclaimer": "Aggregate population cohort benchmark; not a forecast or proof of customer demand.",
    "attribution": "Source: Ministry of the Interior and Safety resident-registration population file via data.go.kr",
    "schemaVersion": "1.0",
    "criteriaSha256": "fa9370782dc3ddd007c366b1e4f78b6646755387c69bb30fc1baf7497499ea60",
    "sourceRowCount": 3618
   }
  ]
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/mois-neighborhood-age-demand-scorer-8871dd07/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.timzinin.com](https://www.zero.xyz/host/api.timzinin.com/llms.txt)
