Cardiff University Courses API
Course records, descriptions and structure for taught programmes. 4 operation(s), from Cardiff's own CoursesApi contract on the api.data.cardiff.ac.uk gateway (base path /courses/v1).
Course records, descriptions and structure for taught programmes. 4 operation(s), from Cardiff's own CoursesApi contract on the api.data.cardiff.ac.uk gateway (base path /courses/v1).
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/cardiff-courses-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
description: The Courses API provides a simple interface for applications that want to retrieve lists of courses or information relating to a specific course within Cardiff University. Using the Courses API, clients can filter courses by school, language, level and year.
version: v1
title: CoursesApi Courses API
termsOfService: http://www.cardiff.ac.uk/terms/
contact:
name: integration@cardiff.ac.uk
x-operator: institution
x-source-contract: openapi/_original/cardiff-courses.yaml
x-rebased:
date: '2026-08-30'
rebase-method: derived
source: openapi/_original/cardiff-courses.yaml
note: >-
Repaired by the API Evangelist university pipeline. The refine-openapis per-tag split
had carried the CoursesApi title, description and base path onto this document; its
paths come from cardiff-courses.yaml. Title, description and servers[] re-based from that parent.
Was: title "CoursesApi Assessments Courses API", servers[0] "https://api.data.cardiff.ac.uk/courses/v1".
license:
name: Apache 2.0
url: http://www.apache.org/licenses/LICENSE-2.0.html
servers:
- url: https://api.data.cardiff.ac.uk/courses/v1
security:
- default: []
tags:
- name: Courses
paths:
/{code}:
get:
tags:
- Courses
summary: Returns specified course.
description: This endpoint returns the course with the specified course code.
parameters:
- name: code
in: path
description: Specifies which course to return
required: true
schema:
type: string
- name: year
in: query
description: Academic year, used to filter which course details are returned. Defaults to current year
required: false
schema:
type: string
- name: lang
in: query
description: Returns the course in specified language. Available options are english or welsh.
required: false
schema:
type: string
responses:
'200':
description: Returns specified course
content:
application/json:
schema:
required:
- data
- meta
properties:
data:
type: object
properties:
course:
type: array
items:
type: object
properties:
code:
type: string
accreditations:
type: array
items:
type: object
properties:
website:
type: string
name:
type: string
posCode:
type: string
accURL:
type: string
kisId:
type: string
subjects:
type: array
items:
type: object
properties:
code:
type: string
name:
type: string
posCode:
type: string
length:
type: string
staff:
type: array
items:
type: object
properties:
role:
type: string
name:
type: string
posCode:
type: string
staffId:
type: string
descriptions:
type: array
items:
type: object
properties:
code:
type: string
posCode:
type: string
text:
type: string
title:
type: string
applyPoints:
type: array
items:
type: object
properties:
year:
type: string
link:
type: string
posCode:
type: string
startDate:
type: string
distanceLearn:
type: string
market:
type: object
properties:
code:
type: string
name:
type: string
qualification:
type: object
properties:
code:
type: string
name:
type: string
schools:
type: array
items:
type: object
properties:
flag:
type: string
code:
type: string
name:
type: string
posCode:
type: string
name:
type: string
lengthUnit:
type: string
externalReturnFormat:
type: string
nextIntake:
type: string
entryMethod:
type: string
attendance:
type: string
group:
type: object
properties:
code:
type: string
name:
type: string
required:
- code
- name
meta:
$ref: '#/components/schemas/Meta'
security:
- default: []
x-auth-type: Application & Application User
/{code}/descriptions:
get:
tags:
- Courses
summary: Returns descriptions for the course.
description: This endpoint returns the descriptions for the specified course.
parameters:
- name: code
in: path
description: Specifies which course to return
required: true
schema:
type: string
- name: year
in: query
description: Academic year, used to return the course structure for the specified year. Defaults to current year
required: false
schema:
type: string
- name: lang
in: query
description: Returns the course descriptions in the specified language. Available options are english or welsh.
required: false
schema:
type: string
responses:
'200':
description: Returns descriptions for the course
content:
application/json:
schema:
required:
- data
- meta
properties:
data:
type: object
properties:
descriptions:
type: array
items:
type: object
properties:
code:
type: string
posCode:
type: string
text:
type: string
title:
type: string
required:
- posCode
- title
meta:
$ref: '#/components/schemas/Meta'
security:
- default: []
x-auth-type: Application & Application User
/{code}/structure:
get:
tags:
- Courses
summary: Returns the module structure for a course.
description: This endpoint returns the module structure for the specified course code.
parameters:
- name: code
in: path
description: Specifies which course to return
required: true
schema:
type: string
- name: year
in: query
description: Academic year, used to return the course structure for the specified year. Defaults to current year
required: false
schema:
type: string
responses:
'200':
description: Returns the module structure for a course
content:
application/json:
schema:
required:
- data
- meta
properties:
data:
type: object
properties:
blocks:
type: array
items:
type: object
properties:
blockCode:
type: string
sandwichYear:
type: string
length:
type: string
parts:
type: array
items:
type: object
properties:
coreModules:
type: array
items:
type: object
properties:
reqtCode:
type: string
code:
type: string
level:
type: string
credits:
type: string
name:
type: string
partCode:
type: string
occurrence:
type: string
endDate:
type: string
freeStanding:
type: string
yosCode:
type: string
proportionTeachInWelsh:
type: string
optionalModules:
type: array
items:
type: object
properties:
blockCode:
type: string
reqtCode:
type: string
code:
type: string
minCredits:
type: string
name:
type: string
modules:
type: array
items:
type: object
properties:
code:
type: string
level:
type: string
credits:
type: string
name:
type: string
maxCredits:
type: string
startDate:
type: string
programmeYear:
type: string
tutionFees:
type: object
properties:
international:
type: object
properties:
notes:
type: string
fee:
type: integer
deposit:
type: integer
home:
type: object
properties:
notes:
type: string
fee:
type: integer
deposit:
type: integer
type:
type: string
required:
- programmeYear
meta:
$ref: '#/components/schemas/Meta'
security:
- default: []
x-auth-type: Application & Application User
/:
get:
tags:
- Courses
summary: List all courses
description: The root endpoint returns a list of courses available within the University.
parameters:
- name: moa
in: query
description: Mode of Attendance filter e.g. Full-time, Part-time
required: false
schema:
type: string
- name: school
in: query
description: Returns modules linked to the specified school code e.g. SOCSI (Social Sciences)
required: false
schema:
type: string
- name: group
in: query
description: Returns courses linked to the specified course group code e.g. Z001 (Accounting)
required: false
schema:
type: string
- name: qual
in: query
description: Returns courses linked to the specified qualification code e.g. BLA (Bachelor of Laws)
required: false
schema:
type: string
- name: distance
in: query
description: Can be used to return distance learning courses. Can be either Y or N.
required: false
schema:
type: string
- name: lang
in: query
description: Returns the courses in specified language. Available options are english or welsh.
required: false
schema:
type: string
- name: type
in: query
description: 'Filters courses by programme type. Accepted values: P (Postgraduate), R (Research) or U (Undergraduate). (Note: This parameter is case sensitive.)'
required: false
schema:
type: string
- name: limit
in: query
description: Number of courses to return
required: false
schema:
type: integer
default: 50
- name: offset
in: query
description: Offset of courses to return
required: false
schema:
type: integer
- name: sort
in: query
description: Sorts the data by column name, use "-" for descending
required: false
schema:
type: string
responses:
'200':
description: List all courses
content:
application/json:
schema:
required:
- data
- meta
properties:
data:
type: object
properties:
courses:
type: array
items:
type: object
properties:
code:
type: string
accreditations:
type: array
items:
type: object
properties:
website:
type: string
name:
type: string
posCode:
type: string
accURL:
type: string
kisId:
type: string
subjects:
type: array
items:
type: object
properties:
code:
type: string
name:
type: string
posCode:
type: string
length:
type: string
staff:
type: array
items:
type: object
properties:
role:
type: string
name:
type: string
posCode:
type: string
staffId:
type: string
applyPoints:
type: array
items:
type: object
properties:
year:
type: string
link:
type: string
posCode:
type: string
startDate:
type: string
distanceLearn:
type: string
market:
type: object
properties:
code:
type: string
name:
type: string
qualification:
type: object
properties:
code:
type: string
name:
type: string
schools:
type: array
items:
type: object
properties:
flag:
type: string
code:
type: string
name:
type: string
posCode:
type: string
name:
type: string
lengthUnit:
type: string
externalReturnFormat:
type: string
nextIntake:
type: string
entryMethod:
type: string
attendance:
type: string
group:
type: object
properties:
code:
type: string
name:
type: string
required:
- code
- name
meta:
$ref: '#/components/schemas/Meta'
security:
- default: []
x-auth-type: Application
components:
schemas:
Meta:
type: object
required:
- code
- contentType
- count
- errorStatus
properties:
code:
type: integer
format: int32
errorMessage:
type: object
properties:
code:
type: string
message:
type: string
count:
type: integer
format: int32
errorStatus:
type: boolean
contentType:
type: string
title: meta
securitySchemes:
default:
type: oauth2
flows:
implicit:
scopes:
clearing: Allows users to see clearing data.
authorizationUrl: https://api.data.cardiff.ac.uk/authorize