HUD Multifamily Assisted Properties Scraper
Pricing
Pay per event
HUD Multifamily Assisted Properties Scraper
Extract HUD-assisted multifamily properties, contracts, units, risk signals, locations, and management contacts from public HUD ArcGIS data.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 days ago
Last modified
Categories
Share
Extract HUD-assisted multifamily property records from the public HUD Open Data ArcGIS FeatureServer. The actor returns normalized property, location, unit-count, subsidy, contract-expiration, risk, REAC, and management-contact fields in a clean Apify dataset.
Use it when you need a repeatable HUD assisted-housing data export for market research, affordable-housing investment screening, compliance monitoring, vendor lead generation, or internal real-estate analytics.
What does HUD Multifamily Assisted Properties Scraper do?
This actor queries HUD's public MULTIFAMILY_PROPERTIES_ASSISTED ArcGIS layer and saves one dataset row per assisted multifamily property.
It supports filters for:
- πΊοΈ State, city, and ZIP code
- π’ Property category and client group
- β Active assistance and subsidized flags
- β οΈ HUD watch-list and troubled status signals
- π Minimum assisted/total unit counts
- π Contract expiration date windows
- π§Ύ Optional raw HUD attributes for audit workflows
- π Optional ArcGIS geometry
Who is it for?
This HUD assisted property scraper is useful for several buyer personas:
- ποΈ Affordable-housing investors looking for assisted multifamily inventory by market
- π§βπΌ Property managers and vendors building management-company contact lists
- ποΈ Govcon and compliance teams monitoring HUD risk, watch-list, and REAC signals
- π Real-estate analysts comparing assisted units across counties, ZIP codes, or cities
- π§ͺ Housing researchers who need a clean export from HUD Open Data without ArcGIS scripting
- π Data teams scheduling recurring HUD property refreshes into a warehouse or spreadsheet
Why use it?
HUD's ArcGIS endpoint is public, but using it directly requires knowing ArcGIS REST query syntax, date formats, pagination, field names, and sentinel values. This actor handles those details and returns buyer-friendly field names.
Benefits:
- No login or API key required for the target data source
- HTTP/API implementation, so runs are fast and inexpensive
- Normalized booleans, dates, numbers, and nulls
- Real estate and compliance fields selected from a much wider HUD schema
- Optional
rawobject when you need the original HUD attributes - Apify dataset export to JSON, CSV, Excel, Google Sheets, Make, Zapier, or your API client
Data source
The actor uses HUD Open Data / ArcGIS:
- HUD Open Data page:
HUD::multifamily-assisted-properties - Layer:
MULTIFAMILY_PROPERTIES_ASSISTED - Source type: public ArcGIS FeatureServer
- Entity type: assisted multifamily properties
The actor does not scrape private user accounts, tenant data, or authenticated HUD systems.
Data fields
Typical output fields include:
| Field | Description |
|---|---|
propertyId | HUD property identifier |
propertyName | Property name from HUD |
category | HUD property category |
clientGroupName | HUD client group/program label |
address, city, state, zip, county | Normalized location fields |
latitude, longitude | Coordinates from HUD fields |
totalUnits, assistedUnits, availableUnits | Unit-count signals |
hasActiveAssistance, isSubsidized, isSection8 | Program/status flags |
isOnWatchList, troubledCode, riskCategory | Risk/compliance signals |
reacLastInspectionScore, reacLastInspectionDate | REAC inspection summary |
contracts | Contract numbers, program types, units, expiration dates |
managementAgent, managementContactName, managementPhone, managementEmail | Management contact fields when HUD provides them |
lastUpdated | HUD last-update date |
sourceUrl, scrapedAt | Source and run audit fields |
Example output
{"propertyId": "800000001","propertyName": "Example Assisted Apartments","category": "Multifamily","clientGroupName": "Section 8","address": "123 Main St, Los Angeles, CA, 90001","city": "Los Angeles","state": "CA","zip": "90001","totalUnits": 120,"assistedUnits": 80,"hasActiveAssistance": true,"isSubsidized": true,"isOnWatchList": false,"reacLastInspectionScore": "82","contracts": [{"contractNumber": "CA39XXXX001","programType": "Section 8","units": 80,"expirationDate": "2027-06-30","rentToFmrRatio": 0.98}],"sourceUrl": "https://hudgis-hud.opendata.arcgis.com/datasets/HUD::multifamily-assisted-properties/about","scrapedAt": "2026-07-01T00:00:00.000Z"}
Input options
The input schema is designed for both small checks and bulk exports.
{"states": ["CA"],"city": "Los Angeles","hasActiveAssistance": true,"maxItems": 100}
Common input fields:
statesβ list of two-letter state codescityβ exact standardized city namezipCodesβ list of five-digit ZIP codespropertyNameQueryβ property-name substring searchpropertyCategoriesβ exact HUD category namesclientGroupNamesβ exact HUD client group nameshasActiveAssistanceβ filter active assistance indicatorisSubsidizedβ filter subsidized indicatorisOnWatchListβ filter HUD watch-list indicatorisTroubledβ include or exclude non-empty troubled code valuesminAssistedUnitsβ minimum assisted unitsminTotalUnitsβ minimum total unitscontractExpirationFromandcontractExpirationToβ contract date windowmaxItemsβ maximum properties to saveincludeGeometryβ include raw ArcGIS geometryincludeRawβ include full raw HUD attributes
How to scrape HUD assisted multifamily properties
- Open the actor on Apify.
- Choose a state or city for a small first run.
- Keep
maxItemsat 100 while validating your filters. - Run the actor.
- Review the dataset table and export JSON, CSV, Excel, or API results.
- Increase
maxItemsfor larger market exports. - Schedule the actor if you need recurring HUD data refreshes.
How much does it cost to extract HUD assisted multifamily properties?
This actor uses pay-per-event pricing:
- A small start event per run
- A per-property event for each saved HUD property record
The actor is HTTP/API based and does not use a browser or proxy by default, so typical compute costs are low. Exact Apify billing depends on your plan tier and the current actor pricing shown on the Apify Store page.
Tips for best results
- Start with a state or city filter before exporting nationwide data.
- Use
minAssistedUnitsto focus on larger properties. - Use
contractExpirationFromandcontractExpirationTofor renewal or preservation workflows. - Enable
includeRawonly when you need the original HUD attribute names; it makes each record much larger. - Enable
includeGeometryif you need ArcGIS point geometry in addition to latitude/longitude. - If you get zero results, remove filters one by one to find which condition is too narrow.
Contract expiration monitoring
Contract-expiration filters are useful for:
- Preservation opportunity lists
- Renewal monitoring
- Outreach to owners or management agents
- Market studies of expiring assisted units
- Internal alerts for properties with near-term subsidy changes
The actor checks both first and second HUD contract expiration fields when applying the date window.
Risk and compliance monitoring
The actor includes fields such as watch-list status, troubled code, OPIIS risk category, integrated risk score category, REAC score, and REAC inspection date. These fields can help compliance teams prioritize follow-up review.
Always verify critical compliance decisions against official HUD systems and documents. This actor packages public source data; it is not legal, financial, or compliance advice.
Integrations
You can connect results to:
- Google Sheets for lightweight market lists
- Airtable for property pipeline tracking
- Make or Zapier for no-code workflows
- Snowflake, BigQuery, or Postgres through Apify integrations
- Internal CRMs for vendor/property-manager outreach
- BI dashboards for affordable-housing market analytics
API usage
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/hud-multifamily-assisted-properties-scraper').call({states: ['CA'],city: 'Los Angeles',hasActiveAssistance: true,maxItems: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
from apify_client import ApifyClientimport osclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('automation-lab/hud-multifamily-assisted-properties-scraper').call(run_input={'states': ['NY'],'hasActiveAssistance': True,'maxItems': 100,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items[:3])
cURL
curl "https://api.apify.com/v2/acts/automation-lab~hud-multifamily-assisted-properties-scraper/runs?token=$APIFY_TOKEN" \-H 'Content-Type: application/json' \-d '{"states":["TX"],"hasActiveAssistance":true,"maxItems":100}'
MCP integration
Use this actor from MCP-compatible tools through Apify MCP.
Claude Code CLI example:
$claude mcp add apify-hud-properties --transport http --url "https://mcp.apify.com/?tools=automation-lab/hud-multifamily-assisted-properties-scraper"
Claude Desktop example:
{"mcpServers": {"apify": {"command": "npx","args": ["-y","@apify/actors-mcp-server","--actors","automation-lab/hud-multifamily-assisted-properties-scraper"],"env": {"APIFY_TOKEN": "your-apify-token"}}}}
MCP URL pattern:
https://mcp.apify.com/?tools=automation-lab/hud-multifamily-assisted-properties-scraper
Example prompts:
- "Extract HUD assisted multifamily properties in Los Angeles with active assistance."
- "Find Texas HUD assisted properties with at least 150 total units."
- "Export properties with contracts expiring before the end of 2027."
Legality and responsible use
This actor accesses public HUD Open Data through a public ArcGIS REST endpoint. Use the data responsibly and comply with applicable laws, HUD terms, privacy rules, fair-housing rules, and your organization's compliance policies.
Do not use contact fields for spam, harassment, or discriminatory targeting.
Limitations
- HUD can change field definitions, update cadence, or ArcGIS service behavior.
- Some management contact fields are blank for some records.
includeRawexposes many source fields and may require downstream schema handling.- Contract fields are summarized from source columns; they are not a separate contract-history dataset.
- The actor returns records available in the public layer at run time.
Troubleshooting
Why did my run return zero properties?
Your filters may be too narrow. Remove optional filters such as city, ZIP, category, or contract dates and try a state-only run first.
Why are some fields null?
HUD uses nullable and sentinel values in the source data. The actor converts empty strings, N/A, and -4 style sentinel values to null so downstream exports are easier to use.
Why is the raw output so wide?
includeRaw adds the full HUD attributes object, which has hundreds of fields. Disable it for normal exports.
Related scrapers
Other Automation Labs actors may be useful for adjacent real-estate and public-record workflows:
- https://apify.com/automation-lab/google-maps-lead-finder
- https://apify.com/automation-lab/zillow-scraper
- https://apify.com/automation-lab/realtor-scraper
FAQ
Can I scrape all HUD assisted multifamily properties nationwide?
Yes. Leave geography filters empty and raise maxItems. For first tests, use a smaller maxItems value to confirm the output shape.
Does this require a proxy?
No. The source is a public ArcGIS FeatureServer and the actor is HTTP/API based.
Does this include tenant-level data?
No. The actor outputs property-level public HUD fields, not tenant records.
Can I schedule recurring exports?
Yes. Use Apify schedules to run the actor daily, weekly, or monthly and export the dataset to your preferred integration.
Can I get the original HUD fields?
Yes. Set includeRaw to true to include the full raw attributes object for each property.
Changelog
- Initial version: public HUD ArcGIS extraction with geography, program, risk, unit-count, and contract-expiration filters.