API - Syllabus Content

API - Syllabus Content


FYI: All lines within code blocks are numbered, regardless of whether there is more than one line of code provided.

An API is available to retrieve the content, permissions, and metadata related to syllabi. This is helpful for integrating Concourse with other systems to support applications like outcomes analysis, compliance reporting, and schedule notifications.

This article covers documentation related to the initial version (v0) of the syllabus content API.

Request

To retrieve syllabus JSON for a course syllabus, first see Retrieval under the API - General Usage article.

For the course_info operation, you can provide any course or external ID. You must be a system administrator to access any course JSON. For example:

  1. /api?version=0&operation=course_info&external_id=ACCT_101_SPR_2025

or

  1. /api?version=0&operation=course_info&course_id=3707

Requests can also be made programmatically by supplying your API key in the X-AUTH-KEY request header, providing your root domain, and appending either of the aforementioned paths.

Response

This API produces output in a JSON format. The nested structure of syllabus items lends itself nicely to this particular output. Below is a formatted excerpt of what you might find when retrieving JSON for a course.

  1. {  
  2.    "id":"307",
  3.    "title":"Managerial Accounting Template",
  4.    "subject":"ACCT",
  5.    "number":"221",
  6.    "instructor":null,
  7.    "delivery_method":"Online",
  8.    "session":null,
  9.    "year":null,
  10.    "credits":"3.0",
  11.    "start_date":1530417600,
  12.    "end_date":1561928400,
  13.    "timezone":"America/Chicago",
  14.    "last_modified_date":1564693200,
  15.    "is_template":true,
  16.    "is_structured":true,
  17.    "is_marked_for_deletion":false,
  18.    "external_id":"ACCT221_MASTER",
  19.    "department":{  
  20.       "name":"Accounting and Economics",
  21.       "external_id":"ACEC"
  22.    },
  23.    "campus":{  
  24.       "name":"Upper Springfield",
  25.       "external_id":"MAIN"
  26.    },
  27.    "sections":[ 
  28.    ],
  29.    "syllabus":{  
  30.       "id":"307",
  31.       "pretty_name":"Syllabus",
  32.       "fields":{  
  33.          "notes":null,
  34.          "comments":null
  35.       },
  36.       "is_locked":false,
  37.       "is_linked":false,
  38.       "children":[ 
  39.         {  
  40.           "id":"193",
  41.           "pretty_name":"Course Description",
  42.          "fields":{  
  43.             "description":"<p>A study of the fundamentals of managerial accounting with an emphasis on financial statement analysis, cost accounting measurement systems, cost-volume-profit analysis, managerial decision-making concepts, operational budgeting, standard cost systems and capital budgeting.</p>",
  44.             "requisites":"<p>ACCT 123</p>",
  45.             "notes":null,
  46.             "comments":null
  47.          },
  48.          "is_locked":false,
  49.          "is_linked":false,
  50.          "children":[ 
  51.          ],
  52.          "permissions":{  
  53.             "Assistants":"Edit",
  54.             "Developers":"Edit",
  55.             "Guests":"View",
  56.             "Instructors":"View",
  57.             "Managers":"Edit",
  58.             "Public":"View",
  59.             "Students":"View"
  60.          }
  61.       },
  62.       "permissions":{  
  63.          "Assistants":"Edit",
  64.          "Developers":"Edit",
  65.          "Guests":"View",
  66.          "Instructors":"Edit",
  67.          "Managers":"Edit",
  68.          "Public":"View",
  69.          "Students":"View"
  70.       }
  71.    }
  72. }

Syllabus Content

All syllabus content will be represented within a series of objects with name-value pairs that conform to the JavaScript Object Notation (JSON) standard. The pretty_name within the object is what is named in the system (e.g. Course Description), though not necessarily on the syllabus itself (e.g. Course Policy Entry).

All fields associated with the item will be represented, regardless of whether they have content entered. Further, since much of the entry on a syllabus is HTML, you will want to pay particular attention to the need for JSON escaping. For example <td colspan="1"> will be represented as <td colspan=\"1\"> since double quotes are replaced with \".

Additional attributes denote whether the item is locked or linked, and last whether the item has any children, which if so, will then start the object notation all over again.

Dates and times adhere to the Unix format.

Ordering

There is not a separate attribute denoting the sequencing of items on a syllabus. This is implicit to the order of the objects within the children array. Therefore, if you saw the following, you would expect that the Late Assignment policy is shown before the Add/Drop policy on the syllabus.

  1. ...
  2. "children":[ 
  3.       {
  4.          "id":2942,
  5.          "pretty_name":"Institutional Policy Entry",
  6.          "fields":{  
  7.             "type":"Late Assignment",
  8.             "details":"<p>Course Assignments, including discussion boards...</p>",
  9.             "notes":null,
  10.             "comments":null,
  11.          },
  12.          "is_locked":false,
  13.          "is_linked":true,
  14.          "children":[ ]
  15.       },
  16.       {
  17.          "id":3031,
  18.          "pretty_name":"Institutional Policy Entry",
  19.          "fields":{  
  20.             "type":"Add/Drop",
  21.             "details":"<p>The add/drop policy is such that...</p>",
  22.             "notes":null,
  23.             "comments":null,
  24.          },
  25.          "is_locked":false,
  26.          "is_linked":true,
  27.          "children":[ ]
  28.       }
  29.    ],
  30. ...

Permissions

Group permissions for the syllabus and all item categories are included with each item object. Please note that the JSON file itself will include all item content regardless of group permissions. Therefore, if applicable to your use case, you must interpret whether the group for the given item (or its parent or grandparent in the case of sub-items and sub-sub-items) would have access to the item and at what level.

Comments will also be included for each item. In the Concourse interface these are only visible to those editing a syllabus, so be sure to not include this information in applications for Groups where the Syllabus permission is set to View or None.

Metadata

Select course metadata name-value pairs are included in each JSON file. These are technically not part of the syllabus content itself, but are often helpful in understanding details about the course, such as the title, subject code and number, and in what part of the organization the course falls.


    • Related Articles

    • API - Syllabus Changes

      FYI: All lines within code blocks are numbered, regardless of whether there is more than one line of code provided. An API is available to retrieve statistics related to edits made to syllabi. This is helpful for integrating Concourse with other ...
    • API - Syllabus Access

      FYI: All lines within code blocks are numbered, regardless of whether there is more than one line of code provided. An API is available to retrieve statistics related to views of syllabi. This is helpful for integrating Concourse with other systems ...
    • API - General Usage

      FYI: All lines within code blocks are numbered, regardless of whether there is more than one line of code provided. An API is available to retrieve certain data stored by Concourse. This article covers documentation related to the initial version ...
    • Syllabus Access

      Syllabus Access is a tool that provides insight into syllabus views. This tool is supported by an API and two new reports available in the Report Center. How to Use Syllabus Access Open a syllabus and click on the Users tab (it really is that ...
    • Structured Syllabus (Template) Explained

      A structured syllabus is a syllabus where content is organized according to a data model that explicitly understands the meaning of that data. In other words, as opposed to a "flat" syllabus authored in a tool like Microsoft Word, a structured ...