View on GitHub

CULPA API

The RESTful API to access CULPA data.

Download this project as a .zip file Download this project as a tar.gz file

Welcome to the CULPA API. CULPA is the Columbia Underground Listing of Professor Ability. This API provides information about professors, courses, departments, and reviews. The endpoints, as well as the response formats, are described below.

The API is hosted and available at http://api.culpa.info

Courses /courses

Course by ID - /courses/course_id/<course_id>

Courses by Search - /courses/search/<search_query>

Courses by Department - /courses/department_id/<department_id>

Courses by Professor - /courses/professor_id/<professor_id>

Response Format

courses - An array of course objects that match the query.

    department_id - An array of ids representing the departments to which a course belongs.

    id - The id of the course.

    name - The name of the course.

    number - The course directory number.

status - Either success or failure depending on the result of the query.

Sample Response

{
    "courses": [
        {
            "department_ids": [
                7
            ],
            "id": 4,
            "name": "Data Structures in Java",
            "number": "COMS W3134"
        }
    ],
    "status": "success"
}

Departments /departments

Department by ID - /departments/department_id/<department_id>

Departments by Search - /departments/search/<search_query>

Departments by Professor - /departments/professor_id/<professor_id>

Response Format

departments - An array of department objects that match the query.

    id - The id of the department.

    name - The name of the department.

    nickname - A shortened version of the name of the department.

status - Either success or failure depending on the result of the query.

Sample Response

{
    "departments": [
        {
            "id": 7,
            "name": "Computer Science",
            "nickname": "comp sci"
        }
    ],
    "status": "success"
}

Professors /professors

Professor by ID - /professors/professor_id/<professor_id>

Professors by Search - /professors/search/<search_query>

Professors by Department - /professors/department_id/<department_id>

Professors by Course - /professors/course_id/<course_id>

Silver Nugget Professors - /professors/silver_nuggets

Gold Nugget Professors - /professors/gold_nuggets

Response Format

professors - An array of professor objects that match the query.

    first_name - The first name of the professor.

    id - The id of the professor.

    last_name - The last name of the professor.

    middle_name - The middle name of the professor. Quite often either blank or null.

    nugget - The CULPA nugget the professor has, either "Gold", "Silver", or "None".

status - Either success or failure depending on the result of the query.

Sample Response

{
    "professors": [
        {
            "first_name": "Anargyros",
            "id": 2762,
            "last_name": "Papageorgiou",
            "middle_name": "",
            "nugget": "Gold"
        }
    ],
    "status": "success"
}

Reviews /reviews

Review by ID - /reviews/review_id/<review_id>

Reviews by Professor - /reviews/professor_id/<professor_id>

Reviews by Course - /reviews/course_id/<course_id>

Response Format

reviews - An array of review objects that match the query

    course_ids - An array of ids of courses associated with the review.

    created - The time and date at which the review was created.

    id - The id of the review.

    professor_ids - An array of ids of professors associated with the review.

    review_text - The body text of the review.

    workload_text - The workload text of the review.

status - Either success or failure depending on the result of the query.

Sample Response

{
    "reviews": [
        {
            "course_ids": [
                995
            ],
            "created": "Thu, 09 May 2002 00:00:00 GMT",
            "id": 2540,
            "professor_ids": [
                42
            ],
            "review_text": "John Kender is a very good teacher who makes every lecture interesting and worthwhile. I definitely recommend taking a class with him if possible. His only fault is that he will speak more and more softly as a sentence progresses, making it impossible to understand what he is saying.",
            "workload_text": "Problem Sets every other week which will require several hours of continuous work"
        }
    ],
    "status": "success"
}