Udemy GraphQL API Reference
Description of GraphQL objects available at Udemy GraphQL endpoint
Contact
API Platform Team
API Endpoints
https://api.udemy.com/api/2024-01/graphql
Queries
assessmentSearch
Description
Searches assessments by given query
Response
Returns an AssessmentSearchResponse
Arguments
Name | Description |
---|---|
query - String! |
Example
Query
query assessmentSearch($query: String!) {
assessmentSearch(query: $query) {
assessments {
...AssessmentFragment
}
count
metadata {
...AssessmentSearchResponseMetadataFragment
}
}
}
Variables
{"query": "abc123"}
Response
{
"data": {
"assessmentSearch": {
"assessments": [Assessment],
"count": 987,
"metadata": AssessmentSearchResponseMetadata
}
}
}
badgeAssertionsForCurrentOrganization
Description
Get list of Open Badge Assertions for organization. User must be an admin for the given organization
Response
Returns a BadgeAssertionPaged
Arguments
Name | Description |
---|---|
page - NonNegativeInt! | Default = 0 |
pageSize - MaxResultsPerPage! | Default = 12 |
filters - BadgeAssertionsSearchFilters |
Example
Query
query badgeAssertionsForCurrentOrganization(
$page: NonNegativeInt!,
$pageSize: MaxResultsPerPage!,
$filters: BadgeAssertionsSearchFilters
) {
badgeAssertionsForCurrentOrganization(
page: $page,
pageSize: $pageSize,
filters: $filters
) {
items {
...BadgeAssertionFragment
}
page
pageCount
totalCount
}
}
Variables
{
"page": 0,
"pageSize": 12,
"filters": BadgeAssertionsSearchFilters
}
Response
{
"data": {
"badgeAssertionsForCurrentOrganization": {
"items": [BadgeAssertion],
"page": 123,
"pageCount": 987,
"totalCount": 123
}
}
}
badgeCertificationProvidersWithContent
Description
List of Certification Providers filtered for having content
Response
Returns [BadgeCertificationProvider!]!
Example
Query
query badgeCertificationProvidersWithContent {
badgeCertificationProvidersWithContent {
id
name
}
}
Response
{
"data": {
"badgeCertificationProvidersWithContent": [
{
"id": "4",
"name": "(AWS) Amazon Web Services"
}
]
}
}
badgeCertificationSubjectAreas
Description
Get certification subject areas for badges
Response
Example
Query
query badgeCertificationSubjectAreas {
badgeCertificationSubjectAreas {
id
name
}
}
Response
{
"data": {
"badgeCertificationSubjectAreas": [
{"id": "4", "name": "SQL"}
]
}
}
badgeClass
Description
Get BadgeClass by id
Response
Returns a BadgeClass
Arguments
Name | Description |
---|---|
id - ID! |
Example
Query
query badgeClass($id: ID!) {
badgeClass(id: $id) {
id
externalUrl
type
name
description
image {
...BadgeClassImageFragment
}
criteria {
...BadgeClassCriteriaFragment
}
issuer {
...BadgeClassIssuerFragment
}
alignment {
...BadgeClassAlignmentFragment
}
tags
topic {
...TopicFragment
}
assertions {
...BadgeAssertionFragment
}
subjectAreas {
...BadgeCertificationSubjectAreaFragment
}
providers {
...BadgeCertificationProviderFragment
}
visibilityStatus
examRegistrationUrls {
...CertificationExamURLFragment
}
certificationExam {
...CertificationExamFragment
}
totalAssertionsCount
isEnrolled
}
}
Variables
{"id": "4"}
Response
{
"data": {
"badgeClass": {
"id": "4",
"externalUrl": "https://www.udemy.com/",
"type": ["abc123"],
"name": "abc123",
"description": "xyz789",
"image": BadgeClassImage,
"criteria": BadgeClassCriteria,
"issuer": BadgeClassIssuer,
"alignment": [BadgeClassAlignment],
"tags": ["abc123"],
"topic": Topic,
"assertions": [BadgeAssertion],
"subjectAreas": [BadgeCertificationSubjectArea],
"providers": [BadgeCertificationProvider],
"visibilityStatus": "VISIBLE",
"examRegistrationUrls": [CertificationExamURL],
"certificationExam": CertificationExam,
"totalAssertionsCount": 987,
"isEnrolled": false
}
}
}
badgeClassIssuers
Description
Issuer list of all BadgeClasses
Response
Returns [BadgeClassIssuer!]!
Example
Query
query badgeClassIssuers {
badgeClassIssuers {
id
type
name
url
email
telephone
description
image {
...BadgeClassImageFragment
}
}
}
Response
{
"data": {
"badgeClassIssuers": [
{
"id": "4",
"type": ["Profile"],
"name": "Cisco",
"url": "https://www.cisco.com/",
"email": "test@test.com",
"telephone": "1-800-553-6387",
"description": "Cisco is the worldwide leader in networking that transforms how people connect, communicate and collaborate.",
"image": BadgeClassImage
}
]
}
}
badgeClassSearch
Description
Search for BadgeClasses
Response
Returns a BadgeClassSearchResponse
Arguments
Name | Description |
---|---|
query - String | |
page - NonNegativeInt! | |
pageSize - MaxResultsPerPage! | Default = 12 |
filters - BadgeClassSearchFilters |
Example
Query
query badgeClassSearch(
$query: String,
$page: NonNegativeInt!,
$pageSize: MaxResultsPerPage!,
$filters: BadgeClassSearchFilters
) {
badgeClassSearch(
query: $query,
page: $page,
pageSize: $pageSize,
filters: $filters
) {
items {
...BadgeClassFragment
}
page
pageCount
}
}
Variables
{
"query": "xyz789",
"page": 123,
"pageSize": 12,
"filters": BadgeClassSearchFilters
}
Response
{
"data": {
"badgeClassSearch": {
"items": [BadgeClass],
"page": 987,
"pageCount": 987
}
}
}
badgeClasses
Description
Get list of BadgeClass for a list of ids
Response
Returns [BadgeClass]!
Arguments
Name | Description |
---|---|
ids - [ID!]! |
Example
Query
query badgeClasses($ids: [ID!]!) {
badgeClasses(ids: $ids) {
id
externalUrl
type
name
description
image {
...BadgeClassImageFragment
}
criteria {
...BadgeClassCriteriaFragment
}
issuer {
...BadgeClassIssuerFragment
}
alignment {
...BadgeClassAlignmentFragment
}
tags
topic {
...TopicFragment
}
assertions {
...BadgeAssertionFragment
}
subjectAreas {
...BadgeCertificationSubjectAreaFragment
}
providers {
...BadgeCertificationProviderFragment
}
visibilityStatus
examRegistrationUrls {
...CertificationExamURLFragment
}
certificationExam {
...CertificationExamFragment
}
totalAssertionsCount
isEnrolled
}
}
Variables
{"ids": [4]}
Response
{
"data": {
"badgeClasses": [
{
"id": "4",
"externalUrl": "https://www.udemy.com/",
"type": ["abc123"],
"name": "abc123",
"description": "abc123",
"image": BadgeClassImage,
"criteria": BadgeClassCriteria,
"issuer": BadgeClassIssuer,
"alignment": [BadgeClassAlignment],
"tags": ["abc123"],
"topic": Topic,
"assertions": [BadgeAssertion],
"subjectAreas": [BadgeCertificationSubjectArea],
"providers": [BadgeCertificationProvider],
"visibilityStatus": "VISIBLE",
"examRegistrationUrls": [CertificationExamURL],
"certificationExam": CertificationExam,
"totalAssertionsCount": 123,
"isEnrolled": true
}
]
}
}
badgeClassesByLearningProducts
Description
Get mapped badge classes for learning products
Response
Returns [BadgeClass!]
Arguments
Name | Description |
---|---|
learningProducts - [LearningProductInput!]! |
Example
Query
query badgeClassesByLearningProducts($learningProducts: [LearningProductInput!]!) {
badgeClassesByLearningProducts(learningProducts: $learningProducts) {
id
externalUrl
type
name
description
image {
...BadgeClassImageFragment
}
criteria {
...BadgeClassCriteriaFragment
}
issuer {
...BadgeClassIssuerFragment
}
alignment {
...BadgeClassAlignmentFragment
}
tags
topic {
...TopicFragment
}
assertions {
...BadgeAssertionFragment
}
subjectAreas {
...BadgeCertificationSubjectAreaFragment
}
providers {
...BadgeCertificationProviderFragment
}
visibilityStatus
examRegistrationUrls {
...CertificationExamURLFragment
}
certificationExam {
...CertificationExamFragment
}
totalAssertionsCount
isEnrolled
}
}
Variables
{"learningProducts": [LearningProductInput]}
Response
{
"data": {
"badgeClassesByLearningProducts": [
{
"id": 4,
"externalUrl": "https://www.udemy.com/",
"type": ["abc123"],
"name": "xyz789",
"description": "xyz789",
"image": BadgeClassImage,
"criteria": BadgeClassCriteria,
"issuer": BadgeClassIssuer,
"alignment": [BadgeClassAlignment],
"tags": ["xyz789"],
"topic": Topic,
"assertions": [BadgeAssertion],
"subjectAreas": [BadgeCertificationSubjectArea],
"providers": [BadgeCertificationProvider],
"visibilityStatus": "VISIBLE",
"examRegistrationUrls": [CertificationExamURL],
"certificationExam": CertificationExam,
"totalAssertionsCount": 123,
"isEnrolled": true
}
]
}
}
badgeClassesByTopic
Description
Get list of BadgeClasses under a topic
Response
Returns [BadgeClass!]!
Arguments
Name | Description |
---|---|
topicId - ID! |
Example
Query
query badgeClassesByTopic($topicId: ID!) {
badgeClassesByTopic(topicId: $topicId) {
id
externalUrl
type
name
description
image {
...BadgeClassImageFragment
}
criteria {
...BadgeClassCriteriaFragment
}
issuer {
...BadgeClassIssuerFragment
}
alignment {
...BadgeClassAlignmentFragment
}
tags
topic {
...TopicFragment
}
assertions {
...BadgeAssertionFragment
}
subjectAreas {
...BadgeCertificationSubjectAreaFragment
}
providers {
...BadgeCertificationProviderFragment
}
visibilityStatus
examRegistrationUrls {
...CertificationExamURLFragment
}
certificationExam {
...CertificationExamFragment
}
totalAssertionsCount
isEnrolled
}
}
Variables
{"topicId": 4}
Response
{
"data": {
"badgeClassesByTopic": [
{
"id": "4",
"externalUrl": "https://www.udemy.com/",
"type": ["abc123"],
"name": "abc123",
"description": "abc123",
"image": BadgeClassImage,
"criteria": BadgeClassCriteria,
"issuer": BadgeClassIssuer,
"alignment": [BadgeClassAlignment],
"tags": ["abc123"],
"topic": Topic,
"assertions": [BadgeAssertion],
"subjectAreas": [BadgeCertificationSubjectArea],
"providers": [BadgeCertificationProvider],
"visibilityStatus": "VISIBLE",
"examRegistrationUrls": [CertificationExamURL],
"certificationExam": CertificationExam,
"totalAssertionsCount": 987,
"isEnrolled": true
}
]
}
}
categories
Description
Retrieve all categories
Response
Returns [Category!]!
Example
Query
query categories {
categories {
id
name
subcategories {
...SubCategoryFragment
}
}
}
Response
{
"data": {
"categories": [
{
"id": "4",
"name": "abc123",
"subcategories": [SubCategory]
}
]
}
}
codingExercise
Description
Fetches a coding exercise by its ID
Response
Returns a CodingExercise
Arguments
Name | Description |
---|---|
id - ID! |
Example
Query
query codingExercise($id: ID!) {
codingExercise(id: $id) {
id
title
description
urlLanding
versionedIdentifier {
...VersionedIdentifierFragment
}
course {
...CourseFragment
}
}
}
Variables
{"id": 4}
Response
{
"data": {
"codingExercise": {
"id": "4",
"title": "Coding Exercise: Create a Lambda Function",
"description": "<p>Let's create a Lambda function from scratch. We'll use the AWS console to create a Lambda function that will be triggered by an S3 event.</p>",
"urlLanding": "https://www.udemy.com/",
"versionedIdentifier": VersionedIdentifier,
"course": Course
}
}
}
course
Description
Retrieve a course by its ID
Example
Query
query course($id: ID!) {
course(id: $id) {
id
title
headline
description
badges {
...LearningProductBadgeFragment
}
curriculum {
...CurriculumFragment
}
prerequisites
targetAudience
learningOutcomes
duration
durationVideoContent
durationInSeconds
private
organization {
...OrganizationFragment
}
organizationInfo {
...CourseOrganizationInfoFragment
}
images {
...CourseImagesFragment
}
instructors {
...CourseInstructorFragment
}
categories {
...CourseCategoryFragment
}
enrollments {
...CourseEnrollmentsFragment
}
enrollable
isEnrolled
isFree
rating {
...CourseRatingFragment
}
level
urlAutoEnroll
urlCourseLanding
urlCourseTaking
locale
updatedOn
topics {
...TopicFragment
}
primaryTopic {
...TopicFragment
}
xapiActivityId
accreditations {
...CourseAccreditationFragment
}
captions {
...CourseCaptionDetailsFragment
}
urlMobileNativeDeeplink
promoVideo {
...CoursePromoVideoFragment
}
versionedIdentifier {
...VersionedIdentifierFragment
}
subscriptionInfo {
...CourseSubscriptionInfoFragment
}
isPracticeTestCourse
}
}
Variables
{"id": 4}
Response
{
"data": {
"course": {
"id": 4,
"title": "[NEW] Ultimate AWS Certified Cloud Practitioner - 2023",
"headline": "Full Practice Exam included + explanations | Learn Cloud Computing | Pass the AWS Cloud Practitioner CLF-C01 exam!",
"description": "<p><strong>Welcome! I'm here to help you prepare and PASS the newest AWS Certified Cloud Practitioner exam.</strong></p>",
"badges": [LearningProductBadge],
"curriculum": Curriculum,
"prerequisites": ["Mathematics", "Programming"],
"targetAudience": ["Developers", "Students"],
"learningOutcomes": ["abc123"],
"duration": "5h 21m 3s",
"durationVideoContent": 19263,
"durationInSeconds": 19263,
"private": false,
"organization": Organization,
"organizationInfo": CourseOrganizationInfo,
"images": CourseImages,
"instructors": [CourseInstructor],
"categories": [CourseCategory],
"enrollments": CourseEnrollments,
"enrollable": false,
"isEnrolled": true,
"isFree": false,
"rating": CourseRating,
"level": "ALL_LEVELS",
"urlAutoEnroll": "https://www.udemy.com/",
"urlCourseLanding": "https://www.udemy.com/",
"urlCourseTaking": "https://www.udemy.com/",
"locale": "en_US",
"updatedOn": "2007-12-03",
"topics": [Topic],
"primaryTopic": Topic,
"xapiActivityId": "4",
"accreditations": [CourseAccreditation],
"captions": [CourseCaptionDetails],
"urlMobileNativeDeeplink": "https://www.udemy.com/",
"promoVideo": CoursePromoVideo,
"versionedIdentifier": VersionedIdentifier,
"subscriptionInfo": CourseSubscriptionInfo,
"isPracticeTestCourse": true
}
}
}
courseAiHighlightsByCourseId
Description
Get AI highlights for a course
Response
Returns a CourseAiHighlights
Arguments
Name | Description |
---|---|
courseId - ID! |
Example
Query
query courseAiHighlightsByCourseId($courseId: ID!) {
courseAiHighlightsByCourseId(courseId: $courseId) {
summary
learningOutcomes
}
}
Variables
{"courseId": 4}
Response
{
"data": {
"courseAiHighlightsByCourseId": {
"summary": "<p><strong>Welcome! I'm here to help you prepare and PASS the newest AWS Certified Cloud Practitioner exam.</strong></p>",
"learningOutcomes": [
"All 300+ slides available as downloadable PDF",
"Full Practice Exam with Explanations included!",
"Learn the AWS Fundamentals (EC2, ELB, ASG, RDS, ElastiCache, S3)"
]
}
}
}
courseByLandingURL
Description
Retrieve a course by its landing URL
Example
Query
query courseByLandingURL($landingURL: URL!) {
courseByLandingURL(landingURL: $landingURL) {
id
title
headline
description
badges {
...LearningProductBadgeFragment
}
curriculum {
...CurriculumFragment
}
prerequisites
targetAudience
learningOutcomes
duration
durationVideoContent
durationInSeconds
private
organization {
...OrganizationFragment
}
organizationInfo {
...CourseOrganizationInfoFragment
}
images {
...CourseImagesFragment
}
instructors {
...CourseInstructorFragment
}
categories {
...CourseCategoryFragment
}
enrollments {
...CourseEnrollmentsFragment
}
enrollable
isEnrolled
isFree
rating {
...CourseRatingFragment
}
level
urlAutoEnroll
urlCourseLanding
urlCourseTaking
locale
updatedOn
topics {
...TopicFragment
}
primaryTopic {
...TopicFragment
}
xapiActivityId
accreditations {
...CourseAccreditationFragment
}
captions {
...CourseCaptionDetailsFragment
}
urlMobileNativeDeeplink
promoVideo {
...CoursePromoVideoFragment
}
versionedIdentifier {
...VersionedIdentifierFragment
}
subscriptionInfo {
...CourseSubscriptionInfoFragment
}
isPracticeTestCourse
}
}
Variables
{"landingURL": "https://www.udemy.com/"}
Response
{
"data": {
"courseByLandingURL": {
"id": "4",
"title": "[NEW] Ultimate AWS Certified Cloud Practitioner - 2023",
"headline": "Full Practice Exam included + explanations | Learn Cloud Computing | Pass the AWS Cloud Practitioner CLF-C01 exam!",
"description": "<p><strong>Welcome! I'm here to help you prepare and PASS the newest AWS Certified Cloud Practitioner exam.</strong></p>",
"badges": [LearningProductBadge],
"curriculum": Curriculum,
"prerequisites": ["Mathematics", "Programming"],
"targetAudience": ["Developers", "Students"],
"learningOutcomes": ["abc123"],
"duration": "5h 21m 3s",
"durationVideoContent": 19263,
"durationInSeconds": 19263,
"private": false,
"organization": Organization,
"organizationInfo": CourseOrganizationInfo,
"images": CourseImages,
"instructors": [CourseInstructor],
"categories": [CourseCategory],
"enrollments": CourseEnrollments,
"enrollable": true,
"isEnrolled": true,
"isFree": false,
"rating": CourseRating,
"level": "ALL_LEVELS",
"urlAutoEnroll": "https://www.udemy.com/",
"urlCourseLanding": "https://www.udemy.com/",
"urlCourseTaking": "https://www.udemy.com/",
"locale": "en_US",
"updatedOn": "2007-12-03",
"topics": [Topic],
"primaryTopic": Topic,
"xapiActivityId": "4",
"accreditations": [CourseAccreditation],
"captions": [CourseCaptionDetails],
"urlMobileNativeDeeplink": "https://www.udemy.com/",
"promoVideo": CoursePromoVideo,
"versionedIdentifier": VersionedIdentifier,
"subscriptionInfo": CourseSubscriptionInfo,
"isPracticeTestCourse": true
}
}
}
courseByVersionedIdentifier
Description
Retrieve a course by its versioned identifier
Response
Returns a Course
Arguments
Name | Description |
---|---|
versionedIdentifier - VersionedIdentifierInput! |
Example
Query
query courseByVersionedIdentifier($versionedIdentifier: VersionedIdentifierInput!) {
courseByVersionedIdentifier(versionedIdentifier: $versionedIdentifier) {
id
title
headline
description
badges {
...LearningProductBadgeFragment
}
curriculum {
...CurriculumFragment
}
prerequisites
targetAudience
learningOutcomes
duration
durationVideoContent
durationInSeconds
private
organization {
...OrganizationFragment
}
organizationInfo {
...CourseOrganizationInfoFragment
}
images {
...CourseImagesFragment
}
instructors {
...CourseInstructorFragment
}
categories {
...CourseCategoryFragment
}
enrollments {
...CourseEnrollmentsFragment
}
enrollable
isEnrolled
isFree
rating {
...CourseRatingFragment
}
level
urlAutoEnroll
urlCourseLanding
urlCourseTaking
locale
updatedOn
topics {
...TopicFragment
}
primaryTopic {
...TopicFragment
}
xapiActivityId
accreditations {
...CourseAccreditationFragment
}
captions {
...CourseCaptionDetailsFragment
}
urlMobileNativeDeeplink
promoVideo {
...CoursePromoVideoFragment
}
versionedIdentifier {
...VersionedIdentifierFragment
}
subscriptionInfo {
...CourseSubscriptionInfoFragment
}
isPracticeTestCourse
}
}
Variables
{"versionedIdentifier": VersionedIdentifierInput}
Response
{
"data": {
"courseByVersionedIdentifier": {
"id": 4,
"title": "[NEW] Ultimate AWS Certified Cloud Practitioner - 2023",
"headline": "Full Practice Exam included + explanations | Learn Cloud Computing | Pass the AWS Cloud Practitioner CLF-C01 exam!",
"description": "<p><strong>Welcome! I'm here to help you prepare and PASS the newest AWS Certified Cloud Practitioner exam.</strong></p>",
"badges": [LearningProductBadge],
"curriculum": Curriculum,
"prerequisites": ["Mathematics", "Programming"],
"targetAudience": ["Developers", "Students"],
"learningOutcomes": ["abc123"],
"duration": "5h 21m 3s",
"durationVideoContent": 19263,
"durationInSeconds": 19263,
"private": true,
"organization": Organization,
"organizationInfo": CourseOrganizationInfo,
"images": CourseImages,
"instructors": [CourseInstructor],
"categories": [CourseCategory],
"enrollments": CourseEnrollments,
"enrollable": true,
"isEnrolled": true,
"isFree": true,
"rating": CourseRating,
"level": "ALL_LEVELS",
"urlAutoEnroll": "https://www.udemy.com/",
"urlCourseLanding": "https://www.udemy.com/",
"urlCourseTaking": "https://www.udemy.com/",
"locale": "en_US",
"updatedOn": "2007-12-03",
"topics": [Topic],
"primaryTopic": Topic,
"xapiActivityId": 4,
"accreditations": [CourseAccreditation],
"captions": [CourseCaptionDetails],
"urlMobileNativeDeeplink": "https://www.udemy.com/",
"promoVideo": CoursePromoVideo,
"versionedIdentifier": VersionedIdentifier,
"subscriptionInfo": CourseSubscriptionInfo,
"isPracticeTestCourse": true
}
}
}
courseCatalogFull
Description
Retrieve course catalog for the client
Response
Returns a CourseCatalogFullResponsePaged
Arguments
Name | Description |
---|---|
cursor - String | Cursor to the next page of course catalog |
pageSize - MaxResultsPerPage | Number of results to return in one page. Default = 12 |
Example
Query
query courseCatalogFull(
$cursor: String,
$pageSize: MaxResultsPerPage
) {
courseCatalogFull(
cursor: $cursor,
pageSize: $pageSize
) {
courses {
...CourseFragment
}
syncToken
cursor
}
}
Variables
{"cursor": "abc123", "pageSize": 12}
Response
{
"data": {
"courseCatalogFull": {
"courses": [Course],
"syncToken": "Yjc3YTZlOTEtMmUzNy00MzcxLWJhZjQtZWQ5ZWM4MTJjODA4OjE2ODU2NDIxOTQ6bGVhcm5pbmctODIwMTEyNjMtMTVjMi00Njhh",
"cursor": "WWpjM1lUWmxPVEV0TW1Vek55MDBNemN4TFdKaFpqUXRaV1E1WldNNE1USmpPREE0T2pFMk9EVTJOREl4T1RRNmJHVmhjbTVwYm1jdE9ESXdNVEV5TmpNdE1UVmpNaTAwTmpoaDoxMg=="
}
}
}
courseCatalogUpdated
Description
Retrieve changes to course catalog since last sync
Response
Returns a CourseCatalogUpdatedResponsePaged
Arguments
Name | Description |
---|---|
syncToken - String! | Sync Token from the last sync |
cursor - String | Cursor to the next page of course catalog |
pageSize - MaxResultsPerPage | Number of results to return in one page. Default = 12 |
Example
Query
query courseCatalogUpdated(
$syncToken: String!,
$cursor: String,
$pageSize: MaxResultsPerPage
) {
courseCatalogUpdated(
syncToken: $syncToken,
cursor: $cursor,
pageSize: $pageSize
) {
addedCourses {
...CourseFragment
}
updatedCourses {
...CourseFragment
}
removedCourses
syncToken
cursor
}
}
Variables
{
"syncToken": "xyz789",
"cursor": "abc123",
"pageSize": 12
}
Response
{
"data": {
"courseCatalogUpdated": {
"addedCourses": [Course],
"updatedCourses": [Course],
"removedCourses": [4],
"syncToken": "Yjc3YTZlOTEtMmUzNy00MzcxLWJhZjQtZWQ5ZWM4MTJjODA4OjE2ODU2NDIxOTQ6bGVhcm5pbmctODIwMTEyNjMtMTVjMi00Njhh",
"cursor": "WWpjM1lUWmxPVEV0TW1Vek55MDBNemN4TFdKaFpqUXRaV1E1WldNNE1USmpPREE0T2pFMk9EVTJOREl4T1RRNmJHVmhjbTVwYm1jdE9ESXdNVEV5TmpNdE1UVmpNaTAwTmpoaDoxMg=="
}
}
}
courseCategory
Description
Retrieve a category by id
Response
Returns a CourseCategory
Arguments
Name | Description |
---|---|
id - ID! |
Example
Query
query courseCategory($id: ID!) {
courseCategory(id: $id) {
id
name
url
subcategories {
...CourseSubCategoryFragment
}
}
}
Variables
{"id": 4}
Response
{
"data": {
"courseCategory": {
"id": 4,
"name": "IT Operations",
"url": "https://learning.udemy.com/courses/ufb-it-operations",
"subcategories": [CourseSubCategory]
}
}
}
courseSearch
Description
Search for courses
Response
Returns a CourseSearchResponse
Arguments
Name | Description |
---|---|
query - String | |
page - NonNegativeInt! | Default = 0 |
pageSize - MaxResultsPerPage! | Default = 20 |
sortOrder - CourseSearchSortType | |
filters - CourseSearchFilters | |
context - CourseSearchContext |
Example
Query
query courseSearch(
$query: String,
$page: NonNegativeInt!,
$pageSize: MaxResultsPerPage!,
$sortOrder: CourseSearchSortType,
$filters: CourseSearchFilters,
$context: CourseSearchContext
) {
courseSearch(
query: $query,
page: $page,
pageSize: $pageSize,
sortOrder: $sortOrder,
filters: $filters,
context: $context
) {
courses {
...CourseFragment
}
results {
...CourseSearchResultFragment
}
count
filterOptions {
...SearchAggregationFragment
}
pageCount
page
metadata {
...CourseSearchResponseMetadataFragment
}
}
}
Variables
{
"query": "abc123",
"page": 0,
"pageSize": 20,
"sortOrder": "RELEVANCE",
"filters": CourseSearchFilters,
"context": CourseSearchContext
}
Response
{
"data": {
"courseSearch": {
"courses": [Course],
"results": [CourseSearchResult],
"count": 987,
"filterOptions": [SearchAggregation],
"pageCount": 987,
"page": 987,
"metadata": CourseSearchResponseMetadata
}
}
}
courses
Description
Retrieve a set of courses by their IDs
Example
Query
query courses($ids: [ID!]!) {
courses(ids: $ids) {
id
title
headline
description
badges {
...LearningProductBadgeFragment
}
curriculum {
...CurriculumFragment
}
prerequisites
targetAudience
learningOutcomes
duration
durationVideoContent
durationInSeconds
private
organization {
...OrganizationFragment
}
organizationInfo {
...CourseOrganizationInfoFragment
}
images {
...CourseImagesFragment
}
instructors {
...CourseInstructorFragment
}
categories {
...CourseCategoryFragment
}
enrollments {
...CourseEnrollmentsFragment
}
enrollable
isEnrolled
isFree
rating {
...CourseRatingFragment
}
level
urlAutoEnroll
urlCourseLanding
urlCourseTaking
locale
updatedOn
topics {
...TopicFragment
}
primaryTopic {
...TopicFragment
}
xapiActivityId
accreditations {
...CourseAccreditationFragment
}
captions {
...CourseCaptionDetailsFragment
}
urlMobileNativeDeeplink
promoVideo {
...CoursePromoVideoFragment
}
versionedIdentifier {
...VersionedIdentifierFragment
}
subscriptionInfo {
...CourseSubscriptionInfoFragment
}
isPracticeTestCourse
}
}
Variables
{"ids": [4]}
Response
{
"data": {
"courses": [
{
"id": "4",
"title": "[NEW] Ultimate AWS Certified Cloud Practitioner - 2023",
"headline": "Full Practice Exam included + explanations | Learn Cloud Computing | Pass the AWS Cloud Practitioner CLF-C01 exam!",
"description": "<p><strong>Welcome! I'm here to help you prepare and PASS the newest AWS Certified Cloud Practitioner exam.</strong></p>",
"badges": [LearningProductBadge],
"curriculum": Curriculum,
"prerequisites": ["Mathematics", "Programming"],
"targetAudience": ["Developers", "Students"],
"learningOutcomes": ["abc123"],
"duration": "5h 21m 3s",
"durationVideoContent": 19263,
"durationInSeconds": 19263,
"private": true,
"organization": Organization,
"organizationInfo": CourseOrganizationInfo,
"images": CourseImages,
"instructors": [CourseInstructor],
"categories": [CourseCategory],
"enrollments": CourseEnrollments,
"enrollable": false,
"isEnrolled": true,
"isFree": true,
"rating": CourseRating,
"level": "ALL_LEVELS",
"urlAutoEnroll": "https://www.udemy.com/",
"urlCourseLanding": "https://www.udemy.com/",
"urlCourseTaking": "https://www.udemy.com/",
"locale": "en_US",
"updatedOn": "2007-12-03",
"topics": [Topic],
"primaryTopic": Topic,
"xapiActivityId": "4",
"accreditations": [CourseAccreditation],
"captions": [CourseCaptionDetails],
"urlMobileNativeDeeplink": "https://www.udemy.com/",
"promoVideo": CoursePromoVideo,
"versionedIdentifier": VersionedIdentifier,
"subscriptionInfo": CourseSubscriptionInfo,
"isPracticeTestCourse": true
}
]
}
}
coursesByLandingURLs
Description
Retrieve a set of courses by their landing URLs
Example
Query
query coursesByLandingURLs($landingURLs: [URL!]!) {
coursesByLandingURLs(landingURLs: $landingURLs) {
id
title
headline
description
badges {
...LearningProductBadgeFragment
}
curriculum {
...CurriculumFragment
}
prerequisites
targetAudience
learningOutcomes
duration
durationVideoContent
durationInSeconds
private
organization {
...OrganizationFragment
}
organizationInfo {
...CourseOrganizationInfoFragment
}
images {
...CourseImagesFragment
}
instructors {
...CourseInstructorFragment
}
categories {
...CourseCategoryFragment
}
enrollments {
...CourseEnrollmentsFragment
}
enrollable
isEnrolled
isFree
rating {
...CourseRatingFragment
}
level
urlAutoEnroll
urlCourseLanding
urlCourseTaking
locale
updatedOn
topics {
...TopicFragment
}
primaryTopic {
...TopicFragment
}
xapiActivityId
accreditations {
...CourseAccreditationFragment
}
captions {
...CourseCaptionDetailsFragment
}
urlMobileNativeDeeplink
promoVideo {
...CoursePromoVideoFragment
}
versionedIdentifier {
...VersionedIdentifierFragment
}
subscriptionInfo {
...CourseSubscriptionInfoFragment
}
isPracticeTestCourse
}
}
Variables
{"landingURLs": ["https://www.udemy.com/"]}
Response
{
"data": {
"coursesByLandingURLs": [
{
"id": 4,
"title": "[NEW] Ultimate AWS Certified Cloud Practitioner - 2023",
"headline": "Full Practice Exam included + explanations | Learn Cloud Computing | Pass the AWS Cloud Practitioner CLF-C01 exam!",
"description": "<p><strong>Welcome! I'm here to help you prepare and PASS the newest AWS Certified Cloud Practitioner exam.</strong></p>",
"badges": [LearningProductBadge],
"curriculum": Curriculum,
"prerequisites": ["Mathematics", "Programming"],
"targetAudience": ["Developers", "Students"],
"learningOutcomes": ["abc123"],
"duration": "5h 21m 3s",
"durationVideoContent": 19263,
"durationInSeconds": 19263,
"private": false,
"organization": Organization,
"organizationInfo": CourseOrganizationInfo,
"images": CourseImages,
"instructors": [CourseInstructor],
"categories": [CourseCategory],
"enrollments": CourseEnrollments,
"enrollable": true,
"isEnrolled": false,
"isFree": true,
"rating": CourseRating,
"level": "ALL_LEVELS",
"urlAutoEnroll": "https://www.udemy.com/",
"urlCourseLanding": "https://www.udemy.com/",
"urlCourseTaking": "https://www.udemy.com/",
"locale": "en_US",
"updatedOn": "2007-12-03",
"topics": [Topic],
"primaryTopic": Topic,
"xapiActivityId": 4,
"accreditations": [CourseAccreditation],
"captions": [CourseCaptionDetails],
"urlMobileNativeDeeplink": "https://www.udemy.com/",
"promoVideo": CoursePromoVideo,
"versionedIdentifier": VersionedIdentifier,
"subscriptionInfo": CourseSubscriptionInfo,
"isPracticeTestCourse": false
}
]
}
}
coursesByVersionedIdentifiers
Description
Retrieve a set of courses by their versioned identifiers
Response
Returns [Course]!
Arguments
Name | Description |
---|---|
versionedIdentifiers - [VersionedIdentifierInput!]! |
Example
Query
query coursesByVersionedIdentifiers($versionedIdentifiers: [VersionedIdentifierInput!]!) {
coursesByVersionedIdentifiers(versionedIdentifiers: $versionedIdentifiers) {
id
title
headline
description
badges {
...LearningProductBadgeFragment
}
curriculum {
...CurriculumFragment
}
prerequisites
targetAudience
learningOutcomes
duration
durationVideoContent
durationInSeconds
private
organization {
...OrganizationFragment
}
organizationInfo {
...CourseOrganizationInfoFragment
}
images {
...CourseImagesFragment
}
instructors {
...CourseInstructorFragment
}
categories {
...CourseCategoryFragment
}
enrollments {
...CourseEnrollmentsFragment
}
enrollable
isEnrolled
isFree
rating {
...CourseRatingFragment
}
level
urlAutoEnroll
urlCourseLanding
urlCourseTaking
locale
updatedOn
topics {
...TopicFragment
}
primaryTopic {
...TopicFragment
}
xapiActivityId
accreditations {
...CourseAccreditationFragment
}
captions {
...CourseCaptionDetailsFragment
}
urlMobileNativeDeeplink
promoVideo {
...CoursePromoVideoFragment
}
versionedIdentifier {
...VersionedIdentifierFragment
}
subscriptionInfo {
...CourseSubscriptionInfoFragment
}
isPracticeTestCourse
}
}
Variables
{"versionedIdentifiers": [VersionedIdentifierInput]}
Response
{
"data": {
"coursesByVersionedIdentifiers": [
{
"id": "4",
"title": "[NEW] Ultimate AWS Certified Cloud Practitioner - 2023",
"headline": "Full Practice Exam included + explanations | Learn Cloud Computing | Pass the AWS Cloud Practitioner CLF-C01 exam!",
"description": "<p><strong>Welcome! I'm here to help you prepare and PASS the newest AWS Certified Cloud Practitioner exam.</strong></p>",
"badges": [LearningProductBadge],
"curriculum": Curriculum,
"prerequisites": ["Mathematics", "Programming"],
"targetAudience": ["Developers", "Students"],
"learningOutcomes": ["xyz789"],
"duration": "5h 21m 3s",
"durationVideoContent": 19263,
"durationInSeconds": 19263,
"private": true,
"organization": Organization,
"organizationInfo": CourseOrganizationInfo,
"images": CourseImages,
"instructors": [CourseInstructor],
"categories": [CourseCategory],
"enrollments": CourseEnrollments,
"enrollable": true,
"isEnrolled": false,
"isFree": true,
"rating": CourseRating,
"level": "ALL_LEVELS",
"urlAutoEnroll": "https://www.udemy.com/",
"urlCourseLanding": "https://www.udemy.com/",
"urlCourseTaking": "https://www.udemy.com/",
"locale": "en_US",
"updatedOn": "2007-12-03",
"topics": [Topic],
"primaryTopic": Topic,
"xapiActivityId": 4,
"accreditations": [CourseAccreditation],
"captions": [CourseCaptionDetails],
"urlMobileNativeDeeplink": "https://www.udemy.com/",
"promoVideo": CoursePromoVideo,
"versionedIdentifier": VersionedIdentifier,
"subscriptionInfo": CourseSubscriptionInfo,
"isPracticeTestCourse": false
}
]
}
}
dynamicWebContent
Description
The query to get the dynamic web content for the component represented by the contentId
filter
Response
Returns a DynamicWebContent!
Arguments
Name | Description |
---|---|
filters - DynamicWebContentFilters! |
Example
Query
query dynamicWebContent($filters: DynamicWebContentFilters!) {
dynamicWebContent(filters: $filters) {
contents {
...DynamicWebContentFragment
}
contentUrl
contentUrlText
description
heading
image {
...DynamicWebContentImageFragment
}
labelText
secondaryImage {
...DynamicWebContentImageFragment
}
trackingId
}
}
Variables
{"filters": DynamicWebContentFilters}
Response
{
"data": {
"dynamicWebContent": {
"contents": [DynamicWebContent],
"contentUrl": "https://www.udemy.com/",
"contentUrlText": "Get the report",
"description": "GenAI and leadership are at the core of today's skills-based economy. Get the 2024 Global Learning & Skills Trends Report to learn more.",
"heading": "Top trends for the future of work",
"image": DynamicWebContentImage,
"labelText": "Current",
"secondaryImage": DynamicWebContentImage,
"trackingId": "4"
}
}
}
featureVariantAssignmentsByConfigurationContextCode
Description
Returns assigned feature variants by configuration context code
Response
Returns [FeatureVariantAssignment!]!
Arguments
Name | Description |
---|---|
configurationContextCode - String! | Code of configuration context to which features belong |
filters - FeatureVariantAssignmentFilters |
Example
Query
query featureVariantAssignmentsByConfigurationContextCode(
$configurationContextCode: String!,
$filters: FeatureVariantAssignmentFilters
) {
featureVariantAssignmentsByConfigurationContextCode(
configurationContextCode: $configurationContextCode,
filters: $filters
) {
featureCode
configuration
isInExperiment
experimentIds
isLocalDefault
}
}
Variables
{
"configurationContextCode": "abc123",
"filters": FeatureVariantAssignmentFilters
}
Response
{
"data": {
"featureVariantAssignmentsByConfigurationContextCode": [
{
"featureCode": "ab-testing",
"configuration": "{\"key\":\"value\"}",
"isInExperiment": false,
"experimentIds": [123],
"isLocalDefault": false
}
]
}
}
featureVariantAssignmentsByFeatureCodes
Description
Returns assigned feature variants
Response
Returns [FeatureVariantAssignment!]!
Arguments
Name | Description |
---|---|
featureCodes - [String!]! | |
filters - FeatureVariantAssignmentFilters |
Example
Query
query featureVariantAssignmentsByFeatureCodes(
$featureCodes: [String!]!,
$filters: FeatureVariantAssignmentFilters
) {
featureVariantAssignmentsByFeatureCodes(
featureCodes: $featureCodes,
filters: $filters
) {
featureCode
configuration
isInExperiment
experimentIds
isLocalDefault
}
}
Variables
{
"featureCodes": ["abc123"],
"filters": FeatureVariantAssignmentFilters
}
Response
{
"data": {
"featureVariantAssignmentsByFeatureCodes": [
{
"featureCode": "ab-testing",
"configuration": "{\"key\":\"value\"}",
"isInExperiment": true,
"experimentIds": [987],
"isLocalDefault": false
}
]
}
}
featuredReviewsByTopics
Description
Return featured reviews for a given set of topics
Response
Returns [Review!]!
Arguments
Name | Description |
---|---|
topicIds - [ID!]! |
Example
Query
query featuredReviewsByTopics($topicIds: [ID!]!) {
featuredReviewsByTopics(topicIds: $topicIds) {
learningProductType
text
urlLearningProduct
}
}
Variables
{"topicIds": [4]}
Response
{
"data": {
"featuredReviewsByTopics": [
{
"learningProductType": "ASSESSMENT",
"text": "This course was a great introduction to AWS. I learned a lot and I'm excited to continue learning more about AWS.",
"urlLearningProduct": "https://www.udemy.com/"
}
]
}
}
lab
Description
Retrieve a Lab by its ID
Example
Query
query lab($id: ID!) {
lab(id: $id) {
id
title
description
learningOutcomes
activities
prerequisites
minEstimatedTime
maxEstimatedTime
instructors {
...LabInstructorFragment
}
topics {
...TopicFragment
}
urlLanding
metadata {
...LabMetaDataFragment
}
durationInSeconds
}
}
Variables
{"id": "4"}
Response
{
"data": {
"lab": {
"id": "4",
"title": "Lab 1: Create a VPC",
"description": "<p>Learn how to create a VPC</p>",
"learningOutcomes": ["VPC is created"],
"activities": ["Create a VPC"],
"prerequisites": ["AWS Account"],
"minEstimatedTime": 19263,
"maxEstimatedTime": 19263,
"instructors": [LabInstructor],
"topics": [Topic],
"urlLanding": "https://www.udemy.com/",
"metadata": LabMetaData,
"durationInSeconds": 19263
}
}
}
labSearch
Description
Search for labs
Response
Returns a LabSearchResponse
Arguments
Name | Description |
---|---|
query - String! | |
filters - [SearchAggregationInputOption!] |
Example
Query
query labSearch(
$query: String!,
$filters: [SearchAggregationInputOption!]
) {
labSearch(
query: $query,
filters: $filters
) {
labs {
...LabFragment
}
count
filterOptions {
...SearchAggregationFragment
}
trackingId
}
}
Variables
{
"query": "xyz789",
"filters": [SearchAggregationInputOption]
}
Response
{
"data": {
"labSearch": {
"labs": [Lab],
"count": 987,
"filterOptions": [SearchAggregation],
"trackingId": "S8HU-xXXQ_OZ_hLKlVvOEQ"
}
}
}
labs
Description
Retrieve a set of Labs by their IDs
Example
Query
query labs($ids: [ID!]!) {
labs(ids: $ids) {
id
title
description
learningOutcomes
activities
prerequisites
minEstimatedTime
maxEstimatedTime
instructors {
...LabInstructorFragment
}
topics {
...TopicFragment
}
urlLanding
metadata {
...LabMetaDataFragment
}
durationInSeconds
}
}
Variables
{"ids": [4]}
Response
{
"data": {
"labs": [
{
"id": 4,
"title": "Lab 1: Create a VPC",
"description": "<p>Learn how to create a VPC</p>",
"learningOutcomes": ["VPC is created"],
"activities": ["Create a VPC"],
"prerequisites": ["AWS Account"],
"minEstimatedTime": 19263,
"maxEstimatedTime": 19263,
"instructors": [LabInstructor],
"topics": [Topic],
"urlLanding": "https://www.udemy.com/",
"metadata": LabMetaData,
"durationInSeconds": 19263
}
]
}
}
learningPathCatalogFull
Description
Retrieve learning path catalog for the client
Response
Returns a LearningPathCatalogFullResponsePaged
Arguments
Name | Description |
---|---|
cursor - String | Cursor to the next page of course catalog |
pageSize - MaxResultsPerPage | Number of results to return in one page. Default = 12 |
Example
Query
query learningPathCatalogFull(
$cursor: String,
$pageSize: MaxResultsPerPage
) {
learningPathCatalogFull(
cursor: $cursor,
pageSize: $pageSize
) {
learningPaths {
...LearningPathFragment
}
syncToken
cursor
}
}
Variables
{"cursor": "abc123", "pageSize": 12}
Response
{
"data": {
"learningPathCatalogFull": {
"learningPaths": [LearningPath],
"syncToken": "Yjc3YTZlOTEtMmUzNy00MzcxLWJhZjQtZWQ5ZWM4MTJjODA4OjE2ODU2NDIxOTQ6bGVhcm5pbmctODIwMTEyNjMtMTVjMi00Njhh",
"cursor": "WmpVMlkyWXpOV0V0WXpVM01TMDBOVEV5TFdJMVlUVXRPRFV4TURKa1pEQmpOREEwT2pFM01qYzVPRFkzTURBNk1UQTVPVFk9OjI0"
}
}
}
learningPathCatalogUpdated
Description
Retrieve updates to the learning path catalog for the client
Response
Returns a LearningPathCatalogUpdatedResponsePaged
Arguments
Name | Description |
---|---|
syncToken - String! | Sync Token from the last sync |
cursor - String | Cursor to the next page of course catalog |
pageSize - MaxResultsPerPage | Number of results to return in one page. Default = 12 |
Example
Query
query learningPathCatalogUpdated(
$syncToken: String!,
$cursor: String,
$pageSize: MaxResultsPerPage
) {
learningPathCatalogUpdated(
syncToken: $syncToken,
cursor: $cursor,
pageSize: $pageSize
) {
addedLearningPaths {
...LearningPathFragment
}
updatedLearningPaths {
...LearningPathFragment
}
removedLearningPaths
syncToken
cursor
}
}
Variables
{
"syncToken": "abc123",
"cursor": "xyz789",
"pageSize": 12
}
Response
{
"data": {
"learningPathCatalogUpdated": {
"addedLearningPaths": [LearningPath],
"updatedLearningPaths": [LearningPath],
"removedLearningPaths": [4],
"syncToken": "Yjc3YTZlOTEtMmUzNy00MzcxLWJhZjQtZWQ5ZWM4MTJjODA4OjE2ODU2NDIxOTQ6bGVhcm5pbmctODIwMTEyNjMtMTVjMi00Njhh",
"cursor": "WmpVMlkyWXpOV0V0WXpVM01TMDBOVEV5TFdJMVlUVXRPRFV4TURKa1pEQmpOREEwT2pFM01qYzVPRFkzTURBNk1UQTVPVFk9OjI0"
}
}
}
learningPathSearch
Description
Searches paths by given query
Response
Returns a LearningPathSearchResponse
Arguments
Name | Description |
---|---|
query - String! | |
filters - LearningPathSearchFilters |
Example
Query
query learningPathSearch(
$query: String!,
$filters: LearningPathSearchFilters
) {
learningPathSearch(
query: $query,
filters: $filters
) {
paths {
...ProLearningPathFragment
}
count
metadata {
...PathSearchResponseMetadataFragment
}
}
}
Variables
{
"query": "xyz789",
"filters": LearningPathSearchFilters
}
Response
{
"data": {
"learningPathSearch": {
"paths": [ProLearningPath],
"count": 123,
"metadata": PathSearchResponseMetadata
}
}
}
learningProducts
Description
Returns available learning products for the client
Response
Returns a LearningProductsPaged!
Arguments
Name | Description |
---|---|
page - Int | Default = 0 |
size - MaxResultsPerPage | Default = 12 |
Example
Query
query learningProducts(
$page: Int,
$size: MaxResultsPerPage
) {
learningProducts(
page: $page,
size: $size
) {
page
pageCount
items {
...LearningProductFragment
}
}
}
Variables
{"page": 0, "size": 12}
Response
{
"data": {
"learningProducts": {
"page": 987,
"pageCount": 123,
"items": [LearningProduct]
}
}
}
learningTestimonials
Description
Returns a list of Learning Testimonials based on the page type
Response
Returns [LearningTestimonial]!
Arguments
Name | Description |
---|---|
filters - LearningTestimonialFilters! |
Example
Query
query learningTestimonials($filters: LearningTestimonialFilters!) {
learningTestimonials(filters: $filters) {
content
id
relatedUrl
relatedUrlText
source {
...LearningTestimonialSourceFragment
}
type
}
}
Variables
{"filters": LearningTestimonialFilters}
Response
{
"data": {
"learningTestimonials": [
{
"content": "<p>Udemy was rated the most popular online course or certification program for learning how to code according to StackOverflow’s 2023 Developer survey. </p>",
"id": "4",
"relatedUrl": "https://www.udemy.com/",
"relatedUrlText": "<p><b>View Web Development courses</b></p>",
"source": LearningTestimonialSource,
"type": "CASE_STUDY"
}
]
}
}
lecture
Description
Fetches a lecture by its ID
Example
Query
query lecture($id: ID!) {
lecture(id: $id) {
id
title
images {
...LectureImagesFragment
}
urlAutoEnroll
urlLanding
thumbnail
course {
...CourseFragment
}
versionedIdentifier {
...VersionedIdentifierFragment
}
}
}
Variables
{"id": "4"}
Response
{
"data": {
"lecture": {
"id": 4,
"title": "abc123",
"images": LectureImages,
"urlAutoEnroll": "https://www.udemy.com/",
"urlLanding": "https://www.udemy.com/",
"thumbnail": "https://www.udemy.com/",
"course": Course,
"versionedIdentifier": VersionedIdentifier
}
}
}
lectureSearch
Description
Searches lectures semantically for given query. To get a result, query must be in english and at least three words. The search team has been focused on leveraging semantic search to be able to recommend the right lectures for users. Instead of relying on just titles and descriptions, the team leverage caption data to understand content better and provide better results
Response
Returns a LectureSearchResponse
Arguments
Name | Description |
---|---|
query - String! |
Example
Query
query lectureSearch($query: String!) {
lectureSearch(query: $query) {
results {
...LectureSearchResultFragment
}
metadata {
...LectureSearchResponseMetadataFragment
}
experimentResults {
...FeatureVariantAssignmentFragment
}
}
}
Variables
{"query": "abc123"}
Response
{
"data": {
"lectureSearch": {
"results": [LectureSearchResult],
"metadata": LectureSearchResponseMetadata,
"experimentResults": [FeatureVariantAssignment]
}
}
}
lesson
Description
Fetches the latest released version of a Lesson
Response
Returns a Lesson
Arguments
Name | Description |
---|---|
id - LessonIdInput! |
Example
Query
query lesson($id: LessonIdInput!) {
lesson(id: $id) {
id {
...LessonIdFragment
}
version
entityTag
locale
created
updated
article {
...LessonArticleFragment
}
}
}
Variables
{"id": LessonIdInput}
Response
{
"data": {
"lesson": {
"id": {"idType": "ASSET_ID", "idValue": "12392384"},
"version": "@1746636635859356",
"entityTag": 4,
"locale": "en-US",
"created": "2007-12-03T10:15:30Z",
"updated": "2007-12-03T10:15:30Z",
"article": {
"uuid": "a210e247-a33c-478c-82a6-1244cf695de1",
"title": "Intro to Containers",
"description": "This article explains what containers are",
"locale": "en-US",
"source": "AI",
"takeaways": {
"content": "- Containers are lightweight\n- Great for microservices"
},
"fragments": [
{
"timestamp": 10,
"content": {
"__typename": "Markdown",
"content": "This part explains Docker basics."
}
},
{
"timestamp": 30,
"content": {
"__typename": "Markdown",
"content": "Now let's dive into layers and images."
}
},
{
"timestamp": 60,
"content": {
"__typename": "CodeBlock",
"language": "rust",
"code": "hello.world()"
}
}
]
}
}
}
}
moreRecommendationContextSections
Description
This query is used to fetch more RecommendationContextSections from a RecommendationContext
Response
Arguments
Name | Description |
---|---|
params - MoreRecommendationContextSectionsInput! |
Example
Query
query moreRecommendationContextSections($params: MoreRecommendationContextSectionsInput!) {
moreRecommendationContextSections(params: $params) {
sections {
...RecommendationContextSectionFragment
}
sectionsCursor
}
}
Variables
{"params": MoreRecommendationContextSectionsInput}
Response
{
"data": {
"moreRecommendationContextSections": {
"sections": [RecommendationContextSection],
"sectionsCursor": "WkdObE1XTTJOR0l0WW1RME5pMDBZago="
}
}
}
moreRecommendationItems
Description
This query is used to fetch more RecommendationItems from a RecommendationUnit
Response
Returns a MoreRecommendationItemsResponse!
Arguments
Name | Description |
---|---|
params - MoreRecommendationItemsInput! |
Example
Query
query moreRecommendationItems($params: MoreRecommendationItemsInput!) {
moreRecommendationItems(params: $params) {
items {
...RecommendationItemFragment
}
itemsCursor
}
}
Variables
{"params": MoreRecommendationItemsInput}
Response
{
"data": {
"moreRecommendationItems": {
"items": [RecommendationItem],
"itemsCursor": "WkdObE1XTTJOR0l0WW1RME5pMDBZago="
}
}
}
organizationAuditLogSearch
Description
Retrieves audit logs for a specific organization within a date range
Response
Returns [OrganizationAuditLog!]!
Arguments
Name | Description |
---|---|
filter - OrganizationAuditLogFilter! |
Example
Query
query organizationAuditLogSearch($filter: OrganizationAuditLogFilter!) {
organizationAuditLogSearch(filter: $filter) {
orgId
timestamp
actor {
...ActorFragment
}
entity {
...EntityFragment
}
event
metadata {
...MetadataEntryFragment
}
}
}
Variables
{"filter": OrganizationAuditLogFilter}
Response
{
"data": {
"organizationAuditLogSearch": [
{
"orgId": 4,
"timestamp": "2007-12-03T10:15:30Z",
"actor": Actor,
"entity": Entity,
"event": "USER_CREATED",
"metadata": [MetadataEntry]
}
]
}
}
popularTopicsByCategoryId
Description
Gets a list of all popular topics
Response
Returns [PopularTopic]!
Arguments
Name | Description |
---|---|
categoryId - ID! |
Example
Query
query popularTopicsByCategoryId($categoryId: ID!) {
popularTopicsByCategoryId(categoryId: $categoryId) {
topic {
...TopicFragment
}
subcategory {
...PopularTopicSubCategoryFragment
}
popularityType
}
}
Variables
{"categoryId": 4}
Response
{
"data": {
"popularTopicsByCategoryId": [
{
"topic": Topic,
"subcategory": PopularTopicSubCategory,
"popularityType": "POPULAR"
}
]
}
}
practiceAssignment
Description
Fetches a practice assignment by its ID
Response
Returns a PracticeAssignment
Arguments
Name | Description |
---|---|
id - ID! |
Example
Query
query practiceAssignment($id: ID!) {
practiceAssignment(id: $id) {
id
title
description
urlLanding
versionedIdentifier {
...VersionedIdentifierFragment
}
course {
...CourseFragment
}
}
}
Variables
{"id": 4}
Response
{
"data": {
"practiceAssignment": {
"id": "4",
"title": "Practice Assignment 1",
"description": "Practice Assignment 1. AWS Certified Solutions Architect Associate",
"urlLanding": "https://www.udemy.com/",
"versionedIdentifier": VersionedIdentifier,
"course": Course
}
}
}
practiceTest
Description
Fetches a practice test by its ID
Response
Returns a PracticeTest
Arguments
Name | Description |
---|---|
id - ID! |
Example
Query
query practiceTest($id: ID!) {
practiceTest(id: $id) {
id
title
minimumPassingScore
randomized
urlLanding
versionedIdentifier {
...VersionedIdentifierFragment
}
course {
...CourseFragment
}
}
}
Variables
{"id": 4}
Response
{
"data": {
"practiceTest": {
"id": "4",
"title": "Practice Test 1. AWS Certified Solutions Architect Associate",
"minimumPassingScore": 123,
"randomized": false,
"urlLanding": "https://www.udemy.com/",
"versionedIdentifier": VersionedIdentifier,
"course": Course
}
}
}
quiz
Description
Fetches a quiz by its ID
Example
Query
query quiz($id: ID!) {
quiz(id: $id) {
id
title
description
urlLanding
versionedIdentifier {
...VersionedIdentifierFragment
}
course {
...CourseFragment
}
}
}
Variables
{"id": 4}
Response
{
"data": {
"quiz": {
"id": "4",
"title": "Quiz 1. AWS Certified Solutions Architect Associate",
"description": "Timed quiz for AWS Certified Solutions Architect Associate",
"urlLanding": "https://www.udemy.com/",
"versionedIdentifier": VersionedIdentifier,
"course": Course
}
}
}
recommendations
Description
When a page is being loaded initially, this query is made without a cursor. First slice of sections is returned according to 'requestedSectionCount' parameter. Later, a new slice of sections can be fetched by moreRecommendationContextSections query
Response
Returns a RecommendationContextResponse!
Arguments
Name | Description |
---|---|
params - RecommendationContextInput! |
Example
Query
query recommendations($params: RecommendationContextInput!) {
recommendations(params: $params) {
recommendationContext {
...RecommendationContextFragment
}
}
}
Variables
{"params": RecommendationContextInput}
Response
{
"data": {
"recommendations": {
"recommendationContext": RecommendationContext
}
}
}
searchAutocomplete
Description
Search for autocomplete
Response
Returns [SearchAutocompleteSuggestion]!
Arguments
Name | Description |
---|---|
query - String! | Default = "" |
limit - PositiveInt! | Default = 12 |
filters - SearchAutocompleteRequestFilters | |
metadata - SearchAutocompleteRequestMetadata | Default = null |
Example
Query
query searchAutocomplete(
$query: String!,
$limit: PositiveInt!,
$filters: SearchAutocompleteRequestFilters,
$metadata: SearchAutocompleteRequestMetadata
) {
searchAutocomplete(
query: $query,
limit: $limit,
filters: $filters,
metadata: $metadata
) {
trackingId
resultTrackingId
item {
... on Course {
...CourseFragment
}
... on CourseInstructor {
...CourseInstructorFragment
}
... on SearchAutocompleteLogItem {
...SearchAutocompleteLogItemFragment
}
}
}
}
Variables
{
"query": "",
"limit": 12,
"filters": SearchAutocompleteRequestFilters,
"metadata": null
}
Response
{
"data": {
"searchAutocomplete": [
{
"trackingId": "S8HU-xXXQ_OZ_hLKlVvOEQ",
"resultTrackingId": "p55X_jHUQ7yNmI0HQ4TmgA",
"item": Course
}
]
}
}
subscriptionPlans
Description
Returns available subscription plans for a given user
Response
Returns [SubscriptionPlan!]!
Arguments
Name | Description |
---|---|
filters - SubscriptionPlanFilters |
Example
Query
query subscriptionPlans($filters: SubscriptionPlanFilters) {
subscriptionPlans(filters: $filters) {
id
productType
urlLearnMore
urlExpressCheckout
urlTermsOfUse
priceOptions {
... on DailySubscriptionPlanPricingOption {
...DailySubscriptionPlanPricingOptionFragment
}
... on WeeklySubscriptionPlanPricingOption {
...WeeklySubscriptionPlanPricingOptionFragment
}
... on MonthlySubscriptionPlanPricingOption {
...MonthlySubscriptionPlanPricingOptionFragment
}
... on AnnualSubscriptionPlanPricingOption {
...AnnualSubscriptionPlanPricingOptionFragment
}
}
contentCollections {
...ContentCollectionFragment
}
}
}
Variables
{"filters": SubscriptionPlanFilters}
Response
{
"data": {
"subscriptionPlans": [
{
"id": 4,
"productType": "CONSUMERSUBSCRIPTION",
"urlLearnMore": "https://www.udemy.com/",
"urlExpressCheckout": "https://www.udemy.com/",
"urlTermsOfUse": "https://www.udemy.com/",
"priceOptions": [
DailySubscriptionPlanPricingOption
],
"contentCollections": [ContentCollection]
}
]
}
}
topic
Description
Returns a topic by ID
Example
Query
query topic($id: ID!) {
topic(id: $id) {
id
name
url
groups {
...TopicGroupFragment
}
questionsAndAnswers {
...TopicQuestionAndAnswerFragment
}
}
}
Variables
{"id": "4"}
Response
{
"data": {
"topic": {
"id": 4,
"name": "Python",
"url": "https://www.udemy.com/topic/python",
"groups": [TopicGroup],
"questionsAndAnswers": [TopicQuestionAndAnswer]
}
}
}
topicGroups
Description
Returns a list of topic groups by ID
Response
Returns [TopicGroup!]!
Arguments
Name | Description |
---|---|
ids - [ID!] |
Example
Query
query topicGroups($ids: [ID!]) {
topicGroups(ids: $ids) {
id
name
}
}
Variables
{"ids": ["4"]}
Response
{"data": {"topicGroups": [{"id": 4, "name": "Programming Languages"}]}}
topicSearch
Description
Search topics
Response
Returns [Topic!]!
Arguments
Name | Description |
---|---|
filters - TopicFilters | |
query - String | |
limit - PositiveInt! |
Example
Query
query topicSearch(
$filters: TopicFilters,
$query: String,
$limit: PositiveInt!
) {
topicSearch(
filters: $filters,
query: $query,
limit: $limit
) {
id
name
url
groups {
...TopicGroupFragment
}
questionsAndAnswers {
...TopicQuestionAndAnswerFragment
}
}
}
Variables
{
"filters": TopicFilters,
"query": "abc123",
"limit": 123
}
Response
{
"data": {
"topicSearch": [
{
"id": 4,
"name": "Python",
"url": "https://www.udemy.com/topic/python",
"groups": [TopicGroup],
"questionsAndAnswers": [TopicQuestionAndAnswer]
}
]
}
}
topics
Description
Return a list of topics by ID
Example
Query
query topics($ids: [ID!]!) {
topics(ids: $ids) {
id
name
url
groups {
...TopicGroupFragment
}
questionsAndAnswers {
...TopicQuestionAndAnswerFragment
}
}
}
Variables
{"ids": [4]}
Response
{
"data": {
"topics": [
{
"id": 4,
"name": "Python",
"url": "https://www.udemy.com/topic/python",
"groups": [TopicGroup],
"questionsAndAnswers": [TopicQuestionAndAnswer]
}
]
}
}
Interfaces
BadgeClass
Description
The BadgeClass interface. A collection of information about the accomplishment recognized by the Open Badge. It means Certification for the most cases
Fields
Field Name | Description |
---|---|
id - ID! | ID of the BadgeClass |
externalUrl - URL! | IRI of the BadgeClass. IRI of OpenBadge specification |
type - [String!]! | Type of the BadgeClass. In most cases, this will simply be the string BadgeClass |
name - String! | Name of the BadgeClass |
description - String! | A short description of BadgeClass |
image - BadgeClassImage! | A PNG or SVG image of the BadgeClass |
criteria - BadgeClassCriteria! | Criteria document describing how to earn the BadgeClass (Certification) |
issuer - BadgeClassIssuer! | Organization that issued the badge |
alignment - [BadgeClassAlignment!] | An object describing which objectives or educational standards this badge aligns to, if any |
tags - [String!]! | A tag that describes the type of achievement. (Skills) |
topic - Topic | Topic of badge class. Can be null for badge classes uploaded by users |
assertions - [BadgeAssertion!]! | User's assertions for the badge class |
subjectAreas - [BadgeCertificationSubjectArea!] | Subject Area (recently renamed to Skill Area) for this BadgeClass (i.e. Data Science, CyberSecurity) |
providers - [BadgeCertificationProvider!] | Certification Provider for this Badge Class |
visibilityStatus - BadgeClassVisibilityStatus! | Visibility of the badge class on the Udemy platform (only available for applications with admin:application scope) |
examRegistrationUrls - [CertificationExamURL!]! | Links to exam registration page for this certification (deprecated) |
certificationExam - CertificationExam | Exam registration details, if an exam is required for earning this Badge |
totalAssertionsCount - Int! | Total number of assertions issued for this badge class |
isEnrolled - Boolean! | Whether the current user is enrolled |
Possible Types
BadgeClass Types |
---|
Example
{
"id": 4,
"externalUrl": "https://www.udemy.com/",
"type": ["abc123"],
"name": "abc123",
"description": "xyz789",
"image": BadgeClassImage,
"criteria": BadgeClassCriteria,
"issuer": BadgeClassIssuer,
"alignment": [BadgeClassAlignment],
"tags": ["xyz789"],
"topic": Topic,
"assertions": [BadgeAssertion],
"subjectAreas": [BadgeCertificationSubjectArea],
"providers": [BadgeCertificationProvider],
"visibilityStatus": "VISIBLE",
"examRegistrationUrls": [CertificationExamURL],
"certificationExam": CertificationExam,
"totalAssertionsCount": 123,
"isEnrolled": false
}
Category
Description
Category the Course belongs to
Fields
Field Name | Description |
---|---|
id - ID! | ID of the category |
name - String! | Name of the category |
subcategories - [SubCategory!]! | Subcategories belonging to the category |
Possible Types
Category Types |
---|
Example
{
"id": 4,
"name": "abc123",
"subcategories": [SubCategory]
}
CurriculumItem
Description
Interface for a curriculum item
Fields
Field Name | Description |
---|---|
id - ID! | Id of the curriculum item |
title - String! | Title of the curriculum item |
versionedIdentifier - VersionedIdentifier! | Versioned identifier of the curriculum item |
course - Course | Course this curriculum item belongs to |
Possible Types
CurriculumItem Types |
---|
Example
{
"id": "4",
"title": "abc123",
"versionedIdentifier": VersionedIdentifier,
"course": Course
}
CustomizableRecommendationPresentation
Description
If a part of the response needs customizations about how it should be rendered on the UI, this interface should be implemented
Fields
Field Name | Description |
---|---|
viewType - String | Frontend application should always be able to determine how to render a recommendations based on basic information such as context, item type, unit type, etc. However, there might be some edge cases where the person who configures the RecommendationContext and RecommendationUnits on Tapen might want to a customize UI behavior slightly for a unit. This person coordinates with the FE teams and they agree on a specific value for this field. When this specific value is received, FE uses an alternative appearance for that recommendation. The field is a string because the responsibility of this API and related backend services is just to convey this field. It is never processed in recommendation backend services, just conveyed |
Possible Types
CustomizableRecommendationPresentation Types |
---|
Example
{"viewType": "xyz789"}
Instructor
Description
Instructor for a learning product
Fields
Field Name | Description |
---|---|
id - ID! | ID of the Instructor |
name - String! | Instructor's name |
url - URL | The URL to access the instructor page |
images - InstructorImages! | Instructor's image by varying pixels |
Possible Types
Instructor Types |
---|
Example
{
"id": 4,
"name": "Stephane Maarek",
"url": "https://www.udemy.com/user/stephane-maarek/",
"images": InstructorImages
}
LearningPath
Description
The learning path object
Fields
Field Name | Description |
---|---|
id - ID! | ID of the learning path |
title - String! | Title of the learning path |
description - SafeHtml | Description of the learning path |
itemCount - Int! | Number of items in the learning path |
topics - [Topic!] | Topics associated with the learning path |
badges - [BadgeClass!] | Badges of the learning path |
urlLanding - URL! | Landing page to view this LearningPath |
trackingId - String | Unique analytics ID for this instance of LearningPath returned from the server in this request |
durationInSeconds - DurationInSeconds | The duration of the learning path |
sectionCount - Int! | Number of sections in the learning path |
sections - [LearningPathSection!] | Sections of the learning path |
isEnrolled - Boolean! | Is the user enrolled in this learning path or not |
Possible Types
LearningPath Types |
---|
Example
{
"id": "4",
"title": "abc123",
"description": SafeHtml,
"itemCount": 123,
"topics": [Topic],
"badges": [BadgeClass],
"urlLanding": "https://www.udemy.com/",
"trackingId": "xyz789",
"durationInSeconds": 19263,
"sectionCount": 123,
"sections": [LearningPathSection],
"isEnrolled": true
}
LearningPathItem
Description
Learning Path Item can be Course, Lab, Assessment, Learning Path Resource, and Course Portion
Fields
Field Name | Description |
---|---|
id - ID! | ID of the item |
title - String! | Title of the item |
description - SafeHtml | Description of the item |
durationInSeconds - DurationInSeconds | The duration of the item |
Possible Types
LearningPathItem Types |
---|
Example
{
"id": "4",
"title": "xyz789",
"description": SafeHtml,
"durationInSeconds": 19263
}
LearningProduct
Description
All partner's content collection items that are available, currently just course
Fields
Field Name | Description |
---|---|
id - ID! | ID of the learning product |
Possible Types
LearningProduct Types |
---|
Example
{"id": "4"}
LearningProductBadge
Description
Represents a badge awarded to a learning product
Fields
Field Name | Description |
---|---|
name - String! | The localized name of the badge |
Possible Types
LearningProductBadge Types |
---|
Example
{"name": "xyz789"}
Lecture
Description
Represents a lecture type
Fields
Field Name | Description |
---|---|
id - ID! | Id of the lecture |
title - String! | Lecture title |
images - LectureImages! | Images by their dimensions |
urlAutoEnroll - URL! | The URL to access the lecture on the auto-enroll page |
urlLanding - URL! | Landing page to view this Lecture |
thumbnail - URL | The URL of the lecture thumbnail |
course - Course | The Course this lecture belongs to |
versionedIdentifier - VersionedIdentifier! | Versioned identifier of the lecture |
Possible Types
Lecture Types |
---|
Example
{
"id": 4,
"title": "abc123",
"images": LectureImages,
"urlAutoEnroll": "https://www.udemy.com/",
"urlLanding": "https://www.udemy.com/",
"thumbnail": "https://www.udemy.com/",
"course": Course,
"versionedIdentifier": VersionedIdentifier
}
Paginated
RecommendationContextSection
Description
RecommendationContext comprises multiple sections. Sections might be a RecommendationUnit or RecommendationUnitGroup
Fields
Field Name | Description |
---|---|
id - ID! | ID of the actual section object (RecommendationUnit or RecommendationUnitGroup) |
title - String | Title of the actual section object (RecommendationUnit or RecommendationUnitGroup) |
Possible Types
RecommendationContextSection Types |
---|
Example
{
"id": "4",
"title": "xyz789"
}
RecommendationItem
Description
A recommendation item comprises the actual entity (ex. course) to be recommended and some additional fields required specifically by the recommendations domain
Fields
Field Name | Description |
---|---|
id - ID! | This ID is different from the ID of the underlying recommended object to provide uniqueness across item types. For example, the ID of the course in a CourseRecommendation object might be 123 and there might be a LectureRecommendation object with a lecture ID 123. To achieve uniqueness for the ID of the wrapper objects CourseRecommendation and LectureRecommendation), this ID of the wrapper object is different from the ID of the underlying object |
trackingId - String! | Tracking ID generated in the backend. Useful to relate tracking events generated in the backend with the tracking events generated in the frontend. The value will change each time a recommendation item is served |
Possible Types
RecommendationItem Types |
---|
Example
{
"id": "4",
"trackingId": "abc123"
}
SubCategory
Description
SubCategory interface
Possible Types
SubCategory Types |
---|
Example
{
"id": "4",
"name": "xyz789"
}
TrackableRecommendation
Description
If backend generates a tracking ID for any part of the response, and if the tracking ID ıs needed in the frontend, the object should implement this interface
Fields
Field Name | Description |
---|---|
trackingId - String! | Tracking ID generated in the backend. Useful to relate tracking events generated in the backend with the tracking events generated in the frontend. The value will change each time a recommendation is served |
Possible Types
TrackableRecommendation Types |
---|
Example
{"trackingId": "abc123"}
Types
Actor
Description
Represents the actor who performed the event
Fields
Field Name | Description |
---|---|
actorId - ID! | The unique identifier for the actor |
actorType - ActorType! | The type of actor, such as an end user, impersonator, or service |
Example
{"actorId": "4", "actorType": "END_USER"}
AnnualSubscriptionPlanPricingOption
Description
Price option for computed price plan. Will be returned for annual plans
Fields
Field Name | Description |
---|---|
id - ID! | ID of the price option: |
listPrice - Money! | The list price of the subscription price plan based on provided requested count from request |
monthlyPrice - Money! | The monthly list price of the subscription price plan. Applicable for annual plan only. Represents fraction of list price |
annualSavings - Money | The annual savings amount for the subscription price plan when compared to monthly plans. calculated on pricing backend can be null |
renewalInterval - DateInterval! | Interval for renewing the subscription plan ie the length of the subscription plan |
trial - SubscriptionTrial | Field containing details about the trial subscription offer for a given user. Null indicates no trial is available |
licenseContext - SubscriptionPlanLicenseContext | Contains information about the license context for a given subscription plan price option |
discount - SubscriptionPlanDiscount | Contains information about the discount context for a given subscription plan price option |
discountTrial - SubscriptionTrial | Field containing details about the discounted trial subscription offer for a given user. Null indicates no trial is available |
price - SubscriptionPlanPrice | Field showing the prices for the option |
Example
{
"id": 4,
"listPrice": Money,
"monthlyPrice": Money,
"annualSavings": Money,
"renewalInterval": DateInterval,
"trial": SubscriptionTrial,
"licenseContext": SubscriptionPlanLicenseContext,
"discount": SubscriptionPlanDiscount,
"discountTrial": SubscriptionTrial,
"price": SubscriptionPlanPrice
}
ArticleLecture
Description
Article lecture
Fields
Field Name | Description |
---|---|
id - ID! | Id of the lecture |
title - String! | Lecture title |
images - LectureImages! | Images by their dimensions |
urlAutoEnroll - URL! | The URL to access the lecture on the auto-enroll page |
urlLanding - URL! | Landing page to view this Lecture |
thumbnail - URL | The URL of the lecture thumbnail |
durationInSeconds - DurationInSeconds! | Total duration of the lecture's content in seconds |
course - Course | The Course this lecture belongs to |
versionedIdentifier - VersionedIdentifier! | Versioned identifier of the lecture |
Example
{
"id": "4",
"title": "Introduction - AWS Certified Solutions Architect Associate",
"images": LectureImages,
"urlAutoEnroll": "https://www.udemy.com/course/subscribe/?courseId=3082678&lectureId=20020880",
"urlLanding": "https://www.udemy.com/course/aws-certified-solutions-architect-associate-step-by-step/learn/lecture/20020880",
"thumbnail": "https://www.udemy.com/",
"durationInSeconds": 19263,
"course": Course,
"versionedIdentifier": VersionedIdentifier
}
Assessment
Description
An Assessment represents a collection of Forms (which are variations of items and orderings of items). A user chooses to take an Assessment. They are then give a Form to take from that Assessment
Fields
Field Name | Description |
---|---|
id - ID! | ID of the assessment |
title - String! | The name, for example: 'HTML' or 'AWS Developer Certification' |
description - SafeHtml! | Description of the assessment |
isBeta - Boolean! | Is the assessment beta or not |
isActive - Boolean! | Is the assessment active or not |
urlLanding - URL! | Landing page to view this Assessment |
metadata - AssessmentMetadata | Metadata associated with the assessment |
assignment - AssessmentAssignment | The assessment's assignment information, if the assessment has been assigned to the user |
durationInSeconds - DurationInSeconds | Duration of an assessment in seconds |
Example
{
"id": "10",
"title": "AWS Certified Developer - Associate",
"description": "<p>Put your knowledge to the test with this series of multiple-choice and multi-select questions.</p> <p>If you exit before finishing and return within 24 hours, you can restart where you left off. Otherwise, you can start again with a new set of questions.</p>",
"isBeta": false,
"isActive": true,
"urlLanding": "https://learning.udemy.com/skills-assessment/advanced-java/",
"metadata": {"trackingId": "O9eKKCzdQim95RLDVXI3OA"},
"assignment": {"dueDat": "2024-04-19T20:13:25.000Z", "id": "10"},
"durationInSeconds": 19263
}
AssessmentAssignment
AssessmentMetadata
Description
MetaData for an assessment
Fields
Field Name | Description |
---|---|
trackingId - String | Unique analytics ID for this instance of Assessment returned from the server in this request |
Example
{"trackingId": "O9eKKCzdQim95RLDVXI3OA"}
AssessmentRecommendation
Description
A wrapper type to include the recommended Assessment and some additional fields about its recommendation
Fields
Field Name | Description |
---|---|
id - ID! | This is the ID of this wrapper object. This ID is different from the ID of the underlying recommended object to provide uniqueness across item types |
trackingId - String! | Tracking ID generated in the backend. Useful to relate tracking events generated in the backend with the tracking events generated in the frontend. The value will change each time a recommendation item is served |
assessment - Assessment | Underlying object of the recommendation to get more information about it |
Example
{
"id": "4",
"trackingId": "ZGNlMWM2NGItYmQ0Ni00Yj",
"assessment": Assessment
}
AssessmentSearchResponse
Description
List of Assessment and additional data about search response
Fields
Field Name | Description |
---|---|
assessments - [Assessment]! | List of Assessment objects |
count - Int! | Total number of Assessments matching the search query and filters |
metadata - AssessmentSearchResponseMetadata | Metadata for whole search result used by front end |
Example
{
"assessments": [Assessment],
"count": 987,
"metadata": AssessmentSearchResponseMetadata
}
AssessmentSearchResponseMetadata
Description
Contains info for front end related stuff and tracking info. This data is calculated by backend service and used by Udemy front end. If you are an external user, you shouldn't need this
Fields
Field Name | Description |
---|---|
trackingId - String! | Search analytics tracking id; for uniquely identifying this query and result set; for this request |
Example
{"trackingId": "JjBqqc4LS2K9Ht_1LTpaMg"}
AudioLecture
Description
Lecture in the form of just audio (deprecated)
Fields
Field Name | Description |
---|---|
id - ID! | Id of the lecture |
title - String! | Lecture title |
images - LectureImages! | Images by their dimensions |
urlAutoEnroll - URL! | The URL to access the lecture on the auto-enroll page |
urlLanding - URL! | Landing page to view this Lecture |
thumbnail - URL | The URL of the lecture thumbnail |
durationInSeconds - DurationInSeconds! | Total duration of the lecture's content in seconds |
course - Course | The Course this lecture belongs to |
versionedIdentifier - VersionedIdentifier! | Versioned identifier of the lecture |
Example
{
"id": "4",
"title": "Course Introduction - AWS Certified Solutions Architect Associate",
"images": LectureImages,
"urlAutoEnroll": "https://www.udemy.com/course/aws-certified-solutions-architect-associate/learn/lecture/23206582/enroll",
"urlLanding": "https://www.udemy.com/course/aws-certified-solutions-architect-associate/learn/lecture/23206582/?couponCode=AWSARCH-2021",
"thumbnail": "https://www.udemy.com/",
"durationInSeconds": 19263,
"course": Course,
"versionedIdentifier": VersionedIdentifier
}
BadgeAssertion
Description
Issued Badge of a user (Assertion in OpenBadge specification)
Fields
Field Name | Description |
---|---|
id - ID! | ID of the Assertion |
externalUrl - URL! | IRI of the Assertion. IRI of OpenBadge specification |
issuedOn - Date! | The date this assertion is issued |
expires - Date | The date this assertion expires |
user - User! | Owner of the assertion |
badgeClass - BadgeClass! | The BadgeClass object that this Assertion is issued for |
uploadedImageUrl - URL | The url of the uploaded baked image of assertion |
Example
{
"id": "4",
"externalUrl": "https://www.udemy.com/",
"issuedOn": "2007-12-03",
"expires": "2007-12-03",
"user": User,
"badgeClass": BadgeClass,
"uploadedImageUrl": "https://www.udemy.com/"
}
BadgeAssertionPaged
Description
Issued badges of a user (Assertion in OpenBadge specification)
Fields
Field Name | Description |
---|---|
items - [BadgeAssertion!]! | List of BadgeAssertions |
page - Int! | The current page number, 0 based |
pageCount - Int! | The total amount of pages. Calculated as (total result count / page pageSize) |
totalCount - Int! | Total number of BadgeAssertions |
Example
{
"items": [BadgeAssertion],
"page": 123,
"pageCount": 987,
"totalCount": 987
}
BadgeCertificationProvider
BadgeCertificationSubjectArea
BadgeClassAlignment
Description
Alignment object. An intangible item that describes an alignment between a learning resource and a BadgeClass
Fields
Field Name | Description |
---|---|
targetName - String | Name of the alignment |
targetUrl - URL | URL linking to the official description of the alignment target, for example an individual standard within an educational framework |
targetDescription - String | Short description of the alignment target |
targetFramework - String | Name of the framework the alignment target |
targetCode - String | If applicable, a locally unique string identifier that identifies the alignment target within its framework and/or targetUrl |
Example
{
"targetName": "Badge target name",
"targetUrl": "https://www.udemy.com/",
"targetDescription": "Badge target description",
"targetFramework": "Badge target framework",
"targetCode": "Python"
}
BadgeClassCriteria
Description
Descriptive metadata about the achievements necessary to be issued with particular BadgeClass (Certification)
Example
{
"id": "https://www.udemy.com/",
"type": ["CERTIFICATION"],
"narrative": "Maintain an active status as a CCIE or as a CCIE Emeritus for 20 consecutive years in at least one CCIE track."
}
BadgeClassImage
Description
Image object of BadgeClass or Issuer
Example
{
"id": "4",
"caption": "image.png",
"author": "Cisco",
"type": ["logo"]
}
BadgeClassIssuer
Description
Issuer of BadgeClass. A collection of information that describes the entity or organization
Fields
Field Name | Description |
---|---|
id - ID! | Unique IRI for the Issuer/Profile file |
type - [String!]! | Issuer type. In most cases, this will simply be the string Issuer or the more general Profile |
name - String! | The name of the entity or organization |
url - URL! | The homepage or social media profile of the entity, whether individual or institutional |
email - EmailAddress | Contact address for the individual or organization |
telephone - String | A phone number for the entity |
description - String | A short description of the issuer entity or organization |
image - BadgeClassImage | IRI or document representing an image of the issuer. This must be a PNG or SVG image |
Example
{
"id": "4",
"type": ["Profile"],
"name": "Cisco",
"url": "https://www.cisco.com/",
"email": "test@test.com",
"telephone": "1-800-553-6387",
"description": "Cisco is the worldwide leader in networking that transforms how people connect, communicate and collaborate.",
"image": BadgeClassImage
}
BadgeClassSearchResponse
Description
Paginated list of BadgeClasses for search response
Fields
Field Name | Description |
---|---|
items - [BadgeClass!]! | List of BadgeClasses |
page - Int! | The current page number, 0 based |
pageCount - Int! | The total amount of pages. Calculated as (total result count / page pageSize) |
Example
{"items": [BadgeClass], "page": 123, "pageCount": 123}
BadgeSubCategory
BeginnerTopRatedCategoryTopicBadge
Description
Represents a badge awarded to a beginner top-rated category topic
Fields
Field Name | Description |
---|---|
name - String! | The localized name of the badge |
rank - NonNegativeInt! | The rank of the badge, e.g. 1,2,3 |
category - Category | The category associated with the badge |
topic - Topic | The topic associated with the badge |
Example
{
"name": "Good for Beginners",
"rank": 123,
"category": Category,
"topic": Topic
}
BeginnerTopRatedSubcategoryBadge
Description
Represents a badge awarded to a beginner top-rated subcategory
Fields
Field Name | Description |
---|---|
name - String! | The localized name of the badge |
rank - NonNegativeInt! | The rank of the badge |
subcategory - BadgeSubCategory | The subcategory associated with the badge |
Example
{
"name": "Good for Beginners",
"rank": 123,
"subcategory": BadgeSubCategory
}
BeginnerTopRatedSubcategoryTopicBadge
Description
Represents a badge awarded to a beginner top-rated subcategory topic
Fields
Field Name | Description |
---|---|
name - String! | The localized name of the badge |
rank - NonNegativeInt! | The rank of the badge |
subcategory - BadgeSubCategory | The subcategory associated with the badge |
topic - Topic | The topic associated with the badge |
Example
{
"name": "Good for Beginners",
"rank": 123,
"subcategory": BadgeSubCategory,
"topic": Topic
}
BestSellerCategoryTopicBadge
Description
Represents a badge awarded to a best seller category topic
Example
{
"name": "Good for Beginners",
"topic": Topic,
"category": Category
}
BestSellerSubcategoryBadge
Description
Represents a badge awarded to a best seller subcategory
Fields
Field Name | Description |
---|---|
name - String! | The localized name of the badge |
subcategory - BadgeSubCategory | The subcategory associated with the badge |
Example
{"name": "Bestseller", "subcategory": BadgeSubCategory}
BestSellerSubcategoryTopicBadge
Description
Represents a badge awarded to a best seller subcategory topic
Fields
Field Name | Description |
---|---|
name - String! | The localized name of the badge |
topic - Topic | The topic associated with the badge |
subcategory - BadgeSubCategory | The subcategory associated with the badge |
Example
{
"name": "Bestseller",
"topic": Topic,
"subcategory": BadgeSubCategory
}
CategoryRecommendation
Description
A wrapper type to include the recommended Category and some additional fields about its recommendation
Fields
Field Name | Description |
---|---|
id - ID! | This is the ID of this wrapper object. This ID is different from the ID of the underlying recommended object to provide uniqueness across item types |
trackingId - String! | Tracking ID generated in the backend. Useful to relate tracking events generated in the backend with the tracking events generated in the frontend. The value will change each time a recommendation item is served |
category - Category | Underlying object of the recommendation to get more information about it |
Example
{
"id": "4",
"trackingId": "ZGNlMWM2NGItYmQ0Ni00Yj",
"category": Category
}
CertificationExam
Description
Certification Exam for earning a Badge
Fields
Field Name | Description |
---|---|
urlRegistration - URL | URL to the exam registration page for a certification |
incentiveOfferTextPublic - SafeHtml | If the Cert/Badge provider offers discount/incentive to Udemy students. Public version is for display on e.g. Course Landing Page (when the person has not yet purchased). Whether or not incentive is offered may depend on the specific LearningProduct |
Arguments | |
incentiveOfferTextPrivate - SafeHtml | If the Cert/Badge provider offers discount/incentive to Udemy students. Private version is for display on e.g. Course Taking Page (after the person has purchased) Whether or not incentive is offered may depend on the specific LearningProduct |
Arguments |
Example
{
"urlRegistration": "https://www.cncf.io/training/certification/cka/",
"incentiveOfferTextPublic": "Enroll in this course and get <strong>20% off</strong>exam registration",
"incentiveOfferTextPrivate": "Use code <strong>MUCHDISCOUNT</strong> for 20% off exam registration"
}
CertificationExamURL
Description
URL to the exam registration page for a certification with its locale (deprecated)
Example
{"url": "https://www.cncf.io/training/certification/cka/", "locale": "en"}
CodeBlock
CodingExercise
Description
Coding exercise for students to practice their programming
Fields
Field Name | Description |
---|---|
id - ID! | The Id of the coding exercise |
title - String! | The title of the coding exercise |
description - String | Problem statement |
urlLanding - URL! | Landing page to view this CodingExercise |
versionedIdentifier - VersionedIdentifier! | Versioned identifier of the coding exercise |
course - Course | Course this coding exercise belongs to |
Example
{
"id": "4",
"title": "Coding Exercise: Create a Lambda Function",
"description": "<p>Let's create a Lambda function from scratch. We'll use the AWS console to create a Lambda function that will be triggered by an S3 event.</p>",
"urlLanding": "https://www.udemy.com/",
"versionedIdentifier": VersionedIdentifier,
"course": Course
}
CodingExerciseRecommendation
Description
A wrapper type to include the recommended Coding Exercise and some additional fields about its recommendation
Fields
Field Name | Description |
---|---|
id - ID! | This is the ID of this wrapper object. This ID is different from the ID of the underlying recommended object to provide uniqueness across item types |
trackingId - String! | Tracking ID generated in the backend. Useful to relate tracking events generated in the backend with the tracking events generated in the frontend. The value will change each time a recommendation item is served |
codingExercise - CodingExercise | Underlying object of the recommendation to get more information about it |
Example
{
"id": "4",
"trackingId": "ZGNlMWM2NGItYmQ0Ni00Yj",
"codingExercise": CodingExercise
}
ContentCollection
Description
Type representing a group of content for a subscription plan
Fields
Field Name | Description |
---|---|
id - ID! | ID of the Content Collection |
Example
{"id": "4"}
Course
Description
The Course object
Fields
Field Name | Description |
---|---|
id - ID! | ID of the course |
title - String! | Title of the course |
headline - String | Headline to show under the title |
description - SafeHtml | Description of the course |
badges - [LearningProductBadge!]! | Badges awarded to the course |
curriculum - Curriculum! | Course's curriculum |
prerequisites - [String!]! | Prerequisites for taking the course |
targetAudience - [String!]! | Who should attend the course |
learningOutcomes - [String!]! | What you will learn in this course |
duration - CourseDuration | Total duration of the course's content |
durationVideoContent - DurationInSeconds | Total duration of video content only in seconds |
durationInSeconds - DurationInSeconds | Total duration of the course's content in seconds |
private - Boolean | Whether the course is publicly available or not |
organization - Organization | The UB organization this course belongs to, only visible if you are part of that organization |
organizationInfo - CourseOrganizationInfo | Organization specific course properties, only visible if you are part of that organization |
images - CourseImages! | Images by their dimensions |
instructors - [CourseInstructor!]! | Instructors of the Course |
categories - [CourseCategory!]! | Categories the course is part of |
enrollments - CourseEnrollments! | Learners enrolled in a course |
enrollable - Boolean! | Whether a learner can enroll in a course or not |
isEnrolled - Boolean! | Whether the course is enrolled by the current user or not |
isFree - Boolean! | Whether the course is a free course or not |
rating - CourseRating! | How do students rate the course |
level - DifficultyLevel | Instruction level of the course |
urlAutoEnroll - URL | The URL to access the auto-enroll page |
urlCourseLanding - URL | The URL to access the course landing page |
urlCourseTaking - URL | The URL to access the course taking page |
locale - Locale! | Course locale e.g. en-US or en-GB |
updatedOn - Date | When the course was last updated |
topics - [Topic!] | Topics course is tagged with |
primaryTopic - Topic | Primary topic course is tagged with |
xapiActivityId - ID! | Activity ID of xAPI statement to identify course |
accreditations - [CourseAccreditation!] | Accreditations a course has |
captions - [CourseCaptionDetails!] | Caption and subtitles the course has |
urlMobileNativeDeeplink - URL! | Mobile Native deep link of the course |
promoVideo - CoursePromoVideo | Promotional video for the course. Clients need to renew it if URL expires by querying it again |
versionedIdentifier - VersionedIdentifier! | Versioned identifier of the course |
subscriptionInfo - CourseSubscriptionInfo | Subscription specific course properties |
isPracticeTestCourse - Boolean! | Indicates if Course is a practice test only, made to prepare for a certification exam |
Example
{
"id": 4,
"title": "[NEW] Ultimate AWS Certified Cloud Practitioner - 2023",
"headline": "Full Practice Exam included + explanations | Learn Cloud Computing | Pass the AWS Cloud Practitioner CLF-C01 exam!",
"description": "<p><strong>Welcome! I'm here to help you prepare and PASS the newest AWS Certified Cloud Practitioner exam.</strong></p>",
"badges": [LearningProductBadge],
"curriculum": Curriculum,
"prerequisites": ["Mathematics", "Programming"],
"targetAudience": ["Developers", "Students"],
"learningOutcomes": ["xyz789"],
"duration": "5h 21m 3s",
"durationVideoContent": 19263,
"durationInSeconds": 19263,
"private": true,
"organization": Organization,
"organizationInfo": CourseOrganizationInfo,
"images": CourseImages,
"instructors": [CourseInstructor],
"categories": [CourseCategory],
"enrollments": CourseEnrollments,
"enrollable": false,
"isEnrolled": false,
"isFree": true,
"rating": CourseRating,
"level": "ALL_LEVELS",
"urlAutoEnroll": "https://www.udemy.com/",
"urlCourseLanding": "https://www.udemy.com/",
"urlCourseTaking": "https://www.udemy.com/",
"locale": "en_US",
"updatedOn": "2007-12-03",
"topics": [Topic],
"primaryTopic": Topic,
"xapiActivityId": 4,
"accreditations": [CourseAccreditation],
"captions": [CourseCaptionDetails],
"urlMobileNativeDeeplink": "https://www.udemy.com/",
"promoVideo": CoursePromoVideo,
"versionedIdentifier": VersionedIdentifier,
"subscriptionInfo": CourseSubscriptionInfo,
"isPracticeTestCourse": true
}
CourseAccreditation
Description
Accreditations
Fields
Field Name | Description |
---|---|
type - CourseAccreditationType! | The type of accreditation |
subject - String | Technical subject area |
compliantSince - Date | Start date of accreditation |
level - String | The level of the accreditation |
creditCount - NonNegativeFloat! | The amount of credits this accreditations supplies |
Example
{
"type": "CPE",
"subject": "Data Science",
"compliantSince": "2007-12-03",
"level": "Beginner",
"creditCount": 123.45
}
CourseAiHighlights
Description
AI generated highlights for a course
Fields
Field Name | Description |
---|---|
summary - String! | AI generated summary of the course |
learningOutcomes - [String!]! | Skills or learning outcomes for the course |
Example
{
"summary": "<p><strong>Welcome! I'm here to help you prepare and PASS the newest AWS Certified Cloud Practitioner exam.</strong></p>",
"learningOutcomes": [
"All 300+ slides available as downloadable PDF",
"Full Practice Exam with Explanations included!",
"Learn the AWS Fundamentals (EC2, ELB, ASG, RDS, ElastiCache, S3)"
]
}
CourseCaptionDetails
Description
Course caption details such as locale, type, and source
Fields
Field Name | Description |
---|---|
locale - Locale! | The caption's locale |
automaticallyGenerated - Boolean! | Whether the caption is automatically generated |
type - CaptionType! | The caption type, either subtitles or closed captions |
Example
{
"locale": "en_US",
"automaticallyGenerated": false,
"type": "SUBTITLE"
}
CourseCatalogFullResponsePaged
Description
A catalog of all courses available to the client
Fields
Field Name | Description |
---|---|
courses - [Course!]! | List of courses in the catalog |
syncToken - String! | Sync Token to use for the next delta sync |
cursor - String | Cursor to get the next page. Null if no more results available |
Example
{
"courses": [Course],
"syncToken": "Yjc3YTZlOTEtMmUzNy00MzcxLWJhZjQtZWQ5ZWM4MTJjODA4OjE2ODU2NDIxOTQ6bGVhcm5pbmctODIwMTEyNjMtMTVjMi00Njhh",
"cursor": "WWpjM1lUWmxPVEV0TW1Vek55MDBNemN4TFdKaFpqUXRaV1E1WldNNE1USmpPREE0T2pFMk9EVTJOREl4T1RRNmJHVmhjbTVwYm1jdE9ESXdNVEV5TmpNdE1UVmpNaTAwTmpoaDoxMg=="
}
CourseCatalogUpdatedResponsePaged
Description
Changes to catalog of all courses available to the client
Fields
Field Name | Description |
---|---|
addedCourses - [Course!]! | Courses added since last sync |
updatedCourses - [Course!]! | Courses updated since last sync |
removedCourses - [ID!]! | Course IDs for courses removed since last sync |
syncToken - String! | Sync Token to use for the next delta sync |
cursor - String | Cursor to get the next page. Null if no more results available |
Example
{
"addedCourses": [Course],
"updatedCourses": [Course],
"removedCourses": [4],
"syncToken": "Yjc3YTZlOTEtMmUzNy00MzcxLWJhZjQtZWQ5ZWM4MTJjODA4OjE2ODU2NDIxOTQ6bGVhcm5pbmctODIwMTEyNjMtMTVjMi00Njhh",
"cursor": "WWpjM1lUWmxPVEV0TW1Vek55MDBNemN4TFdKaFpqUXRaV1E1WldNNE1USmpPREE0T2pFMk9EVTJOREl4T1RRNmJHVmhjbTVwYm1jdE9ESXdNVEV5TmpNdE1UVmpNaTAwTmpoaDoxMg=="
}
CourseCategory
Description
Category the Course belongs to
Fields
Field Name | Description |
---|---|
id - ID! | ID of the category |
name - String! | Name of the category |
url - URL! | The URL to the category page this course is a part of |
subcategories - [CourseSubCategory!]! | Subcategories belonging to the category |
Example
{
"id": 4,
"name": "IT Operations",
"url": "https://learning.udemy.com/courses/ufb-it-operations",
"subcategories": [CourseSubCategory]
}
CourseCurriculumContentCounts
Description
Count of the course curriculum content by type
Fields
Field Name | Description |
---|---|
lecturesCount - Int! | Count of all lectures in the course curriculum |
quizzesCount - Int! | Count of all quizzes in the course curriculum |
codingExercisesCount - Int! | Count of all coding exercises in the course curriculum |
practiceAssignmentsCount - Int! | Count of all practice assignments in the course curriculum |
practiceTestsCount - Int! | Count of all practice tests in the course curriculum |
practiceTestQuestionsCount - Int! | Count of all questions in the PracticeTests in the course curriculum |
Example
{
"lecturesCount": 123,
"quizzesCount": 123,
"codingExercisesCount": 987,
"practiceAssignmentsCount": 123,
"practiceTestsCount": 987,
"practiceTestQuestionsCount": 123
}
CourseEnrollments
Description
Enrollments belonging to the course
Fields
Field Name | Description |
---|---|
count - Int | Exact count of how many students are there currently enrolled (course purchase and subscription). Requires token scope 'udemy:application' to access |
roundedCount - Int! | Count of how many students are currently enrolled (course purchase and subscription) rounded to the nearest decimal Exception: if there are fewer than 10 enrollments we show the exact amount (instead of 0) |
Example
{"count": 123, "roundedCount": 987}
CourseImages
Description
Course images by varying dimensions
Fields
Field Name | Description |
---|---|
px100x100 - String | Course preview image with 100x100 dimensions in pixels |
px240x135 - String | Course preview image with 240x135 dimensions in pixels |
px304x171 - String | Course preview image with 304x171 dimensions in pixels |
px480x270 - String | Course preview image with 480x270 dimensions in pixels |
px48x27 - String | Course preview image with 48x27 dimensions in pixels |
px50x50 - String | Course preview image with 50x50 dimensions in pixels |
px75x75 - String | Course preview image with 75x75 dimensions in pixels |
px96x54 - String | Course preview image with 96x54 dimensions in pixels |
px750x422 - String | Course preview image with 750x422 dimensions in pixels |
height125 - String | Course preview image with 125 pixels height |
height200 - String | Course preview image with 200 pixels height |
Example
{
"px100x100": "https://img-c.udemycdn.com/course/100x100/11112134.jpg",
"px240x135": "https://img-c.udemycdn.com/course/240x135/11112134.jpg",
"px304x171": "https://img-c.udemycdn.com/course/304x171/11112134.jpg",
"px480x270": "https://img-c.udemycdn.com/course/480x270/11112134.jpg",
"px48x27": "https://img-c.udemycdn.com/course/48x27/11112134.jpg",
"px50x50": "https://img-c.udemycdn.com/course/50x50/11112134.jpg",
"px75x75": "https://img-c.udemycdn.com/course/75x75/11112134.jpg",
"px96x54": "https://img-c.udemycdn.com/course/96x54/11112134.jpg",
"px750x422": "https://img-c.udemycdn.com/course/750x422/11112134.jpg",
"height125": "https://img-c.udemycdn.com/course/125_H/11112134.jpg",
"height200": "https://img-c.udemycdn.com/course/200_H/11112134.jpg"
}
CourseInstructor
Description
Instructor for a course
Fields
Field Name | Description |
---|---|
id - ID! | ID of the Instructor |
name - String! | Instructor's name |
url - URL | The URL to access the instructor page |
images - InstructorImages! | Instructor's image by varying pixels |
Example
{
"id": "4",
"name": "Stephane Maarek",
"url": "https://www.udemy.com/user/stephane-maarek/",
"images": InstructorImages
}
CourseOrganizationInfo
Description
Organization specific course properties
Fields
Field Name | Description |
---|---|
isOrganizationSpecific - Boolean | True if this course was created specifically for this organization |
isMarketplaceImported - Boolean | True if this course was purchased separately from the marketplace |
retiresOn - Date | If not null returns the Date this course will retire from organization's content collection |
Example
{
"isOrganizationSpecific": true,
"isMarketplaceImported": false,
"retiresOn": "2007-12-03"
}
CoursePromoVideo
Description
Object to store URL and expiration time for course's promo video
Example
{
"url": "https://mp4-c.udemycdn.com/2020-08-31_18-10-39-0ff314ead0e4f7f3519b8285af262046/1/original.mp4?Expires=1695960374&Signature=qOCfN840cCmL4GHBt8JU6DPE9B2sR9UpUsZC5HTVng~0l44cTdFm92v1~BhCRaDaLH4AjKBXelMYVqj4BczBPNNSV4Q2OTMJ4Q4QPhDByD16TAzyVFP2gSX40Rxlfqi1jc-Mnii3IMLLLSJlQGhpAKnHh~ZVx9JX2jFiH-k8ShJ1VQxciUxEbOO-VrrKrkapdF5P7MhEI2WMIZ817s~FN2~~1zBK3V-8L0cdBTVwDbxFC3n-WtF0eAT8ZJhPzJgXuF93uUrAnYGnnlCwU3u7mxkr900LbJDJ79nit8-MOmP0QCBRuou-2-8KCKqWhPwbh--JCYJLsE2L6NaAjdWmvw__&Key-Pair-Id=dev",
"expiresOn": 1592577642
}
CourseRating
Description
Ratings of a course
Fields
Field Name | Description |
---|---|
average - AverageRating | Weighted average rating. Ranges from 0 to 5.0 |
count - Int! | Number of ratings |
Example
{"average": 4.5, "count": 123}
CourseRecommendation
Description
A wrapper type to include the recommended Course and some additional fields about its recommendation
Fields
Field Name | Description |
---|---|
id - ID! | This is the ID of this wrapper object. This ID is different from the ID of the underlying recommended object to provide uniqueness across item types |
trackingId - String! | Tracking ID generated in the backend. Useful to relate tracking events generated in the backend with the tracking events generated in the frontend. The value will change each time a recommendation item is served |
course - Course | Underlying object of the recommendation to get more information about it |
Example
{
"id": 4,
"trackingId": "ZGNlMWM2NGItYmQ0Ni00Yj",
"course": Course
}
CourseSearchResponse
Description
List of Courses and additional data about search response
Fields
Field Name | Description |
---|---|
courses - [Course!]! | List of Course objects Use results instead |
results - [CourseSearchResult]! | List of CourseSearchResult objects containing course and additional search related fields |
count - Int! | Total number of Courses matching the search query and filters |
filterOptions - [SearchAggregation!]! | Identifies available search filter facets |
pageCount - Int! | The total amount of pages in search response |
page - Int! | The current page number, 0 based |
metadata - CourseSearchResponseMetadata | Metadata for whole search result used by front end |
Example
{
"courses": [Course],
"results": [CourseSearchResult],
"count": 123,
"filterOptions": [SearchAggregation],
"pageCount": 987,
"page": 123,
"metadata": CourseSearchResponseMetadata
}
CourseSearchResponseMetadata
Description
Contains info for front end related stuff and tracking info. This data is calculated by backend service and used by Udemy front end. If you are an external user, you shouldn't need this
Fields
Field Name | Description |
---|---|
trackingId - String! | Search analytics tracking id; for uniquely identifying this query and result set; for this request |
originalQuery - String! | Original search query, without any manipulation |
querySuggestion - SearchQuerySuggestion | Search query suggestion containing the suggested query and the suggestion type |
hasOrgCourses - Boolean! | Whether there are available courses for organizations in the search result or not |
associatedTopic - Topic | Associated topic for the search response |
certificationTopic - Topic | Certification topic for the search response |
experimentResults - [FeatureVariantAssignment!]! | For the request, show experiment metadata results like bucketing info, experiment IDs of assigned feature variants |
debug - JSON | Debug information for the search response |
Example
{
"trackingId": "O9eKKCzdQim95RLDVXI3OA",
"originalQuery": "pyt",
"querySuggestion": SearchQuerySuggestion,
"hasOrgCourses": true,
"associatedTopic": Topic,
"certificationTopic": Topic,
"experimentResults": [FeatureVariantAssignment],
"debug": "{\"key\":\"value\"}"
}
CourseSearchResult
Description
Represents a course search result with additional data about the search response
Fields
Field Name | Description |
---|---|
course - Course! | The course information returned in the search result |
trackingId - String! | Unique analytics ID for this instance of Course returned from the server in this request |
curriculumItemMatches - [CurriculumItem]! | Curriculum items that match with the search query |
searchDebugFeatures - JSON | Debugging information related to the search process for this course |
Example
{
"course": Course,
"trackingId": "O9eKKCzdQim95RLDVXI3OA",
"curriculumItemMatches": [CurriculumItem],
"searchDebugFeatures": "{\"key\":\"value\"}"
}
CourseSection
Description
Section of the course containing all types of curriculum items
Fields
Field Name | Description |
---|---|
id - ID! | Identifier for the course section |
title - String! | Title of the section |
description - String | What will students be able to do at the end of this section? |
items - [CurriculumItem!]! | Content of the section |
versionedIdentifier - VersionedIdentifier! | Versioned identifier of the course section |
course - Course | Course this section belongs to |
Example
{
"id": 4,
"title": "Introduction",
"description": "<p><strong>Welcome to the AWS Certified Cloud Practitioner Course!</strong></p>",
"items": [CurriculumItem],
"versionedIdentifier": VersionedIdentifier,
"course": Course
}
CourseSectionRecommendation
Description
A wrapper type to include the recommended Course Section and some additional fields about its recommendation
Fields
Field Name | Description |
---|---|
id - ID! | This is the ID of this wrapper object. This ID is different from the ID of the underlying recommended object to provide uniqueness across item types |
trackingId - String! | Tracking ID generated in the backend. Useful to relate tracking events generated in the backend with the tracking events generated in the frontend. The value will change each time a recommendation item is served |
courseSection - CourseSection | Underlying object of the recommendation to get more information about it |
Example
{
"id": 4,
"trackingId": "ZGNlMWM2NGItYmQ0Ni00Yj",
"courseSection": CourseSection
}
CourseSubCategory
Description
SubCategory that is part of CourseCategory
Example
{
"id": "4",
"name": "IT Certifications",
"url": "https://learning.udemy.com/courses/ufb-it-operations/ufb-it-certifications"
}
CourseSubscriptionInfo
Description
Subscription specific course properties
Fields
Field Name | Description |
---|---|
inSubscriptions - [SubscriptionPlan!] | Indicates which type of user's subscription course is included in |
availableInSubscriptions - [SubscriptionPlan!] | Indicates which types of subscription this course can be purchased in |
Example
{
"inSubscriptions": [SubscriptionPlan],
"availableInSubscriptions": [SubscriptionPlan]
}
Curriculum
Description
Curriculum part of a course
Fields
Field Name | Description |
---|---|
sections - [CourseSection!]! | Each course section containing the course curriculum content |
course - Course | Course this curriculum belongs to |
versionedIdentifier - VersionedIdentifier! | Versioned identifier of the curriculum |
contentCounts - CourseCurriculumContentCounts | Count of the course curriculum content by type |
Example
{
"sections": [CourseSection],
"course": Course,
"versionedIdentifier": VersionedIdentifier,
"contentCounts": CourseCurriculumContentCounts
}
DailySubscriptionPlanPricingOption
Description
Price option for computed price plan. Will be returned for daily plans
Fields
Field Name | Description |
---|---|
id - ID! | ID of the price option: |
listPrice - Money! | The list price of the subscription price plan based on provided requested count from request |
renewalInterval - DateInterval! | Interval for renewing the subscription plan ie the length of the subscription plan |
trial - SubscriptionTrial | Field containing details about the trial subscription offer for a given user. Null indicates no trial is available |
licenseContext - SubscriptionPlanLicenseContext | Contains information about the license context for a given subscription plan price option |
discount - SubscriptionPlanDiscount | Contains information about the discount context for a given subscription plan price option |
discountTrial - SubscriptionTrial | Field containing details about the discounted trial subscription offer for a given user. Null indicates no trial is available |
price - SubscriptionPlanPrice | Field showing the prices for the option |
Example
{
"id": "4",
"listPrice": Money,
"renewalInterval": DateInterval,
"trial": SubscriptionTrial,
"licenseContext": SubscriptionPlanLicenseContext,
"discount": SubscriptionPlanDiscount,
"discountTrial": SubscriptionTrial,
"price": SubscriptionPlanPrice
}
DateInterval
Description
Type representing details about an interval of dates
Fields
Field Name | Description |
---|---|
count - Int! | The count of type in the interval |
type - DateIntervalType! | Type type of interval |
Example
{"count": 123, "type": "DAY"}
DynamicWebContent
Description
The content of a component defined in the CMS
Fields
Field Name | Description |
---|---|
contents - [DynamicWebContent] | The associated sub content contained within this piece of content. This allows us to create a collection of nested web content |
contentUrl - URL | The URL to the associated content |
contentUrlText - String | The text for the URL to the piece of content |
description - String | The description text for the dynamic web content |
heading - String | The heading text for the dynamic web content |
image - DynamicWebContentImage | The text for the content label |
labelText - String | The image URL of the secondary image asset associated with this content, usually an icon, with optional alt text |
secondaryImage - DynamicWebContentImage | The image URL of the main image asset associated with this content, with optional alt text |
trackingId - ID | The tracking ID of the piece of content. To be used to uniquely identify the content in event tracking |
Example
{
"contents": [DynamicWebContent],
"contentUrl": "https://www.udemy.com/",
"contentUrlText": "Get the report",
"description": "GenAI and leadership are at the core of today's skills-based economy. Get the 2024 Global Learning & Skills Trends Report to learn more.",
"heading": "Top trends for the future of work",
"image": DynamicWebContentImage,
"labelText": "Current",
"secondaryImage": DynamicWebContentImage,
"trackingId": "4"
}
DynamicWebContentImage
Description
The dynamic web image object. This combines the image URL and the alt text for the image for a11y purposes
Example
{
"altText": "VW logo",
"url": "https://www.udemy.com/"
}
EBookLecture
Description
Lecture in form of an EBook (deprecated)
Fields
Field Name | Description |
---|---|
id - ID! | Id of the lecture |
title - String! | Lecture title |
images - LectureImages! | Images by their dimensions |
urlAutoEnroll - URL! | The URL to access the lecture on the auto-enroll page |
urlLanding - URL! | Landing page to view this Lecture |
thumbnail - URL | The URL of the lecture thumbnail |
durationInSeconds - DurationInSeconds! | Total duration of the lecture's content in seconds |
course - Course | The Course this lecture belongs to |
versionedIdentifier - VersionedIdentifier! | Versioned identifier of the lecture |
Example
{
"id": "4",
"title": "Course Introduction - AWS Certified Solutions Architect Associate",
"images": LectureImages,
"urlAutoEnroll": "https://www.udemy.com/course/aws-certified-solutions-architect-associate/learn/lecture/23206582/enroll",
"urlLanding": "https://www.udemy.com/course/aws-certified-solutions-architect-associate/learn/lecture/23206582/?couponCode=AWSARCH-2021",
"thumbnail": "https://www.udemy.com/",
"durationInSeconds": 19263,
"course": Course,
"versionedIdentifier": VersionedIdentifier
}
Entity
Description
Represents the entity who was affected by the event
Fields
Field Name | Description |
---|---|
entityId - ID! | The unique identifier for the entity |
entityType - EntityType! | The type of entity, such as an end user, group, or license |
Example
{"entityId": "4", "entityType": "NA"}
ExternalLecture
Description
Lecture that refers to an external source (deprecated)
Fields
Field Name | Description |
---|---|
id - ID! | Id of the lecture |
title - String! | Lecture title |
images - LectureImages! | Images by their dimensions |
urlAutoEnroll - URL! | The URL to access the lecture on the auto-enroll page |
urlLanding - URL! | Landing page to view this Lecture |
thumbnail - URL | The URL of the lecture thumbnail |
course - Course | The Course this lecture belongs to |
versionedIdentifier - VersionedIdentifier! | Versioned identifier of the lecture |
Example
{
"id": "4",
"title": "Course Introduction - AWS Certified Solutions Architect Associate",
"images": LectureImages,
"urlAutoEnroll": "https://www.udemy.com/course/aws-certified-solutions-architect-associate/learn/lecture/23206582/enroll",
"urlLanding": "https://www.udemy.com/course/aws-certified-solutions-architect-associate/learn/lecture/23206582/?couponCode=AWSARCH-2021",
"thumbnail": "https://www.udemy.com/",
"course": Course,
"versionedIdentifier": VersionedIdentifier
}
FeatureVariantAssignment
Description
Holds assigned feature variant
Fields
Field Name | Description |
---|---|
featureCode - String! | Feature code of assigned feature variant |
configuration - JSON | Configuration data of assigned feature variant |
isInExperiment - Boolean | Shows whether this feature variant is in experiment |
experimentIds - [Int!]! | List of experiment ids bucketed for current feature |
isLocalDefault - Boolean! | Indicates whether the presentation on the frontend is the actual response of the Experimentation Platform or not |
Example
{
"featureCode": "ab-testing",
"configuration": "{\"key\":\"value\"}",
"isInExperiment": false,
"experimentIds": [987],
"isLocalDefault": true
}
FileLecture
Description
Lecture in the form of a single file (deprecated)
Fields
Field Name | Description |
---|---|
id - ID! | Id of the lecture |
title - String! | Lecture title |
images - LectureImages! | Images by their dimensions |
urlAutoEnroll - URL! | The URL to access the lecture on the auto-enroll page |
urlLanding - URL! | Landing page to view this Lecture |
thumbnail - URL | The URL of the lecture thumbnail |
course - Course | The Course this lecture belongs to |
versionedIdentifier - VersionedIdentifier! | Versioned identifier of the lecture |
Example
{
"id": 4,
"title": "Course Introduction - AWS Certified Solutions Architect Associate",
"images": LectureImages,
"urlAutoEnroll": "https://www.udemy.com/course/aws-certified-solutions-architect-associate/learn/lecture/23206582/enroll",
"urlLanding": "https://www.udemy.com/course/aws-certified-solutions-architect-associate/learn/lecture/23206582/?couponCode=AWSARCH-2021",
"thumbnail": "https://www.udemy.com/",
"course": Course,
"versionedIdentifier": VersionedIdentifier
}
HotAndNewBadge
Description
Represents a badge awarded to a hot and new learning product
Fields
Field Name | Description |
---|---|
name - String! | The localized name of the badge |
Example
{"name": "Hot & New"}
InstructorImages
Description
Instructor images by varying dimensions
Fields
Field Name | Description |
---|---|
px50x50 - String | Instructor image with 50x50 dimensions in pixels |
Example
{"px50x50": "https://img-c.udemycdn.com/user/50x50/11112134_64e1_2.jpg"}
InstructorRecommendation
Description
A wrapper type to include the recommended Instructor and some additional fields about its recommendation
Fields
Field Name | Description |
---|---|
id - ID! | This is the ID of this wrapper object. This ID is different from the ID of the underlying recommended object to provide uniqueness across item types |
trackingId - String! | Tracking ID generated in the backend. Useful to relate tracking events generated in the backend with the tracking events generated in the frontend. The value will change each time a recommendation item is served |
instructor - CourseInstructor | Underlying object of the recommendation to get more information about it |
Example
{
"id": 4,
"trackingId": "ZGNlMWM2NGItYmQ0Ni00Yj",
"instructor": CourseInstructor
}
Lab
Description
The Lab object
Fields
Field Name | Description |
---|---|
id - ID! | ID of the Lab |
title - String! | Title of the Lab |
description - SafeHtml | Top level description of the Lab |
learningOutcomes - [String!]! | Bulleted list of things a person will learn in this Lab |
activities - [String!]! | Bulleted list of things a person will accomplish in this Lab |
prerequisites - [String!]! | Bulleted list of things a person should already know in order to do this Lab |
minEstimatedTime - DurationInSeconds! | Lower bound of estimated time (in seconds) to complete Lab |
maxEstimatedTime - DurationInSeconds! | Upper bound of estimated time (in seconds) to complete Lab |
instructors - [LabInstructor!]! | The Lab's Instructors |
topics - [Topic!] | The Lab's topics |
urlLanding - URL! | The Lab's landing URL |
metadata - LabMetaData | Metadata associated with the lab |
durationInSeconds - DurationInSeconds | Average duration of lab in seconds |
Example
{
"id": "4",
"title": "Lab 1: Create a VPC",
"description": "<p>Learn how to create a VPC</p>",
"learningOutcomes": ["VPC is created"],
"activities": ["Create a VPC"],
"prerequisites": ["AWS Account"],
"minEstimatedTime": 19263,
"maxEstimatedTime": 19263,
"instructors": [LabInstructor],
"topics": [Topic],
"urlLanding": "https://www.udemy.com/",
"metadata": LabMetaData,
"durationInSeconds": 19263
}
LabInstructor
Description
Instructor for a lab
Fields
Field Name | Description |
---|---|
id - ID! | ID of the Instructor |
name - String! | Instructor's name |
url - URL | The URL to access the instructor page |
images - InstructorImages! | Instructor's image by varying pixels |
Example
{
"id": "4",
"name": "Stephane Maarek",
"url": "https://www.udemy.com/user/stephane-maarek/",
"images": InstructorImages
}
LabMetaData
Description
MetaData for a lab
Fields
Field Name | Description |
---|---|
trackingId - String | Unique analytics ID for this instance of Lab returned from the server in this request |
Example
{"trackingId": "S8HU-xXXQ_OZ_hLKlVvOEQ"}
LabRecommendation
Description
A wrapper type to include the recommended Lab and some additional fields about its recommendation
Fields
Field Name | Description |
---|---|
id - ID! | This is the ID of this wrapper object. This ID is different from the ID of the underlying recommended object to provide uniqueness across item types |
trackingId - String! | Tracking ID generated in the backend. Useful to relate tracking events generated in the backend with the tracking events generated in the frontend. The value will change each time a recommendation item is served |
lab - Lab | Underlying object of the recommendation to get more information about it |
Example
{
"id": "4",
"trackingId": "ZGNlMWM2NGItYmQ0Ni00Yj",
"lab": Lab
}
LabSearchResponse
Description
List of Labs and additional data about search response
Fields
Field Name | Description |
---|---|
labs - [Lab!]! | List of Lab objects |
count - Int! | Total number of Labs matching the search query and filters |
filterOptions - [SearchAggregation!]! | Identifies available search filter facets |
trackingId - String! | Search analytics tracking id; for uniquely identifying this query and result set; for this request |
Example
{
"labs": [Lab],
"count": 123,
"filterOptions": [SearchAggregation],
"trackingId": "S8HU-xXXQ_OZ_hLKlVvOEQ"
}
LearningPathCatalogFullResponsePaged
Description
Catalog of all learning paths available to the client
Fields
Field Name | Description |
---|---|
learningPaths - [LearningPath]! | List of courses in the catalog |
syncToken - String! | Sync Token to use for the next delta sync |
cursor - String | Cursor to get the next page. Null if no more results available |
Example
{
"learningPaths": [LearningPath],
"syncToken": "Yjc3YTZlOTEtMmUzNy00MzcxLWJhZjQtZWQ5ZWM4MTJjODA4OjE2ODU2NDIxOTQ6bGVhcm5pbmctODIwMTEyNjMtMTVjMi00Njhh",
"cursor": "WmpVMlkyWXpOV0V0WXpVM01TMDBOVEV5TFdJMVlUVXRPRFV4TURKa1pEQmpOREEwT2pFM01qYzVPRFkzTURBNk1UQTVPVFk9OjI0"
}
LearningPathCatalogUpdatedResponsePaged
Description
Changes to catalog of all learning paths available to the client since last sync
Fields
Field Name | Description |
---|---|
addedLearningPaths - [LearningPath]! | Learning Paths added since last sync |
updatedLearningPaths - [LearningPath]! | Learning Paths updated since last sync |
removedLearningPaths - [ID!]! | Learning Path IDs for courses removed since last sync |
syncToken - String! | Sync Token to use for the next delta sync |
cursor - String | Cursor to get the next page. Null if no more results available |
Example
{
"addedLearningPaths": [LearningPath],
"updatedLearningPaths": [LearningPath],
"removedLearningPaths": [4],
"syncToken": "Yjc3YTZlOTEtMmUzNy00MzcxLWJhZjQtZWQ5ZWM4MTJjODA4OjE2ODU2NDIxOTQ6bGVhcm5pbmctODIwMTEyNjMtMTVjMi00Njhh",
"cursor": "WmpVMlkyWXpOV0V0WXpVM01TMDBOVEV5TFdJMVlUVXRPRFV4TURKa1pEQmpOREEwT2pFM01qYzVPRFkzTURBNk1UQTVPVFk9OjI0"
}
LearningPathCoursePortion
Description
Collection of curriculum items presented in a learning path as a one item
Fields
Field Name | Description |
---|---|
id - ID! | ID of the course portion |
title - String! | Title of the course portion |
description - SafeHtml | Description of the course portion |
durationInSeconds - DurationInSeconds | The duration of the course portion |
items - [CurriculumItem] | Items in the course portion |
Example
{
"id": 4,
"title": "LLM Fine Tuning on OpenAI",
"description": SafeHtml,
"durationInSeconds": 19263,
"items": [CurriculumItem]
}
LearningPathRecommendation
Description
A wrapper type to include the recommended Learning Path and some additional fields about its recommendation
Fields
Field Name | Description |
---|---|
id - ID! | This is the ID of this wrapper object. This ID is different from the ID of the underlying recommended object to provide uniqueness across item types |
trackingId - String! | Tracking ID generated in the backend. Useful to relate tracking events generated in the backend with the tracking events generated in the frontend. The value will change each time a recommendation item is served |
learningPath - LearningPath | Underlying object of the recommendation to get more information about it |
Example
{
"id": 4,
"trackingId": "ZGNlMWM2NGItYmQ0Ni00Yj",
"learningPath": LearningPath
}
LearningPathResource
Description
Learning Path Resource represents a link to another resource
Fields
Field Name | Description |
---|---|
id - ID! | ID of the learning path resource |
title - String! | Title of the learning path resource |
description - SafeHtml | Description of the learning path resource |
durationInSeconds - DurationInSeconds | The duration of the learning path resource |
urlLanding - URL! | Landing URL for the learning path resource |
Example
{
"id": 4,
"title": "COURSE FAQs and DOWNLOADS HERE",
"description": SafeHtml,
"durationInSeconds": 19263,
"urlLanding": "https://www.udemy.com/"
}
LearningPathSearchResponse
Description
List of LearningPath and additional data about search response
Fields
Field Name | Description |
---|---|
paths - [ProLearningPath!]! | Found learning for search request |
count - Int! | Total number of Paths matching the search query and filters |
metadata - PathSearchResponseMetadata | Metadata for whole search result used by front end |
Example
{
"paths": [ProLearningPath],
"count": 123,
"metadata": PathSearchResponseMetadata
}
LearningPathSection
Description
Learning Path Section represents a collection of items in a learning path
Fields
Field Name | Description |
---|---|
id - ID! | ID of the section |
title - String! | Title of the section |
description - SafeHtml | Description of the section |
durationInSeconds - DurationInSeconds | The duration of the section |
itemCount - Int! | Number of items in the section |
items - [LearningPathItem] | Items in the section |
Example
{
"id": 4,
"title": "Improving LLM Performance",
"description": SafeHtml,
"durationInSeconds": 19263,
"itemCount": 987,
"items": [LearningPathItem]
}
LearningProductsPaged
Description
A collection of learning products for a partner
Fields
Field Name | Description |
---|---|
page - Int! | The current page number, 0 based |
pageCount - Int! | The total amount of pages. Calculated as (total result count / page size) |
items - [LearningProduct!]! | The contents of the collection, currently just courses. Items may be less than requested size if objects become unavailable |
Example
{
"page": 123,
"pageCount": 123,
"items": [LearningProduct]
}
LearningTestimonial
Description
The testimonial given relevant to a learning item or event
Fields
Field Name | Description |
---|---|
content - String! | The localized content of the Learning Testimonial |
id - ID! | The ID of the Learning Testimonial |
relatedUrl - URL! | The URL related to the Learning Testimonial |
relatedUrlText - String! | The localized text for the URL related to the Learning Testimonial |
source - LearningTestimonialSource! | The source of the Learning Testimonial |
type - LearningTestimonialType! | The type of Learning Testimonial |
Example
{
"content": "<p>Udemy was rated the most popular online course or certification program for learning how to code according to StackOverflow’s 2023 Developer survey. </p>",
"id": 4,
"relatedUrl": "https://www.udemy.com/",
"relatedUrlText": "<p><b>View Web Development courses</b></p>",
"source": LearningTestimonialSource,
"type": "CASE_STUDY"
}
LearningTestimonialSource
Description
The source of the learning testimonial
Fields
Field Name | Description |
---|---|
image - URL! | The URL to the image asset of the source for the Learning Testimonial |
description - String | Description text of the source for the Learning Testimonial (e.g., job title for Course Review types, etc) |
name - String! | Name of the source for the Learning Testimonial |
Example
{
"image": "https://www.udemy.com/",
"description": "<p>Stack<b>Overflow</b></p>",
"name": "Stack Overflow"
}
LectureImages
Description
Lecture images by varying dimensions
Fields
Field Name | Description |
---|---|
height50 - String | Lecture preview image with 50 pixels height |
height75 - String | Lecture preview image with 75 pixels height |
height100 - String | Lecture preview image with 100 pixels height |
height320 - String | Lecture preview image with 320 pixels height |
height480 - String | Lecture preview image with 480 pixels height |
Example
{
"height50": "https://img-c.udemycdn.com/lecture/50_H/32955996_03ea_2.jpg",
"height75": "https://img-c.udemycdn.com/lecture/75_H/32955996_03ea_2.jpg",
"height100": "https://img-c.udemycdn.com/lecture/100_H/32955996_03ea_2.jpg",
"height320": "https://img-c.udemycdn.com/lecture/320_H/32955996_03ea_2.jpg",
"height480": "https://img-c.udemycdn.com/lecture/480_H/32955996_03ea_2.jpg"
}
LectureRecommendation
Description
A wrapper type to include the recommended Lecture and some additional fields about its recommendation
Fields
Field Name | Description |
---|---|
id - ID! | This is the ID of this wrapper object. This ID is different from the ID of the underlying recommended object to provide uniqueness across item types |
trackingId - String! | Tracking ID generated in the backend. Useful to relate tracking events generated in the backend with the tracking events generated in the frontend. The value will change each time a recommendation item is served |
lecture - Lecture | Underlying object of the recommendation to get more information about it |
Example
{
"id": 4,
"trackingId": "ZGNlMWM2NGItYmQ0Ni00Yj",
"lecture": Lecture
}
LectureSearchResponse
Description
List of LectureResults and additional data about search response
Fields
Field Name | Description |
---|---|
results - [LectureSearchResult]! | List of LectureResult objects. The main search result is found in this list. This result is made nullable as a catch point for any errors that may occur downstream |
metadata - LectureSearchResponseMetadata | Metadata for whole search result used by front end |
experimentResults - [FeatureVariantAssignment!]! | For the request, shows experiment metadata result like bucking info, experiment IDs of assigned feature variants |
Example
{
"results": [LectureSearchResult],
"metadata": LectureSearchResponseMetadata,
"experimentResults": [FeatureVariantAssignment]
}
LectureSearchResponseMetadata
Description
Contains info for front end related stuff and tracking info. This data is calculated by backend service and used by Udemy front end. If you are an external user, you shouldn't need this
Fields
Field Name | Description |
---|---|
lectureExperimentVariant - String! | Experiment variant for the lecture unit |
lectureUnitOrder - Int! | Order of the lecture unit at the search result page. The value is calculated according to query intent evaluation |
labUnitOrder - Int! | Order of the lab unit at the search result page. The value is calculated according to query intent evaluation |
trackingId - String! | Search analytics tracking id; for uniquely identifying this query and result set; for this request |
Example
{
"lectureExperimentVariant": "control",
"lectureUnitOrder": "3",
"labUnitOrder": "6",
"trackingId": "p55X_jHUQ7yNmI0HQ4TmgA"
}
LectureSearchResult
Description
Identifies each result for lecture search
Example
{
"lecture": Lecture,
"course": Course,
"trackingId": "p55X_jHUQ7yNmI0HQ4TmgA"
}
Lesson
Description
A lesson associated with a learning product
Fields
Field Name | Description |
---|---|
id - LessonId! | The id of the lesson |
version - String! | The version of the lesson |
entityTag - Int! | The entity tag for optimistic locking, to be provided, as read, when updating |
locale - Locale! | The lesson's original locale |
created - DateTime | The creation timestamp |
updated - DateTime | The last update timestamp |
article - LessonArticle | The lesson article whose fragments are mapped within the playable media |
Example
{
"id": {"idType": "ASSET_ID", "idValue": "12392384"},
"version": "@1746636635859356",
"entityTag": 4,
"locale": "en-US",
"created": "2007-12-03T10:15:30Z",
"updated": "2007-12-03T10:15:30Z",
"article": {
"uuid": "a210e247-a33c-478c-82a6-1244cf695de1",
"title": "Intro to Containers",
"description": "This article explains what containers are",
"locale": "en-US",
"source": "AI",
"takeaways": {
"content": "- Containers are lightweight\n- Great for microservices"
},
"fragments": [
{
"timestamp": 10,
"content": {
"__typename": "Markdown",
"content": "This part explains Docker basics."
}
},
{
"timestamp": 30,
"content": {
"__typename": "Markdown",
"content": "Now let's dive into layers and images."
}
},
{
"timestamp": 60,
"content": {
"__typename": "CodeBlock",
"language": "rust",
"code": "hello.world()"
}
}
]
}
}
LessonArticle
Description
A rich article whose fragments can map to timestamps within the playable media
Fields
Field Name | Description |
---|---|
uuid - UUID! | A uuid uniquely identifying an article |
title - String! | The title of the article |
description - String! | A description for the article |
locale - Locale! | The article's locale. Supports translation |
takeaways - Markdown | The key takeaways of an article in markdown format |
fragments - [LessonArticleFragment!]! | The article's fragments |
source - ContentSourceType! | The source of the article |
Example
{
"uuid": "a210e247-a33c-478c-82a6-1244cf695de1",
"title": "some title",
"description": "some description",
"locale": "en-US",
"takeaways": Markdown,
"fragments": [LessonArticleFragment],
"source": "AI"
}
LessonArticleFragment
Description
A fragment of an article with possible mapping to the lesson's playable media
Fields
Field Name | Description |
---|---|
timestamp - OffsetInSeconds | The offset in seconds within the playable media this fragment corresponds to |
content - LessonArticleFragmentContent! | The polymorphic content of the fragment |
Example
{
"timestamp": OffsetInSeconds,
"content": Markdown
}
LessonId
Description
A flexible identification for a lesson
Fields
Field Name | Description |
---|---|
idType - LessonIdType! | The type of the id |
idValue - ID! | The id value |
Example
{"idType": "ASSET_ID", "idValue": 4}
Markdown
Description
A micro-content representing markdown
Fields
Field Name | Description |
---|---|
content - String! | The markdown value |
Example
{"content": "#section head\nsome paragraph"}
MetadataEntry
Description
Represents a key-value pair in metadata
Example
{"key": "actorEmail", "value": "awesomeActor@udemy.com"}
Money
Description
Money
Fields
Field Name | Description |
---|---|
amount - Decimal | Amount |
currency - CurrencyCode | Currency |
Example
{"amount": "1234.5678", "currency": "AUD"}
MonthlySubscriptionPlanPricingOption
Description
Price option for computed price plan. Will be returned for monthly plans
Fields
Field Name | Description |
---|---|
id - ID! | ID of the price option: |
listPrice - Money! | The list price of the subscription price plan based on provided requested count from request |
renewalInterval - DateInterval! | Interval for renewing the subscription plan ie the length of the subscription plan |
trial - SubscriptionTrial | Field containing details about the trial subscription offer for a given user. Null indicates no trial is available |
licenseContext - SubscriptionPlanLicenseContext | Contains information about the license context for a given subscription plan price option |
discount - SubscriptionPlanDiscount | Contains information about the discount context for a given subscription plan price option |
discountTrial - SubscriptionTrial | Field containing details about the discounted trial subscription offer for a given user. Null indicates no trial is available |
price - SubscriptionPlanPrice | Field showing the prices for the option |
Example
{
"id": "4",
"listPrice": Money,
"renewalInterval": DateInterval,
"trial": SubscriptionTrial,
"licenseContext": SubscriptionPlanLicenseContext,
"discount": SubscriptionPlanDiscount,
"discountTrial": SubscriptionTrial,
"price": SubscriptionPlanPrice
}
MoreRecommendationContextSectionsResponse
Description
Response returned when more RecommendationContextSections are queried for a RecommendationContext
Fields
Field Name | Description |
---|---|
sections - [RecommendationContextSection!]! | A slice of RecommendationContextSections available in a RecommendationContext. Slice boundaries are determined by the cursor and count parameters in the query |
sectionsCursor - String | Cursor to get more RecommendationContextSections from the RecommendationContext. Null, if there is no more |
Example
{
"sections": [RecommendationContextSection],
"sectionsCursor": "WkdObE1XTTJOR0l0WW1RME5pMDBZago="
}
MoreRecommendationItemsResponse
Description
Response returned when more RecommendationItems are queried for a RecommendationUnit
Fields
Field Name | Description |
---|---|
items - [RecommendationItem!]! | A slice of RecommendationItems available in a RecommendationUnit. Slice boundaries are determined by the cursor and count parameters in the query |
itemsCursor - String | Cursor to get more RecommendationItems from this RecommendationUnit. Null, if there is no more |
Example
{
"items": [RecommendationItem],
"itemsCursor": "WkdObE1XTTJOR0l0WW1RME5pMDBZago="
}
NewBadge
Description
Represents a badge awarded to a new learning product
Fields
Field Name | Description |
---|---|
name - String! | The localized name of the badge |
Example
{"name": "New"}
OccupationRecommendation
Description
A wrapper type to include the recommended Occupation and some additional fields about its recommendation
Fields
Field Name | Description |
---|---|
id - ID! | This is the ID of this wrapper object. This ID is different from the ID of the underlying recommended object to provide uniqueness across item types |
trackingId - String! | Tracking ID generated in the backend. Useful to relate tracking events generated in the backend with the tracking events generated in the frontend. The value will change each time a recommendation item is served |
Example
{"id": 4, "trackingId": "ZGNlMWM2NGItYmQ0Ni00Yj"}
OpenBadgeClass
Description
The OpenBadgeClass object. This implements the BadgeClass
Fields
Field Name | Description |
---|---|
id - ID! | ID of the BadgeClass |
externalUrl - URL! | IRI of the BadgeClass. IRI of OpenBadge specification |
type - [String!]! | Type of the BadgeClass. In most cases, this will simply be the string BadgeClass |
name - String! | Name of the BadgeClass |
description - String! | A short description of BadgeClass |
image - BadgeClassImage! | A PNG or SVG image of the BadgeClass |
criteria - BadgeClassCriteria! | Criteria document describing how to earn the BadgeClass (Certification) |
issuer - BadgeClassIssuer! | Organization that issued the badge |
alignment - [BadgeClassAlignment!] | An object describing which objectives or educational standards this badge aligns to, if any |
tags - [String!]! | A tag that describes the type of achievement. (Skills) |
topic - Topic | Topic of badge class. Can be null for badge classes uploaded by users |
assertions - [BadgeAssertion!]! | User's assertions for the badge class |
subjectAreas - [BadgeCertificationSubjectArea!] | Subject Area (recently renamed to Skill Area) for this BadgeClass (i.e. Data Science, CyberSecurity) |
providers - [BadgeCertificationProvider!] | Certification Provider for this Badge Class |
examRegistrationUrls - [CertificationExamURL!]! | Links to exam registration page for this certification (deprecated) |
certificationExam - CertificationExam | Exam registration details, if an exam is required for earning this Badge |
totalAssertionsCount - Int! | Total number of assertions issued for this badge class |
isEnrolled - Boolean! | Whether the current user is enrolled |
Example
{
"id": "4",
"externalUrl": "https://www.udemy.com/",
"type": ["CERTIFICATION"],
"name": "CCIE Lifetime Emeritus - Data Center",
"description": "Lifetime Emeritus status signifies that a member maintains an active status as a CCIE or as a CCIE Emeritus for 20 consecutive years in at least one CCIE track.",
"image": BadgeClassImage,
"criteria": BadgeClassCriteria,
"issuer": BadgeClassIssuer,
"alignment": [BadgeClassAlignment],
"tags": ["CCIE", "Data Center"],
"topic": Topic,
"assertions": [BadgeAssertion],
"subjectAreas": [BadgeCertificationSubjectArea],
"providers": [BadgeCertificationProvider],
"examRegistrationUrls": [CertificationExamURL],
"certificationExam": CertificationExam,
"totalAssertionsCount": 987,
"isEnrolled": true
}
Organization
Description
A UB organization
Fields
Field Name | Description |
---|---|
id - ID! | The UB organization's unique identifier |
images - OrganizationImages! | Images for an organization |
type - OrganizationType! | Organization type |
Example
{
"id": "4",
"images": OrganizationImages,
"type": "UDEMY_BUSINESS"
}
OrganizationAuditLog
Description
Represents an audit log entry for an organization
Fields
Field Name | Description |
---|---|
orgId - ID! | The unique identifier for the organization associated with the audit log |
timestamp - DateTime! | The timestamp for when the event occurred |
actor - Actor! | The actor who performed the action logged in this entry |
entity - Entity | The entity who was affected by the action logged in this entry. This is optional as some events may not have a directly associated entity |
event - AuditEvent! | The event that occurred (e.g., 'USER_CREATED') |
metadata - [MetadataEntry!]! | Additional metadata associated with the event, as a list of key-value pairs |
Example
{
"orgId": 4,
"timestamp": "2007-12-03T10:15:30Z",
"actor": Actor,
"entity": Entity,
"event": "USER_CREATED",
"metadata": [MetadataEntry]
}
OrganizationBackgroundImages
OrganizationFaviconImages
OrganizationImages
Description
Images for an organization
Fields
Field Name | Description |
---|---|
background - OrganizationBackgroundImages | Background images for an organization |
logo - OrganizationLogoImages | Logo images for an organization |
favicon - OrganizationFaviconImages | Favicon images for an organization |
Example
{
"background": OrganizationBackgroundImages,
"logo": OrganizationLogoImages,
"favicon": OrganizationFaviconImages
}
OrganizationLearningPath
Description
Learning Path object that belongs to an organization
Fields
Field Name | Description |
---|---|
id - ID! | ID of the learning path |
title - String! | Title of the learning path |
description - SafeHtml | Description of the learning path |
itemCount - Int! | Number of items in the learning path |
numberOfEnrollments - Int! | Total No of enrollments for the learning path |
isEnrolled - Boolean! | Is the user enrolled in this learning path or not |
topics - [Topic!] | Topics associated with the learning path |
badges - [BadgeClass!] | Badges of the learning path |
urlLanding - URL! | Landing page to view this LearningPath |
trackingId - String | Unique analytics ID for this instance of LearningPath returned from the server in this request |
organization - Organization! | Organization that owns the learning path |
durationInSeconds - DurationInSeconds! | The duration of the learning path |
urlAutoEnroll - URL | The URL to enroll in the learning path |
sectionCount - Int! | Number of sections in the learning path |
sections - [LearningPathSection!] | Sections of the learning path |
Example
{
"id": "4",
"title": "Improving LLM Performance",
"description": SafeHtml,
"itemCount": 123,
"numberOfEnrollments": 123,
"isEnrolled": true,
"topics": [Topic],
"badges": [BadgeClass],
"urlLanding": "https://www.udemy.com/",
"trackingId": "nTjSznw2SbGLuE-Cd3T2Eg",
"organization": Organization,
"durationInSeconds": 19263,
"urlAutoEnroll": "https://www.udemy.com/",
"sectionCount": 123,
"sections": [LearningPathSection]
}
OrganizationLogoImages
PathSearchResponseMetadata
Description
Contains info for front end related stuff and tracking info. This data is calculated by backend service and used by Udemy front end. If you are an external user, you shouldn't need this
Fields
Field Name | Description |
---|---|
trackingId - String! | Search analytics tracking id; for uniquely identifying this query and result set; for this request |
experimentResults - [FeatureVariantAssignment!]! | For the request, shows experiment metadata result like bucking info, experiment IDs of assigned feature variants |
Example
{
"trackingId": "JjBqqc4LS2K9Ht_1LTpaMg",
"experimentResults": [FeatureVariantAssignment]
}
PopularTopic
Description
Popular topic
Fields
Field Name | Description |
---|---|
topic - Topic! | A topic |
subcategory - PopularTopicSubCategory | Associated Subcategory |
popularityType - TopicPopularityTypes | The type of popularity associated with this topic |
Example
{
"topic": Topic,
"subcategory": PopularTopicSubCategory,
"popularityType": "POPULAR"
}
PopularTopicSubCategory
PracticeAssignment
Description
Assigment test with multiple-choice and free-from questions reviewed by instructors
Fields
Field Name | Description |
---|---|
id - ID! | The Id of the assignment |
title - String! | The title of the assignment |
description - String! | Description of the assignment |
urlLanding - URL! | Landing page to view this PracticeAssignment |
versionedIdentifier - VersionedIdentifier! | Versioned identifier of the practice assignment |
course - Course | Course this practice assignment belongs to |
Example
{
"id": 4,
"title": "Practice Assignment 1",
"description": "Practice Assignment 1. AWS Certified Solutions Architect Associate",
"urlLanding": "https://www.udemy.com/",
"versionedIdentifier": VersionedIdentifier,
"course": Course
}
PracticeTest
Description
Practice test that is more detailed than a Quiz
Fields
Field Name | Description |
---|---|
id - ID! | The Id of the practice test |
title - String! | The title of the practice test |
minimumPassingScore - Int! | Percentage required to pass (0 - 100) |
randomized - Boolean! | Whether the question and answer order is randomized |
urlLanding - URL! | Landing page to view this PracticeTest |
versionedIdentifier - VersionedIdentifier! | Versioned identifier of the practice test |
course - Course | Course this practice test belongs to |
Example
{
"id": "4",
"title": "Practice Test 1. AWS Certified Solutions Architect Associate",
"minimumPassingScore": 987,
"randomized": true,
"urlLanding": "https://www.udemy.com/",
"versionedIdentifier": VersionedIdentifier,
"course": Course
}
PresentationLecture
Description
Presentation Lecture for Udemy Business
Fields
Field Name | Description |
---|---|
id - ID! | Id of the lecture |
title - String! | Lecture title |
images - LectureImages! | Images by their dimensions |
urlAutoEnroll - URL! | The URL to access the lecture on the auto-enroll page |
urlLanding - URL! | Landing page to view this Lecture |
thumbnail - URL | The URL of the lecture thumbnail |
durationInSeconds - DurationInSeconds! | Total duration of the lecture's content in seconds |
course - Course | The Course this lecture belongs to |
versionedIdentifier - VersionedIdentifier! | Versioned identifier of the lecture |
Example
{
"id": "4",
"title": "Course Introduction - AWS Certified Solutions Architect Associate",
"images": LectureImages,
"urlAutoEnroll": "https://www.udemy.com/course/aws-certified-solutions-architect-associate/learn/lecture/23206582/enroll",
"urlLanding": "https://www.udemy.com/course/aws-certified-solutions-architect-associate/learn/lecture/23206582/?couponCode=AWSARCH-2021",
"thumbnail": "https://www.udemy.com/",
"durationInSeconds": 19263,
"course": Course,
"versionedIdentifier": VersionedIdentifier
}
ProLearningPath
Description
The LearningPath only available for PRO subscriptions
Fields
Field Name | Description |
---|---|
id - ID! | ID of the learning path |
title - String! | Title of the learning path |
description - SafeHtml | Description of the learning path |
itemCount - Int! | Number of items in the learning path |
numberOfEnrollments - Int! | Total No of enrollments for the learning path |
isEnrolled - Boolean! | Is the user enrolled in this learning path or not |
topics - [Topic!] | Topics associated with the learning path |
badges - [BadgeClass!] | Badges of the learning path |
urlLanding - URL! | Landing page to view this LearningPath |
trackingId - String | Unique analytics ID for this instance of LearningPath returned from the server in this request |
durationInSeconds - DurationInSeconds! | The duration of the learning path |
urlAutoEnroll - URL | The URL to enroll in the learning path |
sectionCount - Int! | Number of sections in the learning path |
sections - [LearningPathSection!] | Sections of the learning path |
Example
{
"id": 4,
"title": "AWS Certified Solutions Architect Associate Learning Path",
"description": "Path to AWS Certified Solutions Architect Associate",
"itemCount": 123,
"numberOfEnrollments": 987,
"isEnrolled": false,
"topics": [Topic],
"badges": [BadgeClass],
"urlLanding": "https://www.udemy.com/",
"trackingId": "nTjSznw2SbGLuE-Cd3T2Eg",
"durationInSeconds": 19263,
"urlAutoEnroll": "https://www.udemy.com/",
"sectionCount": 987,
"sections": [LearningPathSection]
}
Quiz
Description
Quiz with simple questions and multiple choice answers
Fields
Field Name | Description |
---|---|
id - ID! | The Id of the quiz |
title - String! | The title of the quiz |
description - String | An optional description |
urlLanding - URL! | Landing page to view this Quiz |
versionedIdentifier - VersionedIdentifier! | Versioned identifier of the quiz |
course - Course | Course this quiz belongs to |
Example
{
"id": "4",
"title": "Quiz 1. AWS Certified Solutions Architect Associate",
"description": "Timed quiz for AWS Certified Solutions Architect Associate",
"urlLanding": "https://www.udemy.com/",
"versionedIdentifier": VersionedIdentifier,
"course": Course
}
RecommendationContext
Description
This is a top level grouping comprising all recommendations queried by a context code (ID of this object).
Usually, this corresponds to the entire page of the application. In that case, there would be just one recommendation context on a single page. The biggest advantage of serving all recommendations in one response, is the ability to run unit ranking and deduplication comprehensively for the entire recommendation context.
Even though, it is common to see a single page of the application uses only one recommendation context, it is not an obligation. The 'page' and 'context' concepts are decoupled. Having multiple contexts on a page might be acceptable if the trade-offs about compromising comprehensive ranking and deduplication are evaluated.
RecommendationContext doesn't directly contain a list of RecommendationItems. Instead, it has a list of sections. The UI should follow this grouping while rendering the recommendations
Fields
Field Name | Description |
---|---|
id - ID! | Also known as 'Context Code' |
trackingId - String! | Tracking ID generated in the backend. Useful to relate tracking events generated in the backend with the tracking events generated in the frontend. The value will change each time a recommendation context is served |
sections - [RecommendationContextSection!]! | First slice of RecommendationContextSections available in this RecommendationContext. The field 'sectionsCursor' is used to fetch a new slice of sections starting with the next section after this slice |
sectionsCursor - String | Cursor to get more RecommendationContextSections from the RecommendationContext. Null, if there is no more |
Example
{
"id": "4",
"trackingId": "ZGNlMWM2NGItYmQ0Ni00Yj",
"sections": [RecommendationContextSection],
"sectionsCursor": "WkdObE1XTTJOR0l0WW1RME5pMDBZago="
}
RecommendationContextResponse
Description
Response returned when a RecommendationContext is queried
Fields
Field Name | Description |
---|---|
recommendationContext - RecommendationContext! | The actual recommendation context object |
Example
{"recommendationContext": RecommendationContext}
RecommendationSourceObject
Description
A type to specify what objects were used as a source object (seed) for a recommendation unit
Fields
Field Name | Description |
---|---|
id - ID! | ID of the actual item. For example, the ID of a course |
type - RecommendationSourceObjectType! | Type of the actual item. For example, COURSE |
title - String | Title of the actual source object item, if applicable. E.g. title of a course |
description - String | Description of the actual item, if applicable. E.g. description of a course |
relativeUrl - String | Relative URL of the actual item, if applicable. It excludes the domain. E.g. /topic/web-development/ |
Example
{
"id": 4,
"type": "COURSE",
"title": "Python",
"description": "Python Topic Description",
"relativeUrl": "/topic/python/"
}
RecommendationUnit
Description
Finest grained grouping of recommendations. Each recommendation unit corresponds to a specific algorithm, source object (recommendation seed), and recommendation item type
Fields
Field Name | Description |
---|---|
id - ID! | ID of the RecommendationUnit object that will be unique among all units inside a recommendation context including the member units of unit groups. In addition, this ID will be unique for all units in the initial 'recommendations' query response and the subsequent 'moreRecommendationContextSections' queries |
title - String | Localized title that is also interpolated with source object titles if necessary. For example, "Newest courses in 'JavaScript'" |
rawTitle - String | Some unit titles contain titles of source objects like "Newest courses in 'JavaScript'". If frontend needs to insert source object links instead of just source object titles, this field can be used instead of the title field. It will give "Newest courses in '{}'" instead of "Newest courses in 'JavaScript'" |
viewType - String | Can optionally be entered on Tapen to give a hint to frontend about how it should be presented |
trackingId - String! | Tracking ID generated in the backend. Useful to relate tracking events generated in the backend with the tracking events generated in the frontend. The value will change each time a recommendation context is served |
items - [RecommendationItem!]! | First slice of items available in this RecommendationUnit. The field 'itemsCursor' is used to fetch a new slice of items starting with the next item after this slice |
itemsCursor - String | Cursor to get more RecommendationItems from this RecommendationUnit. Null, if there is no more |
sourceObjects - [RecommendationSourceObject!] | If the recommendation is seeded with some other objects such as viewed course, label affinity, or search query, etc., they are listed here. Title and URLs of these source objects should be used to build a HTML title with links if the title field has template placeholders ({}) |
Example
{
"id": 4,
"title": "Courses in 'Python'",
"rawTitle": "Courses in '{}'",
"viewType": "default",
"trackingId": "ZGNlMWM2NGItYmQ0Ni00Yj",
"items": [RecommendationItem],
"itemsCursor": "WkdObE1XTTJOR0l0WW1RME5pMDBZago=",
"sourceObjects": [RecommendationSourceObject]
}
RecommendationUnitGroup
Description
Group of units that should be presented together
Fields
Field Name | Description |
---|---|
id - ID! | ID of the RecommendationUnitGroup object that will be unique among all sections inside a recommendation context. In addition, this ID will be unique for all sections in the initial 'recommendations' query response and the subsequent 'moreRecommendationContextSections' queries |
title - String | Localized title |
viewType - String | Can optionally be entered on Tapen to give a hint to frontend about how it should be presented |
units - [RecommendationUnit!]! | Nested units in this unit group |
Example
{
"id": 4,
"title": "Courses recommended based on your occupation",
"viewType": "default",
"units": [RecommendationUnit]
}
Review
Description
A review of a learning product
Fields
Field Name | Description |
---|---|
learningProductType - LearningProductType! | The type of learning product being reviewed |
text - String! | The review text |
urlLearningProduct - URL! | The URL of the reviewed learning product |
Example
{
"learningProductType": "ASSESSMENT",
"text": "This course was a great introduction to AWS. I learned a lot and I'm excited to continue learning more about AWS.",
"urlLearningProduct": "https://www.udemy.com/"
}
SearchAggregation
Description
Identifies available search filter facets
Fields
Field Name | Description |
---|---|
label - String! | Label for this type/group of aggregation; e.g. 'Topic' |
key - String! | Key argument that can be passed to query to filter by this option |
buckets - [SearchAggregationOption!]! | Available values for this aggregation |
Example
{
"label": "Subtitles",
"key": "closed_caption_locale_languages",
"buckets": [SearchAggregationOption]
}
SearchAggregationOption
Description
One of the available options within a search facet type
Fields
Field Name | Description |
---|---|
value - String! | Value argument that can be passed to query to filter by this option |
label - String! | Human-readable label for this filter option |
countWithFilterApplied - Int! | Number of results if this filter option were to be applied |
key - String! | Key that can be passed to the query to filter by this option |
isSelected - Boolean! | Whether this filter option is selected or not |
Example
{
"value": "en",
"label": "EN",
"countWithFilterApplied": 987,
"key": "lang",
"isSelected": true
}
SearchAutocompleteLogItem
SearchAutocompleteSuggestion
Description
A simple autocomplete item with the tracking metadata
Fields
Field Name | Description |
---|---|
trackingId - String! | Search analytics tracking id; for uniquely identifying this item |
resultTrackingId - String! | Search analytics tracking id; for uniquely identifying whole result set; for this request |
item - SearchAutocompleteItem | Search Autocomplete suggestion for autocomplete |
Example
{
"trackingId": "S8HU-xXXQ_OZ_hLKlVvOEQ",
"resultTrackingId": "p55X_jHUQ7yNmI0HQ4TmgA",
"item": Course
}
SearchQuerySuggestion
Description
Represents a search suggestion for a search
Fields
Field Name | Description |
---|---|
query - String | The suggested query based on the original search input |
type - SearchQuerySuggestionType | The type of search query suggestion |
Example
{"query": "python", "type": "REWRITE"}
SubCategoryRecommendation
Description
A wrapper type to include the recommended SubCategory and some additional fields about its recommendation
Fields
Field Name | Description |
---|---|
id - ID! | This is the ID of this wrapper object. This ID is different from the ID of the underlying recommended object to provide uniqueness across item types |
trackingId - String! | Tracking ID generated in the backend. Useful to relate tracking events generated in the backend with the tracking events generated in the frontend. The value will change each time a recommendation item is served |
subCategory - SubCategory | Underlying object of the recommendation to get more information about it |
Example
{
"id": 4,
"trackingId": "ZGNlMWM2NGItYmQ0Ni00Yj",
"subCategory": SubCategory
}
SubscriptionPlan
Description
A Subscription plan to access a catalog of Udemy content
Fields
Field Name | Description |
---|---|
id - ID! | ID of the subscription plan: |
productType - SubscriptionPlanProductType! | Type of subscription plan being offered |
urlLearnMore - URL! | Learn more url for a given plan |
urlExpressCheckout - URL! | Express checkout url for given plan |
urlTermsOfUse - URL! | Terms and Conditions url for a given plan |
priceOptions - [SubscriptionPlanPricingOptionItem!]! | Computed price options for given plan |
contentCollections - [ContentCollection!]! | List of content groups included in a given plan |
Example
{
"id": 4,
"productType": "CONSUMERSUBSCRIPTION",
"urlLearnMore": "https://www.udemy.com/",
"urlExpressCheckout": "https://www.udemy.com/",
"urlTermsOfUse": "https://www.udemy.com/",
"priceOptions": [DailySubscriptionPlanPricingOption],
"contentCollections": [ContentCollection]
}
SubscriptionPlanDiscount
Description
Contains information about the discount metadata for a given subscription plan price option
Fields
Field Name | Description |
---|---|
appliedDiscounts - [SubscriptionPlanDiscountDetails!]! | List of applied discounts on the plan price option data |
Example
{"appliedDiscounts": [SubscriptionPlanDiscountDetails]}
SubscriptionPlanDiscountDateIntervalType
Description
Contains information on the start and end perioid for the discount interval type can be month/year
Fields
Field Name | Description |
---|---|
start - Int! | Start period of the discounted data |
end - Int! | End period of the discounted data |
type - DateIntervalType! | Interval type for the discounted period |
duration - Int! | Total duration of the discount period |
Example
{"start": 123, "end": 987, "type": "DAY", "duration": 123}
SubscriptionPlanDiscountDetails
Description
Discount details for applied discount
Fields
Field Name | Description |
---|---|
code - String! | Coupon code/campaign code for the discount applied |
sourceType - DiscountSourceType! | Type of coupon code. will be either one of udemy/customer coupon |
discountType - SubscriptionPlanDiscountType! | Specific discount type for subscriptions ex: trial/price/seat discounts |
data - SubscriptionPlanDiscountDataItem! | Discount data for the specific discount type |
isRemovable - Boolean! | Flag for the applied code. tells if the applied discount can be removed on FE |
Example
{
"code": "DEAL-CODE",
"sourceType": "GENERAL_COUPON",
"discountType": "TRIAL_DISCOUNT",
"data": SubscriptionPlanTrialDiscountData,
"isRemovable": false
}
SubscriptionPlanLicenseContext
Description
Contains information about the license context for a given subscription plan price option
Fields
Field Name | Description |
---|---|
unitPrice - Money! | The unit price of the subscription price plan option based on provided requested count from request |
licenseCount - Int! | License count for the subscription plan option |
defaultLicenseCount - Int! | Default license count to be offered for purchase for given subscription plan option |
minimumLicenseCount - Int! | Minimum license count for purchase for given subscription plan option |
maximumLicenseCount - Int! | Maximum license count for purchase for given subscription plan option |
Example
{
"unitPrice": Money,
"licenseCount": 987,
"defaultLicenseCount": 123,
"minimumLicenseCount": 987,
"maximumLicenseCount": 987
}
SubscriptionPlanPrice
Description
Price data for plan pricing options
Fields
Field Name | Description |
---|---|
list - Decimal! | List price for the pricing option |
discount - Decimal | Discount price for the pricing option |
monthly - Decimal | Monthly price for the annual pricing option, for monthly plan price option will be equal to list price |
annualSavings - Decimal | The annual savings amount for the subscription price plan when compared to monthly plans. calculated on pricing backend can be null |
discountMonthly - Decimal | The monthly price for the discounted annual price option |
discountAnnualSavings - Decimal | The annual savings amount on discounted annual price for the subscription price plan when compared to monthly plans |
currency - CurrencyCode | Currency |
Example
{
"list": "1234.5678",
"discount": "1234.5678",
"monthly": "1234.5678",
"annualSavings": "1234.5678",
"discountMonthly": "1234.5678",
"discountAnnualSavings": "1234.5678",
"currency": "AUD"
}
SubscriptionPlanPriceDiscountData
Description
Contains information on the plan price discount
Fields
Field Name | Description |
---|---|
type - SubscriptionPlanPriceDiscountType! | Discount type for the price can be percentage off/fixed price discount |
value - Decimal! | Discount value applied on the actual price |
interval - SubscriptionPlanDiscountDateIntervalType! | Contains information on the start and end period for discount |
Example
{
"type": "FIXED",
"value": "1234.5678",
"interval": SubscriptionPlanDiscountDateIntervalType
}
SubscriptionPlanTrialDiscountData
Description
contains information on the trial discount if available
Fields
Field Name | Description |
---|---|
days - Int! | The total trial days offered as part of the discount |
Example
{"days": 987}
SubscriptionTrial
Description
Type representing details about the trial subscription offer available for a given user and plan
Fields
Field Name | Description |
---|---|
dateInterval - DateInterval! | The length of the trial available to a user for a subscription plan |
Example
{"dateInterval": DateInterval}
TopRatedCategoryTopicBadge
Description
Represents a badge awarded to a top-rated category topic
Example
{
"name": "Highest Rated",
"topic": Topic,
"category": Category
}
TopRatedSubcategoryBadge
Description
Represents a badge awarded to a top-rated subcategory
Fields
Field Name | Description |
---|---|
name - String! | The localized name of the badge |
subcategory - BadgeSubCategory | The subcategory associated with the badge |
Example
{"name": "Highest Rated", "subcategory": BadgeSubCategory}
TopRatedSubcategoryTopicBadge
Description
Represents a badge awarded to a top-rated subcategory topic
Fields
Field Name | Description |
---|---|
name - String! | The localized name of the badge |
topic - Topic | The topic associated with the badge |
subcategory - BadgeSubCategory | The subcategory associated with the badge |
Example
{
"name": "Highest Rated",
"topic": Topic,
"subcategory": BadgeSubCategory
}
Topic
Description
Topic
Fields
Field Name | Description |
---|---|
id - ID! | ID of topic |
name - String! | Title of topic (Python, Programming Languages) |
url - URL! | Web url of the topic page |
groups - [TopicGroup!]! | Topic groups this topic belongs to |
questionsAndAnswers - [TopicQuestionAndAnswer!]! | A collection of question and answer pairs with optional link for additional context |
Example
{
"id": "4",
"name": "Python",
"url": "https://www.udemy.com/topic/python",
"groups": [TopicGroup],
"questionsAndAnswers": [TopicQuestionAndAnswer]
}
TopicGroup
TopicQuestionAndAnswer
Description
A question and answer pair with optional link for additional context
Fields
Field Name | Description |
---|---|
id - ID! | ID of the question and answer |
question - String! | The question text |
answer - String! | The answer text |
urlReadMore - URL | The URL for additional information about the question and answer |
linkText - String | Text to display for the link to additional information about the question and answer |
Example
{
"id": "499882",
"question": "What is the difference between a list and a tuple?",
"answer": "A list is mutable, a tuple is immutable.",
"urlReadMore": "https://blog.udemy.com/javascript-tutorial-learn-the-basics/",
"linkText": "Learn more about JavqScript"
}
TopicRecommendation
Description
A wrapper type to include the recommended Topic (aka. Label) and some additional fields about its recommendation
Fields
Field Name | Description |
---|---|
id - ID! | This is the ID of this wrapper object. This ID is different from the ID of the underlying recommended object to provide uniqueness across item types |
trackingId - String! | Tracking ID generated in the backend. Useful to relate tracking events generated in the backend with the tracking events generated in the frontend. The value will change each time a recommendation item is served |
topic - Topic | Underlying object of the recommendation to get more information about it |
Example
{
"id": 4,
"trackingId": "ZGNlMWM2NGItYmQ0Ni00Yj",
"topic": Topic
}
User
Description
A Udemy user
Fields
Field Name | Description |
---|---|
id - ID! | Id of the user |
Example
{"id": "4"}
VersionedIdentifier
VideoLecture
Description
Video lecture
Fields
Field Name | Description |
---|---|
id - ID! | Id of the video lecture |
title - String! | Lecture title |
images - LectureImages! | Images by their dimensions |
urlAutoEnroll - URL! | The URL to access the lecture on the auto-enroll page |
urlLanding - URL! | Landing page to view this Lecture |
thumbnail - URL | The URL of the lecture thumbnail |
durationInSeconds - DurationInSeconds! | Total duration of the lecture's content in seconds |
course - Course | The Course this lecture belongs to |
versionedIdentifier - VersionedIdentifier! | Versioned identifier of the lecture |
Example
{
"id": "4",
"title": "Introduction - AWS Certified Solutions Architect Associate",
"images": LectureImages,
"urlAutoEnroll": "https://www.udemy.com/course/subscribe/?courseId=3082678&lectureId=20020880",
"urlLanding": "https://www.udemy.com//course/aws-certified-solutions-architect-associate-step-by-step/learn/lecture/20020880",
"thumbnail": "https://www.udemy.com/",
"durationInSeconds": 19263,
"course": Course,
"versionedIdentifier": VersionedIdentifier
}
VideoMashupLecture
Description
Mashup lecture has both video and a presentation
Fields
Field Name | Description |
---|---|
id - ID! | Id of the lecture |
title - String! | Lecture title |
images - LectureImages! | Images by their dimensions |
urlAutoEnroll - URL! | The URL to access the lecture on the auto-enroll page |
urlLanding - URL! | Landing page to view this Lecture |
thumbnail - URL | The URL of the lecture thumbnail |
durationInSeconds - DurationInSeconds! | Total duration of the lecture's content in seconds |
course - Course | The Course this lecture belongs to |
versionedIdentifier - VersionedIdentifier! | Versioned identifier of the lecture |
Example
{
"id": "4",
"title": "Course Introduction - AWS Certified Solutions Architect Associate",
"images": LectureImages,
"urlAutoEnroll": "https://www.udemy.com/course/subscribe/?courseId=3082678&lectureId=20020880",
"urlLanding": "https://www.udemy.com//course/aws-certified-solutions-architect-associate-step-by-step/learn/lecture/20020880",
"thumbnail": "https://www.udemy.com/",
"durationInSeconds": 19263,
"course": Course,
"versionedIdentifier": VersionedIdentifier
}
WeeklySubscriptionPlanPricingOption
Description
Price option for computed price plan. Will be returned for weekly plans
Fields
Field Name | Description |
---|---|
id - ID! | ID of the price option: |
listPrice - Money! | The list price of the subscription price plan based on provided requested count from request |
renewalInterval - DateInterval! | Interval for renewing the subscription plan ie the length of the subscription plan |
trial - SubscriptionTrial | Field containing details about the trial subscription offer for a given user. Null indicates no trial is available |
licenseContext - SubscriptionPlanLicenseContext | Contains information about the license context for a given subscription plan price option |
discount - SubscriptionPlanDiscount | Contains information about the discount context for a given subscription plan price option |
discountTrial - SubscriptionTrial | Field containing details about the discounted trial subscription offer for a given user. Null indicates no trial is available |
price - SubscriptionPlanPrice | Field showing the prices for the option |
Example
{
"id": "4",
"listPrice": Money,
"renewalInterval": DateInterval,
"trial": SubscriptionTrial,
"licenseContext": SubscriptionPlanLicenseContext,
"discount": SubscriptionPlanDiscount,
"discountTrial": SubscriptionTrial,
"price": SubscriptionPlanPrice
}
Inputs
AuditLogDateFilter
Description
Input type for filtering logs based on a date time range
Example
{
"startDate": "2007-12-03T10:15:30Z",
"endDate": "2007-12-03T10:15:30Z"
}
BadgeAssertionsSearchFilters
Description
Search filters for Badge Assertion search
Fields
Input Field | Description |
---|---|
startDate - Date | startDate to filter assertions by dateUploaded. If not given, all assertions will be returned |
endDate - Date | endDate to filter assertions by dateUploaded. If not given, all assertions will be returned |
badgeClassExternalUrls - [URL!] | if given, assertions will be filtered by these badgeClasses |
Example
{
"startDate": "2007-12-03",
"endDate": "2007-12-03",
"badgeClassExternalUrls": [
"https://www.udemy.com/"
]
}
BadgeClassSearchFilters
Description
Search filters for BadgeClass search
Fields
Input Field | Description |
---|---|
certificationAreaIds - [ID!] | Filter by certification subject area |
visibilityStatus - [BadgeClassVisibilityStatus!] | If not given, all badges will be returned |
certificationProviderIds - [ID!] | Filter by certification provider. this has precedence over issuerIds |
Example
{
"certificationAreaIds": ["4"],
"visibilityStatus": ["VISIBLE"],
"certificationProviderIds": [4]
}
CourseSearchContext
Description
Additional search context for specific UX cases
Fields
Input Field | Description |
---|---|
triggerType - CourseSearchTriggerType | Trigger type for the course search |
originalQuery - String | The original query written before any manipulation, e.g., 'pyt' when autocompleted to 'python' |
refinedQuery - String | Refined query for the search, used for related or narrowing search |
isDebug - Boolean | Enables debugging mode for search queries |
Example
{
"triggerType": "USER_QUERY",
"originalQuery": "abc123",
"refinedQuery": "abc123",
"isDebug": true
}
CourseSearchFilters
Description
Search filters to apply on search request
Fields
Input Field | Description |
---|---|
mustHaveClosedCaption - Boolean | Whether or not course must have closed captions |
mustHaveQuiz - Boolean | Whether or not course must have quizzes |
mustHaveCodingExercise - Boolean | Whether or not course must have coding exercises |
mustHavePracticeTest - Boolean | Whether or not course must have practice tests |
mustHaveWorkspace - Boolean | Whether or not course must have workspaces |
mustHaveRoleplay - Boolean | Whether or not course must have roleplays |
showPracticeTestCoursesOnly - Boolean | Filter courses that solely consist of practice tests |
isCertificationPrep - Boolean | Whether or not course is for certification preparation |
minAverageRating - AverageRating | Minimum average rating for the course. Ranges from 0 to 5.0 |
closedCaptionLanguage - [LanguageCode!] | Filter results based on closed caption language |
language - [LanguageCode!] | Filter results based on course language |
level - [DifficultyLevel!] | Filter course based on difficulty level |
videoLength - [VideoLength!] | Filter course based on video length |
topicIds - [ID!] | Filter courses based on topics |
price - [PriceOption!] | Filter courses based on price, paid or free |
mustBeInConsumerSubscription - Boolean | Determines if the course is available in the user's Consumer Subscription when user has one. If true, only courses included in the user's Consumer Subscription are shown. If false, only purchasable courses outside the user's Consumer Subscription are shown |
pageId - ID | Filter courses based on pageId, used in the "All Courses" section on topic, category, and subcategory pages. When pageId is provided, the search query is skipped and courses are filtered directly by pageId. Each topic, category, and subcategory page has a unique pageId (e.g., 7380 for Python topic, 288 for Development category, 8 for Web Development subcategory) |
Example
{
"mustHaveClosedCaption": false,
"mustHaveQuiz": true,
"mustHaveCodingExercise": true,
"mustHavePracticeTest": false,
"mustHaveWorkspace": false,
"mustHaveRoleplay": true,
"showPracticeTestCoursesOnly": false,
"isCertificationPrep": true,
"minAverageRating": 4.5,
"closedCaptionLanguage": ["AF"],
"language": ["AF"],
"level": ["ALL_LEVELS"],
"videoLength": ["EXTRA_SHORT"],
"topicIds": ["4"],
"price": ["FREE"],
"mustBeInConsumerSubscription": true,
"pageId": 4
}
DynamicWebContentFilters
Description
The dynamic web content query filter options
Fields
Input Field | Description |
---|---|
contentId - String! | The ID of the content to fetch (e.g. promotionItem , organizationLogs , etc) |
pageType - DynamicWebContentPageType! | The specific page type for the dynamic web content that will match values set in the CMS |
isContentPreviewEnabled - Boolean! | The URL query param that will be parsed to enable returning the content that has been saved but not yet published in the CMS. Default = false |
contentPreviewOverrides - [String] | The overriding parameters that will be parsed from URL |
Example
{
"contentId": "abc123",
"pageType": "LOGGED_OUT_HOME_PAGE",
"isContentPreviewEnabled": false,
"contentPreviewOverrides": ["abc123"]
}
FeatureRequestAttributeInput
FeatureVariantAssignmentFilters
Description
Holds filters for feature variant assignments
Fields
Input Field | Description |
---|---|
realtimeAttributes - [FeatureRequestAttributeInput!] | Filter by real time attributes |
Example
{"realtimeAttributes": [FeatureRequestAttributeInput]}
LearningObjectiveInput
Description
This holds data to create a learning objective
Fields
Input Field | Description |
---|---|
id - ID | Id to identify for learning objective |
name - String! | Name of learning objective |
learningObjectives - [LearningObjectiveInput!]! | Child Learning objectives associated with this learning objective |
Example
{
"id": 4,
"name": "xyz789",
"learningObjectives": [LearningObjectiveInput]
}
LearningPathSearchFilters
Description
Search filters to apply on path search request
Fields
Input Field | Description |
---|---|
mustHaveCertificate - Boolean | Indicates whether path must have a certificate or not |
Example
{"mustHaveCertificate": false}
LearningProductInput
Description
Input for getting badge classes by learning products
Fields
Input Field | Description |
---|---|
id - ID! | ID of the learning product |
type - LearningProductType! | Type of the learning product |
versionId - String | Version ID of the learning product |
Example
{
"id": "4",
"type": "ASSESSMENT",
"versionId": "xyz789"
}
LearningTestimonialFilters
Description
The Learning Testimonials query filter options
Fields
Input Field | Description |
---|---|
pageType - LearningTestimonialPageType! | The specific page type for Learning Testimonials that will match values set in the CMS |
isContentPreviewEnabled - Boolean! | The URL query param that will be parsed to enable returning the content that has been saved but not yet published in the CMS. Default = false |
Example
{"pageType": "LOGGED_OUT_HOME_PAGE", "isContentPreviewEnabled": false}
LessonIdInput
Description
Input type for providing a lesson id
Fields
Input Field | Description |
---|---|
idType - LessonIdType! | The type of the id |
idValue - ID! | The id value |
Example
{"idType": "ASSET_ID", "idValue": 4}
MoreRecommendationContextSectionsInput
Description
Input for querying more RecommendationContextSections from a RecommendationContext
Fields
Input Field | Description |
---|---|
cursor - String! | The 'sectionsCursor' field in the RecommendationContext |
requestedSectionCount - PositiveInt | Requested number of sections to fetch. The result might have less sections. Default = 6 |
Example
{
"cursor": "abc123",
"requestedSectionCount": 123
}
MoreRecommendationItemsInput
Description
Input for querying more RecommendationItems from a RecommendationUnit
Fields
Input Field | Description |
---|---|
cursor - String! | The 'itemsCursor' field in the RecommendationUnit |
requestedItemCount - PositiveInt | Requested number of items to fetch. The result might have less items. Default = 6 |
Example
{
"cursor": "abc123",
"requestedItemCount": 123
}
OrganizationAuditLogFilter
Description
Input type for filtering organization logs
Fields
Input Field | Description |
---|---|
dateRange - AuditLogDateFilter | The filter for the date time range |
Example
{"dateRange": AuditLogDateFilter}
RecommendationContextInput
Description
All information required to query a recommendation context
Fields
Input Field | Description |
---|---|
contextId - ID! | Also known as 'Context Code' |
sourceObjects - [RecommendationSourceObjectInput!] | In some cases, the client application might provide it's own set of recommendation source objects as a seed to recommendations. For example, a category page adds the category object here while querying the RecommendationContext for the 'category' context |
excludedItems - [RecommendationItemInput!] | Can be used when the frontend application wants to ensure some items will not be recommended |
requestedSectionCount - PositiveInt | Requested number of sections to fetch. The result might have less sections. Default = 6 |
requestedItemCountPerUnit - PositiveInt | Requested number of items to fetch for each unit. The result might have less items. Default = 6 |
Example
{
"contextId": "4",
"sourceObjects": [RecommendationSourceObjectInput],
"excludedItems": [RecommendationItemInput],
"requestedSectionCount": 123,
"requestedItemCountPerUnit": 123
}
RecommendationItemInput
Description
Input version of RecommendationItem type to specify a recommendation item in queries
Fields
Input Field | Description |
---|---|
id - ID! | ID of the actual item. For example, the ID of a course |
type - RecommendationItemType! | Type of the actual item. For example, COURSE |
Example
{"id": "4", "type": "COURSE"}
RecommendationSourceObjectInput
Description
Input version of RecommendationSourceObject
Fields
Input Field | Description |
---|---|
id - ID! | ID of the actual item. For example, the ID of a course |
type - RecommendationSourceObjectType! | Type of the actual item. For example, COURSE |
Example
{"id": "4", "type": "COURSE"}
SearchAggregationInputOption
SearchAutocompleteOriginPageInput
SearchAutocompleteRequestFilters
Description
Search Autocomplete request filters
Example
{"freeCourseSuppression": true, "showPracticeTestCoursesOnly": false}
SearchAutocompleteRequestMetadata
Description
Search Autocomplete request metadata
Fields
Input Field | Description |
---|---|
searchAutocompleteOriginPage - SearchAutocompleteOriginPageInput | origin of the page that sends the request |
Example
{
"searchAutocompleteOriginPage": SearchAutocompleteOriginPageInput
}
SubscriptionPlanFilters
Description
Filers for subscription plans
Fields
Input Field | Description |
---|---|
productType - SubscriptionPlanProductType | Filter by product type. Default = CONSUMERSUBSCRIPTION |
Example
{"productType": "CONSUMERSUBSCRIPTION"}
TopicFilters
Description
Topic Filters for searching topics. All filters are ANDed together
Fields
Input Field | Description |
---|---|
includeTopicGroupIds - [ID!] | Include topic group IDs |
excludeTopicGroupIds - [ID!] | Exclude topic group IDs |
occupationGroupIds - [ID!] | Include topics related to occupation group IDs |
occupationIds - [ID!] | Include topics related to occupation IDs |
associatedWithTopicIds - [ID!] | Include topics associated with these topic ids |
Example
{
"includeTopicGroupIds": [4],
"excludeTopicGroupIds": ["4"],
"occupationGroupIds": [4],
"occupationIds": [4],
"associatedWithTopicIds": ["4"]
}
VersionedIdentifierInput
Enums
ActorType
Description
Defines the type of actor performing the event
Values
Enum Value | Description |
---|---|
| Represents an end user who performed the action |
| Represents an impersonation of another user performing the action |
| Represents a service or automated system performing the action |
Example
"END_USER"
AuditEvent
Description
Defines the types of events that occurred
Values
Enum Value | Description |
---|---|
| A user has been created |
| A user has been activated |
| A user has been deactivated |
| A user has been reactivated |
| A user is pending |
| A user has been anonymized |
| A license has been created |
| A license has been deactivated |
| An invitation has been created |
| A group has been edited |
| A group has been created |
| A group has been deleted |
| A user role has been assigned |
| A user role has been edited |
| A user email has been edited |
| A user list has been exported to csv |
| A user has been updated |
| A user has been assigned by csv |
Example
"USER_CREATED"
BadgeClassVisibilityStatus
Description
Visibility of the badge class on the Udemy platform
Values
Enum Value | Description |
---|---|
| Visible to all users |
| Hidden from users on the platform, awaiting content or planning updates |
| Hidden from users on the platform |
| Visible to users on the platform, but not discoverable in search |
| Visible to users on the platform, but not discoverable in search, and only visible to users in the issuing organization |
| Deleted badges |
Example
"VISIBLE"
CaptionType
Description
Types of captions
Values
Enum Value | Description |
---|---|
| Captions covering speech only |
| Captions covering speech and descriptions of non-spoken sounds |
Example
"SUBTITLE"
ContentSourceType
Description
Source of a lesson component
Values
Enum Value | Description |
---|---|
| The source is the AI |
| The source is the instructor |
| The source is mixed |
Example
"AI"
CourseAccreditationType
Description
Accreditation types
Values
Enum Value | Description |
---|---|
| Continuing professional education |
Example
"CPE"
CourseSearchSortType
Description
Sort order for courses in search response
Values
Enum Value | Description |
---|---|
| Most relevant |
| Most reviewed |
| Highest rated |
| Newest |
Example
"RELEVANCE"
CourseSearchTriggerType
Description
Trigger types for the course search
Values
Enum Value | Description |
---|---|
| User inputs query in the search bar |
| User selects a search autocomplete |
| User selects a search suggested query |
| User insists on the original query, exactly as typed |
| User clicks on related searches suggestion |
| User clicks on recommendation unit |
| User clicks on a narrowing search suggestion |
| Course search triggered by a browse certification page This includes pages like: |
| Course search triggered by a topic page (e.g, https://www.udemy.com/topic/machine-learning/) |
| Course search triggered by a category page (e.g, https://www.udemy.com/courses/development/) |
| Course search triggered by a subcategory page (e.g, https://www.udemy.com/courses/development/web-development/) |
| Course search triggered by a roleplay browse page |
Example
"USER_QUERY"
CurrencyCode
Description
Currencies available
Values
Enum Value | Description |
---|---|
| Australian dollar |
| Brazilian real |
| Canadian dollar |
| Chilean peso |
| Colombian peso |
| Danish crone |
| Egyptian pound |
| Euro |
| Sterling |
| Indonesian rupiah |
| Israel new shekel |
| Indian rupee |
| Japanese yen |
| South Korean won |
| Mexican peso |
| Malaysian ringgit |
| Norwegian krone |
| Nigerian naira |
| Peruvian sol |
| Polish złoty |
| Philippine peso |
| Romanian leu |
| Russian ruble |
| Singapore dollar |
| Thai baht |
| Turkish lira |
| New Taiwan dollar |
| Vietnamese dong |
| United States dollar |
| South African rand |
Example
"AUD"
DateIntervalType
Description
Supported units of time over which a subscription trial or billing cycle can occur
Values
Enum Value | Description |
---|---|
| Daily interval |
| Monthly interval |
| Weekly interval |
| Yearly interval |
Example
"DAY"
DifficultyLevel
Description
Instruction level of the course
Values
Enum Value | Description |
---|---|
| Item is appropriate for all skill levels |
| Item is for beginners |
| Item is for students with intermediates knowledge |
| Item is for students with expert knowledge |
Example
"ALL_LEVELS"
DiscountSourceType
Description
definition of different discount source types
Values
Enum Value | Description |
---|---|
| General discount coupon code |
| Udemy discount coupon code |
| Instructor discount coupon code |
Example
"GENERAL_COUPON"
DynamicWebContentPageType
Description
The specific page type for the dynamic web content. This is important for narrowing down the content in the CMS to where Marketing wants to render it
Values
Enum Value | Description |
---|---|
| Logged out home page of udemy |
| Udemy Business request demo form |
| Personal Plan Landing page |
Example
"LOGGED_OUT_HOME_PAGE"
EntityType
Description
Defines the type of entity who was affected by the event
Values
Enum Value | Description |
---|---|
| Means the entity type is not applicable for this event |
| Represents an end user who was affected by the action |
| Represents a group which was affected by the action |
| Represents a license which was affected by the action |
Example
"NA"
LanguageCode
Description
The LanguageCode scalar type as defined by ISO 639-1
Values
Enum Value | Description |
---|---|
| Afrikaans |
| Akan |
| Amharic |
| Arabic |
| Assamese |
| Azerbaijani |
| Belarusian |
| Bulgarian |
| Bambara |
| Bangla |
| Tibetan |
| Breton |
| Bosnian |
| Catalan |
| Chechen |
| Czech |
| Church Slavic |
| Welsh |
| Danish |
| German |
| Dzongkha |
| Ewe |
| Greek |
| English |
| Esperanto |
| Spanish |
| Estonian |
| Basque |
| Persian |
| Fulah |
| Finnish |
| Faroese |
| French |
| Western Frisian |
| Irish |
| Scottish Gaelic |
| Galician |
| Gujarati |
| Manx |
| Hausa |
| Hebrew |
| Hindi |
| Croatian |
| Hungarian |
| Armenian |
| Interlingua |
| Indonesian |
| Igbo |
| Sichuan Yi |
| Icelandic |
| Italian |
| Japanese |
| Javanese |
| Georgian |
| Kikuyu |
| Kazakh |
| Kalaallisut |
| Khmer |
| Kannada |
| Korean |
| Kashmiri |
| Kurdish |
| Cornish |
| Kyrgyz |
| Luxembourgish |
| Ganda |
| Lingala |
| Lao |
| Lithuanian |
| Luba-Katanga |
| Latvian |
| Malagasy |
| Māori |
| Macedonian |
| Malayalam |
| Mongolian |
| Marathi |
| Malay |
| Maltese |
| Burmese |
| Norwegian (Bokmål) |
| North Ndebele |
| Nepali |
| Dutch |
| Norwegian Nynorsk |
| Norwegian |
| Oromo |
| Odia |
| Ossetic |
| Punjabi |
| Polish |
| Pashto |
| Portuguese |
| Portuguese (Brazil) |
| Portuguese (Portugal) |
| Quechua |
| Romansh |
| Rundi |
| Romanian |
| Russian |
| Kinyarwanda |
| Sindhi |
| Northern Sami |
| Sango |
| Sinhala |
| Slovak |
| Slovenian |
| Shona |
| Somali |
| Albanian |
| Serbian |
| Sundanese |
| Swedish |
| Swahili |
| Tamil |
| Telugu |
| Tajik |
| Thai |
| Tigrinya |
| Turkmen |
| Tongan |
| Turkish |
| Tatar |
| Uyghur |
| Ukrainian |
| Urdu |
| Uzbek |
| Vietnamese |
| Volapük |
| Wolof |
| Xhosa |
| Yiddish |
| Yoruba |
| Chinese |
| Chinese (Simplified) |
| Chinese (Traditional) |
| Zulu |
Example
"AF"
LearningProductType
Description
Type of learning product
Values
Enum Value | Description |
---|---|
| Assessment |
| Badge Class (OpenBadgeClass & OrganizationBadgeClass) |
| Course |
| Lab |
| Learning path |
| Practice test |
Example
"ASSESSMENT"
LearningTestimonialPageType
Description
The specific page type for the Learning Testimonial. This is important for narrowing down the testimonial content in the CMS to where Marketing wants to render it. (Other pages will be added in the future, e.g., Personal Plan, etc)
Values
Enum Value | Description |
---|---|
| Logged out home page of udemy |
Example
"LOGGED_OUT_HOME_PAGE"
LearningTestimonialType
Description
Type of Learning Testimonial
Values
Enum Value | Description |
---|---|
| Case study Learning Testimonial |
| Course review Learning Testimonial |
| Third party Learning Testimonial |
Example
"CASE_STUDY"
LessonIdType
Description
The types of a LessonId
Values
Enum Value | Description |
---|---|
| A lesson attached to an asset ID |
| A standalone lesson with a UUID |
Example
"ASSET_ID"
OrganizationType
Description
Type of an organization
Values
Enum Value | Description |
---|---|
| Udemy Business |
| Udemy Business China |
| Udemy Government |
Example
"UDEMY_BUSINESS"
PriceOption
Description
Price of the course, free or paid
Values
Enum Value | Description |
---|---|
| Free |
| Paid |
Example
"FREE"
RecommendationItemType
Description
Currently supported RecommendationItem types
Values
Enum Value | Description |
---|---|
| The recommended object is a 'Course' |
| The recommended object is a 'Category' |
| The recommended object is a 'SubCategory' |
| The recommended object is a 'Label (aka. Topic)' |
| The recommended object is a 'Instructor' |
| The recommended object is a 'Lecture' |
| The recommended object is a 'Occupation' |
| The recommended object is a 'Course Section' |
| The recommended object is a 'Lab' |
| The recommended object is a 'Coding Exercise' |
| The recommended object is a 'Assessment' |
| The recommended object is a 'Learning Path' |
Example
"COURSE"
RecommendationSourceObjectType
Description
Currently supported recommendation source (aka. seed) object types
Values
Enum Value | Description |
---|---|
| The type of recommendation source (aka. seed) object is 'Course' |
| The type of recommendation source (aka. seed) object is 'Lecture' |
| The type of recommendation source (aka. seed) object is 'Category' |
| The type of recommendation source (aka. seed) object is 'SubCategory' |
| The type of recommendation source (aka. seed) object is 'Label (aka. Topic)' |
| The type of recommendation source (aka. seed) object is 'Collection' |
| The type of recommendation source (aka. seed) object is 'Occupation' |
| The type of recommendation source (aka. seed) object is 'Occupation Group' |
| The type of recommendation source (aka. seed) object is 'Instructor' |
Example
"COURSE"
SearchQuerySuggestionType
Description
Possible suggestion types for the search query
Values
Enum Value | Description |
---|---|
| 'Rewrite' suggestion for the search query |
| 'Did you mean' suggestion for the search query |
Example
"REWRITE"
SubscriptionPlanDiscountType
Description
enum definition for different discount types for subscription
Values
Enum Value | Description |
---|---|
| discount on the trial days |
| discount on the plan price monthly/yearly |
Example
"TRIAL_DISCOUNT"
SubscriptionPlanPriceDiscountType
Description
Definition for different price discount types
Values
Enum Value | Description |
---|---|
| fixed value discount on the price |
| percentage of on the price |
Example
"FIXED"
SubscriptionPlanProductType
Description
The type of subscription plan being offered
Values
Enum Value | Description |
---|---|
| Consumer subscription (previously Spadefish) |
| Enterprise Plan |
| Enterprise PRO Plan |
| Team Plan |
| Udemy Pro |
Example
"CONSUMERSUBSCRIPTION"
TopicPopularityTypes
Description
Types of popularity for Topics
Values
Enum Value | Description |
---|---|
| Popular popularity type |
| Trending popularity type |
Example
"POPULAR"
VideoLength
Description
Length of the video in course
Values
Enum Value | Description |
---|---|
| Extra short |
| Short |
| Medium |
| Long |
| Extra long |
Example
"EXTRA_SHORT"
Unions
Actor
Description
Represents the actor who performed the event
Fields
Field Name | Description |
---|---|
actorId - ID! | The unique identifier for the actor |
actorType - ActorType! | The type of actor, such as an end user, impersonator, or service |
Example
{"actorId": 4, "actorType": "END_USER"}
AnnualSubscriptionPlanPricingOption
Description
Price option for computed price plan. Will be returned for annual plans
Fields
Field Name | Description |
---|---|
id - ID! | ID of the price option: |
listPrice - Money! | The list price of the subscription price plan based on provided requested count from request |
monthlyPrice - Money! | The monthly list price of the subscription price plan. Applicable for annual plan only. Represents fraction of list price |
annualSavings - Money | The annual savings amount for the subscription price plan when compared to monthly plans. calculated on pricing backend can be null |
renewalInterval - DateInterval! | Interval for renewing the subscription plan ie the length of the subscription plan |
trial - SubscriptionTrial | Field containing details about the trial subscription offer for a given user. Null indicates no trial is available |
licenseContext - SubscriptionPlanLicenseContext | Contains information about the license context for a given subscription plan price option |
discount - SubscriptionPlanDiscount | Contains information about the discount context for a given subscription plan price option |
discountTrial - SubscriptionTrial | Field containing details about the discounted trial subscription offer for a given user. Null indicates no trial is available |
price - SubscriptionPlanPrice | Field showing the prices for the option |
Example
{
"id": 4,
"listPrice": Money,
"monthlyPrice": Money,
"annualSavings": Money,
"renewalInterval": DateInterval,
"trial": SubscriptionTrial,
"licenseContext": SubscriptionPlanLicenseContext,
"discount": SubscriptionPlanDiscount,
"discountTrial": SubscriptionTrial,
"price": SubscriptionPlanPrice
}
ArticleLecture
Description
Article lecture
Fields
Field Name | Description |
---|---|
id - ID! | Id of the lecture |
title - String! | Lecture title |
images - LectureImages! | Images by their dimensions |
urlAutoEnroll - URL! | The URL to access the lecture on the auto-enroll page |
urlLanding - URL! | Landing page to view this Lecture |
thumbnail - URL | The URL of the lecture thumbnail |
durationInSeconds - DurationInSeconds! | Total duration of the lecture's content in seconds |
course - Course | The Course this lecture belongs to |
versionedIdentifier - VersionedIdentifier! | Versioned identifier of the lecture |
Example
{
"id": 4,
"title": "Introduction - AWS Certified Solutions Architect Associate",
"images": LectureImages,
"urlAutoEnroll": "https://www.udemy.com/course/subscribe/?courseId=3082678&lectureId=20020880",
"urlLanding": "https://www.udemy.com/course/aws-certified-solutions-architect-associate-step-by-step/learn/lecture/20020880",
"thumbnail": "https://www.udemy.com/",
"durationInSeconds": 19263,
"course": Course,
"versionedIdentifier": VersionedIdentifier
}
Assessment
Description
An Assessment represents a collection of Forms (which are variations of items and orderings of items). A user chooses to take an Assessment. They are then give a Form to take from that Assessment
Fields
Field Name | Description |
---|---|
id - ID! | ID of the assessment |
title - String! | The name, for example: 'HTML' or 'AWS Developer Certification' |
description - SafeHtml! | Description of the assessment |
isBeta - Boolean! | Is the assessment beta or not |
isActive - Boolean! | Is the assessment active or not |
urlLanding - URL! | Landing page to view this Assessment |
metadata - AssessmentMetadata | Metadata associated with the assessment |
assignment - AssessmentAssignment | The assessment's assignment information, if the assessment has been assigned to the user |
durationInSeconds - DurationInSeconds | Duration of an assessment in seconds |
Example
{
"id": "10",
"title": "AWS Certified Developer - Associate",
"description": "<p>Put your knowledge to the test with this series of multiple-choice and multi-select questions.</p> <p>If you exit before finishing and return within 24 hours, you can restart where you left off. Otherwise, you can start again with a new set of questions.</p>",
"isBeta": false,
"isActive": true,
"urlLanding": "https://learning.udemy.com/skills-assessment/advanced-java/",
"metadata": {"trackingId": "O9eKKCzdQim95RLDVXI3OA"},
"assignment": {"dueDat": "2024-04-19T20:13:25.000Z", "id": "10"},
"durationInSeconds": 19263
}
AssessmentAssignment
AssessmentMetadata
Description
MetaData for an assessment
Fields
Field Name | Description |
---|---|
trackingId - String | Unique analytics ID for this instance of Assessment returned from the server in this request |
Example
{"trackingId": "O9eKKCzdQim95RLDVXI3OA"}
AssessmentRecommendation
Description
A wrapper type to include the recommended Assessment and some additional fields about its recommendation
Fields
Field Name | Description |
---|---|
id - ID! | This is the ID of this wrapper object. This ID is different from the ID of the underlying recommended object to provide uniqueness across item types |
trackingId - String! | Tracking ID generated in the backend. Useful to relate tracking events generated in the backend with the tracking events generated in the frontend. The value will change each time a recommendation item is served |
assessment - Assessment | Underlying object of the recommendation to get more information about it |
Example
{
"id": 4,
"trackingId": "ZGNlMWM2NGItYmQ0Ni00Yj",
"assessment": Assessment
}
AssessmentSearchResponse
Description
List of Assessment and additional data about search response
Fields
Field Name | Description |
---|---|
assessments - [Assessment]! | List of Assessment objects |
count - Int! | Total number of Assessments matching the search query and filters |
metadata - AssessmentSearchResponseMetadata | Metadata for whole search result used by front end |
Example
{
"assessments": [Assessment],
"count": 987,
"metadata": AssessmentSearchResponseMetadata
}
AssessmentSearchResponseMetadata
Description
Contains info for front end related stuff and tracking info. This data is calculated by backend service and used by Udemy front end. If you are an external user, you shouldn't need this
Fields
Field Name | Description |
---|---|
trackingId - String! | Search analytics tracking id; for uniquely identifying this query and result set; for this request |
Example
{"trackingId": "JjBqqc4LS2K9Ht_1LTpaMg"}
AudioLecture
Description
Lecture in the form of just audio (deprecated)
Fields
Field Name | Description |
---|---|
id - ID! | Id of the lecture |
title - String! | Lecture title |
images - LectureImages! | Images by their dimensions |
urlAutoEnroll - URL! | The URL to access the lecture on the auto-enroll page |
urlLanding - URL! | Landing page to view this Lecture |
thumbnail - URL | The URL of the lecture thumbnail |
durationInSeconds - DurationInSeconds! | Total duration of the lecture's content in seconds |
course - Course | The Course this lecture belongs to |
versionedIdentifier - VersionedIdentifier! | Versioned identifier of the lecture |
Example
{
"id": 4,
"title": "Course Introduction - AWS Certified Solutions Architect Associate",
"images": LectureImages,
"urlAutoEnroll": "https://www.udemy.com/course/aws-certified-solutions-architect-associate/learn/lecture/23206582/enroll",
"urlLanding": "https://www.udemy.com/course/aws-certified-solutions-architect-associate/learn/lecture/23206582/?couponCode=AWSARCH-2021",
"thumbnail": "https://www.udemy.com/",
"durationInSeconds": 19263,
"course": Course,
"versionedIdentifier": VersionedIdentifier
}
BadgeAssertion
Description
Issued Badge of a user (Assertion in OpenBadge specification)
Fields
Field Name | Description |
---|---|
id - ID! | ID of the Assertion |
externalUrl - URL! | IRI of the Assertion. IRI of OpenBadge specification |
issuedOn - Date! | The date this assertion is issued |
expires - Date | The date this assertion expires |
user - User! | Owner of the assertion |
badgeClass - BadgeClass! | The BadgeClass object that this Assertion is issued for |
uploadedImageUrl - URL | The url of the uploaded baked image of assertion |
Example
{
"id": "4",
"externalUrl": "https://www.udemy.com/",
"issuedOn": "2007-12-03",
"expires": "2007-12-03",
"user": User,
"badgeClass": BadgeClass,
"uploadedImageUrl": "https://www.udemy.com/"
}
BadgeAssertionPaged
Description
Issued badges of a user (Assertion in OpenBadge specification)
Fields
Field Name | Description |
---|---|
items - [BadgeAssertion!]! | List of BadgeAssertions |
page - Int! | The current page number, 0 based |
pageCount - Int! | The total amount of pages. Calculated as (total result count / page pageSize) |
totalCount - Int! | Total number of BadgeAssertions |
Example
{
"items": [BadgeAssertion],
"page": 123,
"pageCount": 987,
"totalCount": 987
}
BadgeCertificationProvider
BadgeCertificationSubjectArea
BadgeClassAlignment
Description
Alignment object. An intangible item that describes an alignment between a learning resource and a BadgeClass
Fields
Field Name | Description |
---|---|
targetName - String | Name of the alignment |
targetUrl - URL | URL linking to the official description of the alignment target, for example an individual standard within an educational framework |
targetDescription - String | Short description of the alignment target |
targetFramework - String | Name of the framework the alignment target |
targetCode - String | If applicable, a locally unique string identifier that identifies the alignment target within its framework and/or targetUrl |
Example
{
"targetName": "Badge target name",
"targetUrl": "https://www.udemy.com/",
"targetDescription": "Badge target description",
"targetFramework": "Badge target framework",
"targetCode": "Python"
}
BadgeClassCriteria
Description
Descriptive metadata about the achievements necessary to be issued with particular BadgeClass (Certification)
Example
{
"id": "https://www.udemy.com/",
"type": ["CERTIFICATION"],
"narrative": "Maintain an active status as a CCIE or as a CCIE Emeritus for 20 consecutive years in at least one CCIE track."
}
BadgeClassImage
Description
Image object of BadgeClass or Issuer
Example
{
"id": "4",
"caption": "image.png",
"author": "Cisco",
"type": ["logo"]
}
BadgeClassIssuer
Description
Issuer of BadgeClass. A collection of information that describes the entity or organization
Fields
Field Name | Description |
---|---|
id - ID! | Unique IRI for the Issuer/Profile file |
type - [String!]! | Issuer type. In most cases, this will simply be the string Issuer or the more general Profile |
name - String! | The name of the entity or organization |
url - URL! | The homepage or social media profile of the entity, whether individual or institutional |
email - EmailAddress | Contact address for the individual or organization |
telephone - String | A phone number for the entity |
description - String | A short description of the issuer entity or organization |
image - BadgeClassImage | IRI or document representing an image of the issuer. This must be a PNG or SVG image |
Example
{
"id": "4",
"type": ["Profile"],
"name": "Cisco",
"url": "https://www.cisco.com/",
"email": "test@test.com",
"telephone": "1-800-553-6387",
"description": "Cisco is the worldwide leader in networking that transforms how people connect, communicate and collaborate.",
"image": BadgeClassImage
}
BadgeClassSearchResponse
Description
Paginated list of BadgeClasses for search response
Fields
Field Name | Description |
---|---|
items - [BadgeClass!]! | List of BadgeClasses |
page - Int! | The current page number, 0 based |
pageCount - Int! | The total amount of pages. Calculated as (total result count / page pageSize) |
Example
{"items": [BadgeClass], "page": 987, "pageCount": 987}
BadgeSubCategory
BeginnerTopRatedCategoryTopicBadge
Description
Represents a badge awarded to a beginner top-rated category topic
Fields
Field Name | Description |
---|---|
name - String! | The localized name of the badge |
rank - NonNegativeInt! | The rank of the badge, e.g. 1,2,3 |
category - Category | The category associated with the badge |
topic - Topic | The topic associated with the badge |
Example
{
"name": "Good for Beginners",
"rank": 123,
"category": Category,
"topic": Topic
}
BeginnerTopRatedSubcategoryBadge
Description
Represents a badge awarded to a beginner top-rated subcategory
Fields
Field Name | Description |
---|---|
name - String! | The localized name of the badge |
rank - NonNegativeInt! | The rank of the badge |
subcategory - BadgeSubCategory | The subcategory associated with the badge |
Example
{
"name": "Good for Beginners",
"rank": 123,
"subcategory": BadgeSubCategory
}
BeginnerTopRatedSubcategoryTopicBadge
Description
Represents a badge awarded to a beginner top-rated subcategory topic
Fields
Field Name | Description |
---|---|
name - String! | The localized name of the badge |
rank - NonNegativeInt! | The rank of the badge |
subcategory - BadgeSubCategory | The subcategory associated with the badge |
topic - Topic | The topic associated with the badge |
Example
{
"name": "Good for Beginners",
"rank": 123,
"subcategory": BadgeSubCategory,
"topic": Topic
}
BestSellerCategoryTopicBadge
Description
Represents a badge awarded to a best seller category topic
Example
{
"name": "Good for Beginners",
"topic": Topic,
"category": Category
}
BestSellerSubcategoryBadge
Description
Represents a badge awarded to a best seller subcategory
Fields
Field Name | Description |
---|---|
name - String! | The localized name of the badge |
subcategory - BadgeSubCategory | The subcategory associated with the badge |
Example
{"name": "Bestseller", "subcategory": BadgeSubCategory}
BestSellerSubcategoryTopicBadge
Description
Represents a badge awarded to a best seller subcategory topic
Fields
Field Name | Description |
---|---|
name - String! | The localized name of the badge |
topic - Topic | The topic associated with the badge |
subcategory - BadgeSubCategory | The subcategory associated with the badge |
Example
{
"name": "Bestseller",
"topic": Topic,
"subcategory": BadgeSubCategory
}
CategoryRecommendation
Description
A wrapper type to include the recommended Category and some additional fields about its recommendation
Fields
Field Name | Description |
---|---|
id - ID! | This is the ID of this wrapper object. This ID is different from the ID of the underlying recommended object to provide uniqueness across item types |
trackingId - String! | Tracking ID generated in the backend. Useful to relate tracking events generated in the backend with the tracking events generated in the frontend. The value will change each time a recommendation item is served |
category - Category | Underlying object of the recommendation to get more information about it |
Example
{
"id": 4,
"trackingId": "ZGNlMWM2NGItYmQ0Ni00Yj",
"category": Category
}
CertificationExam
Description
Certification Exam for earning a Badge
Fields
Field Name | Description |
---|---|
urlRegistration - URL | URL to the exam registration page for a certification |
incentiveOfferTextPublic - SafeHtml | If the Cert/Badge provider offers discount/incentive to Udemy students. Public version is for display on e.g. Course Landing Page (when the person has not yet purchased). Whether or not incentive is offered may depend on the specific LearningProduct |
Arguments | |
incentiveOfferTextPrivate - SafeHtml | If the Cert/Badge provider offers discount/incentive to Udemy students. Private version is for display on e.g. Course Taking Page (after the person has purchased) Whether or not incentive is offered may depend on the specific LearningProduct |
Arguments |
Example
{
"urlRegistration": "https://www.cncf.io/training/certification/cka/",
"incentiveOfferTextPublic": "Enroll in this course and get <strong>20% off</strong>exam registration",
"incentiveOfferTextPrivate": "Use code <strong>MUCHDISCOUNT</strong> for 20% off exam registration"
}
CertificationExamURL
Description
URL to the exam registration page for a certification with its locale (deprecated)
Example
{"url": "https://www.cncf.io/training/certification/cka/", "locale": "en"}
CodeBlock
CodingExercise
Description
Coding exercise for students to practice their programming
Fields
Field Name | Description |
---|---|
id - ID! | The Id of the coding exercise |
title - String! | The title of the coding exercise |
description - String | Problem statement |
urlLanding - URL! | Landing page to view this CodingExercise |
versionedIdentifier - VersionedIdentifier! | Versioned identifier of the coding exercise |
course - Course | Course this coding exercise belongs to |
Example
{
"id": "4",
"title": "Coding Exercise: Create a Lambda Function",
"description": "<p>Let's create a Lambda function from scratch. We'll use the AWS console to create a Lambda function that will be triggered by an S3 event.</p>",
"urlLanding": "https://www.udemy.com/",
"versionedIdentifier": VersionedIdentifier,
"course": Course
}
CodingExerciseRecommendation
Description
A wrapper type to include the recommended Coding Exercise and some additional fields about its recommendation
Fields
Field Name | Description |
---|---|
id - ID! | This is the ID of this wrapper object. This ID is different from the ID of the underlying recommended object to provide uniqueness across item types |
trackingId - String! | Tracking ID generated in the backend. Useful to relate tracking events generated in the backend with the tracking events generated in the frontend. The value will change each time a recommendation item is served |
codingExercise - CodingExercise | Underlying object of the recommendation to get more information about it |
Example
{
"id": "4",
"trackingId": "ZGNlMWM2NGItYmQ0Ni00Yj",
"codingExercise": CodingExercise
}
ContentCollection
Description
Type representing a group of content for a subscription plan
Fields
Field Name | Description |
---|---|
id - ID! | ID of the Content Collection |
Example
{"id": 4}
Course
Description
The Course object
Fields
Field Name | Description |
---|---|
id - ID! | ID of the course |
title - String! | Title of the course |
headline - String | Headline to show under the title |
description - SafeHtml | Description of the course |
badges - [LearningProductBadge!]! | Badges awarded to the course |
curriculum - Curriculum! | Course's curriculum |
prerequisites - [String!]! | Prerequisites for taking the course |
targetAudience - [String!]! | Who should attend the course |
learningOutcomes - [String!]! | What you will learn in this course |
duration - CourseDuration | Total duration of the course's content |
durationVideoContent - DurationInSeconds | Total duration of video content only in seconds |
durationInSeconds - DurationInSeconds | Total duration of the course's content in seconds |
private - Boolean | Whether the course is publicly available or not |
organization - Organization | The UB organization this course belongs to, only visible if you are part of that organization |
organizationInfo - CourseOrganizationInfo | Organization specific course properties, only visible if you are part of that organization |
images - CourseImages! | Images by their dimensions |
instructors - [CourseInstructor!]! | Instructors of the Course |
categories - [CourseCategory!]! | Categories the course is part of |
enrollments - CourseEnrollments! | Learners enrolled in a course |
enrollable - Boolean! | Whether a learner can enroll in a course or not |
isEnrolled - Boolean! | Whether the course is enrolled by the current user or not |
isFree - Boolean! | Whether the course is a free course or not |
rating - CourseRating! | How do students rate the course |
level - DifficultyLevel | Instruction level of the course |
urlAutoEnroll - URL | The URL to access the auto-enroll page |
urlCourseLanding - URL | The URL to access the course landing page |
urlCourseTaking - URL | The URL to access the course taking page |
locale - Locale! | Course locale e.g. en-US or en-GB |
updatedOn - Date | When the course was last updated |
topics - [Topic!] | Topics course is tagged with |
primaryTopic - Topic | Primary topic course is tagged with |
xapiActivityId - ID! | Activity ID of xAPI statement to identify course |
accreditations - [CourseAccreditation!] | Accreditations a course has |
captions - [CourseCaptionDetails!] | Caption and subtitles the course has |
urlMobileNativeDeeplink - URL! | Mobile Native deep link of the course |
promoVideo - CoursePromoVideo | Promotional video for the course. Clients need to renew it if URL expires by querying it again |
versionedIdentifier - VersionedIdentifier! | Versioned identifier of the course |
subscriptionInfo - CourseSubscriptionInfo | Subscription specific course properties |
isPracticeTestCourse - Boolean! | Indicates if Course is a practice test only, made to prepare for a certification exam |
Example
{
"id": "4",
"title": "[NEW] Ultimate AWS Certified Cloud Practitioner - 2023",
"headline": "Full Practice Exam included + explanations | Learn Cloud Computing | Pass the AWS Cloud Practitioner CLF-C01 exam!",
"description": "<p><strong>Welcome! I'm here to help you prepare and PASS the newest AWS Certified Cloud Practitioner exam.</strong></p>",
"badges": [LearningProductBadge],
"curriculum": Curriculum,
"prerequisites": ["Mathematics", "Programming"],
"targetAudience": ["Developers", "Students"],
"learningOutcomes": ["xyz789"],
"duration": "5h 21m 3s",
"durationVideoContent": 19263,
"durationInSeconds": 19263,
"private": true,
"organization": Organization,
"organizationInfo": CourseOrganizationInfo,
"images": CourseImages,
"instructors": [CourseInstructor],
"categories": [CourseCategory],
"enrollments": CourseEnrollments,
"enrollable": false,
"isEnrolled": false,
"isFree": false,
"rating": CourseRating,
"level": "ALL_LEVELS",
"urlAutoEnroll": "https://www.udemy.com/",
"urlCourseLanding": "https://www.udemy.com/",
"urlCourseTaking": "https://www.udemy.com/",
"locale": "en_US",
"updatedOn": "2007-12-03",
"topics": [Topic],
"primaryTopic": Topic,
"xapiActivityId": 4,
"accreditations": [CourseAccreditation],
"captions": [CourseCaptionDetails],
"urlMobileNativeDeeplink": "https://www.udemy.com/",
"promoVideo": CoursePromoVideo,
"versionedIdentifier": VersionedIdentifier,
"subscriptionInfo": CourseSubscriptionInfo,
"isPracticeTestCourse": false
}
CourseAccreditation
Description
Accreditations
Fields
Field Name | Description |
---|---|
type - CourseAccreditationType! | The type of accreditation |
subject - String | Technical subject area |
compliantSince - Date | Start date of accreditation |
level - String | The level of the accreditation |
creditCount - NonNegativeFloat! | The amount of credits this accreditations supplies |
Example
{
"type": "CPE",
"subject": "Data Science",
"compliantSince": "2007-12-03",
"level": "Beginner",
"creditCount": 123.45
}
CourseAiHighlights
Description
AI generated highlights for a course
Fields
Field Name | Description |
---|---|
summary - String! | AI generated summary of the course |
learningOutcomes - [String!]! | Skills or learning outcomes for the course |
Example
{
"summary": "<p><strong>Welcome! I'm here to help you prepare and PASS the newest AWS Certified Cloud Practitioner exam.</strong></p>",
"learningOutcomes": [
"All 300+ slides available as downloadable PDF",
"Full Practice Exam with Explanations included!",
"Learn the AWS Fundamentals (EC2, ELB, ASG, RDS, ElastiCache, S3)"
]
}
CourseCaptionDetails
Description
Course caption details such as locale, type, and source
Fields
Field Name | Description |
---|---|
locale - Locale! | The caption's locale |
automaticallyGenerated - Boolean! | Whether the caption is automatically generated |
type - CaptionType! | The caption type, either subtitles or closed captions |
Example
{
"locale": "en_US",
"automaticallyGenerated": true,
"type": "SUBTITLE"
}
CourseCatalogFullResponsePaged
Description
A catalog of all courses available to the client
Fields
Field Name | Description |
---|---|
courses - [Course!]! | List of courses in the catalog |
syncToken - String! | Sync Token to use for the next delta sync |
cursor - String | Cursor to get the next page. Null if no more results available |
Example
{
"courses": [Course],
"syncToken": "Yjc3YTZlOTEtMmUzNy00MzcxLWJhZjQtZWQ5ZWM4MTJjODA4OjE2ODU2NDIxOTQ6bGVhcm5pbmctODIwMTEyNjMtMTVjMi00Njhh",
"cursor": "WWpjM1lUWmxPVEV0TW1Vek55MDBNemN4TFdKaFpqUXRaV1E1WldNNE1USmpPREE0T2pFMk9EVTJOREl4T1RRNmJHVmhjbTVwYm1jdE9ESXdNVEV5TmpNdE1UVmpNaTAwTmpoaDoxMg=="
}
CourseCatalogUpdatedResponsePaged
Description
Changes to catalog of all courses available to the client
Fields
Field Name | Description |
---|---|
addedCourses - [Course!]! | Courses added since last sync |
updatedCourses - [Course!]! | Courses updated since last sync |
removedCourses - [ID!]! | Course IDs for courses removed since last sync |
syncToken - String! | Sync Token to use for the next delta sync |
cursor - String | Cursor to get the next page. Null if no more results available |
Example
{
"addedCourses": [Course],
"updatedCourses": [Course],
"removedCourses": ["4"],
"syncToken": "Yjc3YTZlOTEtMmUzNy00MzcxLWJhZjQtZWQ5ZWM4MTJjODA4OjE2ODU2NDIxOTQ6bGVhcm5pbmctODIwMTEyNjMtMTVjMi00Njhh",
"cursor": "WWpjM1lUWmxPVEV0TW1Vek55MDBNemN4TFdKaFpqUXRaV1E1WldNNE1USmpPREE0T2pFMk9EVTJOREl4T1RRNmJHVmhjbTVwYm1jdE9ESXdNVEV5TmpNdE1UVmpNaTAwTmpoaDoxMg=="
}
CourseCategory
Description
Category the Course belongs to
Fields
Field Name | Description |
---|---|
id - ID! | ID of the category |
name - String! | Name of the category |
url - URL! | The URL to the category page this course is a part of |
subcategories - [CourseSubCategory!]! | Subcategories belonging to the category |
Example
{
"id": 4,
"name": "IT Operations",
"url": "https://learning.udemy.com/courses/ufb-it-operations",
"subcategories": [CourseSubCategory]
}
CourseCurriculumContentCounts
Description
Count of the course curriculum content by type
Fields
Field Name | Description |
---|---|
lecturesCount - Int! | Count of all lectures in the course curriculum |
quizzesCount - Int! | Count of all quizzes in the course curriculum |
codingExercisesCount - Int! | Count of all coding exercises in the course curriculum |
practiceAssignmentsCount - Int! | Count of all practice assignments in the course curriculum |
practiceTestsCount - Int! | Count of all practice tests in the course curriculum |
practiceTestQuestionsCount - Int! | Count of all questions in the PracticeTests in the course curriculum |
Example
{
"lecturesCount": 987,
"quizzesCount": 123,
"codingExercisesCount": 987,
"practiceAssignmentsCount": 123,
"practiceTestsCount": 987,
"practiceTestQuestionsCount": 123
}
CourseEnrollments
Description
Enrollments belonging to the course
Fields
Field Name | Description |
---|---|
count - Int | Exact count of how many students are there currently enrolled (course purchase and subscription). Requires token scope 'udemy:application' to access |
roundedCount - Int! | Count of how many students are currently enrolled (course purchase and subscription) rounded to the nearest decimal Exception: if there are fewer than 10 enrollments we show the exact amount (instead of 0) |
Example
{"count": 123, "roundedCount": 987}
CourseImages
Description
Course images by varying dimensions
Fields
Field Name | Description |
---|---|
px100x100 - String | Course preview image with 100x100 dimensions in pixels |
px240x135 - String | Course preview image with 240x135 dimensions in pixels |
px304x171 - String | Course preview image with 304x171 dimensions in pixels |
px480x270 - String | Course preview image with 480x270 dimensions in pixels |
px48x27 - String | Course preview image with 48x27 dimensions in pixels |
px50x50 - String | Course preview image with 50x50 dimensions in pixels |
px75x75 - String | Course preview image with 75x75 dimensions in pixels |
px96x54 - String | Course preview image with 96x54 dimensions in pixels |
px750x422 - String | Course preview image with 750x422 dimensions in pixels |
height125 - String | Course preview image with 125 pixels height |
height200 - String | Course preview image with 200 pixels height |
Example
{
"px100x100": "https://img-c.udemycdn.com/course/100x100/11112134.jpg",
"px240x135": "https://img-c.udemycdn.com/course/240x135/11112134.jpg",
"px304x171": "https://img-c.udemycdn.com/course/304x171/11112134.jpg",
"px480x270": "https://img-c.udemycdn.com/course/480x270/11112134.jpg",
"px48x27": "https://img-c.udemycdn.com/course/48x27/11112134.jpg",
"px50x50": "https://img-c.udemycdn.com/course/50x50/11112134.jpg",
"px75x75": "https://img-c.udemycdn.com/course/75x75/11112134.jpg",
"px96x54": "https://img-c.udemycdn.com/course/96x54/11112134.jpg",
"px750x422": "https://img-c.udemycdn.com/course/750x422/11112134.jpg",
"height125": "https://img-c.udemycdn.com/course/125_H/11112134.jpg",
"height200": "https://img-c.udemycdn.com/course/200_H/11112134.jpg"
}
CourseInstructor
Description
Instructor for a course
Fields
Field Name | Description |
---|---|
id - ID! | ID of the Instructor |
name - String! | Instructor's name |
url - URL | The URL to access the instructor page |
images - InstructorImages! | Instructor's image by varying pixels |
Example
{
"id": 4,
"name": "Stephane Maarek",
"url": "https://www.udemy.com/user/stephane-maarek/",
"images": InstructorImages
}
CourseOrganizationInfo
Description
Organization specific course properties
Fields
Field Name | Description |
---|---|
isOrganizationSpecific - Boolean | True if this course was created specifically for this organization |
isMarketplaceImported - Boolean | True if this course was purchased separately from the marketplace |
retiresOn - Date | If not null returns the Date this course will retire from organization's content collection |
Example
{
"isOrganizationSpecific": false,
"isMarketplaceImported": false,
"retiresOn": "2007-12-03"
}
CoursePromoVideo
Description
Object to store URL and expiration time for course's promo video
Example
{
"url": "https://mp4-c.udemycdn.com/2020-08-31_18-10-39-0ff314ead0e4f7f3519b8285af262046/1/original.mp4?Expires=1695960374&Signature=qOCfN840cCmL4GHBt8JU6DPE9B2sR9UpUsZC5HTVng~0l44cTdFm92v1~BhCRaDaLH4AjKBXelMYVqj4BczBPNNSV4Q2OTMJ4Q4QPhDByD16TAzyVFP2gSX40Rxlfqi1jc-Mnii3IMLLLSJlQGhpAKnHh~ZVx9JX2jFiH-k8ShJ1VQxciUxEbOO-VrrKrkapdF5P7MhEI2WMIZ817s~FN2~~1zBK3V-8L0cdBTVwDbxFC3n-WtF0eAT8ZJhPzJgXuF93uUrAnYGnnlCwU3u7mxkr900LbJDJ79nit8-MOmP0QCBRuou-2-8KCKqWhPwbh--JCYJLsE2L6NaAjdWmvw__&Key-Pair-Id=dev",
"expiresOn": 1592577642
}
CourseRating
Description
Ratings of a course
Fields
Field Name | Description |
---|---|
average - AverageRating | Weighted average rating. Ranges from 0 to 5.0 |
count - Int! | Number of ratings |
Example
{"average": 4.5, "count": 123}
CourseRecommendation
Description
A wrapper type to include the recommended Course and some additional fields about its recommendation
Fields
Field Name | Description |
---|---|
id - ID! | This is the ID of this wrapper object. This ID is different from the ID of the underlying recommended object to provide uniqueness across item types |
trackingId - String! | Tracking ID generated in the backend. Useful to relate tracking events generated in the backend with the tracking events generated in the frontend. The value will change each time a recommendation item is served |
course - Course | Underlying object of the recommendation to get more information about it |
Example
{
"id": "4",
"trackingId": "ZGNlMWM2NGItYmQ0Ni00Yj",
"course": Course
}
CourseSearchResponse
Description
List of Courses and additional data about search response
Fields
Field Name | Description |
---|---|
courses - [Course!]! | List of Course objects Use results instead |
results - [CourseSearchResult]! | List of CourseSearchResult objects containing course and additional search related fields |
count - Int! | Total number of Courses matching the search query and filters |
filterOptions - [SearchAggregation!]! | Identifies available search filter facets |
pageCount - Int! | The total amount of pages in search response |
page - Int! | The current page number, 0 based |
metadata - CourseSearchResponseMetadata | Metadata for whole search result used by front end |
Example
{
"courses": [Course],
"results": [CourseSearchResult],
"count": 123,
"filterOptions": [SearchAggregation],
"pageCount": 123,
"page": 987,
"metadata": CourseSearchResponseMetadata
}
CourseSearchResponseMetadata
Description
Contains info for front end related stuff and tracking info. This data is calculated by backend service and used by Udemy front end. If you are an external user, you shouldn't need this
Fields
Field Name | Description |
---|---|
trackingId - String! | Search analytics tracking id; for uniquely identifying this query and result set; for this request |
originalQuery - String! | Original search query, without any manipulation |
querySuggestion - SearchQuerySuggestion | Search query suggestion containing the suggested query and the suggestion type |
hasOrgCourses - Boolean! | Whether there are available courses for organizations in the search result or not |
associatedTopic - Topic | Associated topic for the search response |
certificationTopic - Topic | Certification topic for the search response |
experimentResults - [FeatureVariantAssignment!]! | For the request, show experiment metadata results like bucketing info, experiment IDs of assigned feature variants |
debug - JSON | Debug information for the search response |
Example
{
"trackingId": "O9eKKCzdQim95RLDVXI3OA",
"originalQuery": "pyt",
"querySuggestion": SearchQuerySuggestion,
"hasOrgCourses": true,
"associatedTopic": Topic,
"certificationTopic": Topic,
"experimentResults": [FeatureVariantAssignment],
"debug": "{\"key\":\"value\"}"
}
CourseSearchResult
Description
Represents a course search result with additional data about the search response
Fields
Field Name | Description |
---|---|
course - Course! | The course information returned in the search result |
trackingId - String! | Unique analytics ID for this instance of Course returned from the server in this request |
curriculumItemMatches - [CurriculumItem]! | Curriculum items that match with the search query |
searchDebugFeatures - JSON | Debugging information related to the search process for this course |
Example
{
"course": Course,
"trackingId": "O9eKKCzdQim95RLDVXI3OA",
"curriculumItemMatches": [CurriculumItem],
"searchDebugFeatures": "{\"key\":\"value\"}"
}
CourseSection
Description
Section of the course containing all types of curriculum items
Fields
Field Name | Description |
---|---|
id - ID! | Identifier for the course section |
title - String! | Title of the section |
description - String | What will students be able to do at the end of this section? |
items - [CurriculumItem!]! | Content of the section |
versionedIdentifier - VersionedIdentifier! | Versioned identifier of the course section |
course - Course | Course this section belongs to |
Example
{
"id": 4,
"title": "Introduction",
"description": "<p><strong>Welcome to the AWS Certified Cloud Practitioner Course!</strong></p>",
"items": [CurriculumItem],
"versionedIdentifier": VersionedIdentifier,
"course": Course
}
CourseSectionRecommendation
Description
A wrapper type to include the recommended Course Section and some additional fields about its recommendation
Fields
Field Name | Description |
---|---|
id - ID! | This is the ID of this wrapper object. This ID is different from the ID of the underlying recommended object to provide uniqueness across item types |
trackingId - String! | Tracking ID generated in the backend. Useful to relate tracking events generated in the backend with the tracking events generated in the frontend. The value will change each time a recommendation item is served |
courseSection - CourseSection | Underlying object of the recommendation to get more information about it |
Example
{
"id": "4",
"trackingId": "ZGNlMWM2NGItYmQ0Ni00Yj",
"courseSection": CourseSection
}
CourseSubCategory
Description
SubCategory that is part of CourseCategory
Example
{
"id": 4,
"name": "IT Certifications",
"url": "https://learning.udemy.com/courses/ufb-it-operations/ufb-it-certifications"
}
CourseSubscriptionInfo
Description
Subscription specific course properties
Fields
Field Name | Description |
---|---|
inSubscriptions - [SubscriptionPlan!] | Indicates which type of user's subscription course is included in |
availableInSubscriptions - [SubscriptionPlan!] | Indicates which types of subscription this course can be purchased in |
Example
{
"inSubscriptions": [SubscriptionPlan],
"availableInSubscriptions": [SubscriptionPlan]
}
Curriculum
Description
Curriculum part of a course
Fields
Field Name | Description |
---|---|
sections - [CourseSection!]! | Each course section containing the course curriculum content |
course - Course | Course this curriculum belongs to |
versionedIdentifier - VersionedIdentifier! | Versioned identifier of the curriculum |
contentCounts - CourseCurriculumContentCounts | Count of the course curriculum content by type |
Example
{
"sections": [CourseSection],
"course": Course,
"versionedIdentifier": VersionedIdentifier,
"contentCounts": CourseCurriculumContentCounts
}
DailySubscriptionPlanPricingOption
Description
Price option for computed price plan. Will be returned for daily plans
Fields
Field Name | Description |
---|---|
id - ID! | ID of the price option: |
listPrice - Money! | The list price of the subscription price plan based on provided requested count from request |
renewalInterval - DateInterval! | Interval for renewing the subscription plan ie the length of the subscription plan |
trial - SubscriptionTrial | Field containing details about the trial subscription offer for a given user. Null indicates no trial is available |
licenseContext - SubscriptionPlanLicenseContext | Contains information about the license context for a given subscription plan price option |
discount - SubscriptionPlanDiscount | Contains information about the discount context for a given subscription plan price option |
discountTrial - SubscriptionTrial | Field containing details about the discounted trial subscription offer for a given user. Null indicates no trial is available |
price - SubscriptionPlanPrice | Field showing the prices for the option |
Example
{
"id": "4",
"listPrice": Money,
"renewalInterval": DateInterval,
"trial": SubscriptionTrial,
"licenseContext": SubscriptionPlanLicenseContext,
"discount": SubscriptionPlanDiscount,
"discountTrial": SubscriptionTrial,
"price": SubscriptionPlanPrice
}
DateInterval
Description
Type representing details about an interval of dates
Fields
Field Name | Description |
---|---|
count - Int! | The count of type in the interval |
type - DateIntervalType! | Type type of interval |
Example
{"count": 123, "type": "DAY"}
DynamicWebContent
Description
The content of a component defined in the CMS
Fields
Field Name | Description |
---|---|
contents - [DynamicWebContent] | The associated sub content contained within this piece of content. This allows us to create a collection of nested web content |
contentUrl - URL | The URL to the associated content |
contentUrlText - String | The text for the URL to the piece of content |
description - String | The description text for the dynamic web content |
heading - String | The heading text for the dynamic web content |
image - DynamicWebContentImage | The text for the content label |
labelText - String | The image URL of the secondary image asset associated with this content, usually an icon, with optional alt text |
secondaryImage - DynamicWebContentImage | The image URL of the main image asset associated with this content, with optional alt text |
trackingId - ID | The tracking ID of the piece of content. To be used to uniquely identify the content in event tracking |
Example
{
"contents": [DynamicWebContent],
"contentUrl": "https://www.udemy.com/",
"contentUrlText": "Get the report",
"description": "GenAI and leadership are at the core of today's skills-based economy. Get the 2024 Global Learning & Skills Trends Report to learn more.",
"heading": "Top trends for the future of work",
"image": DynamicWebContentImage,
"labelText": "Current",
"secondaryImage": DynamicWebContentImage,
"trackingId": 4
}
DynamicWebContentImage
Description
The dynamic web image object. This combines the image URL and the alt text for the image for a11y purposes
Example
{
"altText": "VW logo",
"url": "https://www.udemy.com/"
}
EBookLecture
Description
Lecture in form of an EBook (deprecated)
Fields
Field Name | Description |
---|---|
id - ID! | Id of the lecture |
title - String! | Lecture title |
images - LectureImages! | Images by their dimensions |
urlAutoEnroll - URL! | The URL to access the lecture on the auto-enroll page |
urlLanding - URL! | Landing page to view this Lecture |
thumbnail - URL | The URL of the lecture thumbnail |
durationInSeconds - DurationInSeconds! | Total duration of the lecture's content in seconds |
course - Course | The Course this lecture belongs to |
versionedIdentifier - VersionedIdentifier! | Versioned identifier of the lecture |
Example
{
"id": 4,
"title": "Course Introduction - AWS Certified Solutions Architect Associate",
"images": LectureImages,
"urlAutoEnroll": "https://www.udemy.com/course/aws-certified-solutions-architect-associate/learn/lecture/23206582/enroll",
"urlLanding": "https://www.udemy.com/course/aws-certified-solutions-architect-associate/learn/lecture/23206582/?couponCode=AWSARCH-2021",
"thumbnail": "https://www.udemy.com/",
"durationInSeconds": 19263,
"course": Course,
"versionedIdentifier": VersionedIdentifier
}
Entity
Description
Represents the entity who was affected by the event
Fields
Field Name | Description |
---|---|
entityId - ID! | The unique identifier for the entity |
entityType - EntityType! | The type of entity, such as an end user, group, or license |
Example
{"entityId": "4", "entityType": "NA"}
ExternalLecture
Description
Lecture that refers to an external source (deprecated)
Fields
Field Name | Description |
---|---|
id - ID! | Id of the lecture |
title - String! | Lecture title |
images - LectureImages! | Images by their dimensions |
urlAutoEnroll - URL! | The URL to access the lecture on the auto-enroll page |
urlLanding - URL! | Landing page to view this Lecture |
thumbnail - URL | The URL of the lecture thumbnail |
course - Course | The Course this lecture belongs to |
versionedIdentifier - VersionedIdentifier! | Versioned identifier of the lecture |
Example
{
"id": 4,
"title": "Course Introduction - AWS Certified Solutions Architect Associate",
"images": LectureImages,
"urlAutoEnroll": "https://www.udemy.com/course/aws-certified-solutions-architect-associate/learn/lecture/23206582/enroll",
"urlLanding": "https://www.udemy.com/course/aws-certified-solutions-architect-associate/learn/lecture/23206582/?couponCode=AWSARCH-2021",
"thumbnail": "https://www.udemy.com/",
"course": Course,
"versionedIdentifier": VersionedIdentifier
}
FeatureVariantAssignment
Description
Holds assigned feature variant
Fields
Field Name | Description |
---|---|
featureCode - String! | Feature code of assigned feature variant |
configuration - JSON | Configuration data of assigned feature variant |
isInExperiment - Boolean | Shows whether this feature variant is in experiment |
experimentIds - [Int!]! | List of experiment ids bucketed for current feature |
isLocalDefault - Boolean! | Indicates whether the presentation on the frontend is the actual response of the Experimentation Platform or not |
Example
{
"featureCode": "ab-testing",
"configuration": "{\"key\":\"value\"}",
"isInExperiment": true,
"experimentIds": [123],
"isLocalDefault": false
}
FileLecture
Description
Lecture in the form of a single file (deprecated)
Fields
Field Name | Description |
---|---|
id - ID! | Id of the lecture |
title - String! | Lecture title |
images - LectureImages! | Images by their dimensions |
urlAutoEnroll - URL! | The URL to access the lecture on the auto-enroll page |
urlLanding - URL! | Landing page to view this Lecture |
thumbnail - URL | The URL of the lecture thumbnail |
course - Course | The Course this lecture belongs to |
versionedIdentifier - VersionedIdentifier! | Versioned identifier of the lecture |
Example
{
"id": 4,
"title": "Course Introduction - AWS Certified Solutions Architect Associate",
"images": LectureImages,
"urlAutoEnroll": "https://www.udemy.com/course/aws-certified-solutions-architect-associate/learn/lecture/23206582/enroll",
"urlLanding": "https://www.udemy.com/course/aws-certified-solutions-architect-associate/learn/lecture/23206582/?couponCode=AWSARCH-2021",
"thumbnail": "https://www.udemy.com/",
"course": Course,
"versionedIdentifier": VersionedIdentifier
}
HotAndNewBadge
Description
Represents a badge awarded to a hot and new learning product
Fields
Field Name | Description |
---|---|
name - String! | The localized name of the badge |
Example
{"name": "Hot & New"}
InstructorImages
Description
Instructor images by varying dimensions
Fields
Field Name | Description |
---|---|
px50x50 - String | Instructor image with 50x50 dimensions in pixels |
Example
{"px50x50": "https://img-c.udemycdn.com/user/50x50/11112134_64e1_2.jpg"}
InstructorRecommendation
Description
A wrapper type to include the recommended Instructor and some additional fields about its recommendation
Fields
Field Name | Description |
---|---|
id - ID! | This is the ID of this wrapper object. This ID is different from the ID of the underlying recommended object to provide uniqueness across item types |
trackingId - String! | Tracking ID generated in the backend. Useful to relate tracking events generated in the backend with the tracking events generated in the frontend. The value will change each time a recommendation item is served |
instructor - CourseInstructor | Underlying object of the recommendation to get more information about it |
Example
{
"id": 4,
"trackingId": "ZGNlMWM2NGItYmQ0Ni00Yj",
"instructor": CourseInstructor
}
Lab
Description
The Lab object
Fields
Field Name | Description |
---|---|
id - ID! | ID of the Lab |
title - String! | Title of the Lab |
description - SafeHtml | Top level description of the Lab |
learningOutcomes - [String!]! | Bulleted list of things a person will learn in this Lab |
activities - [String!]! | Bulleted list of things a person will accomplish in this Lab |
prerequisites - [String!]! | Bulleted list of things a person should already know in order to do this Lab |
minEstimatedTime - DurationInSeconds! | Lower bound of estimated time (in seconds) to complete Lab |
maxEstimatedTime - DurationInSeconds! | Upper bound of estimated time (in seconds) to complete Lab |
instructors - [LabInstructor!]! | The Lab's Instructors |
topics - [Topic!] | The Lab's topics |
urlLanding - URL! | The Lab's landing URL |
metadata - LabMetaData | Metadata associated with the lab |
durationInSeconds - DurationInSeconds | Average duration of lab in seconds |
Example
{
"id": "4",
"title": "Lab 1: Create a VPC",
"description": "<p>Learn how to create a VPC</p>",
"learningOutcomes": ["VPC is created"],
"activities": ["Create a VPC"],
"prerequisites": ["AWS Account"],
"minEstimatedTime": 19263,
"maxEstimatedTime": 19263,
"instructors": [LabInstructor],
"topics": [Topic],
"urlLanding": "https://www.udemy.com/",
"metadata": LabMetaData,
"durationInSeconds": 19263
}
LabInstructor
Description
Instructor for a lab
Fields
Field Name | Description |
---|---|
id - ID! | ID of the Instructor |
name - String! | Instructor's name |
url - URL | The URL to access the instructor page |
images - InstructorImages! | Instructor's image by varying pixels |
Example
{
"id": 4,
"name": "Stephane Maarek",
"url": "https://www.udemy.com/user/stephane-maarek/",
"images": InstructorImages
}
LabMetaData
Description
MetaData for a lab
Fields
Field Name | Description |
---|---|
trackingId - String | Unique analytics ID for this instance of Lab returned from the server in this request |
Example
{"trackingId": "S8HU-xXXQ_OZ_hLKlVvOEQ"}
LabRecommendation
Description
A wrapper type to include the recommended Lab and some additional fields about its recommendation
Fields
Field Name | Description |
---|---|
id - ID! | This is the ID of this wrapper object. This ID is different from the ID of the underlying recommended object to provide uniqueness across item types |
trackingId - String! | Tracking ID generated in the backend. Useful to relate tracking events generated in the backend with the tracking events generated in the frontend. The value will change each time a recommendation item is served |
lab - Lab | Underlying object of the recommendation to get more information about it |
Example
{
"id": "4",
"trackingId": "ZGNlMWM2NGItYmQ0Ni00Yj",
"lab": Lab
}
LabSearchResponse
Description
List of Labs and additional data about search response
Fields
Field Name | Description |
---|---|
labs - [Lab!]! | List of Lab objects |
count - Int! | Total number of Labs matching the search query and filters |
filterOptions - [SearchAggregation!]! | Identifies available search filter facets |
trackingId - String! | Search analytics tracking id; for uniquely identifying this query and result set; for this request |
Example
{
"labs": [Lab],
"count": 987,
"filterOptions": [SearchAggregation],
"trackingId": "S8HU-xXXQ_OZ_hLKlVvOEQ"
}
LearningPathCatalogFullResponsePaged
Description
Catalog of all learning paths available to the client
Fields
Field Name | Description |
---|---|
learningPaths - [LearningPath]! | List of courses in the catalog |
syncToken - String! | Sync Token to use for the next delta sync |
cursor - String | Cursor to get the next page. Null if no more results available |
Example
{
"learningPaths": [LearningPath],
"syncToken": "Yjc3YTZlOTEtMmUzNy00MzcxLWJhZjQtZWQ5ZWM4MTJjODA4OjE2ODU2NDIxOTQ6bGVhcm5pbmctODIwMTEyNjMtMTVjMi00Njhh",
"cursor": "WmpVMlkyWXpOV0V0WXpVM01TMDBOVEV5TFdJMVlUVXRPRFV4TURKa1pEQmpOREEwT2pFM01qYzVPRFkzTURBNk1UQTVPVFk9OjI0"
}
LearningPathCatalogUpdatedResponsePaged
Description
Changes to catalog of all learning paths available to the client since last sync
Fields
Field Name | Description |
---|---|
addedLearningPaths - [LearningPath]! | Learning Paths added since last sync |
updatedLearningPaths - [LearningPath]! | Learning Paths updated since last sync |
removedLearningPaths - [ID!]! | Learning Path IDs for courses removed since last sync |
syncToken - String! | Sync Token to use for the next delta sync |
cursor - String | Cursor to get the next page. Null if no more results available |
Example
{
"addedLearningPaths": [LearningPath],
"updatedLearningPaths": [LearningPath],
"removedLearningPaths": [4],
"syncToken": "Yjc3YTZlOTEtMmUzNy00MzcxLWJhZjQtZWQ5ZWM4MTJjODA4OjE2ODU2NDIxOTQ6bGVhcm5pbmctODIwMTEyNjMtMTVjMi00Njhh",
"cursor": "WmpVMlkyWXpOV0V0WXpVM01TMDBOVEV5TFdJMVlUVXRPRFV4TURKa1pEQmpOREEwT2pFM01qYzVPRFkzTURBNk1UQTVPVFk9OjI0"
}
LearningPathCoursePortion
Description
Collection of curriculum items presented in a learning path as a one item
Fields
Field Name | Description |
---|---|
id - ID! | ID of the course portion |
title - String! | Title of the course portion |
description - SafeHtml | Description of the course portion |
durationInSeconds - DurationInSeconds | The duration of the course portion |
items - [CurriculumItem] | Items in the course portion |
Example
{
"id": 4,
"title": "LLM Fine Tuning on OpenAI",
"description": SafeHtml,
"durationInSeconds": 19263,
"items": [CurriculumItem]
}
LearningPathRecommendation
Description
A wrapper type to include the recommended Learning Path and some additional fields about its recommendation
Fields
Field Name | Description |
---|---|
id - ID! | This is the ID of this wrapper object. This ID is different from the ID of the underlying recommended object to provide uniqueness across item types |
trackingId - String! | Tracking ID generated in the backend. Useful to relate tracking events generated in the backend with the tracking events generated in the frontend. The value will change each time a recommendation item is served |
learningPath - LearningPath | Underlying object of the recommendation to get more information about it |
Example
{
"id": "4",
"trackingId": "ZGNlMWM2NGItYmQ0Ni00Yj",
"learningPath": LearningPath
}
LearningPathResource
Description
Learning Path Resource represents a link to another resource
Fields
Field Name | Description |
---|---|
id - ID! | ID of the learning path resource |
title - String! | Title of the learning path resource |
description - SafeHtml | Description of the learning path resource |
durationInSeconds - DurationInSeconds | The duration of the learning path resource |
urlLanding - URL! | Landing URL for the learning path resource |
Example
{
"id": 4,
"title": "COURSE FAQs and DOWNLOADS HERE",
"description": SafeHtml,
"durationInSeconds": 19263,
"urlLanding": "https://www.udemy.com/"
}
LearningPathSearchResponse
Description
List of LearningPath and additional data about search response
Fields
Field Name | Description |
---|---|
paths - [ProLearningPath!]! | Found learning for search request |
count - Int! | Total number of Paths matching the search query and filters |
metadata - PathSearchResponseMetadata | Metadata for whole search result used by front end |
Example
{
"paths": [ProLearningPath],
"count": 123,
"metadata": PathSearchResponseMetadata
}
LearningPathSection
Description
Learning Path Section represents a collection of items in a learning path
Fields
Field Name | Description |
---|---|
id - ID! | ID of the section |
title - String! | Title of the section |
description - SafeHtml | Description of the section |
durationInSeconds - DurationInSeconds | The duration of the section |
itemCount - Int! | Number of items in the section |
items - [LearningPathItem] | Items in the section |
Example
{
"id": "4",
"title": "Improving LLM Performance",
"description": SafeHtml,
"durationInSeconds": 19263,
"itemCount": 123,
"items": [LearningPathItem]
}
LearningProductsPaged
Description
A collection of learning products for a partner
Fields
Field Name | Description |
---|---|
page - Int! | The current page number, 0 based |
pageCount - Int! | The total amount of pages. Calculated as (total result count / page size) |
items - [LearningProduct!]! | The contents of the collection, currently just courses. Items may be less than requested size if objects become unavailable |
Example
{
"page": 123,
"pageCount": 987,
"items": [LearningProduct]
}
LearningTestimonial
Description
The testimonial given relevant to a learning item or event
Fields
Field Name | Description |
---|---|
content - String! | The localized content of the Learning Testimonial |
id - ID! | The ID of the Learning Testimonial |
relatedUrl - URL! | The URL related to the Learning Testimonial |
relatedUrlText - String! | The localized text for the URL related to the Learning Testimonial |
source - LearningTestimonialSource! | The source of the Learning Testimonial |
type - LearningTestimonialType! | The type of Learning Testimonial |
Example
{
"content": "<p>Udemy was rated the most popular online course or certification program for learning how to code according to StackOverflow’s 2023 Developer survey. </p>",
"id": 4,
"relatedUrl": "https://www.udemy.com/",
"relatedUrlText": "<p><b>View Web Development courses</b></p>",
"source": LearningTestimonialSource,
"type": "CASE_STUDY"
}
LearningTestimonialSource
Description
The source of the learning testimonial
Fields
Field Name | Description |
---|---|
image - URL! | The URL to the image asset of the source for the Learning Testimonial |
description - String | Description text of the source for the Learning Testimonial (e.g., job title for Course Review types, etc) |
name - String! | Name of the source for the Learning Testimonial |
Example
{
"image": "https://www.udemy.com/",
"description": "<p>Stack<b>Overflow</b></p>",
"name": "Stack Overflow"
}
LectureImages
Description
Lecture images by varying dimensions
Fields
Field Name | Description |
---|---|
height50 - String | Lecture preview image with 50 pixels height |
height75 - String | Lecture preview image with 75 pixels height |
height100 - String | Lecture preview image with 100 pixels height |
height320 - String | Lecture preview image with 320 pixels height |
height480 - String | Lecture preview image with 480 pixels height |
Example
{
"height50": "https://img-c.udemycdn.com/lecture/50_H/32955996_03ea_2.jpg",
"height75": "https://img-c.udemycdn.com/lecture/75_H/32955996_03ea_2.jpg",
"height100": "https://img-c.udemycdn.com/lecture/100_H/32955996_03ea_2.jpg",
"height320": "https://img-c.udemycdn.com/lecture/320_H/32955996_03ea_2.jpg",
"height480": "https://img-c.udemycdn.com/lecture/480_H/32955996_03ea_2.jpg"
}
LectureRecommendation
Description
A wrapper type to include the recommended Lecture and some additional fields about its recommendation
Fields
Field Name | Description |
---|---|
id - ID! | This is the ID of this wrapper object. This ID is different from the ID of the underlying recommended object to provide uniqueness across item types |
trackingId - String! | Tracking ID generated in the backend. Useful to relate tracking events generated in the backend with the tracking events generated in the frontend. The value will change each time a recommendation item is served |
lecture - Lecture | Underlying object of the recommendation to get more information about it |
Example
{
"id": 4,
"trackingId": "ZGNlMWM2NGItYmQ0Ni00Yj",
"lecture": Lecture
}
LectureSearchResponse
Description
List of LectureResults and additional data about search response
Fields
Field Name | Description |
---|---|
results - [LectureSearchResult]! | List of LectureResult objects. The main search result is found in this list. This result is made nullable as a catch point for any errors that may occur downstream |
metadata - LectureSearchResponseMetadata | Metadata for whole search result used by front end |
experimentResults - [FeatureVariantAssignment!]! | For the request, shows experiment metadata result like bucking info, experiment IDs of assigned feature variants |
Example
{
"results": [LectureSearchResult],
"metadata": LectureSearchResponseMetadata,
"experimentResults": [FeatureVariantAssignment]
}
LectureSearchResponseMetadata
Description
Contains info for front end related stuff and tracking info. This data is calculated by backend service and used by Udemy front end. If you are an external user, you shouldn't need this
Fields
Field Name | Description |
---|---|
lectureExperimentVariant - String! | Experiment variant for the lecture unit |
lectureUnitOrder - Int! | Order of the lecture unit at the search result page. The value is calculated according to query intent evaluation |
labUnitOrder - Int! | Order of the lab unit at the search result page. The value is calculated according to query intent evaluation |
trackingId - String! | Search analytics tracking id; for uniquely identifying this query and result set; for this request |
Example
{
"lectureExperimentVariant": "control",
"lectureUnitOrder": "3",
"labUnitOrder": "6",
"trackingId": "p55X_jHUQ7yNmI0HQ4TmgA"
}
LectureSearchResult
Description
Identifies each result for lecture search
Example
{
"lecture": Lecture,
"course": Course,
"trackingId": "p55X_jHUQ7yNmI0HQ4TmgA"
}
Lesson
Description
A lesson associated with a learning product
Fields
Field Name | Description |
---|---|
id - LessonId! | The id of the lesson |
version - String! | The version of the lesson |
entityTag - Int! | The entity tag for optimistic locking, to be provided, as read, when updating |
locale - Locale! | The lesson's original locale |
created - DateTime | The creation timestamp |
updated - DateTime | The last update timestamp |
article - LessonArticle | The lesson article whose fragments are mapped within the playable media |
Example
{
"id": {"idType": "ASSET_ID", "idValue": "12392384"},
"version": "@1746636635859356",
"entityTag": 4,
"locale": "en-US",
"created": "2007-12-03T10:15:30Z",
"updated": "2007-12-03T10:15:30Z",
"article": {
"uuid": "a210e247-a33c-478c-82a6-1244cf695de1",
"title": "Intro to Containers",
"description": "This article explains what containers are",
"locale": "en-US",
"source": "AI",
"takeaways": {
"content": "- Containers are lightweight\n- Great for microservices"
},
"fragments": [
{
"timestamp": 10,
"content": {
"__typename": "Markdown",
"content": "This part explains Docker basics."
}
},
{
"timestamp": 30,
"content": {
"__typename": "Markdown",
"content": "Now let's dive into layers and images."
}
},
{
"timestamp": 60,
"content": {
"__typename": "CodeBlock",
"language": "rust",
"code": "hello.world()"
}
}
]
}
}
LessonArticle
Description
A rich article whose fragments can map to timestamps within the playable media
Fields
Field Name | Description |
---|---|
uuid - UUID! | A uuid uniquely identifying an article |
title - String! | The title of the article |
description - String! | A description for the article |
locale - Locale! | The article's locale. Supports translation |
takeaways - Markdown | The key takeaways of an article in markdown format |
fragments - [LessonArticleFragment!]! | The article's fragments |
source - ContentSourceType! | The source of the article |
Example
{
"uuid": "a210e247-a33c-478c-82a6-1244cf695de1",
"title": "some title",
"description": "some description",
"locale": "en-US",
"takeaways": Markdown,
"fragments": [LessonArticleFragment],
"source": "AI"
}
LessonArticleFragment
Description
A fragment of an article with possible mapping to the lesson's playable media
Fields
Field Name | Description |
---|---|
timestamp - OffsetInSeconds | The offset in seconds within the playable media this fragment corresponds to |
content - LessonArticleFragmentContent! | The polymorphic content of the fragment |
Example
{
"timestamp": OffsetInSeconds,
"content": Markdown
}
LessonId
Description
A flexible identification for a lesson
Fields
Field Name | Description |
---|---|
idType - LessonIdType! | The type of the id |
idValue - ID! | The id value |
Example
{"idType": "ASSET_ID", "idValue": 4}
Markdown
Description
A micro-content representing markdown
Fields
Field Name | Description |
---|---|
content - String! | The markdown value |
Example
{"content": "#section head\nsome paragraph"}
MetadataEntry
Description
Represents a key-value pair in metadata
Example
{"key": "actorEmail", "value": "awesomeActor@udemy.com"}
Money
Description
Money
Fields
Field Name | Description |
---|---|
amount - Decimal | Amount |
currency - CurrencyCode | Currency |
Example
{"amount": "1234.5678", "currency": "AUD"}
MonthlySubscriptionPlanPricingOption
Description
Price option for computed price plan. Will be returned for monthly plans
Fields
Field Name | Description |
---|---|
id - ID! | ID of the price option: |
listPrice - Money! | The list price of the subscription price plan based on provided requested count from request |
renewalInterval - DateInterval! | Interval for renewing the subscription plan ie the length of the subscription plan |
trial - SubscriptionTrial | Field containing details about the trial subscription offer for a given user. Null indicates no trial is available |
licenseContext - SubscriptionPlanLicenseContext | Contains information about the license context for a given subscription plan price option |
discount - SubscriptionPlanDiscount | Contains information about the discount context for a given subscription plan price option |
discountTrial - SubscriptionTrial | Field containing details about the discounted trial subscription offer for a given user. Null indicates no trial is available |
price - SubscriptionPlanPrice | Field showing the prices for the option |
Example
{
"id": "4",
"listPrice": Money,
"renewalInterval": DateInterval,
"trial": SubscriptionTrial,
"licenseContext": SubscriptionPlanLicenseContext,
"discount": SubscriptionPlanDiscount,
"discountTrial": SubscriptionTrial,
"price": SubscriptionPlanPrice
}
MoreRecommendationContextSectionsResponse
Description
Response returned when more RecommendationContextSections are queried for a RecommendationContext
Fields
Field Name | Description |
---|---|
sections - [RecommendationContextSection!]! | A slice of RecommendationContextSections available in a RecommendationContext. Slice boundaries are determined by the cursor and count parameters in the query |
sectionsCursor - String | Cursor to get more RecommendationContextSections from the RecommendationContext. Null, if there is no more |
Example
{
"sections": [RecommendationContextSection],
"sectionsCursor": "WkdObE1XTTJOR0l0WW1RME5pMDBZago="
}
MoreRecommendationItemsResponse
Description
Response returned when more RecommendationItems are queried for a RecommendationUnit
Fields
Field Name | Description |
---|---|
items - [RecommendationItem!]! | A slice of RecommendationItems available in a RecommendationUnit. Slice boundaries are determined by the cursor and count parameters in the query |
itemsCursor - String | Cursor to get more RecommendationItems from this RecommendationUnit. Null, if there is no more |
Example
{
"items": [RecommendationItem],
"itemsCursor": "WkdObE1XTTJOR0l0WW1RME5pMDBZago="
}
NewBadge
Description
Represents a badge awarded to a new learning product
Fields
Field Name | Description |
---|---|
name - String! | The localized name of the badge |
Example
{"name": "New"}
OccupationRecommendation
Description
A wrapper type to include the recommended Occupation and some additional fields about its recommendation
Fields
Field Name | Description |
---|---|
id - ID! | This is the ID of this wrapper object. This ID is different from the ID of the underlying recommended object to provide uniqueness across item types |
trackingId - String! | Tracking ID generated in the backend. Useful to relate tracking events generated in the backend with the tracking events generated in the frontend. The value will change each time a recommendation item is served |
Example
{
"id": "4",
"trackingId": "ZGNlMWM2NGItYmQ0Ni00Yj"
}
OpenBadgeClass
Description
The OpenBadgeClass object. This implements the BadgeClass
Fields
Field Name | Description |
---|---|
id - ID! | ID of the BadgeClass |
externalUrl - URL! | IRI of the BadgeClass. IRI of OpenBadge specification |
type - [String!]! | Type of the BadgeClass. In most cases, this will simply be the string BadgeClass |
name - String! | Name of the BadgeClass |
description - String! | A short description of BadgeClass |
image - BadgeClassImage! | A PNG or SVG image of the BadgeClass |
criteria - BadgeClassCriteria! | Criteria document describing how to earn the BadgeClass (Certification) |
issuer - BadgeClassIssuer! | Organization that issued the badge |
alignment - [BadgeClassAlignment!] | An object describing which objectives or educational standards this badge aligns to, if any |
tags - [String!]! | A tag that describes the type of achievement. (Skills) |
topic - Topic | Topic of badge class. Can be null for badge classes uploaded by users |
assertions - [BadgeAssertion!]! | User's assertions for the badge class |
subjectAreas - [BadgeCertificationSubjectArea!] | Subject Area (recently renamed to Skill Area) for this BadgeClass (i.e. Data Science, CyberSecurity) |
providers - [BadgeCertificationProvider!] | Certification Provider for this Badge Class |
examRegistrationUrls - [CertificationExamURL!]! | Links to exam registration page for this certification (deprecated) |
certificationExam - CertificationExam | Exam registration details, if an exam is required for earning this Badge |
totalAssertionsCount - Int! | Total number of assertions issued for this badge class |
isEnrolled - Boolean! | Whether the current user is enrolled |
Example
{
"id": 4,
"externalUrl": "https://www.udemy.com/",
"type": ["CERTIFICATION"],
"name": "CCIE Lifetime Emeritus - Data Center",
"description": "Lifetime Emeritus status signifies that a member maintains an active status as a CCIE or as a CCIE Emeritus for 20 consecutive years in at least one CCIE track.",
"image": BadgeClassImage,
"criteria": BadgeClassCriteria,
"issuer": BadgeClassIssuer,
"alignment": [BadgeClassAlignment],
"tags": ["CCIE", "Data Center"],
"topic": Topic,
"assertions": [BadgeAssertion],
"subjectAreas": [BadgeCertificationSubjectArea],
"providers": [BadgeCertificationProvider],
"examRegistrationUrls": [CertificationExamURL],
"certificationExam": CertificationExam,
"totalAssertionsCount": 123,
"isEnrolled": true
}
Organization
Description
A UB organization
Fields
Field Name | Description |
---|---|
id - ID! | The UB organization's unique identifier |
images - OrganizationImages! | Images for an organization |
type - OrganizationType! | Organization type |
Example
{
"id": "4",
"images": OrganizationImages,
"type": "UDEMY_BUSINESS"
}
OrganizationAuditLog
Description
Represents an audit log entry for an organization
Fields
Field Name | Description |
---|---|
orgId - ID! | The unique identifier for the organization associated with the audit log |
timestamp - DateTime! | The timestamp for when the event occurred |
actor - Actor! | The actor who performed the action logged in this entry |
entity - Entity | The entity who was affected by the action logged in this entry. This is optional as some events may not have a directly associated entity |
event - AuditEvent! | The event that occurred (e.g., 'USER_CREATED') |
metadata - [MetadataEntry!]! | Additional metadata associated with the event, as a list of key-value pairs |
Example
{
"orgId": 4,
"timestamp": "2007-12-03T10:15:30Z",
"actor": Actor,
"entity": Entity,
"event": "USER_CREATED",
"metadata": [MetadataEntry]
}
OrganizationBackgroundImages
OrganizationFaviconImages
OrganizationImages
Description
Images for an organization
Fields
Field Name | Description |
---|---|
background - OrganizationBackgroundImages | Background images for an organization |
logo - OrganizationLogoImages | Logo images for an organization |
favicon - OrganizationFaviconImages | Favicon images for an organization |
Example
{
"background": OrganizationBackgroundImages,
"logo": OrganizationLogoImages,
"favicon": OrganizationFaviconImages
}
OrganizationLearningPath
Description
Learning Path object that belongs to an organization
Fields
Field Name | Description |
---|---|
id - ID! | ID of the learning path |
title - String! | Title of the learning path |
description - SafeHtml | Description of the learning path |
itemCount - Int! | Number of items in the learning path |
numberOfEnrollments - Int! | Total No of enrollments for the learning path |
isEnrolled - Boolean! | Is the user enrolled in this learning path or not |
topics - [Topic!] | Topics associated with the learning path |
badges - [BadgeClass!] | Badges of the learning path |
urlLanding - URL! | Landing page to view this LearningPath |
trackingId - String | Unique analytics ID for this instance of LearningPath returned from the server in this request |
organization - Organization! | Organization that owns the learning path |
durationInSeconds - DurationInSeconds! | The duration of the learning path |
urlAutoEnroll - URL | The URL to enroll in the learning path |
sectionCount - Int! | Number of sections in the learning path |
sections - [LearningPathSection!] | Sections of the learning path |
Example
{
"id": 4,
"title": "Improving LLM Performance",
"description": SafeHtml,
"itemCount": 123,
"numberOfEnrollments": 987,
"isEnrolled": true,
"topics": [Topic],
"badges": [BadgeClass],
"urlLanding": "https://www.udemy.com/",
"trackingId": "nTjSznw2SbGLuE-Cd3T2Eg",
"organization": Organization,
"durationInSeconds": 19263,
"urlAutoEnroll": "https://www.udemy.com/",
"sectionCount": 123,
"sections": [LearningPathSection]
}
OrganizationLogoImages
PathSearchResponseMetadata
Description
Contains info for front end related stuff and tracking info. This data is calculated by backend service and used by Udemy front end. If you are an external user, you shouldn't need this
Fields
Field Name | Description |
---|---|
trackingId - String! | Search analytics tracking id; for uniquely identifying this query and result set; for this request |
experimentResults - [FeatureVariantAssignment!]! | For the request, shows experiment metadata result like bucking info, experiment IDs of assigned feature variants |
Example
{
"trackingId": "JjBqqc4LS2K9Ht_1LTpaMg",
"experimentResults": [FeatureVariantAssignment]
}
PopularTopic
Description
Popular topic
Fields
Field Name | Description |
---|---|
topic - Topic! | A topic |
subcategory - PopularTopicSubCategory | Associated Subcategory |
popularityType - TopicPopularityTypes | The type of popularity associated with this topic |
Example
{
"topic": Topic,
"subcategory": PopularTopicSubCategory,
"popularityType": "POPULAR"
}
PopularTopicSubCategory
PracticeAssignment
Description
Assigment test with multiple-choice and free-from questions reviewed by instructors
Fields
Field Name | Description |
---|---|
id - ID! | The Id of the assignment |
title - String! | The title of the assignment |
description - String! | Description of the assignment |
urlLanding - URL! | Landing page to view this PracticeAssignment |
versionedIdentifier - VersionedIdentifier! | Versioned identifier of the practice assignment |
course - Course | Course this practice assignment belongs to |
Example
{
"id": "4",
"title": "Practice Assignment 1",
"description": "Practice Assignment 1. AWS Certified Solutions Architect Associate",
"urlLanding": "https://www.udemy.com/",
"versionedIdentifier": VersionedIdentifier,
"course": Course
}
PracticeTest
Description
Practice test that is more detailed than a Quiz
Fields
Field Name | Description |
---|---|
id - ID! | The Id of the practice test |
title - String! | The title of the practice test |
minimumPassingScore - Int! | Percentage required to pass (0 - 100) |
randomized - Boolean! | Whether the question and answer order is randomized |
urlLanding - URL! | Landing page to view this PracticeTest |
versionedIdentifier - VersionedIdentifier! | Versioned identifier of the practice test |
course - Course | Course this practice test belongs to |
Example
{
"id": 4,
"title": "Practice Test 1. AWS Certified Solutions Architect Associate",
"minimumPassingScore": 123,
"randomized": false,
"urlLanding": "https://www.udemy.com/",
"versionedIdentifier": VersionedIdentifier,
"course": Course
}
PresentationLecture
Description
Presentation Lecture for Udemy Business
Fields
Field Name | Description |
---|---|
id - ID! | Id of the lecture |
title - String! | Lecture title |
images - LectureImages! | Images by their dimensions |
urlAutoEnroll - URL! | The URL to access the lecture on the auto-enroll page |
urlLanding - URL! | Landing page to view this Lecture |
thumbnail - URL | The URL of the lecture thumbnail |
durationInSeconds - DurationInSeconds! | Total duration of the lecture's content in seconds |
course - Course | The Course this lecture belongs to |
versionedIdentifier - VersionedIdentifier! | Versioned identifier of the lecture |
Example
{
"id": "4",
"title": "Course Introduction - AWS Certified Solutions Architect Associate",
"images": LectureImages,
"urlAutoEnroll": "https://www.udemy.com/course/aws-certified-solutions-architect-associate/learn/lecture/23206582/enroll",
"urlLanding": "https://www.udemy.com/course/aws-certified-solutions-architect-associate/learn/lecture/23206582/?couponCode=AWSARCH-2021",
"thumbnail": "https://www.udemy.com/",
"durationInSeconds": 19263,
"course": Course,
"versionedIdentifier": VersionedIdentifier
}
ProLearningPath
Description
The LearningPath only available for PRO subscriptions
Fields
Field Name | Description |
---|---|
id - ID! | ID of the learning path |
title - String! | Title of the learning path |
description - SafeHtml | Description of the learning path |
itemCount - Int! | Number of items in the learning path |
numberOfEnrollments - Int! | Total No of enrollments for the learning path |
isEnrolled - Boolean! | Is the user enrolled in this learning path or not |
topics - [Topic!] | Topics associated with the learning path |
badges - [BadgeClass!] | Badges of the learning path |
urlLanding - URL! | Landing page to view this LearningPath |
trackingId - String | Unique analytics ID for this instance of LearningPath returned from the server in this request |
durationInSeconds - DurationInSeconds! | The duration of the learning path |
urlAutoEnroll - URL | The URL to enroll in the learning path |
sectionCount - Int! | Number of sections in the learning path |
sections - [LearningPathSection!] | Sections of the learning path |
Example
{
"id": "4",
"title": "AWS Certified Solutions Architect Associate Learning Path",
"description": "Path to AWS Certified Solutions Architect Associate",
"itemCount": 123,
"numberOfEnrollments": 123,
"isEnrolled": false,
"topics": [Topic],
"badges": [BadgeClass],
"urlLanding": "https://www.udemy.com/",
"trackingId": "nTjSznw2SbGLuE-Cd3T2Eg",
"durationInSeconds": 19263,
"urlAutoEnroll": "https://www.udemy.com/",
"sectionCount": 123,
"sections": [LearningPathSection]
}
Quiz
Description
Quiz with simple questions and multiple choice answers
Fields
Field Name | Description |
---|---|
id - ID! | The Id of the quiz |
title - String! | The title of the quiz |
description - String | An optional description |
urlLanding - URL! | Landing page to view this Quiz |
versionedIdentifier - VersionedIdentifier! | Versioned identifier of the quiz |
course - Course | Course this quiz belongs to |
Example
{
"id": "4",
"title": "Quiz 1. AWS Certified Solutions Architect Associate",
"description": "Timed quiz for AWS Certified Solutions Architect Associate",
"urlLanding": "https://www.udemy.com/",
"versionedIdentifier": VersionedIdentifier,
"course": Course
}
RecommendationContext
Description
This is a top level grouping comprising all recommendations queried by a context code (ID of this object).
Usually, this corresponds to the entire page of the application. In that case, there would be just one recommendation context on a single page. The biggest advantage of serving all recommendations in one response, is the ability to run unit ranking and deduplication comprehensively for the entire recommendation context.
Even though, it is common to see a single page of the application uses only one recommendation context, it is not an obligation. The 'page' and 'context' concepts are decoupled. Having multiple contexts on a page might be acceptable if the trade-offs about compromising comprehensive ranking and deduplication are evaluated.
RecommendationContext doesn't directly contain a list of RecommendationItems. Instead, it has a list of sections. The UI should follow this grouping while rendering the recommendations
Fields
Field Name | Description |
---|---|
id - ID! | Also known as 'Context Code' |
trackingId - String! | Tracking ID generated in the backend. Useful to relate tracking events generated in the backend with the tracking events generated in the frontend. The value will change each time a recommendation context is served |
sections - [RecommendationContextSection!]! | First slice of RecommendationContextSections available in this RecommendationContext. The field 'sectionsCursor' is used to fetch a new slice of sections starting with the next section after this slice |
sectionsCursor - String | Cursor to get more RecommendationContextSections from the RecommendationContext. Null, if there is no more |
Example
{
"id": "4",
"trackingId": "ZGNlMWM2NGItYmQ0Ni00Yj",
"sections": [RecommendationContextSection],
"sectionsCursor": "WkdObE1XTTJOR0l0WW1RME5pMDBZago="
}
RecommendationContextResponse
Description
Response returned when a RecommendationContext is queried
Fields
Field Name | Description |
---|---|
recommendationContext - RecommendationContext! | The actual recommendation context object |
Example
{"recommendationContext": RecommendationContext}
RecommendationSourceObject
Description
A type to specify what objects were used as a source object (seed) for a recommendation unit
Fields
Field Name | Description |
---|---|
id - ID! | ID of the actual item. For example, the ID of a course |
type - RecommendationSourceObjectType! | Type of the actual item. For example, COURSE |
title - String | Title of the actual source object item, if applicable. E.g. title of a course |
description - String | Description of the actual item, if applicable. E.g. description of a course |
relativeUrl - String | Relative URL of the actual item, if applicable. It excludes the domain. E.g. /topic/web-development/ |
Example
{
"id": "4",
"type": "COURSE",
"title": "Python",
"description": "Python Topic Description",
"relativeUrl": "/topic/python/"
}
RecommendationUnit
Description
Finest grained grouping of recommendations. Each recommendation unit corresponds to a specific algorithm, source object (recommendation seed), and recommendation item type
Fields
Field Name | Description |
---|---|
id - ID! | ID of the RecommendationUnit object that will be unique among all units inside a recommendation context including the member units of unit groups. In addition, this ID will be unique for all units in the initial 'recommendations' query response and the subsequent 'moreRecommendationContextSections' queries |
title - String | Localized title that is also interpolated with source object titles if necessary. For example, "Newest courses in 'JavaScript'" |
rawTitle - String | Some unit titles contain titles of source objects like "Newest courses in 'JavaScript'". If frontend needs to insert source object links instead of just source object titles, this field can be used instead of the title field. It will give "Newest courses in '{}'" instead of "Newest courses in 'JavaScript'" |
viewType - String | Can optionally be entered on Tapen to give a hint to frontend about how it should be presented |
trackingId - String! | Tracking ID generated in the backend. Useful to relate tracking events generated in the backend with the tracking events generated in the frontend. The value will change each time a recommendation context is served |
items - [RecommendationItem!]! | First slice of items available in this RecommendationUnit. The field 'itemsCursor' is used to fetch a new slice of items starting with the next item after this slice |
itemsCursor - String | Cursor to get more RecommendationItems from this RecommendationUnit. Null, if there is no more |
sourceObjects - [RecommendationSourceObject!] | If the recommendation is seeded with some other objects such as viewed course, label affinity, or search query, etc., they are listed here. Title and URLs of these source objects should be used to build a HTML title with links if the title field has template placeholders ({}) |
Example
{
"id": 4,
"title": "Courses in 'Python'",
"rawTitle": "Courses in '{}'",
"viewType": "default",
"trackingId": "ZGNlMWM2NGItYmQ0Ni00Yj",
"items": [RecommendationItem],
"itemsCursor": "WkdObE1XTTJOR0l0WW1RME5pMDBZago=",
"sourceObjects": [RecommendationSourceObject]
}
RecommendationUnitGroup
Description
Group of units that should be presented together
Fields
Field Name | Description |
---|---|
id - ID! | ID of the RecommendationUnitGroup object that will be unique among all sections inside a recommendation context. In addition, this ID will be unique for all sections in the initial 'recommendations' query response and the subsequent 'moreRecommendationContextSections' queries |
title - String | Localized title |
viewType - String | Can optionally be entered on Tapen to give a hint to frontend about how it should be presented |
units - [RecommendationUnit!]! | Nested units in this unit group |
Example
{
"id": "4",
"title": "Courses recommended based on your occupation",
"viewType": "default",
"units": [RecommendationUnit]
}
Review
Description
A review of a learning product
Fields
Field Name | Description |
---|---|
learningProductType - LearningProductType! | The type of learning product being reviewed |
text - String! | The review text |
urlLearningProduct - URL! | The URL of the reviewed learning product |
Example
{
"learningProductType": "ASSESSMENT",
"text": "This course was a great introduction to AWS. I learned a lot and I'm excited to continue learning more about AWS.",
"urlLearningProduct": "https://www.udemy.com/"
}
SearchAggregation
Description
Identifies available search filter facets
Fields
Field Name | Description |
---|---|
label - String! | Label for this type/group of aggregation; e.g. 'Topic' |
key - String! | Key argument that can be passed to query to filter by this option |
buckets - [SearchAggregationOption!]! | Available values for this aggregation |
Example
{
"label": "Subtitles",
"key": "closed_caption_locale_languages",
"buckets": [SearchAggregationOption]
}
SearchAggregationOption
Description
One of the available options within a search facet type
Fields
Field Name | Description |
---|---|
value - String! | Value argument that can be passed to query to filter by this option |
label - String! | Human-readable label for this filter option |
countWithFilterApplied - Int! | Number of results if this filter option were to be applied |
key - String! | Key that can be passed to the query to filter by this option |
isSelected - Boolean! | Whether this filter option is selected or not |
Example
{
"value": "en",
"label": "EN",
"countWithFilterApplied": 123,
"key": "lang",
"isSelected": true
}
SearchAutocompleteLogItem
SearchAutocompleteSuggestion
Description
A simple autocomplete item with the tracking metadata
Fields
Field Name | Description |
---|---|
trackingId - String! | Search analytics tracking id; for uniquely identifying this item |
resultTrackingId - String! | Search analytics tracking id; for uniquely identifying whole result set; for this request |
item - SearchAutocompleteItem | Search Autocomplete suggestion for autocomplete |
Example
{
"trackingId": "S8HU-xXXQ_OZ_hLKlVvOEQ",
"resultTrackingId": "p55X_jHUQ7yNmI0HQ4TmgA",
"item": Course
}
SearchQuerySuggestion
Description
Represents a search suggestion for a search
Fields
Field Name | Description |
---|---|
query - String | The suggested query based on the original search input |
type - SearchQuerySuggestionType | The type of search query suggestion |
Example
{"query": "python", "type": "REWRITE"}
SubCategoryRecommendation
Description
A wrapper type to include the recommended SubCategory and some additional fields about its recommendation
Fields
Field Name | Description |
---|---|
id - ID! | This is the ID of this wrapper object. This ID is different from the ID of the underlying recommended object to provide uniqueness across item types |
trackingId - String! | Tracking ID generated in the backend. Useful to relate tracking events generated in the backend with the tracking events generated in the frontend. The value will change each time a recommendation item is served |
subCategory - SubCategory | Underlying object of the recommendation to get more information about it |
Example
{
"id": "4",
"trackingId": "ZGNlMWM2NGItYmQ0Ni00Yj",
"subCategory": SubCategory
}
SubscriptionPlan
Description
A Subscription plan to access a catalog of Udemy content
Fields
Field Name | Description |
---|---|
id - ID! | ID of the subscription plan: |
productType - SubscriptionPlanProductType! | Type of subscription plan being offered |
urlLearnMore - URL! | Learn more url for a given plan |
urlExpressCheckout - URL! | Express checkout url for given plan |
urlTermsOfUse - URL! | Terms and Conditions url for a given plan |
priceOptions - [SubscriptionPlanPricingOptionItem!]! | Computed price options for given plan |
contentCollections - [ContentCollection!]! | List of content groups included in a given plan |
Example
{
"id": "4",
"productType": "CONSUMERSUBSCRIPTION",
"urlLearnMore": "https://www.udemy.com/",
"urlExpressCheckout": "https://www.udemy.com/",
"urlTermsOfUse": "https://www.udemy.com/",
"priceOptions": [DailySubscriptionPlanPricingOption],
"contentCollections": [ContentCollection]
}
SubscriptionPlanDiscount
Description
Contains information about the discount metadata for a given subscription plan price option
Fields
Field Name | Description |
---|---|
appliedDiscounts - [SubscriptionPlanDiscountDetails!]! | List of applied discounts on the plan price option data |
Example
{"appliedDiscounts": [SubscriptionPlanDiscountDetails]}
SubscriptionPlanDiscountDateIntervalType
Description
Contains information on the start and end perioid for the discount interval type can be month/year
Fields
Field Name | Description |
---|---|
start - Int! | Start period of the discounted data |
end - Int! | End period of the discounted data |
type - DateIntervalType! | Interval type for the discounted period |
duration - Int! | Total duration of the discount period |
Example
{"start": 987, "end": 987, "type": "DAY", "duration": 123}
SubscriptionPlanDiscountDetails
Description
Discount details for applied discount
Fields
Field Name | Description |
---|---|
code - String! | Coupon code/campaign code for the discount applied |
sourceType - DiscountSourceType! | Type of coupon code. will be either one of udemy/customer coupon |
discountType - SubscriptionPlanDiscountType! | Specific discount type for subscriptions ex: trial/price/seat discounts |
data - SubscriptionPlanDiscountDataItem! | Discount data for the specific discount type |
isRemovable - Boolean! | Flag for the applied code. tells if the applied discount can be removed on FE |
Example
{
"code": "DEAL-CODE",
"sourceType": "GENERAL_COUPON",
"discountType": "TRIAL_DISCOUNT",
"data": SubscriptionPlanTrialDiscountData,
"isRemovable": false
}
SubscriptionPlanLicenseContext
Description
Contains information about the license context for a given subscription plan price option
Fields
Field Name | Description |
---|---|
unitPrice - Money! | The unit price of the subscription price plan option based on provided requested count from request |
licenseCount - Int! | License count for the subscription plan option |
defaultLicenseCount - Int! | Default license count to be offered for purchase for given subscription plan option |
minimumLicenseCount - Int! | Minimum license count for purchase for given subscription plan option |
maximumLicenseCount - Int! | Maximum license count for purchase for given subscription plan option |
Example
{
"unitPrice": Money,
"licenseCount": 987,
"defaultLicenseCount": 123,
"minimumLicenseCount": 987,
"maximumLicenseCount": 123
}
SubscriptionPlanPrice
Description
Price data for plan pricing options
Fields
Field Name | Description |
---|---|
list - Decimal! | List price for the pricing option |
discount - Decimal | Discount price for the pricing option |
monthly - Decimal | Monthly price for the annual pricing option, for monthly plan price option will be equal to list price |
annualSavings - Decimal | The annual savings amount for the subscription price plan when compared to monthly plans. calculated on pricing backend can be null |
discountMonthly - Decimal | The monthly price for the discounted annual price option |
discountAnnualSavings - Decimal | The annual savings amount on discounted annual price for the subscription price plan when compared to monthly plans |
currency - CurrencyCode | Currency |
Example
{
"list": "1234.5678",
"discount": "1234.5678",
"monthly": "1234.5678",
"annualSavings": "1234.5678",
"discountMonthly": "1234.5678",
"discountAnnualSavings": "1234.5678",
"currency": "AUD"
}
SubscriptionPlanPriceDiscountData
Description
Contains information on the plan price discount
Fields
Field Name | Description |
---|---|
type - SubscriptionPlanPriceDiscountType! | Discount type for the price can be percentage off/fixed price discount |
value - Decimal! | Discount value applied on the actual price |
interval - SubscriptionPlanDiscountDateIntervalType! | Contains information on the start and end period for discount |
Example
{
"type": "FIXED",
"value": "1234.5678",
"interval": SubscriptionPlanDiscountDateIntervalType
}
SubscriptionPlanTrialDiscountData
Description
contains information on the trial discount if available
Fields
Field Name | Description |
---|---|
days - Int! | The total trial days offered as part of the discount |
Example
{"days": 987}
SubscriptionTrial
Description
Type representing details about the trial subscription offer available for a given user and plan
Fields
Field Name | Description |
---|---|
dateInterval - DateInterval! | The length of the trial available to a user for a subscription plan |
Example
{"dateInterval": DateInterval}
TopRatedCategoryTopicBadge
Description
Represents a badge awarded to a top-rated category topic
Example
{
"name": "Highest Rated",
"topic": Topic,
"category": Category
}
TopRatedSubcategoryBadge
Description
Represents a badge awarded to a top-rated subcategory
Fields
Field Name | Description |
---|---|
name - String! | The localized name of the badge |
subcategory - BadgeSubCategory | The subcategory associated with the badge |
Example
{"name": "Highest Rated", "subcategory": BadgeSubCategory}
TopRatedSubcategoryTopicBadge
Description
Represents a badge awarded to a top-rated subcategory topic
Fields
Field Name | Description |
---|---|
name - String! | The localized name of the badge |
topic - Topic | The topic associated with the badge |
subcategory - BadgeSubCategory | The subcategory associated with the badge |
Example
{
"name": "Highest Rated",
"topic": Topic,
"subcategory": BadgeSubCategory
}
Topic
Description
Topic
Fields
Field Name | Description |
---|---|
id - ID! | ID of topic |
name - String! | Title of topic (Python, Programming Languages) |
url - URL! | Web url of the topic page |
groups - [TopicGroup!]! | Topic groups this topic belongs to |
questionsAndAnswers - [TopicQuestionAndAnswer!]! | A collection of question and answer pairs with optional link for additional context |
Example
{
"id": 4,
"name": "Python",
"url": "https://www.udemy.com/topic/python",
"groups": [TopicGroup],
"questionsAndAnswers": [TopicQuestionAndAnswer]
}
TopicGroup
TopicQuestionAndAnswer
Description
A question and answer pair with optional link for additional context
Fields
Field Name | Description |
---|---|
id - ID! | ID of the question and answer |
question - String! | The question text |
answer - String! | The answer text |
urlReadMore - URL | The URL for additional information about the question and answer |
linkText - String | Text to display for the link to additional information about the question and answer |
Example
{
"id": "499882",
"question": "What is the difference between a list and a tuple?",
"answer": "A list is mutable, a tuple is immutable.",
"urlReadMore": "https://blog.udemy.com/javascript-tutorial-learn-the-basics/",
"linkText": "Learn more about JavqScript"
}
TopicRecommendation
Description
A wrapper type to include the recommended Topic (aka. Label) and some additional fields about its recommendation
Fields
Field Name | Description |
---|---|
id - ID! | This is the ID of this wrapper object. This ID is different from the ID of the underlying recommended object to provide uniqueness across item types |
trackingId - String! | Tracking ID generated in the backend. Useful to relate tracking events generated in the backend with the tracking events generated in the frontend. The value will change each time a recommendation item is served |
topic - Topic | Underlying object of the recommendation to get more information about it |
Example
{
"id": 4,
"trackingId": "ZGNlMWM2NGItYmQ0Ni00Yj",
"topic": Topic
}
User
Description
A Udemy user
Fields
Field Name | Description |
---|---|
id - ID! | Id of the user |
Example
{"id": 4}
VersionedIdentifier
VideoLecture
Description
Video lecture
Fields
Field Name | Description |
---|---|
id - ID! | Id of the video lecture |
title - String! | Lecture title |
images - LectureImages! | Images by their dimensions |
urlAutoEnroll - URL! | The URL to access the lecture on the auto-enroll page |
urlLanding - URL! | Landing page to view this Lecture |
thumbnail - URL | The URL of the lecture thumbnail |
durationInSeconds - DurationInSeconds! | Total duration of the lecture's content in seconds |
course - Course | The Course this lecture belongs to |
versionedIdentifier - VersionedIdentifier! | Versioned identifier of the lecture |
Example
{
"id": "4",
"title": "Introduction - AWS Certified Solutions Architect Associate",
"images": LectureImages,
"urlAutoEnroll": "https://www.udemy.com/course/subscribe/?courseId=3082678&lectureId=20020880",
"urlLanding": "https://www.udemy.com//course/aws-certified-solutions-architect-associate-step-by-step/learn/lecture/20020880",
"thumbnail": "https://www.udemy.com/",
"durationInSeconds": 19263,
"course": Course,
"versionedIdentifier": VersionedIdentifier
}
VideoMashupLecture
Description
Mashup lecture has both video and a presentation
Fields
Field Name | Description |
---|---|
id - ID! | Id of the lecture |
title - String! | Lecture title |
images - LectureImages! | Images by their dimensions |
urlAutoEnroll - URL! | The URL to access the lecture on the auto-enroll page |
urlLanding - URL! | Landing page to view this Lecture |
thumbnail - URL | The URL of the lecture thumbnail |
durationInSeconds - DurationInSeconds! | Total duration of the lecture's content in seconds |
course - Course | The Course this lecture belongs to |
versionedIdentifier - VersionedIdentifier! | Versioned identifier of the lecture |
Example
{
"id": 4,
"title": "Course Introduction - AWS Certified Solutions Architect Associate",
"images": LectureImages,
"urlAutoEnroll": "https://www.udemy.com/course/subscribe/?courseId=3082678&lectureId=20020880",
"urlLanding": "https://www.udemy.com//course/aws-certified-solutions-architect-associate-step-by-step/learn/lecture/20020880",
"thumbnail": "https://www.udemy.com/",
"durationInSeconds": 19263,
"course": Course,
"versionedIdentifier": VersionedIdentifier
}
WeeklySubscriptionPlanPricingOption
Description
Price option for computed price plan. Will be returned for weekly plans
Fields
Field Name | Description |
---|---|
id - ID! | ID of the price option: |
listPrice - Money! | The list price of the subscription price plan based on provided requested count from request |
renewalInterval - DateInterval! | Interval for renewing the subscription plan ie the length of the subscription plan |
trial - SubscriptionTrial | Field containing details about the trial subscription offer for a given user. Null indicates no trial is available |
licenseContext - SubscriptionPlanLicenseContext | Contains information about the license context for a given subscription plan price option |
discount - SubscriptionPlanDiscount | Contains information about the discount context for a given subscription plan price option |
discountTrial - SubscriptionTrial | Field containing details about the discounted trial subscription offer for a given user. Null indicates no trial is available |
price - SubscriptionPlanPrice | Field showing the prices for the option |
Example
{
"id": "4",
"listPrice": Money,
"renewalInterval": DateInterval,
"trial": SubscriptionTrial,
"licenseContext": SubscriptionPlanLicenseContext,
"discount": SubscriptionPlanDiscount,
"discountTrial": SubscriptionTrial,
"price": SubscriptionPlanPrice
}
Scalars
AverageRating
Description
Weighted average rating. Ranges from 0 to 5.0
Example
4.5
Boolean
Description
The Boolean
scalar type represents true
or false
CourseDuration
Description
How long the course takes to complete, e.g. 5h 21m 3s
Example
"5h 21m 3s"
Date
Description
The Date scalar type
Example
"2007-12-03"
DateTime
Description
A date-time string at UTC, such as 2007-12-03T10:15:30Z, compliant with the date-time
format outlined in section 5.6 of the RFC 3339 profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar
Example
"2007-12-03T10:15:30Z"
Decimal
Description
The Decimal scalar type
Example
"1234.5678"
DurationInSeconds
Description
Duration between start and end in seconds, e.g. 19263
Example
19263
EmailAddress
Description
A field whose value conforms to the standard internet email address format as specified in HTML Spec: https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address
Example
"test@test.com"
ID
Description
The ID
scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4"
) or integer (such as 4
) input value will be accepted as an ID
Example
4
Int
Description
The Int
scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1
Example
123
JSON
Description
The JSON
scalar type represents JSON values as specified by ECMA-404
Example
"{"key":"value"}"
Locale
Description
The locale in the format of a BCP 47 (RFC 5646) standard string
Example
"en_US"
MaxResultsPerPage
Description
A number that can be used for fetching pages of information. It must be more than 0, and less than or equal to 250
Example
100
NonNegativeFloat
Description
Floats that will have a value of 0 or more
Example
123.45
NonNegativeInt
Description
Integers that will have a value of 0 or more
Example
123
OffsetInSeconds
Description
An offset measured in seconds. e.g. 30
Example
OffsetInSeconds
PositiveInt
Description
Integers that will have a value greater than 0
Example
123
SafeHtml
Description
A field which may contain HTML stripped of any <script> and <iframe> tags
Example
SafeHtml
String
Description
The String
scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text
Example
"abc123"
Timestamp
Description
The javascript Date
as integer. Type represents date and time as number of milliseconds from start of UNIX epoch
Example
1592577642
URL
Description
A field whose value conforms to the standard URL format as specified in RFC3986: https://www.ietf.org/rfc/rfc3986.txt
Example
"https://www.udemy.com/"
UUID
Description
A field whose value is a generic Universally Unique Identifier: https://en.wikipedia.org/wiki/Universally_unique_identifier
Example
"0a449bff-8cbe-4abb-9d17-3d854b4c293f"