Udemy

/developer

Beta
Udemy GraphQL API Reference

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

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

Response

Returns a Course

Arguments
Name Description
id - 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!&nbsp;I'm here to help you prepare and PASS the newest AWS&nbsp;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

Response

Returns [Course]!

Arguments
Name Description
ids - [ID!]!

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!&nbsp;I'm here to help you prepare and PASS the newest AWS&nbsp;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

Response

Returns a Lab

Arguments
Name Description
id - 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

Response

Returns [Lab]!

Arguments
Name Description
ids - [ID!]!

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&rsquo;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

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

Arguments
Name Description
page - Int! Default = 0
size - Int! Default = 12
query - String
issuerId - [ID!]
certificationAreaIds - [ID!]

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

Response

Returns a Topic

Arguments
Name Description
id - 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

CourseCategory

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

CourseInstructor

LabInstructor

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

Assessment

Course

Lab

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

VideoLecture

VideoMashupLecture

ArticleLecture

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

Description

Interface for implementing paginated results

Fields
Field Name Description
pageCount - Int! The total amount of pages. Calculated as (total result count / page size)
page - Int! The current page number, 0 based
Example
{"pageCount": 123, "page": 123}

SubCategory

Description

SubCategory that is part of CourseCategory

Fields
Field Name Description
id - ID! ID of the subcategory
name - String! Name of the subcategory
Possible Types
SubCategory Types

CourseSubCategory

PopularTopicSubCategory

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

Description

Certification Provider (topic descriptor) for Open Badges

Fields
Field Name Description
id - ID! ID of certification provider
name - String! Title of certification provider(Google, Microsoft)
Example
{"id": 4, "name": "(AWS) Amazon Web Services"}

BadgeCertificationSubjectArea

Description

Certification Subject Area (topic descriptor) for Open Badges

Fields
Field Name Description
id - ID! ID of certification subject area
name - String! Title of certification subject area(Cloud, SQL)
Example
{"id": 4, "name": "SQL"}

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)

Fields
Field Name Description
id - URL The URI of a webpage that describes in a human-readable format the criteria for the BadgeClass
type - [String!] Type of the Criteria
narrative - String A narrative of what is needed to earn the badge
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

Fields
Field Name Description
id - ID! URI of the image
caption - String The caption for the image
author - String The author of the image
type - [String!] Type of Image
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

Fields
Field Name Description
id - ID! The Id of the coding exercise
title - String! The title of the coding exercise
description - String Problem statement
urlLanding - URL! Landing page to view this CodingExercise
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!&nbsp;I'm here to help you prepare and PASS the newest AWS&nbsp;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

Fields
Field Name Description
url - URL! URL for a promo video asset in mp4 format
expiration - TimeStamp Expiration time of the promo video URL. If null URL doesn't expire
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

Fields
Field Name Description
id - ID! ID of the subcategory
name - String! Name of the subcategory
url - URL! The URL to the subcategory page this course is a part of
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&rsquo;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

Fields
Field Name Description
lecture - Lecture! Found lecture for lecture search request
course - Course! Containing course of the found lecture
trackingId - String Unique analytics ID for the found lecture
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

Description

Topic SubCategory

Fields
Field Name Description
id - ID! ID of the subcategory
name - String! Name of the subcategory
Example
{"id": "4", "name": "Data Science"}

PracticeAssignment

Description

Assigment test with multiple-choice and free-from questions reviewed by instructors

Fields
Field Name Description
id - ID! The Id of the assignment
description - String! Description of the assignment
urlLanding - URL! Landing page to view this PracticeAssignment
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

Fields
Field Name Description
id - ID! The Id of the quiz
title - String! The title of the quiz
description - String An optional description
urlLanding - URL! Landing page to view this Quiz
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

Fields
Field Name Description
value - String! Value argument that can be passed to query to filter by this option
label - String! Human-readable label for this filter option
countWithFilterApplied - Int! Number of results if this filter option were to be applied
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
licenseCount - Int
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

Description

Topic Group

Fields
Field Name Description
id - ID! ID of topic group
name - String! Name of topic group
Example
{"id": 4, "name": "Programming Languages"}

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

Description

Stores realtime attribute like build_number->20220322_v1

Fields
Input Field Description
key - String! Key, ex: build_number
value - String! Value, ex: 20220322_v1
Example
{"key": "build_number", "value": "20220322_v1"}

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

Description

Options for search aggregates

Fields
Input Field Description
key - String! Key of search aggregation to apply
value - String! Value of search aggregation to apply
Example
{"key": "closed_caption_locale_languages", "value": "en"}

SearchAutocompleteRequestInput

Description

Search param for autocomplete

Fields
Input Field Description
searchedPhrase - String! Searched Phrase for the requests
responseSize - Int! Size of the response. Default = 12
freeCourseSuppression - Boolean Indicates either free courses will be shown or not
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

CORRECT

The user answered the item correctly

INCORRECT

The user answered the item incorrectly

SKIPPED

The user skipped the item
Example
"CORRECT"

CaptionType

Description

Types of captions

Values
Enum Value Description

SUBTITLE

Captions covering speech only

CLOSED_CAPTION

Captions covering speech and descriptions of non-spoken sounds
Example
"SUBTITLE"

CourseAccreditationType

Description

Accreditation types

Values
Enum Value Description

CPE

Continuing professional education
Example
"CPE"

CourseSearchSortType

Description

Sort order for courses in search response

Values
Enum Value Description

RELEVANCE

Most relevant

REVIEWS

Most reviewed

RATING

Highest rated

TIME

Newest
Example
"RELEVANCE"

CurrencyCode

Description

Currencies available

Values
Enum Value Description

AUD

Australian dollar

BRL

Brazilian real

CAD

Canadian dollar

CLP

Chilean peso

COP

Colombian peso

DKK

Danish crone

EGP

Egyptian pound

EUR

Euro

GBP

Sterling

IDR

Indonesian rupiah

ILS

Israel new shekel

INR

Indian rupee

JPY

Japanese yen

KRW

South Korean won

MXN

Mexican peso

MYR

Malaysian ringgit

NOK

Norwegian krone

NGN

Nigerian naira

PEN

Peruvian sol

PLN

Polish złoty

PHP

Philippine peso

RON

Romanian leu

RUB

Russian ruble

SGD

Singapore dollar

THB

Thai baht

TRY

Turkish lira

TWD

New Taiwan dollar

VND

Vietnamese dong

USD

United States dollar

ZAR

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

DAY

Daily interval

MONTH

Monthly interval

WEEK

Weekly interval

YEAR

Yearly interval
Example
"DAY"

DifficultyLevel

Description

Instruction level of the course

Values
Enum Value Description

ALL_LEVELS

Item is appropriate for all skill levels

BEGINNER

Item is for beginners

INTERMEDIATE

Item is for students with intermediates knowledge

EXPERT

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

AF

Afrikaans

AK

Akan

AM

Amharic

AR

Arabic

AS

Assamese

AZ

Azerbaijani

BE

Belarusian

BG

Bulgarian

BM

Bambara

BN

Bangla

BO

Tibetan

BR

Breton

BS

Bosnian

CA

Catalan

CE

Chechen

CS

Czech

CU

Church Slavic

CY

Welsh

DA

Danish

DE

German

DZ

Dzongkha

EE

Ewe

EL

Greek

EN

English

EO

Esperanto

ES

Spanish

ET

Estonian

EU

Basque

FA

Persian

FF

Fulah

FI

Finnish

FO

Faroese

FR

French

FY

Western Frisian

GA

Irish

GD

Scottish Gaelic

GL

Galician

GU

Gujarati

GV

Manx

HA

Hausa

HE

Hebrew

HI

Hindi

HR

Croatian

HU

Hungarian

HY

Armenian

IA

Interlingua

ID

Indonesian

IG

Igbo

II

Sichuan Yi

IS

Icelandic

IT

Italian

JA

Japanese

JV

Javanese

KA

Georgian

KI

Kikuyu

KK

Kazakh

KL

Kalaallisut

KM

Khmer

KN

Kannada

KO

Korean

KS

Kashmiri

KU

Kurdish

KW

Cornish

KY

Kyrgyz

LB

Luxembourgish

LG

Ganda

LN

Lingala

LO

Lao

LT

Lithuanian

LU

Luba-Katanga

LV

Latvian

MG

Malagasy

MI

Māori

MK

Macedonian

ML

Malayalam

MN

Mongolian

MR

Marathi

MS

Malay

MT

Maltese

MY

Burmese

NB

Norwegian (Bokmål)

ND

North Ndebele

NE

Nepali

NL

Dutch

NN

Norwegian Nynorsk

NO

Norwegian

OM

Oromo

OR

Odia

OS

Ossetic

PA

Punjabi

PL

Polish

PS

Pashto

PT

Portuguese

PT_BR

Portuguese (Brazil)

PT_PT

Portuguese (Portugal)

QU

Quechua

RM

Romansh

RN

Rundi

RO

Romanian

RU

Russian

RW

Kinyarwanda

SD

Sindhi

SE

Northern Sami

SG

Sango

SI

Sinhala

SK

Slovak

SL

Slovenian

SN

Shona

SO

Somali

SQ

Albanian

SR

Serbian

SU

Sundanese

SV

Swedish

SW

Swahili

TA

Tamil

TE

Telugu

TG

Tajik

TH

Thai

TI

Tigrinya

TK

Turkmen

TO

Tongan

TR

Turkish

TT

Tatar

UG

Uyghur

UK

Ukrainian

UR

Urdu

UZ

Uzbek

VI

Vietnamese

VO

Volapük

WO

Wolof

XH

Xhosa

YI

Yiddish

YO

Yoruba

ZH

Chinese

ZH_CN

Chinese (Simplified)

ZH_TW

Chinese (Traditional)

ZU

Zulu
Example
"AF"

LearningProductType

Description

Type of learning product

Values
Enum Value Description

ASSESSMENT

Assessment

COURSE

Course

LAB

Lab

LEARNING_PATH

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

Logged out home page of udemy
Example
"LOGGED_OUT_HOME_PAGE"

LearningTestimonialType

Description

Type of Learning Testimonial

Values
Enum Value Description

CASE_STUDY

Case study Learning Testimonial

COURSE_REVIEW

Course review Learning Testimonial

THIRD_PARTY

Third party Learning Testimonial
Example
"CASE_STUDY"

SubscriptionPlanProductType

Description

The type of subscription plan being offered

Values
Enum Value Description

CONSUMERSUBSCRIPTION

Consumer subscription (previously Spadefish)

ENTERPRISE

Enterprise Plan

ENTERPRISEPRO

Enterprise PRO Plan

TEAM

Team Plan

UDEMYPRO

Udemy Pro
Example
"CONSUMERSUBSCRIPTION"

TopicPopularityTypes

Description

Types of popularity for Topics

Values
Enum Value Description

POPULAR

Popular popularity type

TRENDING

Trending popularity type
Example
"POPULAR"

VideoLength

Description

Length of the video in course

Values
Enum Value Description

EXTRA_SHORT

Extra short

SHORT

Short

MEDIUM

Medium

LONG

Long

EXTRA_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

Description

Certification Provider (topic descriptor) for Open Badges

Fields
Field Name Description
id - ID! ID of certification provider
name - String! Title of certification provider(Google, Microsoft)
Example
{
  "id": "4",
  "name": "(AWS) Amazon Web Services"
}

BadgeCertificationSubjectArea

Description

Certification Subject Area (topic descriptor) for Open Badges

Fields
Field Name Description
id - ID! ID of certification subject area
name - String! Title of certification subject area(Cloud, SQL)
Example
{"id": "4", "name": "SQL"}

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)

Fields
Field Name Description
id - URL The URI of a webpage that describes in a human-readable format the criteria for the BadgeClass
type - [String!] Type of the Criteria
narrative - String A narrative of what is needed to earn the badge
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

Fields
Field Name Description
id - ID! URI of the image
caption - String The caption for the image
author - String The author of the image
type - [String!] Type of Image
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": 987}

CodingExercise

Description

Coding exercise for students to practice their programming

Fields
Field Name Description
id - ID! The Id of the coding exercise
title - String! The title of the coding exercise
description - String Problem statement
urlLanding - URL! Landing page to view this CodingExercise
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!&nbsp;I'm here to help you prepare and PASS the newest AWS&nbsp;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

Fields
Field Name Description
url - URL! URL for a promo video asset in mp4 format
expiration - TimeStamp Expiration time of the promo video URL. If null URL doesn't expire
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

Fields
Field Name Description
id - ID! ID of the subcategory
name - String! Name of the subcategory
url - URL! The URL to the subcategory page this course is a part of
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&rsquo;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

Fields
Field Name Description
lecture - Lecture! Found lecture for lecture search request
course - Course! Containing course of the found lecture
trackingId - String Unique analytics ID for the found lecture
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

Description

Topic SubCategory

Fields
Field Name Description
id - ID! ID of the subcategory
name - String! Name of the subcategory
Example
{"id": "4", "name": "Data Science"}

PracticeAssignment

Description

Assigment test with multiple-choice and free-from questions reviewed by instructors

Fields
Field Name Description
id - ID! The Id of the assignment
description - String! Description of the assignment
urlLanding - URL! Landing page to view this PracticeAssignment
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

Fields
Field Name Description
id - ID! The Id of the quiz
title - String! The title of the quiz
description - String An optional description
urlLanding - URL! Landing page to view this Quiz
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

Fields
Field Name Description
value - String! Value argument that can be passed to query to filter by this option
label - String! Human-readable label for this filter option
countWithFilterApplied - Int! Number of results if this filter option were to be applied
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
licenseCount - Int
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

Description

Topic Group

Fields
Field Name Description
id - ID! ID of topic group
name - String! Name of topic group
Example
{"id": "4", "name": "Programming Languages"}

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/"