CRCRED

API Reference

CRED API · 1.0.0-pilot · OpenAPI 3.1

openapi.json
The Course Repository & Equivalency Database (CRED) API provides programmatic access to national course and transfer equivalency data. Core data is available as a public good; write access requires contributor authorization. Design notes: - Institutions are keyed by IPEDS unit IDs. - Course records carry CIP 2020 classification codes (CEDS-aligned). - The course/section model aligns with the 1EdTech Edu-API specification; equivalency records extend it with provenance and versioning. - Records are versioned immutably; consumers receive the current version by default.

Institutions

Participating institutions, keyed by IPEDS ID

GET/api/v1/institutionsList institutions

Parameters

  • statequery · string
  • typequery · string · community_college | four_year_public | four_year_private
  • sourcequery · string · acadeum | ad_astra | direct
  • qquery · stringFree-text search on name/city
  • limitquery · integer
  • offsetquery · integer
GET/api/v1/institutions/{id}Get an institution

Parameters

  • idpath · required · string

Courses

Normalized course records

GET/api/v1/coursesList courses

Parameters

  • institutionquery · string
  • cipquery · stringCIP 2020 code filter
  • qquery · string
  • limitquery · integer
  • offsetquery · integer
POST/api/v1/coursesBulk upsert courses

Accepts a single course object or an array of up to 500. Re-upserting an existing course increments its version and emits `course.updated`.

GET/api/v1/courses/{id}Get a course

Parameters

  • idpath · required · string

Equivalencies

Versioned transfer equivalency decisions with provenance

GET/api/v1/equivalenciesList equivalencies

Parameters

  • sourceCoursequery · string
  • targetInstitutionquery · string
  • statusquery · string · accepted | pending | conflict
  • provenancequery · string · acadeum | ad_astra | direct
  • expandquery · string · courseSet to `course` to embed source course and institution records
  • limitquery · integer
  • offsetquery · integer
POST/api/v1/equivalenciesCreate an equivalency

Creates a new equivalency record (v1) and emits `equivalency.created` to subscribed webhooks.

GET/api/v1/equivalencies/{id}Get an equivalency

Parameters

  • idpath · required · string
GET/api/v1/equivalencies/{id}/versionsGet version history

Immutable snapshots of every prior state of the record, with change notes and actors.

Parameters

  • idpath · required · string

Datasets

Published dataset versions from contributing organizations

GET/api/v1/datasetsList dataset versions
POST/api/v1/datasetsPublish a dataset version

Records a published dataset version and emits `dataset.published`.

GET/api/v1/datasets/{id}Get a dataset version with validation issues

Parameters

  • idpath · required · string

Webhooks

Event subscriptions with signed deliveries

GET/api/v1/webhooksList webhook endpoints
POST/api/v1/webhooksRegister a webhook endpoint

The signing secret is returned exactly once, at creation.

GET/api/v1/webhooks/{id}/deliveriesList recent deliveries

Parameters

  • idpath · required · string
POST/api/v1/webhooks/{id}/testSend a test event

Parameters

  • idpath · required · string

Exports

Bulk data export

GET/api/v1/exportsBulk export

Parameters

  • resourcequery · string · equivalencies | courses | institutions
  • formatquery · string · csv | json

Keys

API key management

GET/api/v1/keysList API keys
POST/api/v1/keysCreate an API key

The full key is returned exactly once.

DELETE/api/v1/keys/{id}Revoke an API key

Parameters

  • idpath · required · string

Webhook Events

Outbound events delivered to registered endpoints. See Webhooks & Events for signature verification.

POSTequivalency.createdNew equivalency published

Sent when a new equivalency record is published. Verify the `X-CRED-Signature` header (HMAC-SHA256 over `{timestamp}.{body}` with your endpoint secret).

POSTequivalency.updatedEquivalency changed (new version recorded)
POSTcourse.updatedCourse record changed
POSTdataset.publishedDataset version published