Udemy GraphQL API Reference
Description of GraphQL objects available at Udemy GraphQL endpoint
Contact
API Platform Team
API Endpoints
https://api.udemy.com/api/2022-03/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": 123,
"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 - Int! | Default = 0 |
size - Int! | Default = 12 |
filters - BadgeAssertionsSearchFilters |
Example
Query
query badgeAssertionsForCurrentOrganization(
$page: Int!,
$size: Int!,
$filters: BadgeAssertionsSearchFilters
) {
badgeAssertionsForCurrentOrganization(
page: $page,
size: $size,
filters: $filters
) {
items {
...BadgeAssertionFragment
}
page
pageCount
totalCount
}
}
Variables
{
"page": 0,
"size": 12,
"filters": BadgeAssertionsSearchFilters
}
Response
{
"data": {
"badgeAssertionsForCurrentOrganization": {
"items": [BadgeAssertion],
"page": 987,
"pageCount": 123,
"totalCount": 987
}
}
}
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
}
}
}
Variables
{"id": 4}
Response
{
"data": {
"badgeClass": {
"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]
}
}
}
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
}
]
}
}
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
}
}
}
Variables
{"learningProducts": [LearningProductInput]}
Response
{
"data": {
"badgeClassesByLearningProducts": [
{
"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]
}
]
}
}
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
}
}
}
Variables
{"topicId": 4}
Response
{
"data": {
"badgeClassesByTopic": [
{
"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]
}
]
}
}
course
Description
Retrieve a course by its ID
Example
Query
query course($id: ID!) {
course(id: $id) {
id
title
headline
description
curriculum {
...CurriculumFragment
}
prerequisites
targetAudience
learningOutcome
duration
durationVideoContent
durationInSeconds
private
organization {
...OrganizationFragment
}
organizationInfo {
...CourseOrganizationInfoFragment
}
images {
...CourseImagesFragment
}
instructors {
...CourseInstructorFragment
}
categories {
...CourseCategoryFragment
}
enrollments {
...CourseEnrollmentsFragment
}
enrollable
rating {
...CourseRatingFragment
}
level
url
urlAutoEnroll
urlCourseLanding
locale
updated
topics {
...TopicFragment
}
primaryTopic {
...TopicFragment
}
xapiActivityId
accreditations {
...CourseAccreditationFragment
}
captions {
...CourseCaptionDetailsFragment
}
urlMobileNativeDeeplink
promoVideo {
...CoursePromoVideoFragment
}
}
}
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>",
"curriculum": Curriculum,
"prerequisites": ["Mathematics", "Programming"],
"targetAudience": ["Developers", "Students"],
"learningOutcome": [
"All 300+ slides available as downloadable PDF",
"Full Practice Exam with Explanations included!",
"Learn the AWS Fundamentals (EC2, ELB, ASG, RDS, ElastiCache, S3)"
],
"duration": "5h 21m 3s",
"durationVideoContent": 19263,
"durationInSeconds": 19263,
"private": true,
"organization": Organization,
"organizationInfo": CourseOrganizationInfo,
"images": CourseImages,
"instructors": [CourseInstructor],
"categories": [CourseCategory],
"enrollments": CourseEnrollments,
"enrollable": false,
"rating": CourseRating,
"level": "ALL_LEVELS",
"url": "https://www.udemy.com/",
"urlAutoEnroll": "https://www.udemy.com/",
"urlCourseLanding": "https://www.udemy.com/",
"locale": "en_US",
"updated": "2007-12-03",
"topics": [Topic],
"primaryTopic": Topic,
"xapiActivityId": "4",
"accreditations": [CourseAccreditation],
"captions": [CourseCaptionDetails],
"urlMobileNativeDeeplink": "https://www.udemy.com/",
"promoVideo": CoursePromoVideo
}
}
}
courseAssessmentItemResults
Description
Retrieves list of Assessments associated with course id that contain items a user attempted. Can filter by correct, skipped or incorrect Items with default returning all 3. A course may have multiple Assessments associated with it
Response
Returns [AssessmentResults!]!
Arguments
Name | Description |
---|---|
courseId - ID! | |
filters - AssessmentItemResultsFilters |
Example
Query
query courseAssessmentItemResults(
$courseId: ID!,
$filters: AssessmentItemResultsFilters
) {
courseAssessmentItemResults(
courseId: $courseId,
filters: $filters
) {
assessment {
...AssessmentFragment
}
items {
...AssessmentItemAttemptFragment
}
}
}
Variables
{
"courseId": "4",
"filters": AssessmentItemResultsFilters
}
Response
{
"data": {
"courseAssessmentItemResults": [
{
"assessment": Assessment,
"items": [AssessmentItemAttempt]
}
]
}
}
courseCatalogByPage
Description
Retrieve course catalog for the client
Response
Returns a CourseCatalogResponsePaged
Arguments
Name | Description |
---|---|
syncToken - String | Sync token from last course catalog sync. If not provided all courses will be returned |
cursor - String | Cursor to the next page of CourseCatalogResponse |
pageSize - MaxResultsPerPage | Number of results to return in CourseCatalogResponse. Default = 12 |
Example
Query
query courseCatalogByPage(
$syncToken: String,
$cursor: String,
$pageSize: MaxResultsPerPage
) {
courseCatalogByPage(
syncToken: $syncToken,
cursor: $cursor,
pageSize: $pageSize
) {
addedCourses {
...CourseFragment
}
updatedCourses {
...CourseFragment
}
removedCourses
syncToken
cursor
}
}
Variables
{
"syncToken": "xyz789",
"cursor": "abc123",
"pageSize": 12
}
Response
{
"data": {
"courseCatalogByPage": {
"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]
}
}
}
courses
Description
Retrieve a set of courses by their IDs
Example
Query
query courses($ids: [ID!]!) {
courses(ids: $ids) {
id
title
headline
description
curriculum {
...CurriculumFragment
}
prerequisites
targetAudience
learningOutcome
duration
durationVideoContent
durationInSeconds
private
organization {
...OrganizationFragment
}
organizationInfo {
...CourseOrganizationInfoFragment
}
images {
...CourseImagesFragment
}
instructors {
...CourseInstructorFragment
}
categories {
...CourseCategoryFragment
}
enrollments {
...CourseEnrollmentsFragment
}
enrollable
rating {
...CourseRatingFragment
}
level
url
urlAutoEnroll
urlCourseLanding
locale
updated
topics {
...TopicFragment
}
primaryTopic {
...TopicFragment
}
xapiActivityId
accreditations {
...CourseAccreditationFragment
}
captions {
...CourseCaptionDetailsFragment
}
urlMobileNativeDeeplink
promoVideo {
...CoursePromoVideoFragment
}
}
}
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>",
"curriculum": Curriculum,
"prerequisites": ["Mathematics", "Programming"],
"targetAudience": ["Developers", "Students"],
"learningOutcome": [
"All 300+ slides available as downloadable PDF",
"Full Practice Exam with Explanations included!",
"Learn the AWS Fundamentals (EC2, ELB, ASG, RDS, ElastiCache, S3)"
],
"duration": "5h 21m 3s",
"durationVideoContent": 19263,
"durationInSeconds": 19263,
"private": true,
"organization": Organization,
"organizationInfo": CourseOrganizationInfo,
"images": CourseImages,
"instructors": [CourseInstructor],
"categories": [CourseCategory],
"enrollments": CourseEnrollments,
"enrollable": true,
"rating": CourseRating,
"level": "ALL_LEVELS",
"url": "https://www.udemy.com/",
"urlAutoEnroll": "https://www.udemy.com/",
"urlCourseLanding": "https://www.udemy.com/",
"locale": "en_US",
"updated": "2007-12-03",
"topics": [Topic],
"primaryTopic": Topic,
"xapiActivityId": 4,
"accreditations": [CourseAccreditation],
"captions": [CourseCaptionDetails],
"urlMobileNativeDeeplink": "https://www.udemy.com/",
"promoVideo": CoursePromoVideo
}
]
}
}
featureVariantAssignmentsByCodeAndAttributes
Description
Returns assigned feature variants
Response
Returns [FeatureVariantAssignment!]!
Arguments
Name | Description |
---|---|
featureCodes - [String!]! | |
realtimeAttributes - [FeatureRequestAttributeInput!] |
Example
Query
query featureVariantAssignmentsByCodeAndAttributes(
$featureCodes: [String!]!,
$realtimeAttributes: [FeatureRequestAttributeInput!]
) {
featureVariantAssignmentsByCodeAndAttributes(
featureCodes: $featureCodes,
realtimeAttributes: $realtimeAttributes
) {
featureCode
configuration
isInExperiment
experimentIds
isLocalDefault
}
}
Variables
{
"featureCodes": ["xyz789"],
"realtimeAttributes": [FeatureRequestAttributeInput]
}
Response
{
"data": {
"featureVariantAssignmentsByCodeAndAttributes": [
{
"featureCode": "ab-testing",
"configuration": "{\"key\":\"value\"}",
"isInExperiment": true,
"experimentIds": [987],
"isLocalDefault": true
}
]
}
}
featuredReviewsByTopic
Description
Return featured reviews for a given set of topics
Response
Returns [Review!]!
Arguments
Name | Description |
---|---|
topicIds - [ID!]! |
Example
Query
query featuredReviewsByTopic($topicIds: [ID!]!) {
featuredReviewsByTopic(topicIds: $topicIds) {
learningProductType
text
urlLearningProduct
}
}
Variables
{"topicIds": [4]}
Response
{
"data": {
"featuredReviewsByTopic": [
{
"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
}
metadata {
...LabMetaDataFragment
}
}
}
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": 123,
"maxEstimatedTime": 987,
"instructors": [LabInstructor],
"topics": [Topic],
"metadata": LabMetaData
}
}
}
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
}
metadata {
...LabMetaDataFragment
}
}
}
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": 123,
"maxEstimatedTime": 987,
"instructors": [LabInstructor],
"topics": [Topic],
"metadata": LabMetaData
}
]
}
}
learningPathSearch
Description
Searches paths by given query
Response
Returns a LearningPathSearchResponse
Arguments
Name | Description |
---|---|
query - String! |
Example
Query
query learningPathSearch($query: String!) {
learningPathSearch(query: $query) {
count
metadata {
...PathSearchResponseMetadataFragment
}
}
}
Variables
{"query": "abc123"}
Response
{
"data": {
"learningPathSearch": {
"count": 123,
"metadata": PathSearchResponseMetadata
}
}
}
learningProductByPage
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 learningProductByPage(
$page: Int,
$size: MaxResultsPerPage
) {
learningProductByPage(
page: $page,
size: $size
) {
page
pageCount
items {
...LearningProductFragment
}
}
}
Variables
{"page": 0, "size": 12}
Response
{
"data": {
"learningProductByPage": {
"page": 123,
"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"
}
]
}
}
popularTopics
Description
Gets a list of all popular topics
Response
Returns [PopularTopic]!
Arguments
Name | Description |
---|---|
categoryId - ID! |
Example
Query
query popularTopics($categoryId: ID!) {
popularTopics(categoryId: $categoryId) {
topic {
...TopicFragment
}
subcategory {
...PopularTopicSubCategoryFragment
}
popularityType
}
}
Variables
{"categoryId": 4}
Response
{
"data": {
"popularTopics": [
{
"topic": Topic,
"subcategory": PopularTopicSubCategory,
"popularityType": "POPULAR"
}
]
}
}
searchAutocomplete
Description
Search for autocomplete
Response
Returns [SearchAutocompleteSuggestion]!
Arguments
Name | Description |
---|---|
request - SearchAutocompleteRequestInput! |
Example
Query
query searchAutocomplete($request: SearchAutocompleteRequestInput!) {
searchAutocomplete(request: $request) {
trackingId
resultTrackingId
item {
... on Course {
...CourseFragment
}
... on CourseInstructor {
...CourseInstructorFragment
}
... on SearchAutocompleteLogItem {
...SearchAutocompleteLogItemFragment
}
}
}
}
Variables
{"request": SearchAutocompleteRequestInput}
Response
{
"data": {
"searchAutocomplete": [
{
"trackingId": "S8HU-xXXQ_OZ_hLKlVvOEQ",
"resultTrackingId": "p55X_jHUQ7yNmI0HQ4TmgA",
"item": Course
}
]
}
}
searchBadgeClasses
Description
Search for BadgeClasses
Response
Returns a BadgeClassSearchResponse
Example
Query
query searchBadgeClasses(
$page: Int!,
$size: Int!,
$query: String,
$issuerId: [ID!],
$certificationAreaIds: [ID!]
) {
searchBadgeClasses(
page: $page,
size: $size,
query: $query,
issuerId: $issuerId,
certificationAreaIds: $certificationAreaIds
) {
items {
...BadgeClassFragment
}
page
pageCount
}
}
Variables
{
"page": 0,
"size": 12,
"query": "xyz789",
"issuerId": [4],
"certificationAreaIds": [4]
}
Response
{
"data": {
"searchBadgeClasses": {
"items": [BadgeClass],
"page": 987,
"pageCount": 987
}
}
}
searchCourses
Description
Search for courses
Response
Returns a CourseSearchResponse
Arguments
Name | Description |
---|---|
query - String! | |
sortOrder - CourseSearchSortType | |
filters - CourseSearchFilters | |
page - NonNegativeInt |
Example
Query
query searchCourses(
$query: String!,
$sortOrder: CourseSearchSortType,
$filters: CourseSearchFilters,
$page: NonNegativeInt
) {
searchCourses(
query: $query,
sortOrder: $sortOrder,
filters: $filters,
page: $page
) {
courses {
...CourseFragment
}
count
filterOptions {
...SearchAggregationFragment
}
pageCount
page
}
}
Variables
{
"query": "xyz789",
"sortOrder": "RELEVANCE",
"filters": CourseSearchFilters,
"page": 123
}
Response
{
"data": {
"searchCourses": {
"courses": [Course],
"count": 987,
"filterOptions": [SearchAggregation],
"pageCount": 123,
"page": 123
}
}
}
searchLabs
Description
Search for labs
Response
Returns a LabSearchResponse
Arguments
Name | Description |
---|---|
query - String! | |
filters - [SearchAggregationInputOption!] |
Example
Query
query searchLabs(
$query: String!,
$filters: [SearchAggregationInputOption!]
) {
searchLabs(
query: $query,
filters: $filters
) {
labs {
...LabFragment
}
count
filterOptions {
...SearchAggregationFragment
}
trackingId
}
}
Variables
{
"query": "abc123",
"filters": [SearchAggregationInputOption]
}
Response
{
"data": {
"searchLabs": {
"labs": [Lab],
"count": 987,
"filterOptions": [SearchAggregation],
"trackingId": "S8HU-xXXQ_OZ_hLKlVvOEQ"
}
}
}
searchLectures
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 searchLectures($query: String!) {
searchLectures(query: $query) {
lectures {
...LectureSearchResultFragment
}
metadata {
...LectureSearchResponseMetadataFragment
}
experimentResults {
...FeatureVariantAssignmentFragment
}
}
}
Variables
{"query": "abc123"}
Response
{
"data": {
"searchLectures": {
"lectures": [LectureSearchResult],
"metadata": LectureSearchResponseMetadata,
"experimentResults": [FeatureVariantAssignment]
}
}
}
subscriptionPlans
Description
Returns available subscription plans for a given user
Response
Returns [SubscriptionPlan!]!
Example
Query
query subscriptionPlans {
subscriptionPlans {
id
listPrice {
...MoneyFragment
}
renewalInterval {
...DateIntervalFragment
}
trial {
...SubscriptionTrialFragment
}
productType
urlLearnMore
urlExpressCheckout
urlTermsOfUse
priceOptions {
... on DailySubscriptionPlanPricingOption {
...DailySubscriptionPlanPricingOptionFragment
}
... on WeeklySubscriptionPlanPricingOption {
...WeeklySubscriptionPlanPricingOptionFragment
}
... on MonthlySubscriptionPlanPricingOption {
...MonthlySubscriptionPlanPricingOptionFragment
}
... on AnnualSubscriptionPlanPricingOption {
...AnnualSubscriptionPlanPricingOptionFragment
}
}
contentCollections {
...ContentCollectionFragment
}
}
}
Response
{
"data": {
"subscriptionPlans": [
{
"id": "4",
"listPrice": Money,
"renewalInterval": DateInterval,
"trial": SubscriptionTrial,
"productType": "CONSUMERSUBSCRIPTION",
"urlLearnMore": "https://www.udemy.com/",
"urlExpressCheckout": "https://www.udemy.com/",
"urlTermsOfUse": "https://www.udemy.com/",
"priceOptions": [
DailySubscriptionPlanPricingOption
],
"contentCollections": [ContentCollection]
}
]
}
}
subscriptionPlansByProductType
Description
Returns list of available plans based on the subscription plan product type
Response
Returns [SubscriptionPlan!]!
Arguments
Name | Description |
---|---|
productType - SubscriptionPlanProductType | Default = CONSUMERSUBSCRIPTION |
Example
Query
query subscriptionPlansByProductType($productType: SubscriptionPlanProductType) {
subscriptionPlansByProductType(productType: $productType) {
id
listPrice {
...MoneyFragment
}
renewalInterval {
...DateIntervalFragment
}
trial {
...SubscriptionTrialFragment
}
productType
urlLearnMore
urlExpressCheckout
urlTermsOfUse
priceOptions {
... on DailySubscriptionPlanPricingOption {
...DailySubscriptionPlanPricingOptionFragment
}
... on WeeklySubscriptionPlanPricingOption {
...WeeklySubscriptionPlanPricingOptionFragment
}
... on MonthlySubscriptionPlanPricingOption {
...MonthlySubscriptionPlanPricingOptionFragment
}
... on AnnualSubscriptionPlanPricingOption {
...AnnualSubscriptionPlanPricingOptionFragment
}
}
contentCollections {
...ContentCollectionFragment
}
}
}
Variables
{"productType": "CONSUMERSUBSCRIPTION"}
Response
{
"data": {
"subscriptionPlansByProductType": [
{
"id": "4",
"listPrice": Money,
"renewalInterval": DateInterval,
"trial": SubscriptionTrial,
"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]
}
]
}
}
Interfaces
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]
}
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
}
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"}
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 |
durationInSeconds - DurationInSeconds! | Total duration of the lecture's content in seconds |
Possible Types
Lecture Types |
---|
Example
{
"id": 4,
"title": "xyz789",
"images": LectureImages,
"urlAutoEnroll": "https://www.udemy.com/",
"urlLanding": "https://www.udemy.com/",
"thumbnail": "https://www.udemy.com/",
"durationInSeconds": 19263
}
Paginated
SubCategory
Description
SubCategory that is part of CourseCategory
Possible Types
SubCategory Types |
---|
Example
{"id": 4, "name": "abc123"}
Types
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 |
Example
{
"id": "4",
"listPrice": Money,
"monthlyPrice": Money,
"annualSavings": Money,
"renewalInterval": DateInterval,
"trial": SubscriptionTrial,
"licenseContext": SubscriptionPlanLicenseContext
}
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 |
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
}
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 - String! | 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 |
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": AssessmentMetadata
}
AssessmentItem
Description
An AssessmentItem contains data about the item a user can interact with
Fields
Field Name | Description |
---|---|
id - ID! | The Id |
Example
{"id": "10"}
AssessmentItemAttempt
Description
An AssessmentItemAttempt is an item related to an Assessment that contains how a user performed in an AssessmentItem
Fields
Field Name | Description |
---|---|
item - AssessmentItem! | AssessmentItem related to data |
status - AssessmentItemAttemptStatus! | Returns the attempt status for item |
Example
{"item": {"id": "10"}, "status": "CORRECT"}
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"}
AssessmentResults
Description
An AssessmentResults represents a user results for taking an Assessment. items are the attempts of the latest form the User attempted for an Assessment
Fields
Field Name | Description |
---|---|
assessment - Assessment! | Assessment related to results |
items - [AssessmentItemAttempt!]! | List of items a user either skipped or answered |
Example
{
"assessment": Assessment,
"items": [AssessmentItemAttempt]
}
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": 123,
"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"}
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 |
Example
{
"id": 4,
"externalUrl": "https://www.udemy.com/",
"issuedOn": "2007-12-03",
"expires": "2007-12-03",
"user": User,
"badgeClass": BadgeClass
}
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 size) |
totalCount - Int! | Total number of BadgeAssertions |
Example
{
"items": [BadgeAssertion],
"page": 987,
"pageCount": 987,
"totalCount": 123
}
BadgeCertificationProvider
BadgeCertificationSubjectArea
BadgeClass
Description
The BadgeClass object. 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 |
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]
}
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 size) |
Example
{"items": [BadgeClass], "page": 123, "pageCount": 123}
CodingExercise
Description
Coding exercise for students to practice their programming
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/"
}
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 - CourseHtmlString | Description of the course |
curriculum - Curriculum! | Course's curriculum |
prerequisites - [String!]! | Prerequisites for taking the course |
targetAudience - [String!]! | Who should attend the course |
learningOutcome - [String!]! | What you will learn in this course |
duration - CourseDuration | Total duration of the course's content |
durationVideoContent - CourseDurationInSeconds | Total duration of video content only |
durationInSeconds - CourseDurationInSeconds | 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 |
rating - CourseRating! | How do students rate the course |
level - DifficultyLevel | Instruction level of the course |
url - URL | The URL to access the course landing page url field is deprecated. Use urlCourseLanding instead. |
urlAutoEnroll - URL | The URL to access the auto-enroll page |
urlCourseLanding - URL | The URL to access the course landing page |
locale - Locale! | Course locale e.g. en-US or en-GB |
updated - 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 |
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>",
"curriculum": Curriculum,
"prerequisites": ["Mathematics", "Programming"],
"targetAudience": ["Developers", "Students"],
"learningOutcome": [
"All 300+ slides available as downloadable PDF",
"Full Practice Exam with Explanations included!",
"Learn the AWS Fundamentals (EC2, ELB, ASG, RDS, ElastiCache, S3)"
],
"duration": "5h 21m 3s",
"durationVideoContent": 19263,
"durationInSeconds": 19263,
"private": false,
"organization": Organization,
"organizationInfo": CourseOrganizationInfo,
"images": CourseImages,
"instructors": [CourseInstructor],
"categories": [CourseCategory],
"enrollments": CourseEnrollments,
"enrollable": false,
"rating": CourseRating,
"level": "ALL_LEVELS",
"url": "https://www.udemy.com/",
"urlAutoEnroll": "https://www.udemy.com/",
"urlCourseLanding": "https://www.udemy.com/",
"locale": "en_US",
"updated": "2007-12-03",
"topics": [Topic],
"primaryTopic": Topic,
"xapiActivityId": 4,
"accreditations": [CourseAccreditation],
"captions": [CourseCaptionDetails],
"urlMobileNativeDeeplink": "https://www.udemy.com/",
"promoVideo": CoursePromoVideo
}
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
}
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"
}
CourseCatalogResponsePaged
Description
A catalog of all courses available to the client
Fields
Field Name | Description |
---|---|
addedCourses - [Course!]! | Courses added since last sync or all courses if syncToken is not provided |
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]
}
CourseEnrollments
Description
Enrollments belonging to the course
Fields
Field Name | Description |
---|---|
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
{"roundedCount": 123}
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 |
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",
"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 |
retireOn - Date | If not null returns the Date this course will retire from organization's content collection |
Example
{
"isOrganizationSpecific": true,
"isMarketplaceImported": true,
"retireOn": "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",
"expiration": 1695960374
}
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": 987}
CourseSearchResponse
Description
List of Courses and additional data about search response
Fields
Field Name | Description |
---|---|
courses - [Course!]! | List of Course objects |
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 |
Example
{
"courses": [Course],
"count": 123,
"filterOptions": [SearchAggregation],
"pageCount": 987,
"page": 123
}
CourseSection
Description
Section of the course containing all types of curriculum items
Fields
Field Name | Description |
---|---|
id - Int! | 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 |
Example
{
"id": 123,
"title": "Introduction",
"description": "<p><strong>Welcome to the AWS Certified Cloud Practitioner Course!</strong></p>",
"items": [VideoLecture]
}
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"
}
Curriculum
Description
Curriculum part of a course
Fields
Field Name | Description |
---|---|
sections - [CourseSection!]! | Each course section containing the course curriculum content |
Example
{"sections": [CourseSection]}
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 |
Example
{
"id": "4",
"listPrice": Money,
"renewalInterval": DateInterval,
"trial": SubscriptionTrial,
"licenseContext": SubscriptionPlanLicenseContext
}
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"}
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": [123],
"isLocalDefault": false
}
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"}
Lab
Description
The Lab object
Fields
Field Name | Description |
---|---|
id - ID! | ID of the Lab |
title - String! | Title of the Lab |
description - String! | 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 - Int! | Lower bound of estimated time (in seconds) to complete Lab |
maxEstimatedTime - Int! | Upper bound of estimated time (in seconds) to complete Lab |
instructors - [LabInstructor!]! | The Lab's Instructors |
topics - [Topic!] | The Lab's topics |
metadata - LabMetaData | Metadata associated with the lab |
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": 987,
"maxEstimatedTime": 123,
"instructors": [LabInstructor],
"topics": [Topic],
"metadata": LabMetaData
}
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"}
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"
}
LearningPathSearchResponse
Description
List of LearningPath and additional data about search response
Fields
Field Name | Description |
---|---|
count - Int! | Total number of Paths matching the search query and filters |
metadata - PathSearchResponseMetadata | Metadata for whole search result used by front end |
Example
{"count": 987, "metadata": PathSearchResponseMetadata}
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": 987,
"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"
}
LectureSearchResponse
Description
List of LectureResults and additional data about search response
Fields
Field Name | Description |
---|---|
lectures - [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
{
"lectures": [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 |
---|---|
showLabUnit - Boolean! | Indicates whether lab unit should be shown showLabUnit field is deprecated. Use labUnitOrder filed instead. |
showLectureDiscoveryUnit - Boolean! | Indicates whether lecture discovery unit is shown showLectureDiscoveryUnit field is deprecated. Use lectureUnitOrder filed instead. |
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
{
"showLabUnit": false,
"showLectureDiscoveryUnit": true,
"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"
}
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 |
Example
{
"id": 4,
"listPrice": Money,
"renewalInterval": DateInterval,
"trial": SubscriptionTrial,
"licenseContext": SubscriptionPlanLicenseContext
}
Organization
Description
A UB organization
Fields
Field Name | Description |
---|---|
id - ID! | The UB organization's unique identifier |
Example
{"id": 4}
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
Example
{
"id": 4,
"description": "Practice Assignment 1. AWS Certified Solutions Architect Associate",
"urlLanding": "https://www.udemy.com/"
}
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 |
Example
{
"id": "4",
"title": "Practice Test 1. AWS Certified Solutions Architect Associate",
"minimumPassingScore": 123,
"randomized": false,
"urlLanding": "https://www.udemy.com/"
}
Quiz
Description
Quiz with simple questions and multiple choice answers
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/"
}
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
Example
{"value": "en", "label": "EN", "countWithFilterApplied": 123}
SearchAutocompleteLogItem
Description
Search Log suggestion for autocomplete
Fields
Field Name | Description |
---|---|
title - String! | Phrase that will be shows as a suggestion |
Example
{"title": "aws"}
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
}
SubscriptionPlan
Description
An offer for a consumer subscription plan to access a catalog of Udemy content
Fields
Field Name | Description |
---|---|
id - ID! | ID of the subscription plan: |
listPrice - Money! | The non-sale price of the subscription plan list price field is deprecated. Use listPrice filed from PriceOption instead. |
renewalInterval - DateInterval! | Interval for renewing the subscription plan ie the length of the subscription plan renewal interval field is deprecated. Use renewalInterval filed from PriceOption instead. |
trial - SubscriptionTrial | Field containing details about the trial subscription offer for a given user. Null indicates no trial is available trial field is deprecated. Use trial filed from PriceOption instead. |
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 |
Arguments | |
contentCollections - [ContentCollection!]! | List of content groups included in a given plan |
Example
{
"id": "4",
"listPrice": Money,
"renewalInterval": DateInterval,
"trial": SubscriptionTrial,
"productType": "CONSUMERSUBSCRIPTION",
"urlLearnMore": "https://www.udemy.com/",
"urlExpressCheckout": "https://www.udemy.com/",
"urlTermsOfUse": "https://www.udemy.com/",
"priceOptions": [DailySubscriptionPlanPricingOption],
"contentCollections": [ContentCollection]
}
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": 123,
"defaultLicenseCount": 123,
"minimumLicenseCount": 987,
"maximumLicenseCount": 123
}
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}
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"
}
User
Description
A Udemy user
Fields
Field Name | Description |
---|---|
id - ID! | Id of the user |
Example
{"id": 4}
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 |
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
}
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 |
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
}
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 |
Example
{
"id": 4,
"listPrice": Money,
"renewalInterval": DateInterval,
"trial": SubscriptionTrial,
"licenseContext": SubscriptionPlanLicenseContext
}
Inputs
AssessmentItemResultsFilters
Description
Filters used to fetch user assessment items results that are correct, skipped and attempted
Fields
Input Field | Description |
---|---|
status - [AssessmentItemAttemptStatus!] | Use status to filter itemAttempts return with specific status. Default is to return all status |
Example
{"status": ["CORRECT"]}
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/"
]
}
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 |
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 |
Example
{
"mustHaveClosedCaption": true,
"mustHaveQuiz": false,
"mustHaveCodingExercise": false,
"mustHavePracticeTest": true,
"mustHaveWorkspace": false,
"minAverageRating": 4.5,
"closedCaptionLanguage": ["AF"],
"language": ["AF"],
"level": ["ALL_LEVELS"],
"videoLength": ["EXTRA_SHORT"],
"topicIds": [4]
}
FeatureRequestAttributeInput
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": true}
SearchAggregationInputOption
SearchAutocompleteRequestInput
Description
Search param for autocomplete
Example
{"searchedPhrase": "aws", "responseSize": 123, "freeCourseSuppression": false}
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]
}
Enums
AssessmentItemAttemptStatus
Description
Contains the valid item attempt status for an item attempt
Values
Enum Value | Description |
---|---|
| The user answered the item correctly |
| The user answered the item incorrectly |
| The user skipped the item |
Example
"CORRECT"
CaptionType
Description
Types of captions
Values
Enum Value | Description |
---|---|
| Captions covering speech only |
| Captions covering speech and descriptions of non-spoken sounds |
Example
"SUBTITLE"
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"
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"
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 |
| Course |
| Lab |
| Learning path |
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"
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
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 |
Example
{
"id": "4",
"listPrice": Money,
"monthlyPrice": Money,
"annualSavings": Money,
"renewalInterval": DateInterval,
"trial": SubscriptionTrial,
"licenseContext": SubscriptionPlanLicenseContext
}
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 |
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
}
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 - String! | 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 |
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": AssessmentMetadata
}
AssessmentItem
Description
An AssessmentItem contains data about the item a user can interact with
Fields
Field Name | Description |
---|---|
id - ID! | The Id |
Example
{"id": "10"}
AssessmentItemAttempt
Description
An AssessmentItemAttempt is an item related to an Assessment that contains how a user performed in an AssessmentItem
Fields
Field Name | Description |
---|---|
item - AssessmentItem! | AssessmentItem related to data |
status - AssessmentItemAttemptStatus! | Returns the attempt status for item |
Example
{"item": {"id": "10"}, "status": "CORRECT"}
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"}
AssessmentResults
Description
An AssessmentResults represents a user results for taking an Assessment. items are the attempts of the latest form the User attempted for an Assessment
Fields
Field Name | Description |
---|---|
assessment - Assessment! | Assessment related to results |
items - [AssessmentItemAttempt!]! | List of items a user either skipped or answered |
Example
{
"assessment": Assessment,
"items": [AssessmentItemAttempt]
}
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": 123,
"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"}
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 |
Example
{
"id": "4",
"externalUrl": "https://www.udemy.com/",
"issuedOn": "2007-12-03",
"expires": "2007-12-03",
"user": User,
"badgeClass": BadgeClass
}
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 size) |
totalCount - Int! | Total number of BadgeAssertions |
Example
{
"items": [BadgeAssertion],
"page": 987,
"pageCount": 123,
"totalCount": 987
}
BadgeCertificationProvider
BadgeCertificationSubjectArea
BadgeClass
Description
The BadgeClass object. 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 |
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]
}
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
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 size) |
Example
{"items": [BadgeClass], "page": 123, "pageCount": 987}
CodingExercise
Description
Coding exercise for students to practice their programming
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/"
}
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 - CourseHtmlString | Description of the course |
curriculum - Curriculum! | Course's curriculum |
prerequisites - [String!]! | Prerequisites for taking the course |
targetAudience - [String!]! | Who should attend the course |
learningOutcome - [String!]! | What you will learn in this course |
duration - CourseDuration | Total duration of the course's content |
durationVideoContent - CourseDurationInSeconds | Total duration of video content only |
durationInSeconds - CourseDurationInSeconds | 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 |
rating - CourseRating! | How do students rate the course |
level - DifficultyLevel | Instruction level of the course |
url - URL | The URL to access the course landing page url field is deprecated. Use urlCourseLanding instead. |
urlAutoEnroll - URL | The URL to access the auto-enroll page |
urlCourseLanding - URL | The URL to access the course landing page |
locale - Locale! | Course locale e.g. en-US or en-GB |
updated - 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 |
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>",
"curriculum": Curriculum,
"prerequisites": ["Mathematics", "Programming"],
"targetAudience": ["Developers", "Students"],
"learningOutcome": [
"All 300+ slides available as downloadable PDF",
"Full Practice Exam with Explanations included!",
"Learn the AWS Fundamentals (EC2, ELB, ASG, RDS, ElastiCache, S3)"
],
"duration": "5h 21m 3s",
"durationVideoContent": 19263,
"durationInSeconds": 19263,
"private": false,
"organization": Organization,
"organizationInfo": CourseOrganizationInfo,
"images": CourseImages,
"instructors": [CourseInstructor],
"categories": [CourseCategory],
"enrollments": CourseEnrollments,
"enrollable": false,
"rating": CourseRating,
"level": "ALL_LEVELS",
"url": "https://www.udemy.com/",
"urlAutoEnroll": "https://www.udemy.com/",
"urlCourseLanding": "https://www.udemy.com/",
"locale": "en_US",
"updated": "2007-12-03",
"topics": [Topic],
"primaryTopic": Topic,
"xapiActivityId": "4",
"accreditations": [CourseAccreditation],
"captions": [CourseCaptionDetails],
"urlMobileNativeDeeplink": "https://www.udemy.com/",
"promoVideo": CoursePromoVideo
}
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
}
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"
}
CourseCatalogResponsePaged
Description
A catalog of all courses available to the client
Fields
Field Name | Description |
---|---|
addedCourses - [Course!]! | Courses added since last sync or all courses if syncToken is not provided |
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]
}
CourseEnrollments
Description
Enrollments belonging to the course
Fields
Field Name | Description |
---|---|
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
{"roundedCount": 123}
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 |
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",
"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 |
retireOn - Date | If not null returns the Date this course will retire from organization's content collection |
Example
{
"isOrganizationSpecific": false,
"isMarketplaceImported": true,
"retireOn": "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",
"expiration": 1695960374
}
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": 987}
CourseSearchResponse
Description
List of Courses and additional data about search response
Fields
Field Name | Description |
---|---|
courses - [Course!]! | List of Course objects |
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 |
Example
{
"courses": [Course],
"count": 987,
"filterOptions": [SearchAggregation],
"pageCount": 987,
"page": 987
}
CourseSection
Description
Section of the course containing all types of curriculum items
Fields
Field Name | Description |
---|---|
id - Int! | 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 |
Example
{
"id": 123,
"title": "Introduction",
"description": "<p><strong>Welcome to the AWS Certified Cloud Practitioner Course!</strong></p>",
"items": [VideoLecture]
}
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"
}
Curriculum
Description
Curriculum part of a course
Fields
Field Name | Description |
---|---|
sections - [CourseSection!]! | Each course section containing the course curriculum content |
Example
{"sections": [CourseSection]}
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 |
Example
{
"id": "4",
"listPrice": Money,
"renewalInterval": DateInterval,
"trial": SubscriptionTrial,
"licenseContext": SubscriptionPlanLicenseContext
}
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"}
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": [987],
"isLocalDefault": true
}
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"}
Lab
Description
The Lab object
Fields
Field Name | Description |
---|---|
id - ID! | ID of the Lab |
title - String! | Title of the Lab |
description - String! | 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 - Int! | Lower bound of estimated time (in seconds) to complete Lab |
maxEstimatedTime - Int! | Upper bound of estimated time (in seconds) to complete Lab |
instructors - [LabInstructor!]! | The Lab's Instructors |
topics - [Topic!] | The Lab's topics |
metadata - LabMetaData | Metadata associated with the lab |
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": 987,
"maxEstimatedTime": 123,
"instructors": [LabInstructor],
"topics": [Topic],
"metadata": LabMetaData
}
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"}
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"
}
LearningPathSearchResponse
Description
List of LearningPath and additional data about search response
Fields
Field Name | Description |
---|---|
count - Int! | Total number of Paths matching the search query and filters |
metadata - PathSearchResponseMetadata | Metadata for whole search result used by front end |
Example
{"count": 123, "metadata": PathSearchResponseMetadata}
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": 987,
"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"
}
LectureSearchResponse
Description
List of LectureResults and additional data about search response
Fields
Field Name | Description |
---|---|
lectures - [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
{
"lectures": [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 |
---|---|
showLabUnit - Boolean! | Indicates whether lab unit should be shown showLabUnit field is deprecated. Use labUnitOrder filed instead. |
showLectureDiscoveryUnit - Boolean! | Indicates whether lecture discovery unit is shown showLectureDiscoveryUnit field is deprecated. Use lectureUnitOrder filed instead. |
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
{
"showLabUnit": false,
"showLectureDiscoveryUnit": false,
"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"
}
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 |
Example
{
"id": 4,
"listPrice": Money,
"renewalInterval": DateInterval,
"trial": SubscriptionTrial,
"licenseContext": SubscriptionPlanLicenseContext
}
Organization
Description
A UB organization
Fields
Field Name | Description |
---|---|
id - ID! | The UB organization's unique identifier |
Example
{"id": "4"}
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
Example
{
"id": 4,
"description": "Practice Assignment 1. AWS Certified Solutions Architect Associate",
"urlLanding": "https://www.udemy.com/"
}
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 |
Example
{
"id": "4",
"title": "Practice Test 1. AWS Certified Solutions Architect Associate",
"minimumPassingScore": 987,
"randomized": true,
"urlLanding": "https://www.udemy.com/"
}
Quiz
Description
Quiz with simple questions and multiple choice answers
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/"
}
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
Example
{"value": "en", "label": "EN", "countWithFilterApplied": 123}
SearchAutocompleteLogItem
Description
Search Log suggestion for autocomplete
Fields
Field Name | Description |
---|---|
title - String! | Phrase that will be shows as a suggestion |
Example
{"title": "aws"}
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
}
SubscriptionPlan
Description
An offer for a consumer subscription plan to access a catalog of Udemy content
Fields
Field Name | Description |
---|---|
id - ID! | ID of the subscription plan: |
listPrice - Money! | The non-sale price of the subscription plan list price field is deprecated. Use listPrice filed from PriceOption instead. |
renewalInterval - DateInterval! | Interval for renewing the subscription plan ie the length of the subscription plan renewal interval field is deprecated. Use renewalInterval filed from PriceOption instead. |
trial - SubscriptionTrial | Field containing details about the trial subscription offer for a given user. Null indicates no trial is available trial field is deprecated. Use trial filed from PriceOption instead. |
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 |
Arguments | |
contentCollections - [ContentCollection!]! | List of content groups included in a given plan |
Example
{
"id": 4,
"listPrice": Money,
"renewalInterval": DateInterval,
"trial": SubscriptionTrial,
"productType": "CONSUMERSUBSCRIPTION",
"urlLearnMore": "https://www.udemy.com/",
"urlExpressCheckout": "https://www.udemy.com/",
"urlTermsOfUse": "https://www.udemy.com/",
"priceOptions": [DailySubscriptionPlanPricingOption],
"contentCollections": [ContentCollection]
}
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": 987,
"minimumLicenseCount": 123,
"maximumLicenseCount": 123
}
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}
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"
}
User
Description
A Udemy user
Fields
Field Name | Description |
---|---|
id - ID! | Id of the user |
Example
{"id": "4"}
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 |
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
}
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 |
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
}
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 |
Example
{
"id": 4,
"listPrice": Money,
"renewalInterval": DateInterval,
"trial": SubscriptionTrial,
"licenseContext": SubscriptionPlanLicenseContext
}
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
Example
true
CourseDuration
Description
How long the course takes to complete, e.g. 5h 21m 3s
Example
"5h 21m 3s"
CourseDurationInSeconds
Description
How long the course takes to complete in seconds, e.g. 19263
Example
19263
CourseHtmlString
Description
A field which may contain HTML stripped of any <script> and <iframe> tags
Example
"<p>This is a valid html</p>"
Date
Description
The Date scalar type, such as 2007-12-03
Example
"2007-12-03"
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 RFC822: https://www.w3.org/Protocols/rfc822/
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
A field which for the user's ISO 2 locale. E.g. en-US, nl-NL,
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 100
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
PositiveInt
Description
Integers that will have a value greater than 0
Example
123
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
"xyz789"
TimeStamp
Description
The javascript Date
as integer. Type represents date and time as number of milliseconds from start of UNIX epoch
Example
TimeStamp
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/"