Clubfair Technologies

Undergraduate Course API

Loading...

Pricing

This API consumes credits, and different endpoints consume different amounts of credits. You are billed for the amount of credits you use.

CreditsCost
100$0.01

Welcome! This API provides access to over 13 years of continously available Undergraduate course data at Vanderbilt University. It has been scraped and preprocessed allowing you to focus less on data warehousing.

Getting Started

  1. Log in with your Google account
  2. Sign up for billing

    We are unable to offer free access at this time. This API is relatively expensive to run, particularly when executing search requests.

  3. Retrieve your API key

Making Requests

  • API key must be passed as a Bearer token in the Authorization header
  • All requests must be pointed at our production domain of

    https://courses.clubfair.io

  • You are NOT billed for failed or malformed requests

const endpoint = "https://courses.clubfair.io/v1/course"

const authHeader = "Bearer {API TOKEN HERE}"

const res = await fetch(endpoint, { method: "POST", headers: {authorization: authHeader, "Content-Type": "application/json"}, body: JSON.stringify({ id: "CS 2201" }) })

Documentation

Endpoints

/v1/attribute

POST

Fetch a specific attribute by its ID

Response

API Response<Attribute>

Cost

1 Credit

Parameters

id

string

Attribute ID

/v1/attribute/courses

POST

Fetch a list of all the courses tagged with a given attribute

Response

API Response<Course[]>

Cost

1 Credit

Parameters

attribute_id

string

Attribute ID

active

boolean

Optional

Filter to only active or inactive courses

pagination

Pagination

Optional

Paginate the results

/v1/course

POST

Fetch a specific course by its ID

Cost

1 Credit

Parameters

id

string

Course ID

/v1/professor

POST

Fetch a specific professor by their ID

Cost

1 Credit

Parameters

id

string

Professor ID

/v1/professor/sections

POST

Fetch a list of all the sections taught by a Professor

Cost

1 Credit

Parameters

id

string

Professor ID

pagination

Pagination

Optional

Paginate the results

/v1/professor/sections/course

POST

Fetch a list of all the sections of a specific course taught by a Professor

Cost

1 Credit

Parameters

professor_id

string

Professor ID

course_id

string

Course ID

pagination

Pagination

Optional

Paginate the results

/v1/section

POST

Fetch a specific professor by their ID

Cost

1 Credit

Parameters

id

string

Section ID

/v1/subject

POST

Fetch a specific professor by their ID

Cost

1 Credit

Parameters

id

string

Subject ID

/v1/subjects

POST

Fetch a list of available subjects

Cost

1 Credit

Parameters

pagination

Pagination

Optional

Paginate the results

/v1/subject/courses

POST

Fetch a list of courses available for a given subject

Response

API Response<Course[]>

Cost

1 Credit

Parameters

subject_id

string

Subject ID

active

boolean

Optional

Filter to only active or inactive courses

pagination

Pagination

Optional

Paginate the results

/v1/term

POST

Fetch a specific professor by their ID

Cost

1 Credit

Parameters

id

string

Term ID

/v1/terms

POST

Fetch a list of available terms

Response

API Response<Term[]>

Cost

1 Credit

Parameters

pagination

Pagination

Optional

Paginate the results

/v1/term/courses

POST

Fetch a list of courses listed in a given term

Response

API Response<Course[]>

Cost

1 Credit

Parameters

term_id

string

Term ID

/v1/term/course/sections

POST

Fetch a list of Sections available for a course in a given term

Cost

1 Credit

Parameters

term_id

string

Term ID

course_id

string

Course ID

pagination

Pagination

Optional

Paginate the results

/v1/search/courses

POST

Searches for specific Courses given a set of criteria

Response

API Response<Course[]>

Cost

3 Credits

Parameters

query

string

The search query

active

boolean

Optional

Filter to active or inactive courses

term_ids

string[]

Optional

Filter to courses from a set of terms

subject_ids

string[]

Optional

Filter to courses from a set of subjects

attribute_ids

string[]

Optional

Filter to courses from a set of attributes

number

dictionary

Optional

Filter courses by their number

eq

number

Optional

Search for a specific number

min

number

Optional

Search for course numbers greater than or equal

max

number

Optional

Search for course numbers less than or equal

pagination

Pagination

Optional

Paginate the results

Data Types

Attribute

Attributes are labels that the University has placed upon a course. These may include AXLE qualifications.

Fields

$id

string

Unique identifier for the course

name

string

A human-readable name for the attribute

Course

A course offering about a specific topic at the University, identifiable by its class code e.g. CS 2201. Courses can be either 'Single' or 'Umbrella' type. Single courses are self contained. Umbrella courses, like Special Topics courses, are categorized under a single course number but contain a variety of 'Subcourses' with different names and topics.

Fields

$id

string

Unique identifier for the course

course_type

'single' or 'umbrella'

The type of this course

name

string

Human-readable course name, e.g. Principles of Software Engineering

number

integer

Integer representation of the course number, e.g. 2201

A reference to the Subject of this course

subcourses

Reference<Course>[]

Umbrella

A list of references to the subcourses within the Umbrella course

description

boolean

Single

Whether this course has been listed at least once in the past two years

parent_course

Reference<Course>

Optional
Single

A reference to this course's parent course, if this course is contained within an Umbrella course

active

boolean

Single

Whether this course has been listed at least once in the past two years

hours

number

Optional
Single

The number of credit hours granted by the course

format

string

Single

The format of the course, e.g. Seminar or Lecture

school

string

Single

The school to which this course belongs, e.g. School of Engineering

terms

Reference<Term>[]

Single

References to the Terms in which the course is available

attributes

Reference<Attribute>[]

Single

The attributes placed upon the course e.g. AXLE Math and Natural Science

Professor

Professors are listings for a specific instructor

Fields

$id

string

Unique identifier for the professor

name

string

A human-readable name for the professor

subjects

Reference<Professor>[]

Subjects that the professor has taught

courses

Reference<Course>[]

Courses that the professor has taught

Section

An individual listing of a course, listed in a given semester with specific professors

Fields

$id

string

Unique identifier for the section

section_number

string

The numerical ID for this section in Your Enrollment Services

notes

string

Optional

Notes for the specific section

The Course to which this Section belongs

The Term in which this Section was listed

professors

Reference<Professor>[]

A list of references to the Professors teaching this section

The Term in which this Section was listed

enrollment

dictionary

Optional

A map containing details of student enrollment in the course

enrolled

number

The number of enrolled students

seats

number

The number of available seats

waitlist_enrolled

number

The number of students on the waitlist

waitlist_seats

number

The number of seats available on the waitlist

bookstore_url

string

Optional

A URL pointing to the bookstore page for this section

last_updated

ISO string

Optional

A timestamp for the last time this Section was scraped

Subject

A subject of teaching within the school.

Fields

$id

string

Unique identifier for the subject

name

string

A human-readable name for the subject

Term

A semester-like object

Fields

$id

string

Unique identifier for the subject

name

string

A human-readable name for the subject

term_type

'spring' or 'fall' or 'summer'

The type of term

appx_start

ISO string

An estimate of roughly when this term started

appx_end

ISO string

An estimate of roughly when this term ended

Reference

A utility type referencing an instance of another Type. Can be used to resolve the object directly using the resolveRef API endpoint

Fields

$id

string

Unique identifier for the referenced object

$ref

string

A string combining the object's identifier and type

API Response

The standard structure of an API endpoint response

Fields

data

any

Optional

The requested content

error

dictionary

Optional

The requested content

code

string

An error code

message

string

A descriptive message for the error

pagination

dictionary

Array endpoints

References the pagination state of the query

page

number

Current page of the returned data

page_size

number

Size of a page

page_count

number

Number of pages available in the current request

results_count

number

Total number of unique results in the current request

performance

dictionary

Overview of the request performance

timestamp

number

When the request was received

duration

number

How long the request took in milliseconds

usage

dictionary

Overview of the request billing usage

credits

number

How many credits the request took to complete

Getting Started

Making Requests

Endpoints

/v1/attribute/v1/attribute/courses/v1/course/v1/professor/v1/professor/sections/v1/professor/sections/course/v1/section/v1/subject/v1/subjects/v1/subject/courses/v1/term/v1/terms/v1/term/courses/v1/term/course/sections/v1/search/courses

Data Types