# Center for Parent Information and Resources (CPIR) > CPIR is the federally funded central hub of information and products for the national network of > Parent Training and Information Centers (PTIs) and Community Parent Resource Centers (CPRCs) in > the United States, serving families of children and youth with disabilities. It is an OSEP-funded > project operated by the SPAN Parent Advocacy Network and publishes at parentcenterhub.org. Generated: 2026-09-05 Method: generated by API Evangelist from this repository's apis.yml and artifacts, all of which were read from CPIR's own live surface on 2026-09-05. CPIR does not publish an llms.txt of its own (https://www.parentcenterhub.org/llms.txt returned 404). ## What is machine-readable here CPIR runs no developer program and publishes no API documentation. It does, however, serve a real, anonymous, read-only JSON API from its own host — the WordPress REST API behind parentcenterhub.org, with the Connections Business Directory namespace `cn-api/v1` carrying the national Parent Center directory. The API index at https://www.parentcenterhub.org/wp-json/ registered 34 namespaces and 717 routes on 2026-09-05. The most useful thing here for an agent is the directory: 784+ Parent Center records, each with an organization name, a work address, a geocoded latitude and longitude, telephone numbers, email addresses and a public link, organised across 55 state and territory terms. That is the machine answer to "which Parent Center serves this family?". IMPORTANT — what is NOT readable: the WordPress content collections on this host are closed to anonymous callers. /wp-json/wp/v2/posts, /pages, /media, /categories, /tags, /users and /search all return `401 rest_forbidden`. CPIR's article content is available anonymously only through its RSS feed. Do not plan an integration around the wp/v2 content routes. ## API base - https://www.parentcenterhub.org/wp-json No credential is required for any endpoint listed below. Writes are not available to third parties: CPIR issues no API keys and the mutating routes require a first-party WordPress session. ## Contracts (derived by API Evangelist from CPIR's own published route index) - Parent Center Directory API: openapi/center-for-parent-information-and-resources-parent-center-directory-api-openapi.yml - Geography Reference API: openapi/center-for-parent-information-and-resources-geography-reference-api-openapi.yml - oEmbed API: openapi/center-for-parent-information-and-resources-oembed-api-openapi.yml - Site Metadata API: openapi/center-for-parent-information-and-resources-site-metadata-api-openapi.yml - Source document: openapi/_original/center-for-parent-information-and-resources-wp-json-route-index.json ## Key operations - listDirectoryEntries — GET /cn-api/v1/entry — search and page the Parent Center directory - getDirectoryEntry — GET /cn-api/v1/entry/{id} — one Parent Center with address and geocoordinates - listDirectoryCategories — GET /cn-api/v1/category — the 55 state and territory terms - autocompleteDirectoryField — GET /cn-api/v1/autocomplete/{type} — type-ahead over organization, city, state, zipcode and more - listCountries / getCountry — GET /cn-api/v1/countries[/{code}] — ISO 3166-1 reference data - listCountryRegions / getCountryRegion — GET /cn-api/v1/countries/{code}/regions[/{region}] — US state centroids and bounding boxes - getCountryGeoJson — GET /cn-api/v1/countries/{code}/geojson — country boundary geometry - getOEmbedData — GET /oembed/1.0/embed — oEmbed 1.0 data for any CPIR URL - getSeoHead — GET /yoast/v1/get_head — schema.org JSON-LD for any CPIR URL - getApiRoot — GET / — the full route index ## How to call it well - Pagination is `page` and `per_page`. The host advertises X-WP-Total and X-WP-TotalPages in Access-Control-Expose-Headers but does NOT actually emit them on the directory collection, so page until you get an empty array rather than reading a total. - Text fields come back wrapped as {"rendered": "..."} and HTML-entity encoded. Unescape before use. - Errors are the WordPress envelope {"code","message","data":{"status"}} served as application/json. They are not RFC 9457 problem details. - Respect `Crawl-delay: 600` from https://www.parentcenterhub.org/robots.txt. It is the only request rate CPIR states anywhere. No rate-limit headers are returned and no limit is documented. - The directory `region` field is a two-letter subdivision code that matches the keys from /cn-api/v1/countries/us/regions. Joining the directory to a map is a join by value; there is no foreign key. ## Human pages - Site: https://www.parentcenterhub.org - Find Your Parent Center (the directory, for humans): https://www.parentcenterhub.org/find-your-center/ - What is the CPIR: https://www.parentcenterhub.org/whatiscpir/ - What are Parent Centers: https://www.parentcenterhub.org/the-parent-center-network/ - Regional PTACs: https://www.parentcenterhub.org/rptacs/ - CPIR Resource Center: https://www.parentcenterhub.org/the-cpir-resource-center/ - Buzz from the Hub (newsletter): https://www.parentcenterhub.org/buzz-from-the-hub/ - Webinars: https://www.parentcenterhub.org/webinars/ - Glossaries: https://www.parentcenterhub.org/glossaries/ - Contact Us: https://www.parentcenterhub.org/contact-us/ - RSS feed: https://www.parentcenterhub.org/feed/ ## Not available - No OpenAPI, AsyncAPI, GraphQL, gRPC or WSDL published by CPIR. - No MCP server. No A2A agent card (/.well-known/agent-card.json and /.well-known/agent.json both 404). - No /.well-known/ documents of any kind; no security.txt. - No SDKs, CLI, Postman collection or GitHub organisation. - No pricing, plans, status page, changelog, SLA or deprecation policy. - No webhooks and no event stream. The RSS feed is the only push-adjacent surface.