Purdue University website screenshot

Purdue University

Purdue University is a public land-grant research university in West Lafayette, Indiana, United States, ranked #99 in the QS World University Rankings 2025. Its public, machine-readable developer footprint is limited and largely community- or service-specific rather than a single centralized developer portal. Confirmed public interfaces include the community-built Purdue.io OData course-catalog API and the Purdue University Research Repository (PURR) OAI-PMH metadata endpoint. A Purdue Libraries API host exists but currently serves only a placeholder page.

Purdue University publishes 10 APIs on the APIs.io network, including Buildings API, Campuses API, Classes API, and 7 more. Tagged areas include Education, Higher Education, University, Research, and Open Data.

The Purdue University catalog on APIs.io includes 1 JSON-LD context and 2 Spectral governance rulesets.

Purdue University’s developer surface includes GitHub presence and 9 more developer resources.

33.1/100 thin ▬ flat Agent 25/100 agent aware Full breakdown ↓
scored 2026-08-20 · rubric v0.12.0
AccessFree
11 APIs
EducationHigher EducationUniversityResearchOpen DataUnited States

Kin Score

Kin Score Kin Score How this is scored →
scored 2026-08-20 · rubric v0.12.0
Composite quality — 33.1/100 · thin
Contract Quality 14.0 / 21
Developer Ergonomics 0.0 / 17
Access Clarity 4.9 / 17
Operational Transparency 2.9 / 11
Contract Governance 1.0 / 10
Discoverability 6.3 / 9
Regulatory Posture 3.1 / 15
Agent readiness — 25/100 · agent aware
Machine-Readable Contract 18 / 18
Agentic Access Contract 10 / 10
Documented Reversibility 6 / 6
MCP Server 0 / 12
Machine-Readable Auth 0 / 10
Idempotency 9 / 9
Stable Error Semantics 0 / 8
Request/Response Examples 0 / 7
Rate-Limit Signaling 7 / 7
Typed Event Surface 0 / 6
Agent Skills 0 / 5
Well-Known Catalog 0 / 4
Consent & Bot Identity 0 / 3
A2A Agent Card 0 / 8
Dry-Run / Simulate Mode 4 / 4
Regulatory Posture applies to this provider. Its tags matched the Education & Research regime, so Regulatory Posture carries 15 points of the composite. If this regime is wrong for your business, say so on your provider repo — the applicability map is public and we will correct it.
The six quality facets above are damped to 85 points between them, because the conditional facet above carries the other 15. That is why each facet's contribution is shown against a damped maximum: raising a quality facet moves the composite by 85% of its nominal weight, not 100%. The full arithmetic is at apis.io/rating/.
Improve this rating by publishing the missing artifacts — every area above can be raised, and the full rubric is at apis.io/rating/. This rating is computed from github.com/api-evangelist/purdue: open an issue to ask a question, or submit a pull request to add artifacts. Want it done for you? Prioritized profiling — $2,500 →

APIs 11

Individual APIs this provider publishes, each with its own machine-readable definition.

PURR OAI-PMH Metadata API

The Purdue University Research Repository (PURR) exposes an OAI-PMH endpoint for harvesting research dataset metadata, supporting standard verbs (Identify, ListSets, ListMetadat...

Purdue University Buildings API

The Buildings API from Purdue University — 2 operation(s) for buildings.

Purdue University Campuses API

The Campuses API from Purdue University — 2 operation(s) for campuses.

Purdue University Classes API

The Classes API from Purdue University — 2 operation(s) for classes.

Purdue University Courses API

The Courses API from Purdue University — 2 operation(s) for courses.

Purdue University Instructors API

The Instructors API from Purdue University — 2 operation(s) for instructors.

Purdue University Meetings API

The Meetings API from Purdue University — 2 operation(s) for meetings.

Purdue University Rooms API

The Rooms API from Purdue University — 2 operation(s) for rooms.

Purdue University Sections API

The Sections API from Purdue University — 2 operation(s) for sections.

Purdue University Subjects API

The Subjects API from Purdue University — 2 operation(s) for subjects.

Purdue University Terms API

The Terms API from Purdue University — 2 operation(s) for terms.

Scroll for all 11

Open Collections 11

Open, tool-agnostic API collections (OpenAPI-derived and Bruno).

API Collection

OPEN COLLECTION

Scroll for all 11

Pricing Plans 1

Published pricing tiers and plan structures.

Purdue Plans Pricing

2 plans

PLANS

Rate Limits 1

Documented rate limits and quota policies.

Purdue Rate Limits

1 limits

RATE LIMITS

FinOps 1

Cost, billing, and metering signals for API financial operations.

Semantic Vocabularies 1

JSON-LD contexts and semantic vocabularies used across these APIs.

Purdue Context

34 classes · 3 properties

JSON-LD

Spectral Rules 2

Spectral governance rulesets for linting and validating these APIs.

Purdue University API Rules

5 rules · 4 warnings 1 info

SPECTRAL

Purdue University API Rules

6 rules · 3 errors 3 warnings

SPECTRAL

JSON Schema 4

Standalone JSON Schema definitions for this provider's data models.

Course

6 properties

JSON SCHEMA

Meeting

9 properties

JSON SCHEMA

Section

6 properties

JSON SCHEMA

Subject

3 properties

JSON SCHEMA

JSON Structure 2

JSON Structure definitions describing this provider's data shapes.

Purdue Course Structure

6 properties

JSON STRUCTURE

Purdue Section Structure

6 properties

JSON STRUCTURE

Examples 3

Example request and response payloads for these APIs.

Security Posture 1

Authentication, domain security, vulnerability disclosure, and trust-center signals.

Purdue Domain Security

TLSv1.3 · HSTS · DMARC

SECURITY

Agentic Access 1

Recommended x-agentic-access execution contracts for AI agents.

Purdue Agentic Access

20 operations

20 operations · 0 acting

AGENTIC

Resources

Agent Surfaces 1

MCP servers, agent skills, and machine-readable catalogs

Design & Contract 1

Pagination, idempotency, versioning, errors, and events

Build 1

SDKs, sample code, and the tooling you integrate with

Access & Security 1

Authentication, authorization, and security posture

Operate 1

Status, limits, changes, and where to get help

Commercial 2

Pricing, plans, and the legal terms of use

Company 2

The organization behind the API

Other 1

Properties that don't map to a standard resource type

Source (apis.yml)

apis.yml Raw ↑
aid: purdue
name: Purdue University
description: 'Purdue University is a public land-grant research university in West Lafayette, Indiana, United States, ranked
  #99 in the QS World University Rankings 2025. Its public, machine-readable developer footprint is limited and largely community-
  or service-specific rather than a single centralized developer portal. Confirmed public interfaces include the community-built
  Purdue.io OData course-catalog API and the Purdue University Research Repository (PURR) OAI-PMH metadata endpoint. A Purdue
  Libraries API host exists but currently serves only a placeholder page.'
type: Index
accessModel:
  pricing: free
  onboarding: unknown
  trial: false
  try_now: false
  public: false
  label: Free
  confidence: medium
  source:
  - plans
  generated: '2026-07-22'
  method: derived
position: Consumer
access: 3rd-Party
image: https://kinlane-images.s3.amazonaws.com/shared/apis-json/icons/purdue.png
url: https://raw.githubusercontent.com/api-evangelist/purdue/refs/heads/main/apis.yml
tags:
- Education
- Higher Education
- University
- Research
- Open Data
- United States
created: '2026-06-03'
modified: '2026-06-03'
specificationVersion: '0.23'
apis:
- aid: purdue:purr-oaipmh
  name: PURR OAI-PMH Metadata API
  description: The Purdue University Research Repository (PURR) exposes an OAI-PMH endpoint for harvesting research dataset
    metadata, supporting standard verbs (Identify, ListSets, ListMetadataFormats, ListIdentifiers, ListRecords, GetRecord)
    with the oai_dc (Dublin Core) metadata prefix. Confirmed live via the Identify verb.
  humanURL: https://purr.purdue.edu/kb/finduse/oaipmh
  baseURL: https://purr.purdue.edu/oaipmh
  tags:
  - Research
  - Repository
  - OAI-PMH
  - Metadata
  - Open Data
  properties:
  - type: Documentation
    url: https://purr.purdue.edu/kb/finduse/oaipmh
- aid: purdue:purdue-buildings-api
  name: Purdue University Buildings API
  description: The Buildings API from Purdue University — 2 operation(s) for buildings.
  humanURL: https://github.com/Purdue-io/PurdueApi
  baseURL: https://api.purdue.io/odata/
  tags:
  - Buildings
  properties:
  - type: OpenAPI
    url: openapi/purdue-buildings-api-openapi.yml
  - type: Documentation
    url: https://github.com/Purdue-io/PurdueApi
  - type: GitHub
    url: https://github.com/Purdue-io
  - type: JSONSchema
    url: json-schema/purdue-course-schema.json
  - type: JSONSchema
    url: json-schema/purdue-subject-schema.json
  - type: JSONSchema
    url: json-schema/purdue-section-schema.json
  - type: JSONSchema
    url: json-schema/purdue-meeting-schema.json
  - type: JSONStructure
    url: json-structure/purdue-course-structure.json
  - type: JSONStructure
    url: json-structure/purdue-section-structure.json
  - type: Examples
    url: examples/purdue-listCourses-example.json
  - type: Examples
    url: examples/purdue-listSubjects-example.json
  - type: Examples
    url: examples/purdue-listCampuses-example.json
  - type: Rules
    url: rules/purdue-rules.yml
  - type: Vocabulary
    url: vocabulary/purdue-vocabulary.yml
  - type: JSONLD
    url: json-ld/purdue-context.jsonld
- aid: purdue:purdue-campuses-api
  name: Purdue University Campuses API
  description: The Campuses API from Purdue University — 2 operation(s) for campuses.
  humanURL: https://github.com/Purdue-io/PurdueApi
  baseURL: https://api.purdue.io/odata/
  tags:
  - Campuses
  properties:
  - type: OpenAPI
    url: openapi/purdue-campuses-api-openapi.yml
  - type: Documentation
    url: https://github.com/Purdue-io/PurdueApi
  - type: GitHub
    url: https://github.com/Purdue-io
  - type: JSONSchema
    url: json-schema/purdue-course-schema.json
  - type: JSONSchema
    url: json-schema/purdue-subject-schema.json
  - type: JSONSchema
    url: json-schema/purdue-section-schema.json
  - type: JSONSchema
    url: json-schema/purdue-meeting-schema.json
  - type: JSONStructure
    url: json-structure/purdue-course-structure.json
  - type: JSONStructure
    url: json-structure/purdue-section-structure.json
  - type: Examples
    url: examples/purdue-listCourses-example.json
  - type: Examples
    url: examples/purdue-listSubjects-example.json
  - type: Examples
    url: examples/purdue-listCampuses-example.json
  - type: Rules
    url: rules/purdue-rules.yml
  - type: Vocabulary
    url: vocabulary/purdue-vocabulary.yml
  - type: JSONLD
    url: json-ld/purdue-context.jsonld
- aid: purdue:purdue-classes-api
  name: Purdue University Classes API
  description: The Classes API from Purdue University — 2 operation(s) for classes.
  humanURL: https://github.com/Purdue-io/PurdueApi
  baseURL: https://api.purdue.io/odata/
  tags:
  - Classes
  properties:
  - type: OpenAPI
    url: openapi/purdue-classes-api-openapi.yml
  - type: Documentation
    url: https://github.com/Purdue-io/PurdueApi
  - type: GitHub
    url: https://github.com/Purdue-io
  - type: JSONSchema
    url: json-schema/purdue-course-schema.json
  - type: JSONSchema
    url: json-schema/purdue-subject-schema.json
  - type: JSONSchema
    url: json-schema/purdue-section-schema.json
  - type: JSONSchema
    url: json-schema/purdue-meeting-schema.json
  - type: JSONStructure
    url: json-structure/purdue-course-structure.json
  - type: JSONStructure
    url: json-structure/purdue-section-structure.json
  - type: Examples
    url: examples/purdue-listCourses-example.json
  - type: Examples
    url: examples/purdue-listSubjects-example.json
  - type: Examples
    url: examples/purdue-listCampuses-example.json
  - type: Rules
    url: rules/purdue-rules.yml
  - type: Vocabulary
    url: vocabulary/purdue-vocabulary.yml
  - type: JSONLD
    url: json-ld/purdue-context.jsonld
- aid: purdue:purdue-courses-api
  name: Purdue University Courses API
  description: The Courses API from Purdue University — 2 operation(s) for courses.
  humanURL: https://github.com/Purdue-io/PurdueApi
  baseURL: https://api.purdue.io/odata/
  tags:
  - Courses
  properties:
  - type: OpenAPI
    url: openapi/purdue-courses-api-openapi.yml
  - type: Documentation
    url: https://github.com/Purdue-io/PurdueApi
  - type: GitHub
    url: https://github.com/Purdue-io
  - type: JSONSchema
    url: json-schema/purdue-course-schema.json
  - type: JSONSchema
    url: json-schema/purdue-subject-schema.json
  - type: JSONSchema
    url: json-schema/purdue-section-schema.json
  - type: JSONSchema
    url: json-schema/purdue-meeting-schema.json
  - type: JSONStructure
    url: json-structure/purdue-course-structure.json
  - type: JSONStructure
    url: json-structure/purdue-section-structure.json
  - type: Examples
    url: examples/purdue-listCourses-example.json
  - type: Examples
    url: examples/purdue-listSubjects-example.json
  - type: Examples
    url: examples/purdue-listCampuses-example.json
  - type: Rules
    url: rules/purdue-rules.yml
  - type: Vocabulary
    url: vocabulary/purdue-vocabulary.yml
  - type: JSONLD
    url: json-ld/purdue-context.jsonld
- aid: purdue:purdue-instructors-api
  name: Purdue University Instructors API
  description: The Instructors API from Purdue University — 2 operation(s) for instructors.
  humanURL: https://github.com/Purdue-io/PurdueApi
  baseURL: https://api.purdue.io/odata/
  tags:
  - Instructors
  properties:
  - type: OpenAPI
    url: openapi/purdue-instructors-api-openapi.yml
  - type: Documentation
    url: https://github.com/Purdue-io/PurdueApi
  - type: GitHub
    url: https://github.com/Purdue-io
  - type: JSONSchema
    url: json-schema/purdue-course-schema.json
  - type: JSONSchema
    url: json-schema/purdue-subject-schema.json
  - type: JSONSchema
    url: json-schema/purdue-section-schema.json
  - type: JSONSchema
    url: json-schema/purdue-meeting-schema.json
  - type: JSONStructure
    url: json-structure/purdue-course-structure.json
  - type: JSONStructure
    url: json-structure/purdue-section-structure.json
  - type: Examples
    url: examples/purdue-listCourses-example.json
  - type: Examples
    url: examples/purdue-listSubjects-example.json
  - type: Examples
    url: examples/purdue-listCampuses-example.json
  - type: Rules
    url: rules/purdue-rules.yml
  - type: Vocabulary
    url: vocabulary/purdue-vocabulary.yml
  - type: JSONLD
    url: json-ld/purdue-context.jsonld
- aid: purdue:purdue-meetings-api
  name: Purdue University Meetings API
  description: The Meetings API from Purdue University — 2 operation(s) for meetings.
  humanURL: https://github.com/Purdue-io/PurdueApi
  baseURL: https://api.purdue.io/odata/
  tags:
  - Meetings
  properties:
  - type: OpenAPI
    url: openapi/purdue-meetings-api-openapi.yml
  - type: Documentation
    url: https://github.com/Purdue-io/PurdueApi
  - type: GitHub
    url: https://github.com/Purdue-io
  - type: JSONSchema
    url: json-schema/purdue-course-schema.json
  - type: JSONSchema
    url: json-schema/purdue-subject-schema.json
  - type: JSONSchema
    url: json-schema/purdue-section-schema.json
  - type: JSONSchema
    url: json-schema/purdue-meeting-schema.json
  - type: JSONStructure
    url: json-structure/purdue-course-structure.json
  - type: JSONStructure
    url: json-structure/purdue-section-structure.json
  - type: Examples
    url: examples/purdue-listCourses-example.json
  - type: Examples
    url: examples/purdue-listSubjects-example.json
  - type: Examples
    url: examples/purdue-listCampuses-example.json
  - type: Rules
    url: rules/purdue-rules.yml
  - type: Vocabulary
    url: vocabulary/purdue-vocabulary.yml
  - type: JSONLD
    url: json-ld/purdue-context.jsonld
- aid: purdue:purdue-rooms-api
  name: Purdue University Rooms API
  description: The Rooms API from Purdue University — 2 operation(s) for rooms.
  humanURL: https://github.com/Purdue-io/PurdueApi
  baseURL: https://api.purdue.io/odata/
  tags:
  - Rooms
  properties:
  - type: OpenAPI
    url: openapi/purdue-rooms-api-openapi.yml
  - type: Documentation
    url: https://github.com/Purdue-io/PurdueApi
  - type: GitHub
    url: https://github.com/Purdue-io
  - type: JSONSchema
    url: json-schema/purdue-course-schema.json
  - type: JSONSchema
    url: json-schema/purdue-subject-schema.json
  - type: JSONSchema
    url: json-schema/purdue-section-schema.json
  - type: JSONSchema
    url: json-schema/purdue-meeting-schema.json
  - type: JSONStructure
    url: json-structure/purdue-course-structure.json
  - type: JSONStructure
    url: json-structure/purdue-section-structure.json
  - type: Examples
    url: examples/purdue-listCourses-example.json
  - type: Examples
    url: examples/purdue-listSubjects-example.json
  - type: Examples
    url: examples/purdue-listCampuses-example.json
  - type: Rules
    url: rules/purdue-rules.yml
  - type: Vocabulary
    url: vocabulary/purdue-vocabulary.yml
  - type: JSONLD
    url: json-ld/purdue-context.jsonld
- aid: purdue:purdue-sections-api
  name: Purdue University Sections API
  description: The Sections API from Purdue University — 2 operation(s) for sections.
  humanURL: https://github.com/Purdue-io/PurdueApi
  baseURL: https://api.purdue.io/odata/
  tags:
  - Sections
  properties:
  - type: OpenAPI
    url: openapi/purdue-sections-api-openapi.yml
  - type: Documentation
    url: https://github.com/Purdue-io/PurdueApi
  - type: GitHub
    url: https://github.com/Purdue-io
  - type: JSONSchema
    url: json-schema/purdue-course-schema.json
  - type: JSONSchema
    url: json-schema/purdue-subject-schema.json
  - type: JSONSchema
    url: json-schema/purdue-section-schema.json
  - type: JSONSchema
    url: json-schema/purdue-meeting-schema.json
  - type: JSONStructure
    url: json-structure/purdue-course-structure.json
  - type: JSONStructure
    url: json-structure/purdue-section-structure.json
  - type: Examples
    url: examples/purdue-listCourses-example.json
  - type: Examples
    url: examples/purdue-listSubjects-example.json
  - type: Examples
    url: examples/purdue-listCampuses-example.json
  - type: Rules
    url: rules/purdue-rules.yml
  - type: Vocabulary
    url: vocabulary/purdue-vocabulary.yml
  - type: JSONLD
    url: json-ld/purdue-context.jsonld
- aid: purdue:purdue-subjects-api
  name: Purdue University Subjects API
  description: The Subjects API from Purdue University — 2 operation(s) for subjects.
  humanURL: https://github.com/Purdue-io/PurdueApi
  baseURL: https://api.purdue.io/odata/
  tags:
  - Subjects
  properties:
  - type: OpenAPI
    url: openapi/purdue-subjects-api-openapi.yml
  - type: Documentation
    url: https://github.com/Purdue-io/PurdueApi
  - type: GitHub
    url: https://github.com/Purdue-io
  - type: JSONSchema
    url: json-schema/purdue-course-schema.json
  - type: JSONSchema
    url: json-schema/purdue-subject-schema.json
  - type: JSONSchema
    url: json-schema/purdue-section-schema.json
  - type: JSONSchema
    url: json-schema/purdue-meeting-schema.json
  - type: JSONStructure
    url: json-structure/purdue-course-structure.json
  - type: JSONStructure
    url: json-structure/purdue-section-structure.json
  - type: Examples
    url: examples/purdue-listCourses-example.json
  - type: Examples
    url: examples/purdue-listSubjects-example.json
  - type: Examples
    url: examples/purdue-listCampuses-example.json
  - type: Rules
    url: rules/purdue-rules.yml
  - type: Vocabulary
    url: vocabulary/purdue-vocabulary.yml
  - type: JSONLD
    url: json-ld/purdue-context.jsonld
- aid: purdue:purdue-terms-api
  name: Purdue University Terms API
  description: The Terms API from Purdue University — 2 operation(s) for terms.
  humanURL: https://github.com/Purdue-io/PurdueApi
  baseURL: https://api.purdue.io/odata/
  tags:
  - Terms
  properties:
  - type: OpenAPI
    url: openapi/purdue-terms-api-openapi.yml
  - type: Documentation
    url: https://github.com/Purdue-io/PurdueApi
  - type: GitHub
    url: https://github.com/Purdue-io
  - type: JSONSchema
    url: json-schema/purdue-course-schema.json
  - type: JSONSchema
    url: json-schema/purdue-subject-schema.json
  - type: JSONSchema
    url: json-schema/purdue-section-schema.json
  - type: JSONSchema
    url: json-schema/purdue-meeting-schema.json
  - type: JSONStructure
    url: json-structure/purdue-course-structure.json
  - type: JSONStructure
    url: json-structure/purdue-section-structure.json
  - type: Examples
    url: examples/purdue-listCourses-example.json
  - type: Examples
    url: examples/purdue-listSubjects-example.json
  - type: Examples
    url: examples/purdue-listCampuses-example.json
  - type: Rules
    url: rules/purdue-rules.yml
  - type: Vocabulary
    url: vocabulary/purdue-vocabulary.yml
  - type: JSONLD
    url: json-ld/purdue-context.jsonld
common:
- type: AgenticAccess
  url: agentic-access/purdue-agentic-access.yml
- type: DomainSecurity
  url: security/purdue-domain-security.yml
- type: Website
  url: https://www.purdue.edu/
- type: GitHub
  url: https://github.com/Purdue
- type: LinkedIn
  url: https://www.linkedin.com/school/purdue-university/
- type: Plans
  url: plans/purdue-plans-pricing.yml
- type: RateLimits
  url: rate-limits/purdue-rate-limits.yml
- type: FinOps
  url: finops/purdue-finops.yml
- type: Review
  url: review.yml
- type: JSONLD
  url: json-ld/purdue-context.jsonld
maintainers:
- FN: Kin Lane
  email: kin@apievangelist.com