openapi: 3.1.0 info: title: Coursera Catalog API description: | The Coursera Catalog API provides public, read-only access to Coursera's catalog of courses, specializations, partners, and instructors. Endpoints return paginated JSON responses with `elements`, `paging`, and `linked` fields. No authentication is required for the public catalog endpoints. version: v1 contact: name: Coursera url: https://building.coursera.org/app-platform/catalog/ servers: - url: https://api.coursera.org description: Coursera Catalog API tags: - name: Catalog description: Public catalog browsing paths: /api/courses.v1: get: tags: [Catalog] summary: List courses description: Returns a paginated list of courses available on Coursera. operationId: listCourses parameters: - in: query name: start required: false schema: type: string description: Pagination offset (e.g. "100"). - in: query name: limit required: false schema: type: integer description: Number of results to return per page. responses: '200': description: A paginated list of courses. content: application/json: schema: type: object properties: elements: type: array items: $ref: '#/components/schemas/Course' paging: $ref: '#/components/schemas/Paging' linked: type: object /api/onDemandSpecializations.v1: get: tags: [Catalog] summary: List on-demand specializations operationId: listSpecializations parameters: - in: query name: start required: false schema: type: string - in: query name: limit required: false schema: type: integer responses: '200': description: A paginated list of specializations. content: application/json: schema: type: object properties: elements: type: array items: $ref: '#/components/schemas/Specialization' paging: $ref: '#/components/schemas/Paging' linked: type: object /api/partners.v1: get: tags: [Catalog] summary: List partner organizations operationId: listPartners parameters: - in: query name: start required: false schema: type: string - in: query name: limit required: false schema: type: integer responses: '200': description: A paginated list of partner organizations. content: application/json: schema: type: object properties: elements: type: array items: $ref: '#/components/schemas/Partner' paging: $ref: '#/components/schemas/Paging' linked: type: object /api/instructors.v1: get: tags: [Catalog] summary: List instructors operationId: listInstructors parameters: - in: query name: start required: false schema: type: string - in: query name: limit required: false schema: type: integer responses: '200': description: A paginated list of instructors. content: application/json: schema: type: object properties: elements: type: array items: $ref: '#/components/schemas/Instructor' paging: $ref: '#/components/schemas/Paging' linked: type: object components: schemas: Course: type: object properties: id: type: string slug: type: string name: type: string courseType: type: string description: e.g. "v2.ondemand" Specialization: type: object properties: id: type: string slug: type: string name: type: string tagline: type: string description: type: string Partner: type: object properties: id: type: integer name: type: string shortName: type: string Instructor: type: object properties: id: type: string fullName: type: string Paging: type: object properties: next: type: string total: type: string