hudexchange.info APIwww.hudexchange.info ↗
Access 5,000+ HUD Exchange resources via API. Search FAQs, training materials, and reports across 90+ HUD programs with filters by topic, content type, and date.
curl -X GET 'https://api.parse.bot/scraper/9f9fe01a-f8bc-4852-9b3d-53c21a692ec9/search_resources?page=1&query=CDBG' \ -H 'X-API-Key: $PARSE_API_KEY'
Search the HUD Exchange Resource Library with keyword search and filters by content type, program/topic, date range, and sort order. Returns paginated results (15 per page) with document metadata and available filter facets for the current query.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination (15 results per page). |
| query | string | Keyword search term (e.g. 'CDBG', 'homelessness') |
| topic | string | Filter by program/topic name (e.g. 'Housing+Counseling+Program', 'CDBG+Entitlement+Program'). Use + for spaces. Valid names available from get_facets endpoint. |
| order_by | string | Sort order. Accepted values: 'searchDate' (newest first), 'score' (relevance). |
| date_range | string | Predefined date range filter. |
| content_type | string | Filter by content type. Comma-separated for multiple values. Accepted values: FAQs, Resources, Training Materials, Reports. Use + for spaces in values. |
{
"type": "object",
"fields": {
"page": "integer, current page number",
"query": "string, the search term used",
"results": "array of objects with title, url, content_type, and date",
"total_pages": "integer, total number of pages available",
"total_results": "integer, total number of matching results",
"results_on_page": "integer, number of results returned on this page",
"available_topics": "array of objects with name and count for topic facets",
"results_per_page": "integer, number of results per page (15)",
"available_content_types": "array of objects with name and count for content type facets"
},
"sample": {
"data": {
"page": 1,
"query": "CDBG",
"results": [
{
"url": "https://www.hudexchange.info/resource/5197/current-availability-of-section-108-financing-cdbg-entitlement-and-state-grantees/",
"date": "April 2026",
"title": "Current Availability of Section 108 Financing - CDBG...",
"content_type": "Resource"
}
],
"total_pages": 68,
"total_results": 1007,
"results_on_page": 15,
"available_topics": [
{
"name": "CDBG Entitlement Program",
"count": 508
}
],
"results_per_page": 15,
"available_content_types": [
{
"name": "FAQs",
"count": 390
}
]
},
"status": "success"
}
}About the hudexchange.info API
The HUD Exchange API provides access to over 5,000 housing and urban development resources across 90+ HUD programs through 3 endpoints. Use search_resources to run keyword searches against the Resource Library with filters for content type, topic, and date range, or call get_resource_detail to retrieve full metadata—including description, breadcrumbs, related topics, and related links—for any individual resource page.
What the API Covers
The HUD Exchange Resource Library contains FAQs, training materials, reports, and general resources tied to HUD programs such as CDBG Entitlement, Housing Counseling, and HOME. The API gives structured access to this library through three endpoints: search_resources for querying and filtering, get_facets for enumerating all available filter values, and get_resource_detail for full per-resource metadata.
search_resources and Filtering
search_resources accepts a query string for keyword matching, a topic parameter (using + in place of spaces, e.g. Housing+Counseling+Program), a content_type filter that accepts comma-separated values (FAQs, Resources, Training Materials), and a date_range filter. Results are paginated at 15 per page; the response includes total_results, total_pages, results_on_page, and a results array where each item carries title, url, content_type, and date. The response also returns available_topics and available_content_types facet arrays with item counts for the current query, so you can build dynamic filter UIs without a separate call.
get_facets and get_resource_detail
get_facets takes no inputs and returns all programs_and_topics and content_types with document counts, plus a total_resources integer. This is the right call to populate filter dropdowns before a user submits a search. get_resource_detail takes a resource_path (e.g. /resource/5334/cdbg-income-limits/ or a FAQ path) and returns the resource's title, date, description text, breadcrumbs array, related_topics with name and URL, and related_links with title and URL—giving enough context to display or index the full resource record.
- Build a HUD program research tool that lets users filter resources by topic (e.g.
CDBG+Entitlement+Program) and content type - Index all FAQs across HUD programs by paginating
search_resourceswithcontent_type=FAQs - Populate a program-specific resource feed using
get_facetsto enumerate topics andsearch_resourcesto retrieve matching documents - Extract
related_topicsandrelated_linksfromget_resource_detailto build a knowledge graph of connected HUD resources - Monitor newly published training materials by sorting
search_resourceswithorder_by=searchDateand filtering bycontent_type=Training Materials - Generate a topic-coverage report by pulling
programs_and_topicscounts fromget_facetsacross all 90+ HUD programs
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does HUD Exchange have an official developer API?+
What does `get_resource_detail` return beyond what `search_resources` provides?+
search_resources results include only title, url, content_type, and date. get_resource_detail adds a full description text block, a breadcrumbs array for navigation context, related_topics (name and URL pairs), and related_links (title and URL pairs)—making it suitable for displaying or indexing the complete resource record.Can I retrieve the actual document files (PDFs, slides) through the API?+
related_links that may point to downloadable files, but it does not fetch or return binary file content directly. You can fork this API on Parse and revise it to add an endpoint that follows those links and retrieves file metadata or content.How does pagination work in `search_resources`?+
total_results, total_pages, and results_on_page so you can calculate iteration. Pass the page integer parameter to walk through subsequent pages. There is no cursor-based pagination; page numbers are the only navigation mechanism.