# Hud Housing Scraper (`quarterly_jingo/hud-housing-scraper`) Actor

- **URL**: https://apify.com/quarterly\_jingo/hud-housing-scraper.md
- **Developed by:** [Petey Boy](https://apify.com/quarterly_jingo) (community)
- **Categories:** Real estate, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## HUD Housing Data Scraper

Extract data from the U.S. Department of Housing and Urban Development (HUD) public APIs.

### Datasets

#### 1. HUD-Approved Housing Counselors (No Auth Required)
Search for HUD-approved housing counseling agencies by location. Uses the HUD `searchByLocation` API with automatic geocoding from city/state or ZIP code. No API token needed.

#### 2. Fair Market Rents (FMR)
Get Fair Market Rent data by area. Requires a free HUD User API token from https://www.huduser.gov/hudapi/public/register

#### 3. Income Limits
Get income limit data for housing programs. Requires a free HUD User API token.

### Input Examples

#### Housing Counselors - Search by City + State
```json
{
    "dataset": "housing-counselors",
    "city": "Washington",
    "state": "DC",
    "distance": 10,
    "maxItems": 50
}
````

#### Housing Counselors - Search by ZIP Code

```json
{
    "dataset": "housing-counselors",
    "zipCode": "90210",
    "maxItems": 25
}
```

#### Housing Counselors - Search by Coordinates

```json
{
    "dataset": "housing-counselors",
    "latitude": 34.05,
    "longitude": -118.25,
    "distance": 25
}
```

#### Housing Counselors - Filter by Service Type

```json
{
    "dataset": "housing-counselors",
    "state": "CA",
    "city": "Los Angeles",
    "services": "DFC,HMC"
}
```

#### Fair Market Rents

```json
{
    "dataset": "fair-market-rents",
    "hudApiToken": "YOUR_TOKEN",
    "entityId": "0999999999",
    "year": 2025
}
```

#### Income Limits

```json
{
    "dataset": "income-limits",
    "hudApiToken": "YOUR_TOKEN",
    "entityId": "0999999999",
    "year": 2025
}
```

### Service Type Codes (Housing Counselors)

- **DFC** - Default/Foreclosure Counseling
- **FBC** - Financial Management/Budget Counseling
- **FBW** - Financial, Budgeting and Credit Repair Workshops
- **FHW** - Fair Housing Pre-Purchase Education Workshops
- **HIC** - Home Improvement and Rehabilitation Counseling
- **HMC** - Home Buying/Pre-Purchase Counseling
- **NDW** - Non-Delinquency Post Purchase Workshops
- **PLW** - Predatory Lending Education Workshops
- **PPC** - Pre-Purchase Homebuyer Education Workshops
- **PPW** - Post-Purchase Education Workshops
- **RHC** - Rental Housing Counseling
- **RHW** - Rental Housing Workshops

### How Location Search Works

For housing counselors, the actor uses the HUD `searchByLocation` API which requires latitude, longitude, and a distance radius. If you provide:

- **Latitude + Longitude**: Used directly
- **City + State** or **ZIP code**: Automatically geocoded to coordinates using OpenStreetMap Nominatim
- **State only**: Falls back to state capital coordinates with a 100-mile radius

Results can be further filtered by state code and service types.

### Output

Housing counselor records include: agency ID, name, address, city, state, ZIP, phone, email, website, coordinates, languages, services, counseling methods, and faith-based indicator.

FMR and Income Limits records include rent/income data broken down by bedroom count or family size.

# Actor input Schema

## `dataset` (type: `string`):

Which HUD dataset to query.

## `hudApiToken` (type: `string`):

Required for FMR and Income Limits datasets. Get a free token at https://www.huduser.gov/hudapi/public/register

## `state` (type: `string`):

Two-letter state code (e.g., CA, NY, TX). Used for FMR/IL state queries and for filtering housing counselor results.

## `city` (type: `string`):

City name. For housing counselors, used with state to geocode a location search.

## `zipCode` (type: `string`):

ZIP code. For housing counselors, used to geocode a location search.

## `latitude` (type: `number`):

For housing counselors: latitude for location-based search. Use with longitude and distance.

## `longitude` (type: `number`):

For housing counselors: longitude for location-based search. Use with latitude and distance.

## `distance` (type: `integer`):

For housing counselors: search radius in miles from the lat/long or geocoded location. Default 25.

## `entityId` (type: `string`):

For FMR/Income Limits: FIPS county code or CBSA metro area code.

## `year` (type: `integer`):

For FMR/Income Limits: data year.

## `services` (type: `string`):

For housing counselors: filter by service codes (comma-separated). DFC=Default/Foreclosure, FBC=Financial/Budget, HMC=Home Buying, RHC=Rental Housing, PLW=Predatory Lending.

## `maxItems` (type: `integer`):

Maximum number of records to return.

## `proxyConfiguration` (type: `object`):

Proxy settings.

## Actor input object example

```json
{
  "dataset": "housing-counselors",
  "state": "CA",
  "latitude": 38.895,
  "longitude": -77.036,
  "distance": 25,
  "entityId": "0999999999",
  "year": 2025,
  "maxItems": 10,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# 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("quarterly_jingo/hud-housing-scraper").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("quarterly_jingo/hud-housing-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).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 quarterly_jingo/hud-housing-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=quarterly_jingo/hud-housing-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Hud Housing Scraper",
        "description": "",
        "version": "1.0",
        "x-build-id": "ChlEaLsVSgSyyJZt6"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/quarterly_jingo~hud-housing-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-quarterly_jingo-hud-housing-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/quarterly_jingo~hud-housing-scraper/runs": {
            "post": {
                "operationId": "runs-sync-quarterly_jingo-hud-housing-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/quarterly_jingo~hud-housing-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-quarterly_jingo-hud-housing-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "dataset": {
                        "title": "Dataset",
                        "enum": [
                            "housing-counselors",
                            "fair-market-rents",
                            "income-limits"
                        ],
                        "type": "string",
                        "description": "Which HUD dataset to query.",
                        "default": "housing-counselors"
                    },
                    "hudApiToken": {
                        "title": "HUD User API Token",
                        "type": "string",
                        "description": "Required for FMR and Income Limits datasets. Get a free token at https://www.huduser.gov/hudapi/public/register"
                    },
                    "state": {
                        "title": "State Code",
                        "type": "string",
                        "description": "Two-letter state code (e.g., CA, NY, TX). Used for FMR/IL state queries and for filtering housing counselor results.",
                        "default": "DC"
                    },
                    "city": {
                        "title": "City",
                        "type": "string",
                        "description": "City name. For housing counselors, used with state to geocode a location search."
                    },
                    "zipCode": {
                        "title": "ZIP Code",
                        "type": "string",
                        "description": "ZIP code. For housing counselors, used to geocode a location search."
                    },
                    "latitude": {
                        "title": "Latitude",
                        "type": "number",
                        "description": "For housing counselors: latitude for location-based search. Use with longitude and distance."
                    },
                    "longitude": {
                        "title": "Longitude",
                        "type": "number",
                        "description": "For housing counselors: longitude for location-based search. Use with latitude and distance."
                    },
                    "distance": {
                        "title": "Search Distance (miles)",
                        "type": "integer",
                        "description": "For housing counselors: search radius in miles from the lat/long or geocoded location. Default 25.",
                        "default": 25
                    },
                    "entityId": {
                        "title": "Entity ID (FIPS/CBSA Code)",
                        "type": "string",
                        "description": "For FMR/Income Limits: FIPS county code or CBSA metro area code."
                    },
                    "year": {
                        "title": "Year",
                        "type": "integer",
                        "description": "For FMR/Income Limits: data year.",
                        "default": 2025
                    },
                    "services": {
                        "title": "Service Types",
                        "type": "string",
                        "description": "For housing counselors: filter by service codes (comma-separated). DFC=Default/Foreclosure, FBC=Financial/Budget, HMC=Home Buying, RHC=Rental Housing, PLW=Predatory Lending."
                    },
                    "maxItems": {
                        "title": "Maximum Items",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of records to return.",
                        "default": 10
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Proxy settings.",
                        "default": {
                            "useApifyProxy": false
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
