--- name: Purdue University description: Purdue University public developer/API footprint review for APIs.json cataloging. url: https://raw.githubusercontent.com/api-evangelist/purdue/refs/heads/main/review.yml created: '2026-06-03' modified: '2026-08-30' reviews: - date: '2026-08-30' rating: 3 x-method: generated x-source-url: https://www.rcac.purdue.edu/api summary: >- Re-profiled under the API Evangelist university pipeline, which settles WHO OPERATES each surface before any contract is saved. The June 2026 profile credited Purdue with ten separate APIs; all ten were one community-built third-party OData contract (api.purdue.io) split by tag, and every schema, structure, example, rule, vocabulary, JSON-LD context, agentic-access profile, capability map and collection in the repository was derived from it. 48 files were removed and the relationship kept as a single tenant entry. In their place, two genuinely institution-operated contracts were found and verified: Purdue RCAC publishes its own OpenAPI 3.0.0 (206 paths, 452 operations) at www.rcac.purdue.edu/api, and Housing and Food Services runs an open keyless dining menus API at api.hfs.purdue.edu/menus/v2. Two further institution-operated surfaces were confirmed - the PURR OAI-PMH endpoint and Purdue's own InCommon-registered Shibboleth identity provider. Three surfaces are recorded as tenant relationships: Purdue e-Pubs on bepress Digital Commons, the events calendar on Localist, and Purdue.io. The Purdue Libraries API host still serves only a placeholder. endpoints: - url: https://www.rcac.purdue.edu/api status: 200 note: >- Purdue's own OpenAPI 3.0.0 document, application/json, 345KB, 206 paths / 452 operations, servers https://www.rcac.purdue.edu/api, securitySchemes api_token (apiKey, header). - url: https://www.rcac.purdue.edu/api/groups status: 500 note: Purdue Web Authentication HTML login page returned in place of a 401 challenge. - url: https://api.hfs.purdue.edu/menus/v2/locations status: 200 note: Keyless JSON, 35,766 bytes, every dining location with address and coordinates. - url: https://api.hfs.purdue.edu/menus/v2/locations/Earhart/2026-08-30 status: 200 note: Keyless daily menu with meals, stations, items, allergens and nutrition flags. - url: https://api.hfs.purdue.edu/menus/v2/locations/NOSUCH/2026-08-30 status: 500 note: >- Unknown location returns an unhandled System.InvalidOperationException whose stack trace names Purdue.Hfs.Menus.Domain - the evidence that this is Purdue's own software. - url: https://purr.purdue.edu/oaipmh?verb=Identify status: 200 note: OAI-PMH 2.0, repositoryName Purdue University Research Repository, adminEmail mwitt@purdue.edu. - url: https://sso.purdue.edu/idp/shibboleth status: 200 note: SAML 2.0 IdP metadata, entityID https://idp.purdue.edu/idp/shibboleth. - url: https://mdq.incommon.org/entities/https%3A%2F%2Fidp.purdue.edu%2Fidp%2Fshibboleth status: 200 note: Signed InCommon entity, OrganizationName "Purdue University Main Campus". - url: https://api.datacite.org/providers/purdue status: 200 note: DataCite direct_member, symbol PURDUE, active since 2010, 4 registered repositories. - url: https://docs.lib.purdue.edu/do/oai/?verb=Identify status: 200 note: >- Purdue e-Pubs. CNAME dlpurdue.bepress.com, adminEmail dc-support@elsevier.com - tenant. - url: https://events.purdue.edu/api/2/events status: 200 note: >- Localist v2 events JSON. CNAME purdue.enterprise.localist.com, header x-slzr-platform purdue - tenant. - url: https://api.purdue.io/odata/ status: 200 note: >- Live but not Purdue's - 167.71.242.113 (DigitalOcean); purdue.io privately registered via Porkbun to "Private by Design, LLC", NC. Community project since 2015, MIT licensed. - url: https://api.lib.purdue.edu/ status: 200 note: Soft-200 placeholder - "Libraries API documentation goes here...". Not a surface. - url: https://api.purdue.edu/ status: 0 note: Does not resolve. - url: https://developer.purdue.edu/ status: 0 note: Does not resolve - no developer portal exists. - url: https://data.purdue.edu/ status: 0 note: Does not resolve - no institutional open data portal found. - date: '2026-06-03' rating: 2 summary: >- No single centralized Purdue developer portal was found. Two public, machine-readable APIs were verified live: the community-built Purdue.io OData course-catalog API (api.purdue.io/odata returned real Subjects/entity-set data) and the PURR OAI-PMH research metadata endpoint (Identify verb returned valid OAI-PMH XML). The Purdue Libraries API host resolves but serves only a placeholder page ("Libraries API documentation goes here..."). Official GitHub orgs Purdue and Purdue-io were confirmed via the GitHub API. No fabricated endpoints; all entries reflect probed, observed responses. endpoints: - url: https://api.purdue.io/odata/ status: 200 note: OData service document listing entity sets (Courses, Subjects, Terms, etc.). - url: https://api.purdue.io/odata/Subjects status: 200 note: Returned real course-subject records; API confirmed live. - url: https://purr.purdue.edu/oaipmh?verb=Identify status: 200 note: Valid OAI-PMH Identify response for Purdue University Research Repository. - url: https://purr.purdue.edu/kb/finduse/oaipmh status: 200 note: PURR knowledge-base page documenting the OAI-PMH endpoint and supported verbs. - url: https://api.lib.purdue.edu/ status: 200 note: Placeholder only; body reads "Libraries API documentation goes here..." — no real API. - url: https://github.com/Purdue status: 200 note: Official Purdue University GitHub org (14 public repos, verified via GitHub API). - url: https://github.com/Purdue-io status: 200 note: Purdue.io org hosting the PurdueApi course-catalog codebase. - url: https://www.purdue.edu/ status: 200 note: Official institution website.