Course schema

info #

title

required

name

The title of the course.

code

courseCode

The identifier for the Course used by the course provider (e.g. CS101 or 6.001).

description

required

description

A description of the course. Display limit of 60 characters.

publishers

publisher

The organization that publishes the source content of the course.
You can select from a dropdown of available business, organizations and persons, or you can right click on the field and enter a text value or a WikiData reference.

providers

required

provider

The organization that provides the course.

language

recommended

inLanguage

The main language the Course is offered in.

other languages

recommended

availableLanguage

Subtitles, closed captions, or other languages the course is offered in.

published

datePublished

The date that the course was first published.

course #

Educational Level

recommended

educationalLevel

The target education level for the course.

  • Beginner: No prior knowledge is needed to understand the content
  • Intermediate: Some knowledge might be needed to understand the content
  • Advanced: This content is targeted towards advanced learners that have prior knowledge in the topic

Requirements

recommended

coursePrerequisites

Any prior knowledge that is needed for the Course. May be completion of other Courses or textual descriptions like “Understanding of basic Algebra concepts”.

credential awarded

recommended

educationalCredentialAwarded

A description of the qualification, award, certificate, diploma or other educational credential awarded as a consequence of successful completion of this course.

name

recommended

name

The name of the award.

url

recommended

url

The link to the award page.

category

recommended

credentialCategory

The type of award the user will receive.

  • Certificate : Award verifying the user’s successful completion of the course or program.
  • Certification : Official credential that requires an exam or attests that the user has achieved competency.

prices

recommended

offers

If there’s an extra charge to earn this certificate, add that to this price property.

Teaches

recommended

teaches

The items a person can learn in this course.

About

recommended

about

Describes the skills that the user will develop by taking the course.

total number of students

recommended

totalHistoricalEnrollment

The total number of students that have enrolled in the history of the course.

syllabus #

Syllabus Sections

recommended

syllabusSections

Syllabus entities that lay out what each section of the overall course will cover.

name

recommended

name

The name of the course module.

description

recommended

description

A description of what the module is about.

time required

recommended

timeRequired

Duration of the module

course instances #

Instances

required

hasCourseInstance

Every course must have at least one course instance with information detailing the course offering.

course mode

required

courseMode

The medium through which the course will be delivered.

  • Online
  • Onsite
  • Blended

location

recommended

location

The name or address (or both) of the physical location where the course will be taught.

This property applies only on Onsite or Blended courses.

Only one of schedule or workload properties is required.
We recommend the schedule property if you want to highlight pacing (for example, 4 hours per week), or start and end dates. Otherwise, workload works for most cases.

schedule

required

courseSchedule

Information about how long the course takes the average user to complete, given a suggested pacing. Include start and end dates for courses that are on a fixed timeline.

duration

required

duration

The suggested pacing for how long the average user can expect to spend. For example, if the frequency is monthly and the duration is 5 Hours, the user should expect to spend 5 hours per month.

repeat count

required

repeatCount

The numerical value for how long the course lasts for. For example, if the frequency is monthly and the repeat count is 4, the course lasts for 4 months.

frequency

required

repeatFrequency

The duration and repeatCount properties are relative to this field.

start date

recommended

startDate

The start date for the course.

end date

recommended

endDate

The end date for the course.

workload

required

courseWorkload

This field represents the total time to watch all videos and complete all assignments and exams for the course.

Instructors

recommended

instructor

Information about the instructors for the course.

Images

recommended

image

Images about this course instance. Use images that are relevant to the course, rather than logos or captions.

course program #

A collection of child courses. If your web page is a course program, you must include at least one part.

Parts

required for Course Program

hasPart

The list of child courses that are a part of this program.

pricing #

Prices

required

offers

Information about the total price to complete the course, including service fees.

  • Don’t list a price that is only eligible for some users (for example, 20% off for first time users).
  • Don’t include extra certificate fees in this field. If there’s an extra charge to earn a certificate, add that to the Credential Awarded property.

category

required

category

The pricing category of the course.

  • Free : All lectures, assignments, and tests must be available without cost for all users. The entire course can be completed without cost.
  • Partially Free : More than half of the course can be completed for free (for example, all lectures are free of charge, but assignments are paid).
  • Subscription : The user must be a subscriber or paid member in order to complete the entire course.
  • Paid : The user must pay to complete the course.

price

recommended

price

The numerical price of the course.

currency

recommended

priceCurrency

The currency of the price of the course.

media #

Images

recommended

image

Images about the course.

Video

recommended

video

Videos about the course.

reviews #

reviews

recommended

review

Detailed reviews and ratings of the item.

name

author

Name of the review author.

published

datePublished

Date of review publication.

description

description

The review description.

rating

reviewRating

Rating of the item and values of the rating system.

rating

recommended

aggregateRating

The overall rating of the item, based on a collection of reviews or ratings.
Best and Worst values indicate the range of the rating system.

average

ratingValue

The overall rating value.

count

ratingCount

The total number of ratings for the item on your site.

best

bestRating

The highest value allowed in this rating system. If bestRating is omitted, 5 is assumed.

worst

worstRating

The lowest value allowed in this rating system. If worstRating is omitted, 1 is assumed

Course Schema Example #

{
    "@id": "https://deepschema.org/#Course-2",
    "@type": "Course",
    "name": "Learn Advanced C++ Topics",
    "courseCode": "c-3252",
    "description": "Improve your C++ skills by learning advanced topics.",
    "educationalCredentialAwarded": [
        {
            "@type": "EducationalOccupationalCredential",
            "credentialCategory": "Certificate",
            "name": "Actus Certificate",
            "url": "www.example.com",
            "offers": [
                {
                    "@type": "Offer",
                    "category": "Paid",
                    "price": "5",
                    "priceCurrency": "USD"
                }
            ]
        }
    ],
    "publisher": [
        {
            "@id": "https://deepschema.org/#busi-1" // link to business schema
        }
    ],
    "provider": [
        {
            "@id": "https://deepschema.org/#busi-1" // link to business schema
        }
    ],
    "teaches": [
        "Practice and apply systems thinking to plan for change",
        "Understand how memory allocation works"
    ],
    "offers": [
        {
            "@type": "Offer",
            "category": "Paid",
            "price": "120",
            "priceCurrency": "USD"
        }
    ],
    "hasCourseInstance": [
        {
            "courseMode": "Blended",
            "courseSchedule": {
                "@type": "Schedule",
                "repeatCount": "31",
                "repeatFrequency": "Daily",
                "startDate": "2023-12-01",
                "endDate": "2023-12-31",
                "duration": "PT3H"
            },
            "instructor": [
                {
                    "@id": "https://deepschema.org/#pers-wp-1" // Link to person schema
                }
            ],
            "location": "Example University"
        }
    ],
    "inLanguage": {
        "@type": "Language",
        "name": "el"
    },
    "datePublished": "2023-11-08T12:02",
    "availableLanguage": [
        {
            "@type": "Language",
            "name": "en"
        },
        {
            "@type": "Language",
            "name": "fr"
        }
    ],
    "educationalLevel": [
        "Advanced"
    ],
    "coursePrerequisites": [
        "Basic understanding of C++ up to arrays and functions."
    ],
    "about": [
        "C++ Coding",
        "Backend Engineering"
    ],
    "totalHistoricalEnrollment": "872",
    "syllabusSections": [
        {
            "@type": "Syllabus",
            "name": "Memory Allocation",
            "description": "Learn how memory is allocated when creating C++ variables.",
            "timeRequired": "PT6H"
        },
        {
            "@type": "Syllabus",
            "name": "C++ Pointers",
            "description": "Learn what a C++ pointer is and when they are used.",
            "timeRequired": "PT11H"
        }
    ],
    "financialAidEligible": "Scholarships available for eligible users.",
    "image": [
        {
            "@type": "ImageObject",
            "contentUrl": "https://deepschema.org/photo-1.jpg",
            "name": "learn_c",
            "thumbnail": "https://deepschema.org/photo-1-200x200.jpg",
            "width": "750",
            "height": "422"
        }
    ],
    "video": [
        {
            "name": "Advanced C++ Programming Tutorial 0 [Overview]",
            "contentUrl": "https://www.youtube.com/watch?v=e4r5gyiVQUg",
            "duration": "PT5M12S",
            "thumbnailUrl": "https://i.ytimg.com/vi/e4r5gyiVQUg/hqdefault.jpg",
            "uploadDate": "2018-05-17T12:00:00+00:00",
            "description": "video description example",
            "author": [
                "ChiliTomatoNoodle"
            ],
            "hasPart": [
                {
                    "@type": "Clip",
                    "@id": "#Clip-e4r5gyiVQUg-1",
                    "name": "Introduction",
                    "startOffset": "0",
                    "endOffset": "23",
                    "url": "https://www.youtube.com/watch?v=e4r5gyiVQUg&t=0"
                },
                {
                    "@type": "Clip",
                    "@id": "#Clip-e4r5gyiVQUg-2",
                    "name": "Series Overview",
                    "startOffset": "23",
                    "endOffset": "65",
                    "url": "https://www.youtube.com/watch?v=e4r5gyiVQUg&t=23"
                },
                {
                    "@type": "Clip",
                    "@id": "#Clip-e4r5gyiVQUg-3",
                    "name": "Series Plans",
                    "startOffset": "65",
                    "endOffset": "227",
                    "url": "https://www.youtube.com/watch?v=e4r5gyiVQUg&t=65"
                },
                {
                    "@type": "Clip",
                    "@id": "#Clip-e4r5gyiVQUg-4",
                    "name": "Outro",
                    "startOffset": "227",
                    "endOffset": "312",
                    "url": "https://www.youtube.com/watch?v=e4r5gyiVQUg&t=227"
                }
            ],
            "@type": "VideoObject",
            "interactionStatistic": {
                "@type": "InteractionCounter",
                "interactionType": {
                    "@type": "WatchAction"
                },
                "userInteractionCount": "75979"
            }
        }
    ]
}
JSON