API Reference Documentation

Edit | Report

Welcome to Sunbird API reference documentation!

Sunbird is built using microservices. A microservice is defined as ‘a logical unit of software functionality exposed via a set of versioned APIs with well defined contract’. Microservices are specific and with a fixed purpose, highly maintainable and testable, independently deployable and organized around functional units. A set of microservices are used to provide a solution.

To explain the parts of the microservice definition:

  • A logical unit of work is that which generates value for a user. E.g. The Content Management microservice is responsible for the lifecycle of content, collections, and assets on the platform.

  • An Application Programming Interface (API) is a computing tool (web service, UI component) that implements a set of rules. E.g.Create Content is an API within the Content Management microservice. The APIs are enhanced as required with each release and hence there are versions of the API. Sunbird APIs are:
    • REST based (JSON over HTTPS)
    • Stateless
    • Versioned
      The API endpoints follow a common URL structure, viz; https://{host:port}/{module}/{version}/{api_name}.
  • The contract of an API consists of a well defined input, output, a set of test cases, along with usage and compatibility rules. Every API has a contract.

Currently, Sunbird has the following microservice categories. Each microservice has its own set of APIs.

Content & Learning Services

The Content and Learning Services category has microservices for content management and content usage and tracking.

  • Content Management: The content management microservice manages content objects and their lifecycle for a defined taxonomy, in a learning domain. This microservice is dependent on the taxonomy microservice as every content piece must have the appropriate taxonomy tags. The content management microservices have the following APIs:
  • Usage & Tracking Service: The usage and tracking microservice is used for course enrolment, to manage content usage, and to track progress of trackable learning objects like online courses, course batches, quizzes, and batch certificates. They also include APIs for batch management that allow you to create, view, update and search for course batches.The APIs for this microservice are grouped into:

Contribution & Curation Services

The Contribution & Curation Services category has microservices for contribution and contributor management.

  • Contribution Management: The contribution management microservice enables organisations to digitally plan, coordinate and manage crowd sourcing of content for defined programs. The APIs of this microservice are grouped into:
  • Contributor Management: The contributor management microservice enables a registry of individual contributors and contributing organisations that nominate and contribute digital content via sourcing projects.

Taxonomy & Tagging Services

The Taxonomy & Tagging Services category has microservices for taxonomy and framework management, and content category management.

  • Taxonomy Framework Management: The taxonomy and framework management microservice uses two services - the taxonomy and framework service that provides the ability to create, organise and manage taxonomy frameworks in a learning domain; and the license service that manages content licenses. This microservice is domain independent, i.e. it can be used to model the taxonomy of any learning domain, e.g: K-12, Leadership training, Professional training. The APIs in this microservice are grouped as:
  • Content Category Management: The content category management microservice provides the ability to set rules to create and manage categories for different content categories, such as collections, question sets, etc.

Telemetry & Data, Analytics Services

The Telemetry & Data, Analytics Services category has the following microservices:

  • Telemetry Service: The Telemetry Service microservice collects telemetry and ingests the telemetry into the data pipeline for processing.

  • Data Service:: The data microservice provides services to manage report jobs and data exhausts that enable data aggregation across multiple sources services. The APIs are grouped as:
  • Reports Service: The reports microservice creates, reviews and publishes reports to the Sunbird portal using the HawkEye framework. The APIs are grouped under the:

Registry & Discovery Services

The Registry & Discovery Services category has microservices that manage and implement DIAL codes; search and discover content and knowledge assets; enable and manage the lifecycle, administration, and permissions of users; registries of users, organisations, geographic locations and devices. The APIs for this microservice are grouped under:

Interaction & Collaboration Services

The Interaction & Collaboration Services category has microservices that send user notifications through multiple channels such as email, SMS, and OTPs; create and manage groups of registered users and track activities assigned to group members; allow users to participate in multiple categories of discussions and provide chatbot assistance to users. The APIs for the microservices are grouped under:

Practice, Sensing & Assessment Services

The Practice, Sensing & Assessment Services category has a microservice that creates and manages questions and question sets that are useful to assess proficiency of learners. The APIs for this microservice will be shared in the subsequent release.

Credentialing & Badging Services

The Credentialing & Badging Services category has the microservice that issues digital certificates as per required specifications and enables the storage and verification of digitally issued certificates. The APIs for this microservice are grouped under:

Infra & Shared Services

The Infra & Shared Services category has microservices to manage system and UI form configurations; create, manage and validate API tokens to register mobile and desktop apps, and to issue and refresh API tokens of registered mobile and desktop app devices; and capture and manage client application and device error logs. The APIs are grouped under:

Edit | Report