Edu-API Specification
Abstract
1EdTech's Edu-API standard defines a structured vocabulary and related services used to exchange education-related information between a variety of systems that manage higher education administration, student services, and teaching and learning. Edu-API addresses the need for standardized, interoperable data exchange between an institution's systems of record like a Student Information System and the downstream systems that consume that data, such as learning management systems, assessment platforms, and student service tools. The specification covers core academic entities including persons, organizations, academic sessions, course offerings, and enrollments, along with the relationships between them. This data can be used to present information to students, instructors, advisers, and administrators, enabling more effective decision-making and supporting learner success.
Introduction
This document serves as the primary specification for Edu-API v1.0. It covers the normative technical implementation requirements as well as provides the reader with context on the design decisions that led to this version.
Status of this document
This document is for the Final release of Edu-API V1.0, meaning the technical specification will also be in Final status. 1EdTech members are currently working towards successful implementations of the defined specification.
1EdTech strongly encourages its members and the community to provide feedback to continue the evolution and improvement of the Edu-API standard. To join the 1EdTech developer and conformance certification community focused on OneRoster and the other related 1EdTech standards please visit the 1EdTech EduERP alliance online here: https://standards.1edtech.org/edu-api/specifications/standards/v1p0
Audiences
The target readers for this document are:
- Business Leaders - the people who are responsible for identifying the business need for Edu-API data interoperability.
- Solution & Integration Architects - the people who are responsible for design of the systems exchanging Edu-API data.
- Product & Integration Developers - people who will be doing the coding to add this functionality to the various systems.
Design Goals and Rationale
Edu-API is designed to address key provisioning/rostering use cases from the Student Information System (SIS) to consumers in a Higher Education context. Common consumers of Edu-API SIS data include Learning Management System (LMS) and other educational or administrative applications or solutions. The Edu-API core specification uses a REST binding with JSON data structures to achieve technical interoperability.
This includes the defining and provisioning of:
- Courses and other educational entities, including Course collections, sometimes referred to as Programs;
- Class sections, or other instantiations of education offerings, scheduled or unscheduled;
- Education components, i.e. exams or other enrollable activities related to an education offering;
- Persons, especially in the context of a relationship to an education or education offering, i.e., students and instructors;
- Enrollments or other associations with an education offering.
Document Set
Here are the set of documents that make up the Edu-API v1p0 specification:
- Edu-API v1p0 specification this document
- Edu-API v1p0 Conformance and Certification Guide
- Edu-API v1p0 Best Practices and Implementation Guide
Technical Resources
- Edu-API OpenAPI Files: Open API Definition
- Edu-API JSON Schema Files: JSON Schemas
Conformance
As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative.
The key words MAY, MUST, MUST NOT, OPTIONAL, RECOMMENDED, REQUIRED, SHALL, SHALL NOT, SHOULD, and SHOULD NOT in this document are to be interpreted as described in [RFC2119].
An implementation of this specification that fails to implement a MUST/REQUIRED/SHALL requirement or fails to abide by a MUST NOT/SHALL NOT prohibition is considered nonconformant. SHOULD/SHOULD NOT/RECOMMENDED statements constitute a best practice. Ignoring a best practice does not violate conformance but a decision to disregard such guidance should be carefully considered. MAY/OPTIONAL statements indicate that implementers are entirely free to choose whether or not to implement the option.
Key Concepts
The Edu-API document set makes liberal usage of the concepts and terminology described below.
Terminology
Below is a list of terms and acronyms that are used in the Edu-API document set.
| Term | Definition |
|---|---|
| GUID | A Globally Unique Identifier |
| iPaaS | Integration Platform as a Service is a system that standardizes how applications are integrated into an ecosystem |
| JSON | JavaScript Object Notation |
| LIS | 1EdTech Learning Information Services: This is the legacy specification used to support higher ed interoperability |
| LMS | Learning Management System: A system that provides the framework and user experience to handle the teaching and learning process |
| LTI | 1EdTech Learning Tools Interoperability Standard. This is a specification that supports integrations between learning platforms and learning tools via contextualized OIDC based single sign on |
| OR | 1EdTech OneRoster standard: This is a specification that deals with rostering and other processes in the K12 Sector |
| REST | Representational State Transfer |
| SIS | Student Information System: The system that stores and tracks all student information, including grades, attendance records, and more. The SIS is the most common Edu-API Provider. |
Edu-API Process Flow
Edu-API describes the two participants in Edu-API data exchanges as providers and consumers:
-
Edu-API Providers are systems, e.g. a Student Information System (SIS), that makes information available to other systems in the ecosystem.
-
Edu-API Consumers are systems, e.g. a Learning Management System (LMS), that make use of that information to facilitate teaching and learning or other important activities.
Author's note: This is intentionally the same terminology OneRoster uses.

Education and Education Templates
Edu-API defines different formats of Educations that may be offered throughout the world. To facilitate this the specification uses the concept of an Education as a general template for building out academic programs. Edu-API accomplishes this by the use of the following general structures:
- Education Templates - In the context of Edu-API an Education Template is any kind of canonical non-instantiated learning units that have a structured relationship, e.g. a course,
- Education Offerings - An instantiation of an Educational Template object. Once instantiated, an education becomes enrollable and contains information about the educational units as they contribute to a defined learning pathway.
The Edu-API specification defines 3 types of educations that can be used as either templates or offerings. Those are:
- Collection - A grouping of educational items that together contribute to a defined learning pathway. For example a Major program,
- Course - A unit of teaching that typically lasts one academic session. For example, a school runs its introductory level English course every term with four scheduled instances (represented by course offerings) and shared curriculum,
- Component - Educational units that can be used to represent parts of a course. For example a physics course as described in a course catalog might include a lecture and a lab. In this scenario, the lecture and lab would both be represented in the Edu-API model as components.
Edu-API exchange methods
Synchronous
The primary exchange method defined in Edu-API v1.0 is a synchronous, REST API data exchange with JSON payloads. In this model, the Edu-API provider makes available a set of Edu-API REST endpoints that consumers use to access data. Unless otherwise stated, the examples and conventions in this document assume the RESTful implementation.
Asynchronous
An asynchronous binding of the Edu-API specification is also being developed by the Edu-API community. This binding will use the same payload definitions as the synchronous service. New service binding sections will be added to this document when that work is completed.
While this work is being done in parallel to the synchronous REST service, it is currently not included in Edu-API v1p0 final.
Relationship to OneRoster and LIS
OneRoster is a 1EdTech standard that supports interoperability needs in K12. LIS is the 1EdTech legacy standard that supports interoperability in the Higher Ed Space.
Edu-API was designed as the spiritual successor to LIS and as OneRoster for Higher Education. The goal was to supersede LIS with more modern usage patterns and build on the well adopted norms developed through OneRoster development cycles.
Conceptual Model
This conceptual model describes Edu-API concepts and the relationship between those concepts. The data model described in this document is the normative reference for the classes and properties that are used to implement Edu-API.
The conceptual model is targeted for all audiences (see Audiences), while the data model is targeted for Solution Architects and Product Developers.
The box surrounding the Education Offering represents the offering being bound to an academic session as its method of instantiation. This concept does not always hold true, but it is a common use scenario. Common outliers are programs in the field of competency based education (CBE).
Edu-API allows sessions that are not timebound to support these alternative patterns. This enables flexibility while retaining semantic consistency

This diagram show how the 1st class entities are related in Edu-API v1.0. Here is an example using
courseas the education. A course offering, e.g. Biology 101 - Fall semester, takes place within an Academic Session (time bound or not), e.g. a semester. That course offering is an instance of template course, e.g. Biology 101. An Organization, e.g. a school, defines the course template and offers the course offering. John, a student, enrolls in the course offering, and is affiliated with, the school.
Edu-API Information Model
The logical data model shows how the entities in Edu-API's data model are related.

Note: This diagram is a simplified, conceptual view of the Edu-API information model, not a complete or normative ERD. It shows the primary entities, selected key attributes, and their main relationships; it omits many attributes, data types, enumerations, extensions, and some relationships.
- Entities: Each box is an entity. The dark green header is the entity name; the rows below are its key attributes (not the full schema).
- Relationship lines: A line connects two related entities; the label names the relationship (e.g. Instantiates, Enrolled in).
- Cardinality marks (read at the end of the line closest to each entity):
- Bar (
|) — exactly one - Crow's foot (
<) — many - Circle + crow's foot (
o<) — zero or many
- Bar (
- Dashed groups: Templates (top) and Offerings (middle) are grouped. A line attached to a group's border applies to every entity in it (e.g. an Enrollment is for any Collection, Course, or Component Offering).
- Comprise: Collections contain Courses, and Courses contain Components, at both the Template and Offering level.
- Instantiates: Each Template is realized as zero or more Offerings of the same type.
- Self-loops: A line from an entity back to itself is a hierarchy (Org, AcademicSession parent/child) or a relationship between instances (Person agents).
- An Example: "One Person can have many Enrollments; each Enrollment is Enrolled On one Offering."
Service Objects
The set of objects that can be exchanged between Edu-API end-systems are:
- An
academicSession- a calendar period during which an institution schedules offerings or other units of learning. This includes a school year, semester, term, grading period or study period, which are types ofacademicSession. Academic sessions may be nested through parent/child relationships; - A
collectionTemplate- a grouping of educational units, such as a program of study (e.g. a program, major or minor). Collection templates may be nested; - A
courseTemplate- a time-independent description of a learning experience, such that it may appear in a catalog. A course template may belong to one or more collection templates; - A
componentTemplate- a subsection of a course template, such as a lecture or laboratory. A component template belongs to one or more course templates; - A
collectionOffering- a collection template delivered in a specific academic session, used to group offerings into a coherent whole for enrollment, administrative or other purposes; - A
courseOffering- a course template delivered in a specific academic session. Each course template will be delivered through zero or more course offerings; - A
componentOffering- a subsection of a course offering that may be separately enrollable, e.g. Biology 101 may be delivered through a lecture component offering and a laboratory component offering; - An
enrollment- a person is enrolled, in a given role, on a collection, course or component offering; - An
organization- an administrative unit, which can be the institution itself or a division or subdivision of it (e.g. a college or department). Organizations may be nested through parent/child relationships; - A
person- the information about a human being, including names, contact information and demographic information such as gender and date of birth. A person may also reference other persons as agents (e.g. a guardian); - An
affiliation- the relationship between a person and an organization, including the person's role (e.g. student, teacher, staff) and the time frame in which that role applies.
Collection, course and component templates are types of educationTemplate;
Collection, course and component offerings are types of educationOffering.
Service Architecture
The internal organization of an implementation of the full abstract API is beyond the scope of this specification. The only constraint is that the external behavior of the abstract API complies with this specification. This means that a .NET, J2EE, etc. physical implementation of this abstract API does not have to represent the functionality using the same breakdown of operations/methods. This physical implementation is not subject to the conformance specification.
It is not a requirement for a system to implement this interface as defined i.e. to use the same parameters, etc. Conformance against this specification will be confirmed by inspecting the appropriate binding of the information model and ensuring that the relevant information is present and that different sequences of activity result in the predicted and mandated behavior. It is essential that the behaviors described by each of the operations are fully supported and that the behaviors described by different sequences are also maintained.
The basic architectural model for Edu-API v1.0 is shown below. In this architecture the scope of Edu-API v1.0 is shown as the dotted line. The scope of the interoperability is the data and behavioral models of the objects being exchanged.

Non-Interoperability Identifiers
"Primary" & "Other"
In many places where there are a multitude of possible values for a given attribute, Edu-API has adopted a "primary" and "other" approach instead of using unordered lists, e.g. the person class has the properties primaryEmail and otherEmail. This allows a sentiment of importance or ranking to be communicated. It also serves consuming systems who only need 1 value. Edu-API does not describe the methodology as to how "primary" is designated, that determination is out of scope of the specification.
In-line Reference Codes
In some scenarios, consuming systems may not want or need to consume the full data model. In some potential situations, the Edu-API data model includes reference codes that are provided as a convenience for consuming systems.
e.g. the education offering entities include
organizationCodewith a description that includes "This attribute was added as a convenience shorthand fororganization.primaryCode."
These codes MUST not be used as the interoperability key. In scenarios where a clash or conflict arises, the sourcedID value MUST be used as the source of truth.
Alignment with 1EdTech Frameworks
Security Framework
The Edu-API specification aligns with the 1EdTech Security Framework document. For security, all REST implementations MUST support OAuth 2.0 client credentials grant. More details are available in the service model descriptions.
Localization Frameworks
1EdTech is working on a framework definition that defines patterns for specifications to provide multilinguality as part of the data exchange. While Edu-API is used internationally, the Edu-API project group decided that at the time of publishing the first version of this specification it would not make use of the patterns described in that document.
Privacy Frameworks
The Edu-API specification is designed to align with the 1EdTech Privacy Framework, which defines a methodology for institutions and systems to work together to enable protections on sensitive data when context requires it. At the time of publishing this version of the specification, the 1EdTech Privacy Framework has not yet been finalized. Edu-API data and service models will be annotated in accordance with the framework's precepts in a future version of this specification once the framework is available.
Asynchronous Binding Framework
The Edu-API specification is designed to support asynchronous data exchange in addition to the synchronous REST binding described in this document. Any asynchronous binding will use the same data model and payload definitions as the synchronous REST service, ensuring consistency across exchange methods. At the time of publishing this version of the specification, the asynchronous binding approach is still under evaluation by the Edu-API project group. A new section describing the binding will be added to this document when a direction has been confirmed and the binding has been defined.
Edu-API Use Cases
Edu-API's model is robust and flexible, allowing for many use scenarios. The list presented below is ever evolving, and development of the Edu-API standard is ongoing.
Below is the primary set of use cases that the Edu-API workgroup has vetted for inclusion in the first release of Edu-API. This list will continue to evolve over time to include more use cases as raised by the Edu-API community.
N.B.: Edu-API v1.0 covers the major registration/provisioning/rostering use cases. This is not a comprehensive set of the possible uses for Edu-API v1.0. This list is intended to represent a common cross section of uses. For the definition of use cases related to exchange of results please reference the Edu-API Gradebook V1.0 Specifications use case definition section.
Actors and System Roles Edu-API use cases describe exchanges between two principal system types:
- Edu-API Provider: The authoritative institutional system of record, typically a Student Information System (SIS) or related data service that exposes institutional entities and relationships through Edu-API.
- Edu-API Consumer: Any downstream system that uses this data for teaching, learning, administration, or reporting, such as Learning Management Systems (LMS), analytics platforms, scheduling, or advising tools. Some use cases may involve additional specialized actors (for example, human resources, catalog, or accreditation systems) depending on institutional context.
Use Case Descriptions
| ID | Name | Description |
|---|---|---|
| 1 | Roster Provisioning | Ensure class rosters and enrollment information remains consistent across every system that needs it. |
| 2 | Role-Based Access | Makes sure people get the right permissions based on their role at the institution. |
| 3 | Staff Provisioning by Org | Ensures systems know which staff belong to which departments or campuses, and what they're allowed to do there. |
| 4 | Retrieve Class Schedule – Student | Lets other systems look up a student's class schedule directly from the source of truth. |
| 5 | Retrieve Roster – Course Offering | Gives instructional tools an accurate, up-to-date list of who's in a given course. |
| 6 | Educational Program Definition | Defines what an academic program consists of before anyone can enroll in it. |
| 7 | Program Based Enrollment | Enrolls a student in an academic program, rather than just an individual course. |
| 8 | Course Change Management | Keeps course details such as instructors, schedules, and credits, in sync as they change over time. |
Getting Started
Where can I get help?
If you have questions or need help with implementing Edu-API, here are some available resources:
- Project Group Community - for all contributing members interested in Edu-API (Login Required).
1EdTech TrustEd Apps Directory
The 1EdTech TrustEd Apps Directory is the official listing of products that have passed 1EdTech conformance certification testing. Products that are listed in this directory are guaranteed to meet the 1EdTech standards for which they have passed testing. If you experience an integration issue with a product listed here, 1EdTech will work with the supplier to resolve the problem. If a product is NOT listed here it has either not passed 1EdTech testing or its certification has expired.
New to Edu-API
If you are new to Edu-API, the following reading order will help you get oriented:
- Start with the Abstract and Introduction for an overview of what Edu-API is and the problem it addresses.
- Review the Use Case Descriptions table to see the kinds of registration, rostering, and scheduling scenarios Edu-API is designed to support.
- Become familiar with the foundational concepts in Key Concepts. Use this section to understand the key actors in Edu-API, how the Educational stack is represented. It also serves as a reference guide for the terminology used throughout this document.
- Consult REST Binding for the technical details of the API itself: base path, serialization, security, and the full endpoint reference.
- If you need information on how Edu-API can be extended for your own implementation, see Extending & Profiling before you begin.
Design Differences from OneRoster
This comparison is scoped to OneRoster 1.2. If you are currently have OneRoster 1.1 implemented or are implementing OneRoster 1.1, consult OneRoster's own 1.1-to-1.2 migration documentation first, then review the OneRoster 1.2 differences below.
OneRoster 1.2 and Edu-API differ both in a variety of renamed fields as well as a handful of underlying design decisions that ripple through the whole model:
1. Identity is separated from context.
OneRoster's User carries roles[] and primaryOrg directly on the identity record. Edu-API treats role and organizational context as relationships, not identity attributes; they live on Affiliation (org-level) and Enrollment (course-level) instead. If your provider currently emits a single User payload with roles embedded, you'll need to decompose that into the identity record plus one Affiliation per org membership and one Enrollment per course-level role, rather than a single flat payload.
Author's Note: OneRoster itself went through a version of this problem: 1.1 used a single role per person, which caused duplicate Person records for anyone holding multiple roles. 1.2 fixed this by making
rolesan array onUser. Edu-API goes a step further: role isn't an array on the identity record at all, it lives entirely on the relationship (Affiliation/Enrollment). A person with multiple roles still has exactly onePersonrecord, with multiple Affiliation/Enrollment records pointing to it.
2. Type is an attribute, not an entity choice.
OneRoster requires specific subtypes for specific relationships for example, a Class must reference a Term, and an institution must be Org or School. Edu-API collapses these into single entities instead: CourseOffering can reference any AcademicSession regardless of type, and Organization uses a type attribute rather than a separate entity.
3. Composition is a first-class, reusable pattern.
Edu-API's Collection→Course→Component structure (see Education and Education Templates) has no real OneRoster equivalent. OneRoster has no native way to group courses into a program, or to divide a course into parts. If your institution currently represents programs as an ad hoc convention on top of OneRoster (naming patterns, external tables), this is the first release where that structure has a defined home. OneRoster's academic scope can be represented in Edu-API using a courseTemplate to represent the course and a courseOffering to represent the class.
4. Enrollment lifecycle is split into two signals instead of one.
A pattern that is used throughout Edu-API is a split between the status of a record and the status of the resource that record represents. For example, OneRoster's Enrollment uses a single status/primary flag. Edu-API splits this into isActive (a boolean) and enrollmentStatus (a lifecycle enum: registered, enrolled, deferred, on hold, etc.). If your current status logic is a single field, you'll need to map it onto two: whether the enrollment is currently active, and where it sits in its lifecycle.
Design Differences from LIS
LIS and Edu-API differ both in a variety of renamed fields as well as a handful of underlying design decisions that ripple through the whole model:
A theme running through several of these differences is that Edu-API treats role as a property of a relationship, and not of the Person record itself. A role only has meaning in context: affiliated with an organization, or enrolled in an offering. Edu-API attaches role to
AffiliationandEnrollmentrecords rather than toPerson. Points 2 and 6 below are each a specific consequence of that same underlying decision.
1. Transport and protocol. LIS is a SOAP/XML service (or several independently-versioned services — Person, Course, Group, Membership Management), following the IMS GWS message pattern. Edu-API consolidates this into a single RESTful JSON service. This isn't just a wire-format swap — LIS's external VDEX vocabulary files also collapse into enumerations defined directly in the data model.
2. Identity is separated from context.
Same underlying decision as Design Differences from OneRoster, point 1: LIS's Person.roles (EnterpriseRoles) carries role information directly on the identity record, and Edu-API moves it onto Affiliation/Enrollment instead.
3. Membership splits into org-level and offering-level entities.
LIS's Membership is a single generic object that attaches a Person to a Group, a CourseTemplate, a CourseOffering, a CourseSection, or a SectionAssociation, distinguished by membershipIdType. Edu-API splits this by target: organizational membership becomes Affiliation, and offering-level participation becomes Enrollment.
Notable gap: LIS supports membership directly against a
CourseTemplatewhich is useful for representing curriculum ownership (e.g. a committee member responsible for a course's content and prerequisites across all its offerings, independent of any scheduled section). Edu-API has no equivalent for this template-level relationship in eitherAffiliationorEnrollment.
4. Sections are represented differently.
Sections are a core Higher Ed concept, and LIS models them with a single dedicated entity, CourseSection, covering both curricular sub-units (a lecture vs. a lab) and parallel, content-identical delivery instances (two lecture sections at different times). Edu-API doesn't have a single equivalent entity and instead splits the same real-world concept across two different mechanisms depending on which case applies: a curricular sub-unit maps to ComponentOffering, while a parallel delivery instance is simply another CourseOffering against the same CourseTemplate.
5. Composition moves from a generic entity to a purpose-built one.
LIS already supports hierarchical composition — a Group can be related to other Groups as Parent, Child, Sibling, or via TemplateParent/SectionChild, letting institutions represent "any composition of like activities." Edu-API doesn't introduce composition as a new concept; it replaces the generic Group/Relationship mechanism with a purpose-built Collection→Course→Component hierarchy specific to educational structures (see Education and Education Templates), rather than a general-purpose grouping entity that could represent anything.
6. Role moves onto the binding object itself, enriching the relationship it describes.
LIS keeps Role as a nested sub-object within a shared Membership record; a person's multiple roles live together under one container. Edu-API instead places role directly on the binding object itself, Enrollment for offerings and Affiliation for organizations, along with its own metadata. This is the same identity/relationship separation described in Design Differences from OneRoster, point 1.
Extending and Profiling
This standard can be extended in three ways:
- Extend the Data Model with new classes and new properties to existing extensible classes
- Extend the Extensible Enumerated Vocabularies in the Data Model.
- Extend the API with new endpoints and new responses to existing endpoints
Extensions SHOULD be presented to the Edu-API project group for review and socialization.
Extensions MUST NOT be required.
Extensions WILL NOT be tested during conformance testing.
This standard can also be profiled. In general, profiling is used to:
- Refine which endpoints are used and which operations are supported for each endpoint
- Refine the data models by increasing the constraints on the base definitions
Extending the Data Model
It is recognized that implementers may wish to extend the specification. The mechanism for doing this is to use a specified extension space within the Edu-API data model, and for consumers to set their parsers to read those extension attributes. Extensions are ONLY permitted using the 'extensions' container in each class. In Edu-API each 1st class entity has a namespaced extensions container, e.g. the person class has personExtensions. This was done to prevent potential data collisions when multiple Edu-API data sets were being consumed.
For example, an institution tracking student-athlete eligibility might extend Person like this:
{
"sourcedId":"a1b2c3d4-...",
"legalName":
{ "firstName": "Jane", "lastName": "Doe" },
"personExtensions":
{
"studentAthleteEligibility": "eligible",
"advisingCohort": "STEM-2027"
}
}
Extending Enumerated Vocabularies
Edu-API includes the ability to extend some of the enumerated vocabularies. Each proprietary term must start with the characters 'ext:'.
For example, an institution using "Concentration" as a distinct academic structure, separate from Major or Minor, could extend collectionType with a proprietary term:
{
"sourcedId": "a1b235as-...",
"collectionType": "ext:concentration"
}
Extending the API
The definition of new operations should follow the same format as described in this document. The new operations should be defined using a new interface type. Every operation must result in the return of a status code that describes the final state of the request on the target end system.
Profiles
Profiling is the process by which an 1EdTech specification is tailored to meet the requirements of a specific community: the community could be a reflection of a market sector, a geographic location, etc. An example of such a community is the Norwegian K-12/Schools for whom a profile of the 1EdTech OneRoster 1.2 specification has been created. The process of profiling starts with the corresponding base specification and defines a set of new constraints to make the subsequent modified specification better fit the requirements of the target community. Once the profile has been defined, the next step is to create the corresponding Conformance Test Systems and Certification process for that profile: these will be modified versions of the equivalents created for the base specification. It is recommended that profiling is undertaken within 1EdTech so that the 1EdTech model driven specification tools can be used.
A profile is the product produced by the process of specification Profiling. A Profile of an 1EdTech specification consists of a set of new constraints. In general an 1EdTech specification enables a wide range education and learning workflows, processes and practices. A profile is designed to establish and impose best practices for the target community. A profile MUST only increase constraints i.e. it MUST NOT relax constraints in the base specification. For example the multiplicity of a property in the data model MAY be changed from [1..] (required and permitting many) to [1..1] (required and only one) but MUST NOT become [0..] (optional and permitting many). The most common profiling changes include more strict data typing, changes to enumerations, vocabulary changes, prohibition of endpoints and creation of new endpoints. A profile could make use of the extension capabilities to extend the specification to support new features. The key objective of a profile is to remove, wherever possible, interoperability uncertainty e.g. by removing optionality.
It is strongly recommended that a profile of this standard is undertaken either by, or with the close support, of 1EdTech. However, no matter who is responsible for creating the profile artefacts (documents, schemas, etc.), it is strongly recommended that 1EdTech specification tools are used. This will ensure that the artefacts are consistent with the base specifications and that useful support documentation is automatically produced e.g. creation of a document that summarizes the differences between the base specification and the profile.
An example of an implemented profile is the OneRoster 1.2 Norwegian K12 Profile which was written to adopt OneRoster 1.2 to Norwegian specific requirements.
REST Binding
Edu-API V1.0 Defines a REST binding with JSON payloads for exchange of the resources it defines. Below are the details of how that REST binding should be implemented.
Serialization
The data model as described in this document is the canonical structural representation of Edu-API. All serializations are representations of that data model in a specific format. JSON data MUST be supported as the binding for Edu-API v1.0. Implementers MUST use the HTTP header field: Content-Type, with a value of application/json, to inform requesters that results will be returned in JSON.
JSON
The data model can be encoded in Javascript Object Notation (JSON) The JavaScript Object Notation (JSON) Data Interchange Format by mapping property types in the Data Model to JSON types as follows:
- Numeric values representable as [IEEE-754] MUST be represented as a JSON Number;
- Boolean values MUST be represented as a JSON Boolean;
- Sequence values MUST be represented as a JSON Array, NOT as a single value;
- Unordered sets (i.e., 0..* and 1..* multiplicities) of values MUST be represented as a JSON Array, NOT as a single value;
- Complex types (i.e., not primitive types or derived types) MUST be represented as a JSON Object, NOT as a URI;
- Other values MUST be represented as a JSON String;
- Null values and empty arrays MUST be omitted from the serialized JSON. This includes empty Arrays;
Base Path
All paths MUST include, as the base of the path (excluding the hostname), the following string:
/1edtech/eduapi/base/v1p0
Edu-API Security
Edu-API aligns with the 1EdTech Security Framework.
For security, all REST implementations MUST support the OAuth 2.0 Client Credentials Grant. The authorization flow follows the 1EdTech Security Framework v1.1, where the provider defines and hosts the token endpoint.
OAuth 2.0 Usage
Consumers (clients) obtain tokens from the provider’s authorization server using their registered credentials. The request uses the grant_type=client_credentials and includes the scopes required by Edu-API.
POST /token
grant_type=client_credentials
scope=http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly
client_id=<client_id>
client_secret=<client_secret>
The provider issues a short-lived bearer token. All Edu-API resource requests must include the token.
Authorization: Bearer <token>;
Scopes
http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly– grants read access to Edu-API core resources such as Persons, Organizations, Academic Sessions, Education Offerings, and Enrollments.http://purl.1edtech.org/spec/eduapi/v1p0/scope/core.readonly.privacy– grants access to privacy-governed attributes according to institutional policy based on designations that align with the 1EdTech Privacy Framework.
Token Behavior
- Tokens expire per provider policy and must be refreshed by repeating the token request. The 1EdTech security framework recommends that the
expires_inattribute is 3600 i.e. one hour. - HTTP 401 indicates an invalid or expired token.
- HTTP 403 indicates insufficient scope or authorization failure.
- All communications must use TLS.
- Client secrets must be stored securely and rotated periodically.
For full details, see the 1EdTech Security Framework v1.1.
Edu-API HTTP Status Response Codes
The Edu-API community defines a standard set of response codes that MUST be used for specific states, as outlined in this document and its OpenAPI definitions.
Other API states SHOULD use additional codes consistent with the semantics in [[RFC 9110]].
Here are the codes contained within the Edu-API specification:
| Code | Title | Description |
|---|---|---|
| 200 | OK | The request has succeeded. Returns the requested resource or collection. |
| 204 | No Content | The request was successful but there is no content to send in the response. |
| 400 | Bad Request | As defined in RFC 9110. Indicates that the server cannot or will not process the request due to a client error. |
| 401 | Unauthorized | As defined in RFC 9110. The request has not been applied because it lacks valid authentication credentials for the target resource. |
| 403 | Forbidden | As defined in RFC 9110. The server understood the request but refuses to fulfill it. The reason SHOULD be explained in the response. |
| 404 | Not Found | As defined in RFC 9110. The origin server did not find a current representation for the target resource or is not willing to disclose one. |
| 422 | Unprocessable Entity | As defined in RFC 9110. Used when the server cannot validate an incoming entity. |
| 429 | Too Many Requests | As defined in RFC 6585. Indicates that the user has sent too many requests in a given amount of time (rate limiting). |
| 500 | Internal Server Error | As defined in RFC 9110. Implementations SHOULD avoid using this code except for catastrophic conditions where no better code applies. |
| — | Invalid Request (Default) | The request was invalid or cannot be served. The exact error SHOULD be explained in the response payload. |
Service Operations to the REST Endpoints
The table below contains the full set of endpoints in the Edu-API REST binding
| Service Call | Endpoint | HTTP Verb | Description |
|---|---|---|---|
| getEducationTemplates | /educationTemplates | GET | Read all education templates for an institution |
| getEducationTemplateById | /educationTemplates/{id} | GET | Read a collection template with a specific id |
| getEducationOfferings | /educationOfferings | GET | Read all education templates for an institution |
| getEducationOfferingById | /educationOfferings/{id} | GET | Read a collection template with a specific id |
| getAllCollectionTemplates | /collectionTemplates | GET | Read all collection templates for an institution |
| getCollectionTemplateById | /collectionTemplates/{id} | GET | Read a collection template with a specific id |
| getAllCourseTemplates | /courseTemplates | GET | Read all course templates for an institution |
| getCourseTemplateById | /courseTemplates/{id} | GET | Read a course template with a specific id |
| getAllComponentTemplates | /componentTemplates | GET | Read all component templates for an institution |
| getComponentTemplateById | /componentTemplates/{id} | GET | Read a component with a specific id |
| getAllCollectionOfferings | /collectionOfferings | GET | Read all collectionOfferings for an institution |
| getCollectionOfferingById | /collectionOfferings/{id} | GET | Read collectionOffering with a specific Id |
| getAllCourseOfferings | /courseOfferings | GET | Read all courseOfferings for an institution |
| getCourseOfferingById | /courseOfferings/{id} | GET | Read courseOffering with a specific Id |
| getAllComponentOfferings | /componentOfferings | GET | Read all ComponentOfferings for an institution |
| getComponentOfferingById | /componentOfferings/{id} | GET | Read ComponentOffering with a specific Id |
| getAllComponentOfferingsBySession | /academicSessions/{id}/componentOfferings | GET | Read all ComponentOfferings in a specified academic session |
| getAllCourseOfferingsBySession | /academicSessions/{id}/courseOfferings | GET | Read all CourseOfferings in a specified academic session |
| getAllCollectionOfferingsBySession | /academicSessions/{id}/collectionOfferings | GET | Read all CollectionOfferings in a specified academic session |
| getCollectionOfferingsForStudent | /students/{id}/collectionOfferings | GET | Read all collectionOfferings for a student |
| getCollectionOfferingsForStaff | /staff/{id}/collectionOfferings | GET | Read all collectionOfferings for a staff member |
| getComponentOfferingsForStudent | /students/{id}/componentOfferings | GET | Read all componentOfferings for a student |
| getComponentOfferingsForStaff | /staff/{id}/componentOfferings | GET | Read all componentOfferings for a staff member |
| getAllAcademicSessions | /academicSessions | GET | Read all AcademicSessions for an institution |
| getAcademicSessionById | /academicSessions/{id} | GET | Read an AcademicSession with a specific id |
| getAllOrganizations | /organizations | GET | Read all Organizations for an institution |
| getOrganizationById | /organizations/{id} | GET | Read Organization with a specific Id |
| getOrganizationsForStaff | /staff/{id}/organizations | GET | Read all organizations associated with a staff member |
| getOrganizationsForStudent | /students/{id}/organizations | GET | Read all organizations associated with a student |
| getAllPersons | /persons | GET | Read all Persons for an institution |
| getPersonById | /persons/{id} | GET | Read Person with a specific id |
| getAllStaff | /staff | GET | Read all persons with role of staff |
| getAllStudents | /students | GET | Read all persons with a role of student |
| getAllStudentsForCollectionOffering | /collectionOfferings/{id}/students | GET | Read all students for a collectionOffering |
| getAllStaffForCollectionOffering | /collectionOfferings/{id}/staff | GET | Read all staff for a collectionOffering |
| getAllStudentsForCourseOffering | /courseOfferings/{id}/students | GET | Read all students for a courseOffering |
| getAllStaffForCourseOffering | /courseOfferings/{id}/staff | GET | Read all staff for a courseOffering |
| getAllStaffForOrganization | /organizations/{id}/staff | GET | Read all staff members of an org |
| getAllStudentsForOrganization | /organizations/{id}/students | GET | Read all students of an organization |
| getAllStudentsForComponentOffering | /componentOfferings/{id}/students | GET | Read all students for a componentOffering |
| getAllStaffForComponentOffering | /componentOfferings/{id}/staff | GET | Read all students for a componentOffering |
| getAllEnrollments | /enrollments | GET | Read all Enrollments for an institution |
| getEnrollmentById | /enrollments/{id} | GET | Read Enrollment with a specific id |
| getAllEnrollmentsForCourseOffering | /courseOfferings/{id}/enrollments | GET | Read all enrollments for a courseOffering |
| getAllEnrollmentsForCollectionOffering | /collectionOfferings/{id}/enrollments | GET | Read all enrollments for a courseOffering |
| getAllEnrollmentsForComponentOffering | /componentOfferings/{id}/enrollments | GET | Read all enrollments for a courseOffering |
| getAllEnrollmentsBySession | /academicSessions/{id}/enrollments | GET | Read all enrollments in a specified academic session |
| getAllAffiliations | /affiliations | GET | Read all affiliations for an institution |
| getAffiliationById | /affiliations/{id} | GET | Read Affiliation with a specific id |
Data Models
Edu-API Abstract Educations Model
Education
A description of an abstract education.
| Property | Type | Description | Multiplicity |
|---|---|---|---|
| sourcedId | GUID |
The sourcedId of the object. This is the interoperability identifier that systems will refer to when making API calls, or when needing to identify an object. Systems SHOULD be able to map whichever local ids (e.g. database key fields) they use to sourcedId. The sourcedId of an object MUST be an anonymized or pseudonymized identifier of an entity and as such will not contain Personally Identifiable Information (PII) or Personal Data (PD). | [1] |
| recordLanguage | LanguageCode |
The primary language used in the described entity. | [1] |
| title | LanguageTypedString |
A set of titles for the associated entity with a designated language for each entry. | [1..*] |
| description | LanguageTypedString |
A set of descriptions of the associated entity with a designated language for each entry. | [1..*] |
| primaryCode | IdentifierEntry |
The primary human readable identifier for the entity. This will often take the form of a human readable code as defined by the institution or region | [1] |
| otherCodes | IdentifierEntry |
Any number of additional human readable codes/identifiers for the entity being described | [0..*] |
| subjectCodes | String |
The set of subjects, represented by codes that this education addresses | [0..*] |
| organization | OrganizationGUIDRef |
A reference to an Edu-API Organization. | [1] |
| organizationCode | String |
A business code that a system might use to reference an organization. This value is provided for convenience and should match the value in organization.primaryCode. This attribute was added as a convenience shorthand for organization.primaryCode. | [0..1] |
| level | EducationLevelEnum |
The educational level that the entity is for. This is represented by an extensible enumerated vocabulary and commonly varies by institution and region. | [1] |
| creditType | CreditTypeEnum |
Reference to what the completion of this entity counts towards. This is represented by an extensible enumerated vocabulary. | [1] |
| creditsAwarded | String |
A description of the credits that the student receives after the completion of the education. | [0..1] |
| gradingScheme | LanguageTypedString |
A human readable string that describes the system that is used to evaluate performance within the collection. This can be represented in many ways and is mostly institutional specific. The most common systems are the A-F scheme and the 4.0 based GPA scaling system. | [1..*] |
| teachingLanguage | LanguageCode |
The main language used to deliver the content of the education. | [0..1] |
| recordStatus | RecordStatusTypeEnum |
The status of this record. This value reflects the state of the record itself, not the status of the real-world entity or resource it represents. A record with a status of deleted indicates that it has been marked for removal and may be safely deleted by consuming systems. Systems may choose to remove such records, but are not required to do so | [1] |
| dateLastModified | DateTimeZ |
A timestamp describing when this record was last modified. | [0..1] |
| extensions | educationExtensions |
A container for extension objects. | [0..1] |
| learningObjectiveSet | LearningObjectiveSet |
The set of identifiers for the learning objectives to which this education is aligned. Any number groups of learning objectives can be assigned. | [0..*] |
EducationOffering
A description of an abstract educational offering.
| Property | Type | Description | Multiplicity |
|---|---|---|---|
| sourcedId | GUID |
The sourcedId of the object. This is the interoperability identifier that systems will refer to when making API calls, or when needing to identify an object. Systems SHOULD be able to map whichever local ids (e.g. database key fields) they use to sourcedId. The sourcedId of an object MUST be an anonymized or pseudonymized identifier of an entity and as such will not contain Personally Identifiable Information (PII) or Personal Data (PD). | [1] |
| offeringType | EducationOfferingTypeEnum |
The type of education being offered. This is based on an enumerated vocabulary. | [1] |
| recordLanguage | LanguageCode |
The primary language used in the described entity. | [1] |
| title | LanguageTypedString |
A set of titles for the associated entity with a designated language for each entry. | [1..*] |
| description | LanguageTypedString |
A set of descriptions of the associated entity with a designated language for each entry. | [1..*] |
| primaryCode | IdentifierEntry |
The primary human readable identifier for the entity. This will often take the form of a human readable code as defined by the institution or region | [1] |
| otherCodes | IdentifierEntry |
Human readable codes/identifiers for the entity being described | [0..*] |
| locations | Location |
A container for describing where the entity takes place. This could be as a description or as a geo location | [0..*] |
| organization | OrganizationGUIDRef |
A reference to an Edu-API Organization. | [1] |
| academicSession | AcademicSessionGUIDRef |
A reference to an Edu-API Academic Session | [1] |
| organizationCode | String |
A business code that a system might use to reference an organization. This value is provided for convenience and should match the value in organization.primaryCode. This attribute was added as a convenience shorthand for organization.primaryCode. | [0..1] |
| academicSessionCode | String |
A business code that a system might use to reference an academic session. This value is provided for convenience and should match the value in academicSession.primaryCode. This attribute was added as a convenience shorthand for academicSession.primaryCode. | [0..1] |
| offeringFormat | OfferingFormatEnum |
The modality by which the entity is delivered. This is represented by an extensible enumerated vocabulary | [1] |
| paceOfStudy | Percentage |
The tempo that the course is taught at as a percentage of a normal course. | [0..1] |
| registrationStatus | RegistrationStatusEnum |
The status of the entity indicating whether it is open for enrollment for teachers and students. This is represented by an extensible enumerated vocabulary. | [1] |
| startDate | DateTimeZ |
The start date of the associated event. | [1] |
| endDate | DateTimeZ |
The end date of the associated event. | [1] |
| teachingLanguage | LanguageCode |
The main language used to deliver the content of the offering. | [0..1] |
| maxNumberStudents | Integer |
The maximum number of students allowed to enroll for this offering | [0..1] |
| minNumberStudents | Integer |
The minimum number of students allowed to enroll for this offering | [0..1] |
| enrolledNumberStudents | Integer |
The number of students that have already enrolled for this offering | [0..1] |
| pendingNumberStudents | Integer |
The number of students that have a pending enrollment request for this offering | [0..1] |
| roleEnablement | RoleEnablement |
An array to store associated dates for an education offering. Specifically, additional important date and time offsets surrounding when specific roles may be associated with the offering before or after the official start and end dates. These dates are meant to be considered additional metadata about the course offering and applied independent of the startDate and endDate. They are not intended to be used as replacements. | [0..*] |
| recordStatus | RecordStatusTypeEnum |
The status of this record. This value reflects the state of the record itself, not the status of the real-world entity or resource it represents. A record with a status of deleted indicates that it has been marked for removal and may be safely deleted by consuming systems. Systems may choose to remove such records, but are not required to do so | [1] |
| dateLastModified | DateTimeZ |
A timestamp describing when this record was last modified. | [0..1] |
| synchronicity | SynchronicityEnum |
An indicator of whether instructor and learner must both be present at the same time | [0..1] |
| extensions | educationOfferingExtensions |
A container for extension objects. | [0..1] |
| learningObjectiveSet | LearningObjectiveSet |
The set of identifiers for the learning objectives to which this education offering is aligned. Any number groups of learning objectives can be assigned. | [0..*] |
The Edu-API community and project group understands that the instructional landscape is complex and ever changing. In order to facilitate the continued evolution and to account for specifics and idiosyncrasies that were not discussed, we've defined a set of abstract classes that can be instantiated to define educational types that we do not define explicitly.
Education Templates
CollectionTemplate
A grouping of educational units. In the context of Edu-API an education is any kind of canonical or non-instantiated learning units that have a structured relationship, e.g. a course. When grouped, these educational units can be used to define such concepts as programs of study.
| Property | Type | Description | Multiplicity |
|---|---|---|---|
| collectionType | CollectionTypeEnum |
A representation of what the entity defines. It is based on an extensible enumerated vocabulary. | [1] |
| parent | CollectionTemplateGUIDRef |
A reference to a parent CollectionTemplate. | [0..*] |
| sourcedId | GUID |
The sourcedId of the object. This is the interoperability identifier that systems will refer to when making API calls, or when needing to identify an object. Systems SHOULD be able to map whichever local ids (e.g. database key fields) they use to sourcedId. The sourcedId of an object MUST be an anonymized or pseudonymized identifier of an entity and as such will not contain Personally Identifiable Information (PII) or Personal Data (PD). | [1] |
| recordLanguage | LanguageCode |
The primary language used in the described entity. | [1] |
| title | LanguageTypedString |
A set of titles for the associated entity with a designated language for each entry. | [1..*] |
| description | LanguageTypedString |
A set of descriptions of the associated entity with a designated language for each entry. | [1..*] |
| primaryCode | IdentifierEntry |
The primary human readable identifier for the entity. This will often take the form of a human readable code as defined by the institution or region | [1] |
| otherCodes | IdentifierEntry |
Any number of additional human readable codes/identifiers for the entity being described | [0..*] |
| subjectCodes | String |
The set of subjects, represented by codes that this education addresses | [0..*] |
| organization | OrganizationGUIDRef |
A reference to an Edu-API Organization. | [1] |
| organizationCode | String |
A business code that a system might use to reference an organization. This value is provided for convenience and should match the value in organization.primaryCode. This attribute was added as a convenience shorthand for organization.primaryCode. | [0..1] |
| level | EducationLevelEnum |
The educational level that the entity is for. This is represented by an extensible enumerated vocabulary and commonly varies by institution and region. | [1] |
| creditType | CreditTypeEnum |
Reference to what the completion of this entity counts towards. This is represented by an extensible enumerated vocabulary. | [1] |
| creditsAwarded | String |
A description of the credits that the student receives after the completion of the education. | [0..1] |
| gradingScheme | LanguageTypedString |
A human readable string that describes the system that is used to evaluate performance within the collection. This can be represented in many ways and is mostly institutional specific. The most common systems are the A-F scheme and the 4.0 based GPA scaling system. | [1..*] |
| teachingLanguage | LanguageCode |
The main language used to deliver the content of the education. | [0..1] |
| recordStatus | RecordStatusTypeEnum |
The status of this record. This value reflects the state of the record itself, not the status of the real-world entity or resource it represents. A record with a status of deleted indicates that it has been marked for removal and may be safely deleted by consuming systems. Systems may choose to remove such records, but are not required to do so | [1] |
| dateLastModified | DateTimeZ |
A timestamp describing when this record was last modified. | [0..1] |
| extensions | educationExtensions |
A container for extension objects. | [0..1] |
| learningObjectiveSet | LearningObjectiveSet |
The set of identifiers for the learning objectives to which this education is aligned. Any number groups of learning objectives can be assigned. | [0..*] |
CourseTemplate
A time independent description of a learning experience, such that it may appear in a catalog.
| Property | Type | Description | Multiplicity |
|---|---|---|---|
| courseType | CourseTypeEnum |
A representation of what the entity defines. It is based on an extensible enumerated vocabulary. | [1] |
| parent | CollectionTemplateGUIDRef |
A reference to a parent CollectionTemplate. | [0..*] |
| sourcedId | GUID |
The sourcedId of the object. This is the interoperability identifier that systems will refer to when making API calls, or when needing to identify an object. Systems SHOULD be able to map whichever local ids (e.g. database key fields) they use to sourcedId. The sourcedId of an object MUST be an anonymized or pseudonymized identifier of an entity and as such will not contain Personally Identifiable Information (PII) or Personal Data (PD). | [1] |
| recordLanguage | LanguageCode |
The primary language used in the described entity. | [1] |
| title | LanguageTypedString |
A set of titles for the associated entity with a designated language for each entry. | [1..*] |
| description | LanguageTypedString |
A set of descriptions of the associated entity with a designated language for each entry. | [1..*] |
| primaryCode | IdentifierEntry |
The primary human readable identifier for the entity. This will often take the form of a human readable code as defined by the institution or region | [1] |
| otherCodes | IdentifierEntry |
Any number of additional human readable codes/identifiers for the entity being described | [0..*] |
| subjectCodes | String |
The set of subjects, represented by codes that this education addresses | [0..*] |
| organization | OrganizationGUIDRef |
A reference to an Edu-API Organization. | [1] |
| organizationCode | String |
A business code that a system might use to reference an organization. This value is provided for convenience and should match the value in organization.primaryCode. This attribute was added as a convenience shorthand for organization.primaryCode. | [0..1] |
| level | EducationLevelEnum |
The educational level that the entity is for. This is represented by an extensible enumerated vocabulary and commonly varies by institution and region. | [1] |
| creditType | CreditTypeEnum |
Reference to what the completion of this entity counts towards. This is represented by an extensible enumerated vocabulary. | [1] |
| creditsAwarded | String |
A description of the credits that the student receives after the completion of the education. | [0..1] |
| gradingScheme | LanguageTypedString |
A human readable string that describes the system that is used to evaluate performance within the collection. This can be represented in many ways and is mostly institutional specific. The most common systems are the A-F scheme and the 4.0 based GPA scaling system. | [1..*] |
| teachingLanguage | LanguageCode |
The main language used to deliver the content of the education. | [0..1] |
| recordStatus | RecordStatusTypeEnum |
The status of this record. This value reflects the state of the record itself, not the status of the real-world entity or resource it represents. A record with a status of deleted indicates that it has been marked for removal and may be safely deleted by consuming systems. Systems may choose to remove such records, but are not required to do so | [1] |
| dateLastModified | DateTimeZ |
A timestamp describing when this record was last modified. | [0..1] |
| extensions | educationExtensions |
A container for extension objects. | [0..1] |
| learningObjectiveSet | LearningObjectiveSet |
The set of identifiers for the learning objectives to which this education is aligned. Any number groups of learning objectives can be assigned. | [0..*] |
ComponentTemplate
A subsection of a Course or Class. It may be a lesson unit within a Class or it may be a separately enrolled unit with a Course. For example, Biology 101 may consist of a Lecture component and a Lab component.
| Property | Type | Description | Multiplicity |
|---|---|---|---|
| componentType | ComponentTypeEnum |
A representation of what the entity defines. It is based on an extensible enumerated vocabulary. | [1] |
| parent | CourseTemplateGUIDRef |
A reference to a parent CourseTemplate. | [0..*] |
| sourcedId | GUID |
The sourcedId of the object. This is the interoperability identifier that systems will refer to when making API calls, or when needing to identify an object. Systems SHOULD be able to map whichever local ids (e.g. database key fields) they use to sourcedId. The sourcedId of an object MUST be an anonymized or pseudonymized identifier of an entity and as such will not contain Personally Identifiable Information (PII) or Personal Data (PD). | [1] |
| recordLanguage | LanguageCode |
The primary language used in the described entity. | [1] |
| title | LanguageTypedString |
A set of titles for the associated entity with a designated language for each entry. | [1..*] |
| description | LanguageTypedString |
A set of descriptions of the associated entity with a designated language for each entry. | [1..*] |
| primaryCode | IdentifierEntry |
The primary human readable identifier for the entity. This will often take the form of a human readable code as defined by the institution or region | [1] |
| otherCodes | IdentifierEntry |
Any number of additional human readable codes/identifiers for the entity being described | [0..*] |
| subjectCodes | String |
The set of subjects, represented by codes that this education addresses | [0..*] |
| organization | OrganizationGUIDRef |
A reference to an Edu-API Organization. | [1] |
| organizationCode | String |
A business code that a system might use to reference an organization. This value is provided for convenience and should match the value in organization.primaryCode. This attribute was added as a convenience shorthand for organization.primaryCode. | [0..1] |
| level | EducationLevelEnum |
The educational level that the entity is for. This is represented by an extensible enumerated vocabulary and commonly varies by institution and region. | [1] |
| creditType | CreditTypeEnum |
Reference to what the completion of this entity counts towards. This is represented by an extensible enumerated vocabulary. | [1] |
| creditsAwarded | String |
A description of the credits that the student receives after the completion of the education. | [0..1] |
| gradingScheme | LanguageTypedString |
A human readable string that describes the system that is used to evaluate performance within the collection. This can be represented in many ways and is mostly institutional specific. The most common systems are the A-F scheme and the 4.0 based GPA scaling system. | [1..*] |
| teachingLanguage | LanguageCode |
The main language used to deliver the content of the education. | [0..1] |
| recordStatus | RecordStatusTypeEnum |
The status of this record. This value reflects the state of the record itself, not the status of the real-world entity or resource it represents. A record with a status of deleted indicates that it has been marked for removal and may be safely deleted by consuming systems. Systems may choose to remove such records, but are not required to do so | [1] |
| dateLastModified | DateTimeZ |
A timestamp describing when this record was last modified. | [0..1] |
| extensions | educationExtensions |
A container for extension objects. | [0..1] |
| learningObjectiveSet | LearningObjectiveSet |
The set of identifiers for the learning objectives to which this education is aligned. Any number groups of learning objectives can be assigned. | [0..*] |
Education Offerings
CollectionOffering
A collection of courses or other learning units, used to group them into a coherent whole for enrollment, administrative, or other purposes. A Program is one example of a Course Collection.
| Property | Type | Description | Multiplicity |
|---|---|---|---|
| offeringType | CollectionTypeEnum |
A representation of what the entity defines. It is based on an extensible enumerated vocabulary. | [1] |
| collection | CollectionTemplateGUIDRef |
A reference to the collectionTemplate. | [1] |
| parent | CollectionOfferingGUIDRef |
A reference to parent collectionOffering (if present). | [0..*] |
| sourcedId | GUID |
The sourcedId of the object. This is the interoperability identifier that systems will refer to when making API calls, or when needing to identify an object. Systems SHOULD be able to map whichever local ids (e.g. database key fields) they use to sourcedId. The sourcedId of an object MUST be an anonymized or pseudonymized identifier of an entity and as such will not contain Personally Identifiable Information (PII) or Personal Data (PD). | [1] |
| recordLanguage | LanguageCode |
The primary language used in the described entity. | [1] |
| title | LanguageTypedString |
A set of titles for the associated entity with a designated language for each entry. | [1..*] |
| description | LanguageTypedString |
A set of descriptions of the associated entity with a designated language for each entry. | [1..*] |
| primaryCode | IdentifierEntry |
The primary human readable identifier for the entity. This will often take the form of a human readable code as defined by the institution or region | [1] |
| otherCodes | IdentifierEntry |
Human readable codes/identifiers for the entity being described | [0..*] |
| locations | Location |
A container for describing where the entity takes place. This could be as a description or as a geo location | [0..*] |
| organization | OrganizationGUIDRef |
A reference to an Edu-API Organization. | [1] |
| academicSession | AcademicSessionGUIDRef |
A reference to an Edu-API Academic Session | [1] |
| organizationCode | String |
A business code that a system might use to reference an organization. This value is provided for convenience and should match the value in organization.primaryCode. This attribute was added as a convenience shorthand for organization.primaryCode. | [0..1] |
| academicSessionCode | String |
A business code that a system might use to reference an academic session. This value is provided for convenience and should match the value in academicSession.primaryCode. This attribute was added as a convenience shorthand for academicSession.primaryCode. | [0..1] |
| offeringFormat | OfferingFormatEnum |
The modality by which the entity is delivered. This is represented by an extensible enumerated vocabulary | [1] |
| paceOfStudy | Percentage |
The tempo that the course is taught at as a percentage of a normal course. | [0..1] |
| registrationStatus | RegistrationStatusEnum |
The status of the entity indicating whether it is open for enrollment for teachers and students. This is represented by an extensible enumerated vocabulary. | [1] |
| startDate | DateTimeZ |
The start date of the associated event. | [1] |
| endDate | DateTimeZ |
The end date of the associated event. | [1] |
| teachingLanguage | LanguageCode |
The main language used to deliver the content of the offering. | [0..1] |
| maxNumberStudents | Integer |
The maximum number of students allowed to enroll for this offering | [0..1] |
| minNumberStudents | Integer |
The minimum number of students allowed to enroll for this offering | [0..1] |
| enrolledNumberStudents | Integer |
The number of students that have already enrolled for this offering | [0..1] |
| pendingNumberStudents | Integer |
The number of students that have a pending enrollment request for this offering | [0..1] |
| roleEnablement | RoleEnablement |
An array to store associated dates for an education offering. Specifically, additional important date and time offsets surrounding when specific roles may be associated with the offering before or after the official start and end dates. These dates are meant to be considered additional metadata about the course offering and applied independent of the startDate and endDate. They are not intended to be used as replacements. | [0..*] |
| recordStatus | RecordStatusTypeEnum |
The status of this record. This value reflects the state of the record itself, not the status of the real-world entity or resource it represents. A record with a status of deleted indicates that it has been marked for removal and may be safely deleted by consuming systems. Systems may choose to remove such records, but are not required to do so | [1] |
| dateLastModified | DateTimeZ |
A timestamp describing when this record was last modified. | [0..1] |
| synchronicity | SynchronicityEnum |
An indicator of whether instructor and learner must both be present at the same time | [0..1] |
| extensions | educationOfferingExtensions |
A container for extension objects. | [0..1] |
| learningObjectiveSet | LearningObjectiveSet |
The set of identifiers for the learning objectives to which this education offering is aligned. Any number groups of learning objectives can be assigned. | [0..*] |
CourseOffering
Relates a course to one or more delivery scenarios.
| Property | Type | Description | Multiplicity |
|---|---|---|---|
| offeringType | CourseTypeEnum |
A representation of what the entity defines. It is based on an extensible enumerated vocabulary. | [1] |
| course | CourseTemplateGUIDRef |
A reference to the courseTemplate. | [1] |
| parent | CollectionOfferingGUIDRef |
A reference to the parent collectionOffering. | [0..*] |
| sourcedId | GUID |
The sourcedId of the object. This is the interoperability identifier that systems will refer to when making API calls, or when needing to identify an object. Systems SHOULD be able to map whichever local ids (e.g. database key fields) they use to sourcedId. The sourcedId of an object MUST be an anonymized or pseudonymized identifier of an entity and as such will not contain Personally Identifiable Information (PII) or Personal Data (PD). | [1] |
| recordLanguage | LanguageCode |
The primary language used in the described entity. | [1] |
| title | LanguageTypedString |
A set of titles for the associated entity with a designated language for each entry. | [1..*] |
| description | LanguageTypedString |
A set of descriptions of the associated entity with a designated language for each entry. | [1..*] |
| primaryCode | IdentifierEntry |
The primary human readable identifier for the entity. This will often take the form of a human readable code as defined by the institution or region | [1] |
| otherCodes | IdentifierEntry |
Human readable codes/identifiers for the entity being described | [0..*] |
| locations | Location |
A container for describing where the entity takes place. This could be as a description or as a geo location | [0..*] |
| organization | OrganizationGUIDRef |
A reference to an Edu-API Organization. | [1] |
| academicSession | AcademicSessionGUIDRef |
A reference to an Edu-API Academic Session | [1] |
| organizationCode | String |
A business code that a system might use to reference an organization. This value is provided for convenience and should match the value in organization.primaryCode. This attribute was added as a convenience shorthand for organization.primaryCode. | [0..1] |
| academicSessionCode | String |
A business code that a system might use to reference an academic session. This value is provided for convenience and should match the value in academicSession.primaryCode. This attribute was added as a convenience shorthand for academicSession.primaryCode. | [0..1] |
| offeringFormat | OfferingFormatEnum |
The modality by which the entity is delivered. This is represented by an extensible enumerated vocabulary | [1] |
| paceOfStudy | Percentage |
The tempo that the course is taught at as a percentage of a normal course. | [0..1] |
| registrationStatus | RegistrationStatusEnum |
The status of the entity indicating whether it is open for enrollment for teachers and students. This is represented by an extensible enumerated vocabulary. | [1] |
| startDate | DateTimeZ |
The start date of the associated event. | [1] |
| endDate | DateTimeZ |
The end date of the associated event. | [1] |
| teachingLanguage | LanguageCode |
The main language used to deliver the content of the offering. | [0..1] |
| maxNumberStudents | Integer |
The maximum number of students allowed to enroll for this offering | [0..1] |
| minNumberStudents | Integer |
The minimum number of students allowed to enroll for this offering | [0..1] |
| enrolledNumberStudents | Integer |
The number of students that have already enrolled for this offering | [0..1] |
| pendingNumberStudents | Integer |
The number of students that have a pending enrollment request for this offering | [0..1] |
| roleEnablement | RoleEnablement |
An array to store associated dates for an education offering. Specifically, additional important date and time offsets surrounding when specific roles may be associated with the offering before or after the official start and end dates. These dates are meant to be considered additional metadata about the course offering and applied independent of the startDate and endDate. They are not intended to be used as replacements. | [0..*] |
| recordStatus | RecordStatusTypeEnum |
The status of this record. This value reflects the state of the record itself, not the status of the real-world entity or resource it represents. A record with a status of deleted indicates that it has been marked for removal and may be safely deleted by consuming systems. Systems may choose to remove such records, but are not required to do so | [1] |
| dateLastModified | DateTimeZ |
A timestamp describing when this record was last modified. | [0..1] |
| synchronicity | SynchronicityEnum |
An indicator of whether instructor and learner must both be present at the same time | [0..1] |
| extensions | educationOfferingExtensions |
A container for extension objects. | [0..1] |
| learningObjectiveSet | LearningObjectiveSet |
The set of identifiers for the learning objectives to which this education offering is aligned. Any number groups of learning objectives can be assigned. | [0..*] |
ComponentOffering
A subsection of a courseOffering. It may be a lesson or separately enrollable unit within a courseOffering. For example, Biology 101 may consist of a Lecture component offering and a Lab component offering
| Property | Type | Description | Multiplicity |
|---|---|---|---|
| offeringType | ComponentTypeEnum |
A representation of what the entity defines. It is based on an extensible enumerated vocabulary. | [1] |
| component | ComponentTemplateGUIDRef |
A reference to the componentTemplate. | [1] |
| parent | CourseOfferingGUIDRef |
A reference to the parent courseOffering. | [0..*] |
| sourcedId | GUID |
The sourcedId of the object. This is the interoperability identifier that systems will refer to when making API calls, or when needing to identify an object. Systems SHOULD be able to map whichever local ids (e.g. database key fields) they use to sourcedId. The sourcedId of an object MUST be an anonymized or pseudonymized identifier of an entity and as such will not contain Personally Identifiable Information (PII) or Personal Data (PD). | [1] |
| recordLanguage | LanguageCode |
The primary language used in the described entity. | [1] |
| title | LanguageTypedString |
A set of titles for the associated entity with a designated language for each entry. | [1..*] |
| description | LanguageTypedString |
A set of descriptions of the associated entity with a designated language for each entry. | [1..*] |
| primaryCode | IdentifierEntry |
The primary human readable identifier for the entity. This will often take the form of a human readable code as defined by the institution or region | [1] |
| otherCodes | IdentifierEntry |
Human readable codes/identifiers for the entity being described | [0..*] |
| locations | Location |
A container for describing where the entity takes place. This could be as a description or as a geo location | [0..*] |
| organization | OrganizationGUIDRef |
A reference to an Edu-API Organization. | [1] |
| academicSession | AcademicSessionGUIDRef |
A reference to an Edu-API Academic Session | [1] |
| organizationCode | String |
A business code that a system might use to reference an organization. This value is provided for convenience and should match the value in organization.primaryCode. This attribute was added as a convenience shorthand for organization.primaryCode. | [0..1] |
| academicSessionCode | String |
A business code that a system might use to reference an academic session. This value is provided for convenience and should match the value in academicSession.primaryCode. This attribute was added as a convenience shorthand for academicSession.primaryCode. | [0..1] |
| offeringFormat | OfferingFormatEnum |
The modality by which the entity is delivered. This is represented by an extensible enumerated vocabulary | [1] |
| paceOfStudy | Percentage |
The tempo that the course is taught at as a percentage of a normal course. | [0..1] |
| registrationStatus | RegistrationStatusEnum |
The status of the entity indicating whether it is open for enrollment for teachers and students. This is represented by an extensible enumerated vocabulary. | [1] |
| startDate | DateTimeZ |
The start date of the associated event. | [1] |
| endDate | DateTimeZ |
The end date of the associated event. | [1] |
| teachingLanguage | LanguageCode |
The main language used to deliver the content of the offering. | [0..1] |
| maxNumberStudents | Integer |
The maximum number of students allowed to enroll for this offering | [0..1] |
| minNumberStudents | Integer |
The minimum number of students allowed to enroll for this offering | [0..1] |
| enrolledNumberStudents | Integer |
The number of students that have already enrolled for this offering | [0..1] |
| pendingNumberStudents | Integer |
The number of students that have a pending enrollment request for this offering | [0..1] |
| roleEnablement | RoleEnablement |
An array to store associated dates for an education offering. Specifically, additional important date and time offsets surrounding when specific roles may be associated with the offering before or after the official start and end dates. These dates are meant to be considered additional metadata about the course offering and applied independent of the startDate and endDate. They are not intended to be used as replacements. | [0..*] |
| recordStatus | RecordStatusTypeEnum |
The status of this record. This value reflects the state of the record itself, not the status of the real-world entity or resource it represents. A record with a status of deleted indicates that it has been marked for removal and may be safely deleted by consuming systems. Systems may choose to remove such records, but are not required to do so | [1] |
| dateLastModified | DateTimeZ |
A timestamp describing when this record was last modified. | [0..1] |
| synchronicity | SynchronicityEnum |
An indicator of whether instructor and learner must both be present at the same time | [0..1] |
| extensions | educationOfferingExtensions |
A container for extension objects. | [0..1] |
| learningObjectiveSet | LearningObjectiveSet |
The set of identifiers for the learning objectives to which this education offering is aligned. Any number groups of learning objectives can be assigned. | [0..*] |
Person & Roles
Person
A Person represents a human being, alive or deceased, real or imaginary.
| Property | Type | Description | Multiplicity |
|---|---|---|---|
| sourcedId | GUID |
The sourcedId of the object. This is the interoperability identifier that systems will refer to when making API calls, or when needing to identify an object. Systems SHOULD be able to map whichever local ids (e.g. database key fields) they use to sourcedId. The sourcedId of an object MUST be an anonymized or pseudonymized identifier of an entity and as such will not contain Personally Identifiable Information (PII) or Personal Data (PD). | [1] |
| otherIdentifiers | IdentifierEntry |
A list of additional identifiers for the described entity. | [0..*] |
| recordLanguage | LanguageCode |
The primary language used in the described entity. | [1] |
| legalName | PersonName |
A legal name. | [0..1] |
| formattedName | NFCString |
The long form formatted name. This will often be dependent on region or system requirements. | [0..1] |
| otherNames | PersonNameEntry |
A list of other names for this person. | [0..*] |
| gender | GenderEnum |
The gender of the individual. It is based on an extensible enumerated vocabulary. | [0..1] |
| pronouns | LanguageTypedString |
Pronoun(s) by which this person is referenced. Examples (in the case of English) include 'she/her/hers', 'he/him/his', 'they/them/theirs', 'ze/hir/hir', 'xe/xir', or a statement that the person's name should be used instead of any pronoun. | [0..*] |
| languagesSpoken | LanguageCode |
The list of languages that this person speaks. | [0..*] |
| dateOfBirth | Date |
The date of birth. | [0..1] |
| placeOfBirth | String |
The place of birth. Commonly a city or municipality. | [0..1] |
| countryOfBirth | String |
The country of birth. | [0..1] |
| isDeceased | Boolean |
Used to identify if the person being described is alive or dead. If this property is absent or set to false but the dateOfDeath property is set, then the consuming system should interpret that as the person being deceased. |
[0..1] |
| dateOfDeath | Date |
The date of death. The presence of this property means that the person being described is known to be deceased. In scenarios where this conflicts with the isDeceased flag, this property takes precedence and consuming systems should interpret that as the person being deceased. |
[0..1] |
| primaryEmail | OptionallyTypedEmail |
The primary email address of a subject. | [0..1] |
| otherEmails | TypedEmail |
Additional email addresses of a subject. | [0..*] |
| primaryPhone | OptionallyTypedPhone |
A primary (preferred) phone number. In contexts where only one phone number is specified, the term phone is an alias for this term. |
[0..1] |
| otherPhones | TypedPhone |
A list of other phone numbers | [0..*] |
| primaryAddress | OptionallyTypedAddress |
The primary address. | [0..1] |
| otherAddresses | TypedAddress |
A list of other addresses. | [0..*] |
| agents | Agents |
A container that defines a relationship between an Edu-API Person and other Edu-API Persons who can represent or act on their behalf. This includes a way to describe the type of relationship between the two people. For example, parents or guardians often serve as an agent for a student. | [0..*] |
| dateLastModified | DateTimeZ |
A timestamp describing when this record was last modified. | [0..1] |
| recordStatus | RecordStatusTypeEnum |
The status of this record. This value reflects the state of the record itself, not the status of the real-world entity or resource it represents. A record with a status of deleted indicates that it has been marked for removal and may be safely deleted by consuming systems. Systems may choose to remove such records, but are not required to do so | [1] |
| extensions | personExtensions |
A container for extension objects. | [0..1] |
PersonName
The set of parts that are used to define an Edu-API persons name, this design attempts to account for international naming needs.
| Property | Type | Description | Multiplicity |
|---|---|---|---|
| familyName | String |
Family name. In the western world, often referred to as the 'last name' of a person. | [0..1] |
| givenName | String |
Given name. In the western world, often referred to as the 'first name' of a person. | [0..1] |
| additionalName | String |
Additional name. Includes what is often referred to as 'middle name' in the western world. | [0..1] |
| patronymicName | String |
Patronymic name. | [0..1] |
| honorificPrefix | String |
Honorific prefix(es) preceding a person's name (e.g. 'Dr', 'Mrs' or 'Mr'). | [0..1] |
| honorificSuffix | String |
Honorific suffix(es) following a person's name (e.g. 'M.D, PhD'). | [0..1] |
| familyNamePrefix | String |
Family name prefix. As used in some locales, this is the leading part of a family name (e.g. 'de' in the name 'de Boer'). | [0..1] |
PersonNameEntry
A typed name entry for an Edu-API person, associating a name with a specific name type.
| Property | Type | Description | Multiplicity |
|---|---|---|---|
| nameType | PersonNameTypeEnum |
The type of name described in this entry. | [1] |
| familyName | String |
Family name. In the western world, often referred to as the 'last name' of a person. | [0..1] |
| givenName | String |
Given name. In the western world, often referred to as the 'first name' of a person. | [0..1] |
| additionalName | String |
Additional name. Includes what is often referred to as 'middle name' in the western world. | [0..1] |
| patronymicName | String |
Patronymic name. | [0..1] |
| honorificPrefix | String |
Honorific prefix(es) preceding a person's name (e.g. 'Dr', 'Mrs' or 'Mr'). | [0..1] |
| honorificSuffix | String |
Honorific suffix(es) following a person's name (e.g. 'M.D, PhD'). | [0..1] |
| familyNamePrefix | String |
Family name prefix. As used in some locales, this is the leading part of a family name (e.g. 'de' in the name 'de Boer'). | [0..1] |
Agents
A container with the set of Edu-API persons that can act on behalf of the person in question. This includes description of the type of relationship exists and the context it is applicable in.
| Property | Type | Description | Multiplicity |
|---|---|---|---|
| agentType | AgentTypeEnum |
A description of the relationship between the agent and the person they act on behalf of. This is based on an extensible enumerated vocabulary. | [1] |
| person | PersonGUIDRef |
A reference to an Edu-API person. This represents the person acting in an agency capacity. | [1] |
| description | LanguageTypedString |
A set of descriptions of the associated entity with a designated language for each entry. | [0..*] |
| domain | String |
The context within which the person can act as an agent in. | [0..1] |
Contact Details & Location
Location
A container for describing the location an entity takes place at.
| Property | Type | Description | Multiplicity |
|---|---|---|---|
| identifier | Identifier |
An identifier. | [0..1] |
| description | LanguageTypedString |
A set of descriptions of the associated entity with a designated language for each entry. | [0..*] |
| geoLocation | GeoCoordinates |
The identification of the geographic location entity using a set of longitude and latitude coordinates. | [0..1] |
GeoCoordinates
The geographic coordinates of a location.
| Property | Type | Description | Multiplicity |
|---|---|---|---|
| latitude | Float |
The latitude of the location NGA Geomatics - WGS 84. | [1] |
| longitude | Float |
The longitude of the location NGA Geomatics - WGS 84. | [1] |
Address
A container for the components that describe a physical or postal address.
| Property | Type | Description | Multiplicity |
|---|---|---|---|
| addressCountry | String |
A country. | [0..1] |
| addressCountryCode | CountryCode |
A country code. The value must be a ISO 3166-1 alpha-2 country code Codes for the representation of names of countries and their subdivisions — Part 1: Country code. | [0..1] |
| addressRegion | String |
A region within the country. | [0..1] |
| addressLocality | String |
A locality within the region. | [0..1] |
| streetAddress | String |
A street address within the locality. | [0..1] |
| postOfficeBoxNumber | String |
A post office box number for PO box addresses. | [0..1] |
| postalCode | String |
A postal code. | [0..1] |
| geo | GeoCoordinates |
The geographic coordinates of the location. | [0..1] |
TypedAddress
A typed address.
| Property | Type | Description | Multiplicity |
|---|---|---|---|
| addressType | AddressTypeEnum |
The type of address. This is based on an extensible enumerated vocabulary. | [1] |
| addressCountry | String |
A country. | [0..1] |
| addressCountryCode | CountryCode |
A country code. The value must be a ISO 3166-1 alpha-2 country code Codes for the representation of names of countries and their subdivisions — Part 1: Country code. | [0..1] |
| addressRegion | String |
A region within the country. | [0..1] |
| addressLocality | String |
A locality within the region. | [0..1] |
| streetAddress | String |
A street address within the locality. | [0..1] |
| postOfficeBoxNumber | String |
A post office box number for PO box addresses. | [0..1] |
| postalCode | String |
A postal code. | [0..1] |
| geo | GeoCoordinates |
The geographic coordinates of the location. | [0..1] |
OptionallyTypedAddress
An optionally typed address.
| Property | Type | Description | Multiplicity |
|---|---|---|---|
| addressType | AddressTypeEnum |
The type of address. This is based on an extensible enumerated vocabulary. | [0..1] |
| addressCountry | String |
A country. | [0..1] |
| addressCountryCode | CountryCode |
A country code. The value must be a ISO 3166-1 alpha-2 country code Codes for the representation of names of countries and their subdivisions — Part 1: Country code. | [0..1] |
| addressRegion | String |
A region within the country. | [0..1] |
| addressLocality | String |
A locality within the region. | [0..1] |
| streetAddress | String |
A street address within the locality. | [0..1] |
| postOfficeBoxNumber | String |
A post office box number for PO box addresses. | [0..1] |
| postalCode | String |
A postal code. | [0..1] |
| geo | GeoCoordinates |
The geographic coordinates of the location. | [0..1] |
TypedPhone
A typed phone number.
| Property | Type | Description | Multiplicity |
|---|---|---|---|
| phoneType | PhoneTypeEnum |
The type of phone number. This is based on an extensible enumerated vocabulary. | [1] |
| phone | PhoneNumber |
A phone number. | [1] |
OptionallyTypedPhone
An optionally typed phone number.
| Property | Type | Description | Multiplicity |
|---|---|---|---|
| phoneType | PhoneTypeEnum |
The type of address. This is based on an extensible enumerated vocabulary. | [0..1] |
| phone | PhoneNumber |
A phone number. | [1] |
TypedEmail
A typed email address.
| Property | Type | Description | Multiplicity |
|---|---|---|---|
| emailType | EmailTypeEnum |
The type of email address. This is based on an extensible enumerated vocabulary. | [1] |
EmailAddress |
An email address. | [1] |
OptionallyTypedEmail
An optionally typed email address.
| Property | Type | Description | Multiplicity |
|---|---|---|---|
| emailType | EmailTypeEnum |
The type of email address. | [0..1] |
EmailAddress |
An email address. | [1] |
Organizations
Organization
An administrative unit, it can be a division or subdivision of an institution or the institution itself. Examples: College of Arts and Letters, English Department.
| Property | Type | Description | Multiplicity |
|---|---|---|---|
| sourcedId | GUID |
The sourcedId of the object. This is the interoperability identifier that systems will refer to when making API calls, or when needing to identify an object. Systems SHOULD be able to map whichever local ids (e.g. database key fields) they use to sourcedId. The sourcedId of an object MUST be an anonymized or pseudonymized identifier of an entity and as such will not contain Personally Identifiable Information (PII) or Personal Data (PD). | [1] |
| recordLanguage | LanguageCode |
The primary language used in the described entity. | [1] |
| primaryCode | IdentifierEntry |
The primary human readable identifier for the entity. This will often take the form of a human readable code as defined by the institution or region | [0..1] |
| otherCodes | IdentifierEntry |
Human readable codes/identifiers for the entity being described | [0..*] |
| name | LanguageTypedString |
A name for the associated entity with a designated language for each entry. | [1..*] |
| description | LanguageTypedString |
A set of descriptions of the associated entity with a designated language for each entry. | [0..*] |
| organizationType | String |
The type of Organization. | [1] |
| parent | OrganizationGUIDRef |
A reference to a parent organization. | [0..1] |
| children | OrganizationGUIDRef |
References to child organizations. | [0..*] |
| primaryAddress | OptionallyTypedAddress |
The primary address. | [0..1] |
| otherAddresses | TypedAddress |
A list of other addresses. | [0..*] |
| dateLastModified | DateTimeZ |
A timestamp describing when this record was last modified. | [0..1] |
| recordStatus | RecordStatusTypeEnum |
The status of this record. This value reflects the state of the record itself, not the status of the real-world entity or resource it represents. A record with a status of deleted indicates that it has been marked for removal and may be safely deleted by consuming systems. Systems may choose to remove such records, but are not required to do so | [1] |
| extensions | organizationExtensions |
A container for extension objects. | [0..1] |
Academic Sessions
AcademicSession
A calendar period during which a school or institution schedules classes, offerings, or other units of learning for availability.
| Property | Type | Description | Multiplicity |
|---|---|---|---|
| sourcedId | GUID |
The sourcedId of the object. This is the interoperability identifier that systems will refer to when making API calls, or when needing to identify an object. Systems SHOULD be able to map whichever local ids (e.g. database key fields) they use to sourcedId. The sourcedId of an object MUST be an anonymized or pseudonymized identifier of an entity and as such will not contain Personally Identifiable Information (PII) or Personal Data (PD). | [1] |
| recordLanguage | LanguageCode |
The primary language used in the described entity. | [1] |
| primaryCode | IdentifierEntry |
The primary human readable identifier for the entity. This will often take the form of a human readable code as defined by the institution or region | [0..1] |
| otherCodes | IdentifierEntry |
Human readable codes/identifiers for the entity being described | [0..*] |
| sessionType | AcademicSessionTypeEnum |
The type of academic session. This is based upon an enumerated vocabulary. | [0..1] |
| title | LanguageTypedString |
A set of titles for the associated entity with a designated language for each entry. | [0..*] |
| startDate | DateTimeZ |
The start date of the associated event. | [0..1] |
| endDate | DateTimeZ |
The end date of the associated event. | [0..1] |
| parent | AcademicSessionGUIDRef |
A reference to another Edu-API Academic Session that serves as a parent AcademicSession. |
[0..1] |
| children | AcademicSessionGUIDRef |
A reference to the child AcademicSession objects of this session. |
[0..*] |
| recordStatus | RecordStatusTypeEnum |
The status of this record. This value reflects the state of the record itself, not the status of the real-world entity or resource it represents. A record with a status of deleted indicates that it has been marked for removal and may be safely deleted by consuming systems. Systems may choose to remove such records, but are not required to do so | [1] |
| dateLastModified | DateTimeZ |
A timestamp describing when this record was last modified. | [0..1] |
| extensions | academicSessionExtensions |
A container for extension objects. | [0..1] |
IdentifierEntry
A container to transmit additional needed identifiers
| Property | Type | Description | Multiplicity |
|---|---|---|---|
| identifier | Identifier |
An identifier. | [1] |
| identifierType | IdentifierTypeEnum |
The identifier type. | [1] |
Affiliation
Affiliation
A container that describes an Edu-API persons relationships to organizations; including their role(s) and the time frames those roles are in place.
| Property | Type | Description | Multiplicity |
|---|---|---|---|
| sourcedId | GUID |
The sourcedId of the object. This is the interoperability identifier that systems will refer to when making API calls, or when needing to identify an object. Systems SHOULD be able to map whichever local ids (e.g. database key fields) they use to sourcedId. The sourcedId of an object MUST be an anonymized or pseudonymized identifier of an entity and as such will not contain Personally Identifiable Information (PII) or Personal Data (PD). | [1] |
| person | PersonGUIDRef |
A reference to an Edu-API Person. | [1] |
| organization | OrganizationGUIDRef |
A reference to an Edu-API Organization. | [1] |
| role | RoleTypeEnum |
The role of the associated person in the given context. | [1] |
| startDate | DateTimeZ |
The start date of the associated event. | [0..1] |
| endDate | DateTimeZ |
The end date of the associated event. | [0..1] |
| affiliationStatus | AffiliationStatusEnum |
The status of the person's affiliation with the organization. This is based upon an enumerated vocabulary | [1] |
| recordStatus | RecordStatusTypeEnum |
The status of this record. This value reflects the state of the record itself, not the status of the real-world entity or resource it represents. A record with a status of deleted indicates that it has been marked for removal and may be safely deleted by consuming systems. Systems may choose to remove such records, but are not required to do so | [1] |
| dateLastModified | DateTimeZ |
A timestamp describing when this record was last modified. | [0..1] |
| extensions | affiliationExtensions |
A container for extension objects. | [0..*] |
Enrollment
Enrollment
The contextualized joining of a person and a CourseOffering, CollectionOffering or ComponentOffering.
| Property | Type | Description | Multiplicity |
|---|---|---|---|
| sourcedId | GUID |
The sourcedId of the object. This is the interoperability identifier that systems will refer to when making API calls, or when needing to identify an object. Systems SHOULD be able to map whichever local ids (e.g. database key fields) they use to sourcedId. The sourcedId of an object MUST be an anonymized or pseudonymized identifier of an entity and as such will not contain Personally Identifiable Information (PII) or Personal Data (PD). | [1] |
| recordLanguage | LanguageCode |
The primary language used in the described entity. | [1] |
| isActive | Boolean |
Used to identify if the enrollment described in this entity is currently active or inactive. A value of true indicates that the enrollment is active, a value of false indicates the enrollment is inactive. To be used in conjunction with enrollmentStatus when more details about the enrollment state are required. See the best practices guide for guidance on how to use these properties in tandem. | [1] |
| enrollmentStatus | EnrollmentStatusEnum |
The status of this enrollment. | [1] |
| person | PersonGUIDRef |
A reference to an Edu-API Person. | [1] |
| role | RoleTypeEnum |
The role of the associated person in the given context. | [1] |
| startDate | DateTimeZ |
The start date of the associated event. | [0..1] |
| endDate | DateTimeZ |
The end date of the associated event. | [0..1] |
| educationOffering | EducationOfferingGUIDRef |
A reference to an Edu-API offering entity. This is the instantiated Education the person is being enrolled on. | [1] |
| offeringType | EducationOfferingTypeEnum |
The type of education being offered. This is based on an enumerated vocabulary. | [1] |
| recordStatus | RecordStatusTypeEnum |
The status of this record. This value reflects the state of the record itself, not the status of the real-world entity or resource it represents. A record with a status of deleted indicates that it has been marked for removal and may be safely deleted by consuming systems. Systems may choose to remove such records, but are not required to do so | [1] |
| dateLastModified | DateTimeZ |
A timestamp describing when this record was last modified. | [0..1] |
| extensions | enrollmentExtensions |
A container for extension objects. | [0..1] |
RoleEnablement
An array to store associated dates for an education offering. Specifically, additional important date and time offsets surrounding when specific roles may be associated with the offering before or after the official start and end dates. These dates are meant to be considered additional metadata about the course offering and applied independent of the startDate and endDate. They are not intended to be used as replacements.
| Property | Type | Description | Multiplicity |
|---|---|---|---|
| role | RoleTypeEnum |
The role of the associated person in the given context. | [1] |
| startDate | DateTimeZ |
The start date of the associated event. | [0..1] |
| endDate | DateTimeZ |
The end date of the associated event. | [0..1] |
Learning Objectives
LearningObjectiveSet
This is the container for the set of learning objective identifiers that are from a single source responsible for creating those identifiers.
| Property | Type | Description | Multiplicity |
|---|---|---|---|
| sourcedId | GUID |
The sourcedId of the object. This is the interoperability identifier that systems will refer to when making API calls, or when needing to identify an object. Systems SHOULD be able to map whichever local ids (e.g. database key fields) they use to sourcedId. The sourcedId of an object MUST be an anonymized or pseudonymized identifier of an entity and as such will not contain Personally Identifiable Information (PII) or Personal Data (PD). | [1] |
| recordLanguage | LanguageCode |
The primary language used in the described entity. | [1] |
| recordStatus | RecordStatusTypeEnum |
The status of this record. The record has been, or will immediately be, removed from the upstream system; downstream systems can also remove this record as it won't be used again. | [1] |
| dateLastModified | DateTimeZ |
A timestamp describing when this record was last modified. | [0..1] |
| extensions | learningObjectiveSetExtensions |
A container for extension objects. | [0..1] |
| source | SourceExtEnum |
The source responsible for creating the learning objective identifiers. The permitted values are from an extensible vocabulary. | [1] |
| learningObjectiveIds | NormalizedString |
The set of unique identifiers for the associated learning objectives. If these are CASE identifiers they MUST be valid UUIDs. | [1..*] |
SourceExtEnum Enumeration
The predefined vocabulary for the source that was responsible for creating the learning objective identifiers.
| Term | Description |
|---|---|
| case | The learning objective identifier is a CASE UUID as defined in the IMS CASE specification [CASE, 17]. |
| unknown | The source responsible for creating the learning objectives identifiers is unknown. |
| CTDL-ASN | The learning objective identifier is a CTDL-ASN identifier. |
This class can be extended with additional properties.
Enumerations
Below is the set of enumerated vocabularies in the Edu-API specifications. Systems are not required to support all options within the value sets. Suppliers and institutions should consult their partners to determine which values are supported. Edu-API defines 2 styles of enumerations:
- Enum: a standard enumeration with a fixed vocabulary
- EnumExt: an enumeration with an extensible vocabulary. The pattern for
extending an EnumExt is to precede the new vocabulary term with the
string 'ext:'. For example, if you were adding the term 'post graduate' to
the vocabulary for
educationLevelEnumyou would call itext:postGraduate
EducationOfferingTypeEnum Enumeration
The set of permitted values for educationOfferingType.
| Term | Description |
|---|---|
| collection | A collection of courses or other learning units, used to group them into a coherent whole for enrollment, administrative, or other purposes. A Program is one example of a Course Collection. |
| course | Relates a course to one or more delivery scenarios. |
| component | A subsection of a courseOffering. It may be a lesson or separately enrollable unit within a courseOffering. For example, Biology 101 may consist of a Lecture component offering and a Lab component offering |
This class can be extended with additional properties.
AffiliationStatusEnum Enumeration
The set of permitted values for affiliationStatus.
| Term | Description |
|---|---|
| active | The affiliation is active. |
| inactive | The affiliation is inactive. |
| auditing | The affiliation is under audit. |
| withdrawn | The affiliation has been withdrawn. |
This class can be extended with additional properties.
AgentTypeEnum Enumeration
The set of permitted values for agentType.
| Term | Description |
|---|---|
| parent | Mother or father of the user. |
| guardian | Guardian of the user and NOT the Mother or Father. May also be a Relative. |
| emergencyContact | Any person designated as a contact in case of emergencies. |
This class can be extended with additional properties.
AddressTypeEnum Enumeration
The set of permitted values for addressType.
| Term | Description |
|---|---|
| visitingAddress | A visiting address. |
| mailingAddress | A mailing address. |
| permanentAddress | A permanent address. |
| deliveryAddress | A delivery address. |
| billingAddress | A billing address. |
| homeAddress | A home address. |
| workAddress | A work address. |
| formerAddress | A former (previous) address. |
This class can be extended with additional properties.
PhoneTypeEnum Enumeration
The set of permitted values for phoneType.
| Term | Description |
|---|---|
| homePhone | A home phone number. |
| workPhone | A work phone number. |
| icePhone | A phone number to use in case of emergency. |
This class can be extended with additional properties.
EmailTypeEnum Enumeration
The set of permitted values for emailType.
| Term | Description |
|---|---|
| homeEmail | A home email address. |
| workEmail | A work email address. |
| iceEmail | An email address to use in case of emergency. |
This class can be extended with additional properties.
EducationLevelEnum Enumeration
The set of permitted values for educationLevel.
| Term | Description |
|---|---|
| graduate | A course of study that takes place after the award of an undergraduate academic degree. |
| undergraduate | A course of study that awards a bachelor's or equivalent degree. |
| doctoral | A course of study that awards a PhD's or equivalent degree. |
This class can be extended with additional properties.
CreditTypeEnum Enumeration
The set of permitted values for creditType.
| Term | Description |
|---|---|
| credit | The course of study awards credit towards a designated achievement or degree. |
| nonCredit | The course of study does not award credit towards a designated achievement or degree. |
This class can be extended with additional properties.
CollectionTypeEnum Enumeration
The set of permitted values for collectionType.
| Term | Description |
|---|---|
| program | An organized and defined set of learning activities that enable a student to develop knowledge. A program typically leads to a degree or some other type of accreditation. |
| generalEducation | A grouping of educational units or coursework that represent a general education. |
| requiredCollection | A grouping of educational units or coursework that identifies the contained contents as being needed for completion. |
| electiveCollection | A grouping of educational units or coursework taken at the students discretion. |
| capstoneCollection | The culminating coursework or project that represents the completion of a student's program of study. |
| majorCollection | A grouping of educational units or coursework that upon completion award a Major in that line of study |
| minorCollection | A grouping of educational units or coursework that upon completion award a Minor in that line of study |
| programSpecialization | A grouping of educational units or coursework that a focused area of study within a broader program, typically intended to develop specialized knowledge or skills. |
| nonDegreeCollection | A set of educational units that do not contribute towards a degree. |
This class can be extended with additional properties.
CourseTypeEnum Enumeration
The set of permitted values for courseType.
| Term | Description |
|---|---|
| standard | A normal or general type of course |
| honors | A course that offers a deeper or more rigorous learning experience than typically found at institutions of higher education. |
| research | A course that is focused on investigation of a specific topic. |
| independentStudy | A course undertaken by an individual student with little to no supervision. |
| practicum | A course that is designed to give students supervised practical application of a previously or concurrently studied field or theory. |
| internship | A course that offers real world work experience in a professional setting. |
| studyAbroad | A course undertaken in a foreign country |
| capstone | The culminating and usually integrative experience of an educational program |
| clinical | A nursing course that includes clinical experience |
| correspondence | A course of study in which students and teachers communicate by mail. |
| fieldExperience | A course that provides an opportunity to apply knowledge gained in the classroom with supervised practice in the field |
| seminar | A small, discussion-based course. |
| thesis | An independent research course in which a student conducts thesis research under academic guidance. |
This class can be extended with additional properties.
ComponentTypeEnum Enumeration
The set of permitted values for componentType.
| Term | Description |
|---|---|
| individualizedInstruction | A component that provides instruction tailored to a single learner, typically delivered through one-on-one or self-paced guidance rather than a group instructional setting. |
| integratedLectureLab | A component that combines a lecture and a lab into one offering. |
| laboratory | A component portion that takes place in a laboratory. |
| lecture | A component in which an instructor delivers a talk to an audience. |
| practicum | A component that is designed to give students supervised practical application of a previously or concurrently studied field or theory. |
| recitation | A component that provides time for the application of conceptual knowledge and extension of instruction that occurs in lecture through problem-solving or discussion. |
| research | A component that is focused on investigation of a specific topic. |
| seminar | A small, discussion-based component. |
| independentStudy | A component undertaken by an individual student with little to no supervision |
| fieldExperience | A component that provides an opportunity to apply knowledge gained in the classroom with supervised practice in the field |
| exam | A component that is used to represent students who are taking an exam. |
This class can be extended with additional properties.
OfferingFormatEnum Enumeration
The set of permitted values for offeringFormat.
| Term | Description |
|---|---|
| online | The offering is given completely in an online/internet based mode. |
| blended | The offering has a combination of online and in person instruction. |
| onGround | The offering is given completely in person in a physical space. |
This class can be extended with additional properties.
RegistrationStatusEnum Enumeration
The set of permitted values for registrationStatus.
| Term | Description |
|---|---|
| open | Registration is open and accepting new requests. |
| closed | Registration is closed and no longer accepting new requests. |
| pending | Registration has been requested but that request is still pending. |
| waitlist | The offering is full and the person has been put on a waitlist for registration. |
EnrollmentStatusEnum Enumeration
The set of permitted values for enrollmentStatus.
| Term | Description |
|---|---|
| onLeave | The person has an excused absence from the education. |
| withdrawn | The person has made a decision to leave the education prior to completion. |
| accepted | The person has been offered a place in the education. |
| pending | The person has requested admission to an education but that request has not yet been processed. |
| cancelled | The person has turned down the offered seat before the education starts. |
| registered | The person has been accepted into an education and has selected offerings to enroll on. |
| revoked | The organization has withdrawn a registration for a person. |
| interruption | The person is taking a short break from their education. |
| finished | The person has passed examination and no more activities are expected. |
| withdrawnFailing | The person has made a decision to leave the education prior to completion but after the completion of the add drop period while having a currently failing grade. Withdrawn will often result in a record in a students official transcript. |
| withdrawnPassing | The person has made a decision to leave the education prior to completion but after the completion of the add drop period while having a currently passing grade. Withdrawn will often result in a record in a students official transcript. |
| dropped | The person has left the education within the allotted add/drop period. This will often not result in a record on the students official transcript. |
| suspended | The organization has paused the persons seat in the education. |
| enrolled | The person has accepted the seat and has been activated in the education. |
| declined | Following review, the organization did not offer a seat in the education to the person. |
| deferred | A person has been offered a spot in an education but has chosen to delay their start date. A person with a deferred enrollment will be issued a new enrollment at the time of their actual start. |
| onHold | The organization has placed a block on the person's enrollment based on procedural requirements. e.g. They have not completed the required prerequisite material. |
This class can be extended with additional properties.
IdentifierTypeEnum Enumeration
The set of permitted values for identifierType.
| Term | Description |
|---|---|
| systemId | Identifier assigned to an entity in context of a specific system. |
| productId | Identifier assigned to a specific product. |
| userName | A name used to identify a person within a system. |
| accountId | Identifier assigned to a specific account. |
| emailAddress | An email address. |
| nationalIdentityNumber | Identifier assigned by the government of the person. e.g. a social security number in the USA |
| isbn | International Standard Book Number that serve as product identifiers for Books. |
| issn | International Standard Serial Number used as a product identifier for periodicals. |
| lisSourcedId | An entity’s sourcedId in Learning Information System (LIS) data exchanges. |
| oneRosterSourcedId | An entity’s sourcedId in OneRoster (OR) data exchanges. |
| sisSourcedId | Student Information System Identifier. |
| ltiContextId | Identifier for an entity in the context of an Learning Tools Interoperability(LTI) Launch. |
| ltiDeploymentId | Identifier for a specific Learning Tools Interoperability(LTI) deployment of a tool. |
| ltiToolId | Identifier of a tool in an Learning Tools Interoperability(LTI) integration. |
| ltiPlatformId | Identifier of a platform in an Learning Tools Interoperability(LTI) integration. |
| ltiUserId | Identifier of a user in an Learning Tools Interoperability(LTI) integration. |
| identifier | Generic Identifier. |
This class can be extended with additional properties.
PersonNameTypeEnum Enumeration
The set of permitted values for name types.
| Term | Description |
|---|---|
| legalName | A legal name. |
| preferredName | A preferred (lived) name. |
| phoneticName | Phonetic pronunciation instructions for a name. Provided values MUST be valid to the syntax of the International Phonetic Alphabet International Phonetic Alphabet. |
| aliasName | A fictitious name, pseudonym or alias. |
| formerName | A formerly used name. Includes birth name. |
This class can be extended with additional properties.
GenderEnum Enumeration
The gender of this person. Other values than those defined may be given to capture the gender identity of this Person.
| Term | Description |
|---|---|
| male | The male gender. |
| female | The female gender. |
| unspecified | The gender is unknown or unspecified. |
| other | Another gender identity. |
This class can be extended with additional properties.
RoleTypeEnum Enumeration
The set of permitted values for roleType.
| Term | Description |
|---|---|
| member | A person belonging to the group in reference. |
| chair | A person who presides/leads over a group. |
| staff | An employee of the organization. |
| student | A person who is studying at an organization. |
| administrator | A person who oversees management of some aspect in an organization. |
| aide | Someone who provides appropriate aid to the person but NOT also one of the other roles. |
| guardian | Guardian of the user and NOT the Mother or Father. May also be a Relative. |
| parent | Mother or father of the user. |
| proctor | A person who oversees a student examination. |
| relative | A relative of the user and NOT the Mother or Father. May also be the Guardian. |
| teacher | A Teacher at organization e.g. School. May be used for enrollment. |
| advisor | A person who offers students information pertaining to their degree, courses of study, and university regulations. |
| teachingAssistant | A person who teaches or supports an educational offering but is not the instructor of record. |
This class can be extended with additional properties.
AcademicSessionTypeEnum Enumeration
The set of permitted values used to describe the temporal boundaries of an education.
| Term | Description |
|---|---|
| gradingPeriod | Denotes a period over which some grade/result is to be awarded. |
| semester | Denotes a semester period. There are typically two semesters per schoolYear. |
| schoolYear | Denotes the school year. |
| term | Denotes a term period. Typically there are three terms per schoolYear. |
| studyPeriod | Denotes a subdivision of an academic term. |
This class can be extended with additional properties.
RecordStatusTypeEnum Enumeration
The set of values to describe the state of a record in the source system. For systems migrating from, or making use of OneRoster, deleted is to be considered synonymous with toBeDeleted.
| Term | Description |
|---|---|
| active | The record is present and actively used in the system. |
| deleted | The record has been, or will immediately be, removed from the upstream system; downstream systems can also remove this record as it won't be used again. |
| inactive | The record is present, but not actively used in the system (it should not be removed, but also not used). |
SynchronicityEnum Enumeration
The set of permitted values used to describe whether an education offering is taught in person, online, or via a hybrid, combined approach.
| Term | Description |
|---|---|
| hybrid | Instruction includes both synchronous and asynchronous components. |
| asynchronous | Instruction occurs without real-time interaction between instructor and learner. |
| synchronous | Instruction requires real-time interaction between instructor and learner. |
This class can be extended with additional properties.
Primitive Types
The primitive types in this section are shared by all 1EdTech specifications.
| Type | Description |
|---|---|
| Boolean | A boolean, expressed as true or false |
| Date | An Representation of dates and times. ISO 8601:2004. calendar date using the syntax YYYY-MM-DD. |
| DateTime | An Representation of dates and times. ISO 8601:2004. time using the syntax YYYY-MM-DDThh:mm:ss. |
| Float | |
| Integer | |
| Language | A language code Tags for Identifying Languages. |
| Namespace | A namespace data type for defining data from a context other than that as the default for the data model. This is used for importing other data models. |
| NonNegativeInteger | |
| NormalizedString | A String conforming to the normalizedString definition in W3C XML Schema Definition Language (XSD) 1.1 Part 2: Datatypes. |
| PositiveInteger | |
| String | Character strings. |
Derived Types
The derived types in this section are shared by all 1EdTech specifications.
| Type | Description |
|---|---|
| BaseTerm | A term in an enumeration which serves as a common term for all other entries in this enumeration, and as such is less specific. The lexical constraints are the same as for Term. |
| CountryCode | A two-digit ISO 3166-1 alpha-2 country code Codes for the representation of names of countries and their subdivisions — Part 1: Country code. |
| DateTimeZ | A DateTime with the trailing timezone specifier included, e.g. 2021-09-07T02:09:59+02:00 |
| EmailAddress | A NormalizedString representing an email address. |
| GUID | The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID. |
| GUIDRef | The data-type for establishing a Globally Unique Identifier (GUID). There is no predefined structure for the GUID. |
| Identifier | A NormalizedString that functions as an identifier. |
| LanguageCode | A language code Tags for Identifying Languages. |
| NFCString | A NormalizedString further normalized using Unicode Normalization Form C Unicode Normalization Forms. |
| Percentage | A percentage expression without fractions. One, two or three digits followed by the '%' character. |
| PhoneNumber | A NormalizedString representing a phone number. |
| Reference | An Identifier that functions as a reference to another entity by means of spelling out the identifier of the referenced entity. |
| Term | A term in an enumeration. The lexical constraints are the same as for Token. |
| UUID | An Identifier with the lexical restrictions of a UUID A Universally Unique IDentifier (UUID) URN Namespace |
| UUIDRef | A Reference using a UUID. |
GUID References
Set of classes that allow references to Edu-API Objects via their GUIDs
| Type | Description |
|---|---|
| AcademicSessionGUIDRef | A reference to an AcademicSession object that has an allocated sourcedId (GUID). |
| CollectionOfferingGUIDRef | A reference to an EducationCollectionOffering object that has an allocated sourcedId (GUID). |
| CollectionTemplateGUIDRef | A reference to an EducationCollection object that has an allocated sourcedId (GUID). |
| ComponentTemplateGUIDRef | A reference to an EducationComponent object that has an allocated sourcedId (GUID). |
| CourseOfferingGUIDRef | A reference to a CourseOffering object that has an allocated sourcedId (GUID). |
| CourseTemplateGUIDRef | A reference to a Course object that has an allocated sourcedId (GUID). |
| EducationOfferingGUIDRef | A reference to a EducationCollectionOffering, CourseOffering or EducationComponentOffering object that has an allocated sourcedId (GUID). |
| OrganizationGUIDRef | A reference to an Organization object that has an allocated sourcedId (GUID). |
| PersonGUIDRef | A reference to a Person object that has an allocated sourcedId (GUID). |
Language
LanguageTypedString
A String with an associated language code.
| Property | Type | Description | Multiplicity |
|---|---|---|---|
| recordLanguage | LanguageCode |
The primary language used in the described entity. | [1] |
| value | String |
The string value. | [1] |
Extension Points
learningObjectiveSetExtensions
Extension properties related Learning Objective Sets This class can be extended with additional properties.
educationOfferingExtensions
Extension properties related to education offerings This class can be extended with additional properties.
educationExtensions
Extension properties related to education templates This class can be extended with additional properties.
enrollmentExtensions
Extension properties related to enrollments This class can be extended with additional properties.
personExtensions
Extension properties related to Edu-API persons This class can be extended with additional properties.
affiliationExtensions
Extension properties related to affiliations This class can be extended with additional properties.
organizationExtensions
Extension properties related to education organizations This class can be extended with additional properties.
academicSessionExtensions
Extension properties related to education academic sessions This class can be extended with additional properties.
Service Definitions
Imsx_StatusInfo
This is the container for the status code and associated information returned within the HTTP messages received from the Service Provider.
| Property | Type | Description | Multiplicity |
|---|---|---|---|
| imsx_codeMajor | Imsx_CodeMajor |
The code major value (from the corresponding enumerated vocabulary). | [1] |
| imsx_severity | Imsx_Severity |
The severity value (from the corresponding enumerated vocabulary). | [1] |
| imsx_description | String |
A human readable description supplied by the entity creating the status code information. | [0..1] |
| imsx_codeMinor | Imsx_CodeMinor |
The set of reported code minor status codes. | [0..1] |
Imsx_CodeMajor Enumeration
This is the set of primary status report values i.e. the major code assigned to the status block. This is used in conjunction with the 'Severity' structure in the status object.
| Term | Description |
|---|---|
| failure | Denotes that the transaction request has failed. The detailed reason will be reported in the accompanying 'codeMinor' fields. |
| processing | Denotes that the request is being processed at the destination or there has been a local transmission failure. This value is used in asynchronous services. |
| success | Denotes that the request has been successfully completed. If the associated 'severity' value is 'warning' then the request has been partially successful i.e. best effort by the service provider. Other parts of the status information may provide more insight into a partial success response. |
| unsupported | Denotes that the service provider does not support the requested operation. This is the required default response for an unsupported operation by an implementation. |
Imsx_Severity Enumeration
This is the context for the status report values. This is used in conjunction with the 'CodeMajor' structure in the status object.
| Term | Description |
|---|---|
| error | A catastrophic error has occurred in processing the request and so the request was not completed (the Service Provider may not even have received the request). |
| status | The request has been completed and a response was received from the Service Provider. |
| warning | The request has only been partially completed. For an asynchronous service a further response should be expected. |
Imsx_CodeMinor
This is the container for the set of code minor status codes reported in the responses from the Service Provider.
| Property | Type | Description | Multiplicity |
|---|---|---|---|
| imsx_codeMinorField | Imsx_CodeMinorField |
Each reported code minor status code. | [1..*] |
Imsx_CodeMinorField
This is the container for a single code minor status code.
| Property | Type | Description | Multiplicity |
|---|---|---|---|
| imsx_codeMinorFieldName | NormalizedString |
This should contain the identity of the system that has produced the code minor status code report. | [1] |
| imsx_codeMinorFieldValue | Imsx_CodeMinorFieldValue |
The code minor status code (this is a value from the corresponding enumerated vocabulary). | [1] |
Imsx_CodeMinorFieldValue Enumeration
This is the set of codeMinor status codes that are used to provide further insight into the completion status of the end-to-end transaction i.e. this should be used to provide more information than would be supplied by an HTTP code.
| Term | Description |
|---|---|
| forbidden | This is used to indicate that the server can be reached and process the request but refuses to take any further action. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and for a REST binding a HTTP code of '403'. |
| fullsuccess | The request has been fully and successfully implemented by the service provider. For a REST binding this will have an HTTP code of '200' for a successful search request. |
| internal_server_error | This should be used only if there is catastrophic error and there is not a more appropriate code. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and for a REST binding a HTTP code of '500'. |
| invalid_data | This error condition may occur if a JSON request/response body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and a HTTP code of '422'. |
| invalid_query_parameter | An invalid data query parameter field was supplied and the query could not be processed. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and for a REST binding a HTTP code of '400'. |
| misdirected_request | This is used to indicate that the request was made with a protocol that is not supported by the server. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and for a REST binding a HTTP code of '421'. |
| not_acceptable | This is used to indicate that the server cannot provide a response with a Content-Type that matches any of the content types in the request Accept header. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and for a REST binding a HTTP code of '406'. |
| not_allowed | This is used to indicate that the server does not allow the HTTP method. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and for a REST binding a HTTP code of '405'. |
| not_found | This is used to indicate that the server did not find the resource. This would be accompanied by the 'codeMajor/severity' values of 'failure/status' and for a REST binding a HTTP code of '404'. |
| not_modified | This is used to indicate that the server did not modify the resource. This would be accompanied by the 'codeMajor/severity' values of 'success/status' and for a REST binding a HTTP code of '304'. |
| server_busy | The server is receiving too many requests. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and for a REST binding a HTTP code of '429'. |
| unauthorizedrequest | The request was not correctly authorised. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and for a REST binding a HTTP code of '401'. |
| unknown | Any other error occurred. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and for a REST binding a HTTP code corresponding to the error. |
Service Descriptions
EducationManagement
Operations relating to the Abstract Education Resources
getEducationTemplates
Read all education templates for an institution
Request
GET /1edtech/eduapi/base/v1p0/educationTemplates?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
limit query |
PositiveInteger |
Specifices the download segmentation value i.e. the maximum number of records to be contained in the response. Default: 100. | Optional |
offset query |
NonNegativeInteger |
Specifices the number of the first record to be supplied in the segmented response message. Default: 0. | Optional |
sort query |
String |
Specifies that the collection should be sorted on the given data field value. The form of ordering is implementation dependent if the 'orderBy' attribute is not used. | Optional |
orderBy query |
String |
Specifies whether the collection should be ordered ascending (asc) or descending (desc). | Optional |
filter query |
String |
Specifies that the returned collection should be filtered using the supplied criteria. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality Level |
|---|---|---|---|---|---|
| 200 | application/json | Education[] |
Required | Unrestricted | |
| 400 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server cannot or will not process the request due to something that is perceived to be a client error. | Required | Unrestricted |
| 401 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the request has not been applied because it lacks valid authentication credentials for the target resource. | Required | Unrestricted |
| 403 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server understood the request but refuses to fulfill it. The exact reason SHOULD be explained in the response payload. | Required | Unrestricted |
| 422 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, used when the server cannot validate an incoming entity. | Required | Unrestricted |
| 429 | application/json | Imsx_StatusInfo |
As defined in Additional HTTP Status Codes, indicating that the user has sent too many requests in a given amount of time ('rate limiting'). | Required | Unrestricted |
| 500 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics. Implementations SHOULD avoid using this error code - use only if there is catastrophic error and there is not a more appropriate code. | Required | Unrestricted |
| DEFAULT | application/json | Imsx_StatusInfo |
The request was invalid or cannot be served. The exact error SHOULD be explained in the response payload. | Required | Unrestricted |
getEducationTemplateById
Read a collection template with a specific id
Request
GET /1edtech/eduapi/base/v1p0/educationTemplates/{id}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
id path |
GUIDRef |
The sourcedId of the Education | Required |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality Level |
|---|---|---|---|---|---|
| 200 | application/json | Education |
Required | Unrestricted | |
| 400 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server cannot or will not process the request due to something that is perceived to be a client error. | Required | Unrestricted |
| 401 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the request has not been applied because it lacks valid authentication credentials for the target resource. | Required | Unrestricted |
| 403 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server understood the request but refuses to fulfill it. The exact reason SHOULD be explained in the response payload. | Required | Unrestricted |
| 404 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the origin server did not find a current representation for the target resource or is not willing to disclose that one exists. | Required | Unrestricted |
| 422 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, used when the server cannot validate an incoming entity. | Required | Unrestricted |
| 429 | application/json | Imsx_StatusInfo |
As defined in Additional HTTP Status Codes, indicating that the user has sent too many requests in a given amount of time ('rate limiting'). | Required | Unrestricted |
| 500 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics. Implementations SHOULD avoid using this error code - use only if there is catastrophic error and there is not a more appropriate code. | Required | Unrestricted |
| DEFAULT | application/json | Imsx_StatusInfo |
The request was invalid or cannot be served. The exact error SHOULD be explained in the response payload. | Required | Unrestricted |
getEducationOfferings
Read all education templates for an institution
Request
GET /1edtech/eduapi/base/v1p0/educationOfferings?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
limit query |
PositiveInteger |
Specifices the download segmentation value i.e. the maximum number of records to be contained in the response. Default: 100. | Optional |
offset query |
NonNegativeInteger |
Specifices the number of the first record to be supplied in the segmented response message. Default: 0. | Optional |
sort query |
String |
Specifies that the collection should be sorted on the given data field value. The form of ordering is implementation dependent if the 'orderBy' attribute is not used. | Optional |
orderBy query |
String |
Specifies whether the collection should be ordered ascending (asc) or descending (desc). | Optional |
filter query |
String |
Specifies that the returned collection should be filtered using the supplied criteria. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality Level |
|---|---|---|---|---|---|
| 200 | application/json | EducationOffering[] |
Required | Unrestricted | |
| 400 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server cannot or will not process the request due to something that is perceived to be a client error. | Required | Unrestricted |
| 401 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the request has not been applied because it lacks valid authentication credentials for the target resource. | Required | Unrestricted |
| 403 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server understood the request but refuses to fulfill it. The exact reason SHOULD be explained in the response payload. | Required | Unrestricted |
| 422 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, used when the server cannot validate an incoming entity. | Required | Unrestricted |
| 429 | application/json | Imsx_StatusInfo |
As defined in Additional HTTP Status Codes, indicating that the user has sent too many requests in a given amount of time ('rate limiting'). | Required | Unrestricted |
| 500 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics. Implementations SHOULD avoid using this error code - use only if there is catastrophic error and there is not a more appropriate code. | Required | Unrestricted |
| DEFAULT | application/json | Imsx_StatusInfo |
The request was invalid or cannot be served. The exact error SHOULD be explained in the response payload. | Required | Unrestricted |
getEducationOfferingById
Read a collection template with a specific id
Request
GET /1edtech/eduapi/base/v1p0/educationOfferings/{id}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
id path |
GUIDRef |
The sourcedId of the Education | Required |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality Level |
|---|---|---|---|---|---|
| 200 | application/json | EducationOffering |
Required | Unrestricted | |
| 400 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server cannot or will not process the request due to something that is perceived to be a client error. | Required | Unrestricted |
| 401 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the request has not been applied because it lacks valid authentication credentials for the target resource. | Required | Unrestricted |
| 403 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server understood the request but refuses to fulfill it. The exact reason SHOULD be explained in the response payload. | Required | Unrestricted |
| 404 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the origin server did not find a current representation for the target resource or is not willing to disclose that one exists. | Required | Unrestricted |
| 422 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, used when the server cannot validate an incoming entity. | Required | Unrestricted |
| 429 | application/json | Imsx_StatusInfo |
As defined in Additional HTTP Status Codes, indicating that the user has sent too many requests in a given amount of time ('rate limiting'). | Required | Unrestricted |
| 500 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics. Implementations SHOULD avoid using this error code - use only if there is catastrophic error and there is not a more appropriate code. | Required | Unrestricted |
| DEFAULT | application/json | Imsx_StatusInfo |
The request was invalid or cannot be served. The exact error SHOULD be explained in the response payload. | Required | Unrestricted |
getAllCollectionTemplates
Read all collection templates for an institution
Request
GET /1edtech/eduapi/base/v1p0/collectionTemplates?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
limit query |
PositiveInteger |
Specifices the download segmentation value i.e. the maximum number of records to be contained in the response. Default: 100. | Optional |
offset query |
NonNegativeInteger |
Specifices the number of the first record to be supplied in the segmented response message. Default: 0. | Optional |
sort query |
String |
Specifies that the collection should be sorted on the given data field value. The form of ordering is implementation dependent if the 'orderBy' attribute is not used. | Optional |
orderBy query |
String |
Specifies whether the collection should be ordered ascending (asc) or descending (desc). | Optional |
filter query |
String |
Specifies that the returned collection should be filtered using the supplied criteria. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality Level |
|---|---|---|---|---|---|
| 200 | application/json | CollectionTemplate[] |
Required | Unrestricted | |
| 400 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server cannot or will not process the request due to something that is perceived to be a client error. | Required | Unrestricted |
| 401 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the request has not been applied because it lacks valid authentication credentials for the target resource. | Required | Unrestricted |
| 403 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server understood the request but refuses to fulfill it. The exact reason SHOULD be explained in the response payload. | Required | Unrestricted |
| 422 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, used when the server cannot validate an incoming entity. | Required | Unrestricted |
| 429 | application/json | Imsx_StatusInfo |
As defined in Additional HTTP Status Codes, indicating that the user has sent too many requests in a given amount of time ('rate limiting'). | Required | Unrestricted |
| 500 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics. Implementations SHOULD avoid using this error code - use only if there is catastrophic error and there is not a more appropriate code. | Required | Unrestricted |
| DEFAULT | application/json | Imsx_StatusInfo |
The request was invalid or cannot be served. The exact error SHOULD be explained in the response payload. | Required | Unrestricted |
getCollectionTemplateById
Read a collection template with a specific id
Request
GET /1edtech/eduapi/base/v1p0/collectionTemplates/{id}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
id path |
GUIDRef |
The sourcedId of the CollectionTemplate | Required |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality Level |
|---|---|---|---|---|---|
| 200 | application/json | CollectionTemplate |
Required | Unrestricted | |
| 400 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server cannot or will not process the request due to something that is perceived to be a client error. | Required | Unrestricted |
| 401 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the request has not been applied because it lacks valid authentication credentials for the target resource. | Required | Unrestricted |
| 403 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server understood the request but refuses to fulfill it. The exact reason SHOULD be explained in the response payload. | Required | Unrestricted |
| 404 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the origin server did not find a current representation for the target resource or is not willing to disclose that one exists. | Required | Unrestricted |
| 422 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, used when the server cannot validate an incoming entity. | Required | Unrestricted |
| 429 | application/json | Imsx_StatusInfo |
As defined in Additional HTTP Status Codes, indicating that the user has sent too many requests in a given amount of time ('rate limiting'). | Required | Unrestricted |
| 500 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics. Implementations SHOULD avoid using this error code - use only if there is catastrophic error and there is not a more appropriate code. | Required | Unrestricted |
| DEFAULT | application/json | Imsx_StatusInfo |
The request was invalid or cannot be served. The exact error SHOULD be explained in the response payload. | Required | Unrestricted |
getAllCourseTemplates
Read all course templates for an institution
Request
GET /1edtech/eduapi/base/v1p0/courseTemplates?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
limit query |
PositiveInteger |
Specifices the download segmentation value i.e. the maximum number of records to be contained in the response. Default: 100. | Optional |
offset query |
NonNegativeInteger |
Specifices the number of the first record to be supplied in the segmented response message. Default: 0. | Optional |
sort query |
String |
Specifies that the collection should be sorted on the given data field value. The form of ordering is implementation dependent if the 'orderBy' attribute is not used. | Optional |
orderBy query |
String |
Specifies whether the collection should be ordered ascending (asc) or descending (desc). | Optional |
filter query |
String |
Specifies that the returned collection should be filtered using the supplied criteria. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality Level |
|---|---|---|---|---|---|
| 200 | application/json | CourseTemplate[] |
Required | Unrestricted | |
| 400 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server cannot or will not process the request due to something that is perceived to be a client error. | Required | Unrestricted |
| 401 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the request has not been applied because it lacks valid authentication credentials for the target resource. | Required | Unrestricted |
| 403 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server understood the request but refuses to fulfill it. The exact reason SHOULD be explained in the response payload. | Required | Unrestricted |
| 422 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, used when the server cannot validate an incoming entity. | Required | Unrestricted |
| 429 | application/json | Imsx_StatusInfo |
As defined in Additional HTTP Status Codes, indicating that the user has sent too many requests in a given amount of time ('rate limiting'). | Required | Unrestricted |
| 500 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics. Implementations SHOULD avoid using this error code - use only if there is catastrophic error and there is not a more appropriate code. | Required | Unrestricted |
| DEFAULT | application/json | Imsx_StatusInfo |
The request was invalid or cannot be served. The exact error SHOULD be explained in the response payload. | Required | Unrestricted |
getCourseTemplateById
Read a course template with a specific id
Request
GET /1edtech/eduapi/base/v1p0/courseTemplates/{id}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
id path |
GUIDRef |
The sourcedId of the CourseTemplate | Required |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality Level |
|---|---|---|---|---|---|
| 200 | application/json | CourseTemplate |
Required | Unrestricted | |
| 400 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server cannot or will not process the request due to something that is perceived to be a client error. | Required | Unrestricted |
| 401 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the request has not been applied because it lacks valid authentication credentials for the target resource. | Required | Unrestricted |
| 403 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server understood the request but refuses to fulfill it. The exact reason SHOULD be explained in the response payload. | Required | Unrestricted |
| 404 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the origin server did not find a current representation for the target resource or is not willing to disclose that one exists. | Required | Unrestricted |
| 422 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, used when the server cannot validate an incoming entity. | Required | Unrestricted |
| 429 | application/json | Imsx_StatusInfo |
As defined in Additional HTTP Status Codes, indicating that the user has sent too many requests in a given amount of time ('rate limiting'). | Required | Unrestricted |
| 500 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics. Implementations SHOULD avoid using this error code - use only if there is catastrophic error and there is not a more appropriate code. | Required | Unrestricted |
| DEFAULT | application/json | Imsx_StatusInfo |
The request was invalid or cannot be served. The exact error SHOULD be explained in the response payload. | Required | Unrestricted |
getAllComponentTemplates
Read all component templates for an institution
Request
GET /1edtech/eduapi/base/v1p0/componentTemplates?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
limit query |
PositiveInteger |
Specifices the download segmentation value i.e. the maximum number of records to be contained in the response. Default: 100. | Optional |
offset query |
NonNegativeInteger |
Specifices the number of the first record to be supplied in the segmented response message. Default: 0. | Optional |
sort query |
String |
Specifies that the collection should be sorted on the given data field value. The form of ordering is implementation dependent if the 'orderBy' attribute is not used. | Optional |
orderBy query |
String |
Specifies whether the collection should be ordered ascending (asc) or descending (desc). | Optional |
filter query |
String |
Specifies that the returned collection should be filtered using the supplied criteria. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality Level |
|---|---|---|---|---|---|
| 200 | application/json | ComponentTemplate[] |
Required | Unrestricted | |
| 400 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server cannot or will not process the request due to something that is perceived to be a client error. | Required | Unrestricted |
| 401 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the request has not been applied because it lacks valid authentication credentials for the target resource. | Required | Unrestricted |
| 403 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server understood the request but refuses to fulfill it. The exact reason SHOULD be explained in the response payload. | Required | Unrestricted |
| 422 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, used when the server cannot validate an incoming entity. | Required | Unrestricted |
| 429 | application/json | Imsx_StatusInfo |
As defined in Additional HTTP Status Codes, indicating that the user has sent too many requests in a given amount of time ('rate limiting'). | Required | Unrestricted |
| 500 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics. Implementations SHOULD avoid using this error code - use only if there is catastrophic error and there is not a more appropriate code. | Required | Unrestricted |
| DEFAULT | application/json | Imsx_StatusInfo |
The request was invalid or cannot be served. The exact error SHOULD be explained in the response payload. | Required | Unrestricted |
getComponentTemplateById
Read a component with a specific id
Request
GET /1edtech/eduapi/base/v1p0/componentTemplates/{id}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
id path |
GUIDRef |
The sourcedId of the ComponentTemplate | Required |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality Level |
|---|---|---|---|---|---|
| 200 | application/json | ComponentTemplate |
Required | Unrestricted | |
| 400 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server cannot or will not process the request due to something that is perceived to be a client error. | Required | Unrestricted |
| 401 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the request has not been applied because it lacks valid authentication credentials for the target resource. | Required | Unrestricted |
| 403 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server understood the request but refuses to fulfill it. The exact reason SHOULD be explained in the response payload. | Required | Unrestricted |
| 404 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the origin server did not find a current representation for the target resource or is not willing to disclose that one exists. | Required | Unrestricted |
| 422 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, used when the server cannot validate an incoming entity. | Required | Unrestricted |
| 429 | application/json | Imsx_StatusInfo |
As defined in Additional HTTP Status Codes, indicating that the user has sent too many requests in a given amount of time ('rate limiting'). | Required | Unrestricted |
| 500 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics. Implementations SHOULD avoid using this error code - use only if there is catastrophic error and there is not a more appropriate code. | Required | Unrestricted |
| DEFAULT | application/json | Imsx_StatusInfo |
The request was invalid or cannot be served. The exact error SHOULD be explained in the response payload. | Required | Unrestricted |
getAllCollectionOfferings
Read all collectionOfferings for an institution
Request
GET /1edtech/eduapi/base/v1p0/collectionOfferings?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
limit query |
PositiveInteger |
Specifices the download segmentation value i.e. the maximum number of records to be contained in the response. Default: 100. | Optional |
offset query |
NonNegativeInteger |
Specifices the number of the first record to be supplied in the segmented response message. Default: 0. | Optional |
sort query |
String |
Specifies that the collection should be sorted on the given data field value. The form of ordering is implementation dependent if the 'orderBy' attribute is not used. | Optional |
orderBy query |
String |
Specifies whether the collection should be ordered ascending (asc) or descending (desc). | Optional |
filter query |
String |
Specifies that the returned collection should be filtered using the supplied criteria. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality Level |
|---|---|---|---|---|---|
| 200 | application/json | CollectionOffering[] |
Required | Unrestricted | |
| 400 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server cannot or will not process the request due to something that is perceived to be a client error. | Required | Unrestricted |
| 401 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the request has not been applied because it lacks valid authentication credentials for the target resource. | Required | Unrestricted |
| 403 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server understood the request but refuses to fulfill it. The exact reason SHOULD be explained in the response payload. | Required | Unrestricted |
| 422 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, used when the server cannot validate an incoming entity. | Required | Unrestricted |
| 429 | application/json | Imsx_StatusInfo |
As defined in Additional HTTP Status Codes, indicating that the user has sent too many requests in a given amount of time ('rate limiting'). | Required | Unrestricted |
| 500 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics. Implementations SHOULD avoid using this error code - use only if there is catastrophic error and there is not a more appropriate code. | Required | Unrestricted |
| DEFAULT | application/json | Imsx_StatusInfo |
The request was invalid or cannot be served. The exact error SHOULD be explained in the response payload. | Required | Unrestricted |
getCollectionOfferingById
Read collectionOffering with a specific Id
Request
GET /1edtech/eduapi/base/v1p0/collectionOfferings/{id}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
id path |
GUIDRef |
The sourcedId of the CollectionOffering | Required |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality Level |
|---|---|---|---|---|---|
| 200 | application/json | CollectionOffering |
Required | Unrestricted | |
| 400 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server cannot or will not process the request due to something that is perceived to be a client error. | Required | Unrestricted |
| 401 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the request has not been applied because it lacks valid authentication credentials for the target resource. | Required | Unrestricted |
| 403 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server understood the request but refuses to fulfill it. The exact reason SHOULD be explained in the response payload. | Required | Unrestricted |
| 404 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the origin server did not find a current representation for the target resource or is not willing to disclose that one exists. | Required | Unrestricted |
| 422 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, used when the server cannot validate an incoming entity. | Required | Unrestricted |
| 429 | application/json | Imsx_StatusInfo |
As defined in Additional HTTP Status Codes, indicating that the user has sent too many requests in a given amount of time ('rate limiting'). | Required | Unrestricted |
| 500 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics. Implementations SHOULD avoid using this error code - use only if there is catastrophic error and there is not a more appropriate code. | Required | Unrestricted |
| DEFAULT | application/json | Imsx_StatusInfo |
The request was invalid or cannot be served. The exact error SHOULD be explained in the response payload. | Required | Unrestricted |
getAllCourseOfferings
Read all courseOfferings for an institution
Request
GET /1edtech/eduapi/base/v1p0/courseOfferings?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
limit query |
PositiveInteger |
Specifices the download segmentation value i.e. the maximum number of records to be contained in the response. Default: 100. | Optional |
offset query |
NonNegativeInteger |
Specifices the number of the first record to be supplied in the segmented response message. Default: 0. | Optional |
sort query |
String |
Specifies that the collection should be sorted on the given data field value. The form of ordering is implementation dependent if the 'orderBy' attribute is not used. | Optional |
orderBy query |
String |
Specifies whether the collection should be ordered ascending (asc) or descending (desc). | Optional |
filter query |
String |
Specifies that the returned collection should be filtered using the supplied criteria. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality Level |
|---|---|---|---|---|---|
| 200 | application/json | CourseOffering[] |
Required | Unrestricted | |
| 400 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server cannot or will not process the request due to something that is perceived to be a client error. | Required | Unrestricted |
| 401 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the request has not been applied because it lacks valid authentication credentials for the target resource. | Required | Unrestricted |
| 403 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server understood the request but refuses to fulfill it. The exact reason SHOULD be explained in the response payload. | Required | Unrestricted |
| 422 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, used when the server cannot validate an incoming entity. | Required | Unrestricted |
| 429 | application/json | Imsx_StatusInfo |
As defined in Additional HTTP Status Codes, indicating that the user has sent too many requests in a given amount of time ('rate limiting'). | Required | Unrestricted |
| 500 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics. Implementations SHOULD avoid using this error code - use only if there is catastrophic error and there is not a more appropriate code. | Required | Unrestricted |
| DEFAULT | application/json | Imsx_StatusInfo |
The request was invalid or cannot be served. The exact error SHOULD be explained in the response payload. | Required | Unrestricted |
getCourseOfferingById
Read courseOffering with a specific Id
Request
GET /1edtech/eduapi/base/v1p0/courseOfferings/{id}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
id path |
GUIDRef |
The sourcedId of the CourseOffering | Required |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality Level |
|---|---|---|---|---|---|
| 200 | application/json | CourseOffering |
Required | Unrestricted | |
| 400 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server cannot or will not process the request due to something that is perceived to be a client error. | Required | Unrestricted |
| 401 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the request has not been applied because it lacks valid authentication credentials for the target resource. | Required | Unrestricted |
| 403 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server understood the request but refuses to fulfill it. The exact reason SHOULD be explained in the response payload. | Required | Unrestricted |
| 404 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the origin server did not find a current representation for the target resource or is not willing to disclose that one exists. | Required | Unrestricted |
| 422 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, used when the server cannot validate an incoming entity. | Required | Unrestricted |
| 429 | application/json | Imsx_StatusInfo |
As defined in Additional HTTP Status Codes, indicating that the user has sent too many requests in a given amount of time ('rate limiting'). | Required | Unrestricted |
| 500 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics. Implementations SHOULD avoid using this error code - use only if there is catastrophic error and there is not a more appropriate code. | Required | Unrestricted |
| DEFAULT | application/json | Imsx_StatusInfo |
The request was invalid or cannot be served. The exact error SHOULD be explained in the response payload. | Required | Unrestricted |
getAllComponentOfferings
Read all ComponentOfferings for an institution
Request
GET /1edtech/eduapi/base/v1p0/componentOfferings?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
limit query |
PositiveInteger |
Specifices the download segmentation value i.e. the maximum number of records to be contained in the response. Default: 100. | Optional |
offset query |
NonNegativeInteger |
Specifices the number of the first record to be supplied in the segmented response message. Default: 0. | Optional |
sort query |
String |
Specifies that the collection should be sorted on the given data field value. The form of ordering is implementation dependent if the 'orderBy' attribute is not used. | Optional |
orderBy query |
String |
Specifies whether the collection should be ordered ascending (asc) or descending (desc). | Optional |
filter query |
String |
Specifies that the returned collection should be filtered using the supplied criteria. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality Level |
|---|---|---|---|---|---|
| 200 | application/json | ComponentOffering[] |
Required | Unrestricted | |
| 400 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server cannot or will not process the request due to something that is perceived to be a client error. | Required | Unrestricted |
| 401 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the request has not been applied because it lacks valid authentication credentials for the target resource. | Required | Unrestricted |
| 403 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server understood the request but refuses to fulfill it. The exact reason SHOULD be explained in the response payload. | Required | Unrestricted |
| 422 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, used when the server cannot validate an incoming entity. | Required | Unrestricted |
| 429 | application/json | Imsx_StatusInfo |
As defined in Additional HTTP Status Codes, indicating that the user has sent too many requests in a given amount of time ('rate limiting'). | Required | Unrestricted |
| 500 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics. Implementations SHOULD avoid using this error code - use only if there is catastrophic error and there is not a more appropriate code. | Required | Unrestricted |
| DEFAULT | application/json | Imsx_StatusInfo |
The request was invalid or cannot be served. The exact error SHOULD be explained in the response payload. | Required | Unrestricted |
getComponentOfferingById
Read ComponentOffering with a specific Id
Request
GET /1edtech/eduapi/base/v1p0/componentOfferings/{id}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
id path |
GUIDRef |
The sourcedId of the ComponentOffering | Required |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality Level |
|---|---|---|---|---|---|
| 200 | application/json | ComponentOffering |
Required | Unrestricted | |
| 400 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server cannot or will not process the request due to something that is perceived to be a client error. | Required | Unrestricted |
| 401 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the request has not been applied because it lacks valid authentication credentials for the target resource. | Required | Unrestricted |
| 403 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server understood the request but refuses to fulfill it. The exact reason SHOULD be explained in the response payload. | Required | Unrestricted |
| 404 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the origin server did not find a current representation for the target resource or is not willing to disclose that one exists. | Required | Unrestricted |
| 422 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, used when the server cannot validate an incoming entity. | Required | Unrestricted |
| 429 | application/json | Imsx_StatusInfo |
As defined in Additional HTTP Status Codes, indicating that the user has sent too many requests in a given amount of time ('rate limiting'). | Required | Unrestricted |
| 500 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics. Implementations SHOULD avoid using this error code - use only if there is catastrophic error and there is not a more appropriate code. | Required | Unrestricted |
| DEFAULT | application/json | Imsx_StatusInfo |
The request was invalid or cannot be served. The exact error SHOULD be explained in the response payload. | Required | Unrestricted |
getAllComponentOfferingsBySession
Read all ComponentOfferings in a specified academic session
Request
GET /1edtech/eduapi/base/v1p0/academicSessions/{id}/componentOfferings?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
id path |
GUIDRef |
The sourcedId of the AcademicSession | Required |
limit query |
PositiveInteger |
Specifices the download segmentation value i.e. the maximum number of records to be contained in the response. Default: 100. | Optional |
offset query |
NonNegativeInteger |
Specifices the number of the first record to be supplied in the segmented response message. Default: 0. | Optional |
sort query |
String |
Specifies that the collection should be sorted on the given data field value. The form of ordering is implementation dependent if the 'orderBy' attribute is not used. | Optional |
orderBy query |
String |
Specifies whether the collection should be ordered ascending (asc) or descending (desc). | Optional |
filter query |
String |
Specifies that the returned collection should be filtered using the supplied criteria. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality Level |
|---|---|---|---|---|---|
| 200 | application/json | ComponentOffering[] |
Required | Unrestricted | |
| 404 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the origin server did not find a current representation for the target resource or is not willing to disclose that one exists. | Required | Unrestricted |
| 400 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server cannot or will not process the request due to something that is perceived to be a client error. | Required | Unrestricted |
| 401 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the request has not been applied because it lacks valid authentication credentials for the target resource. | Required | Unrestricted |
| 403 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server understood the request but refuses to fulfill it. The exact reason SHOULD be explained in the response payload. | Required | Unrestricted |
| 422 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, used when the server cannot validate an incoming entity. | Required | Unrestricted |
| 429 | application/json | Imsx_StatusInfo |
As defined in Additional HTTP Status Codes, indicating that the user has sent too many requests in a given amount of time ('rate limiting'). | Required | Unrestricted |
| 500 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics. Implementations SHOULD avoid using this error code - use only if there is catastrophic error and there is not a more appropriate code. | Required | Unrestricted |
| DEFAULT | application/json | Imsx_StatusInfo |
The request was invalid or cannot be served. The exact error SHOULD be explained in the response payload. | Required | Unrestricted |
getAllCourseOfferingsBySession
Read all CourseOfferings in a specified academic session
Request
GET /1edtech/eduapi/base/v1p0/academicSessions/{id}/courseOfferings?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
id path |
GUIDRef |
The sourcedId of the AcademicSession | Required |
limit query |
PositiveInteger |
Specifices the download segmentation value i.e. the maximum number of records to be contained in the response. Default: 100. | Optional |
offset query |
NonNegativeInteger |
Specifices the number of the first record to be supplied in the segmented response message. Default: 0. | Optional |
sort query |
String |
Specifies that the collection should be sorted on the given data field value. The form of ordering is implementation dependent if the 'orderBy' attribute is not used. | Optional |
orderBy query |
String |
Specifies whether the collection should be ordered ascending (asc) or descending (desc). | Optional |
filter query |
String |
Specifies that the returned collection should be filtered using the supplied criteria. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality Level |
|---|---|---|---|---|---|
| 200 | application/json | CourseOffering[] |
Required | Unrestricted | |
| 404 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the origin server did not find a current representation for the target resource or is not willing to disclose that one exists. | Required | Unrestricted |
| 400 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server cannot or will not process the request due to something that is perceived to be a client error. | Required | Unrestricted |
| 401 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the request has not been applied because it lacks valid authentication credentials for the target resource. | Required | Unrestricted |
| 403 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server understood the request but refuses to fulfill it. The exact reason SHOULD be explained in the response payload. | Required | Unrestricted |
| 422 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, used when the server cannot validate an incoming entity. | Required | Unrestricted |
| 429 | application/json | Imsx_StatusInfo |
As defined in Additional HTTP Status Codes, indicating that the user has sent too many requests in a given amount of time ('rate limiting'). | Required | Unrestricted |
| 500 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics. Implementations SHOULD avoid using this error code - use only if there is catastrophic error and there is not a more appropriate code. | Required | Unrestricted |
| DEFAULT | application/json | Imsx_StatusInfo |
The request was invalid or cannot be served. The exact error SHOULD be explained in the response payload. | Required | Unrestricted |
getAllCollectionOfferingsBySession
Read all CollectionOfferings in a specified academic session
Request
GET /1edtech/eduapi/base/v1p0/academicSessions/{id}/collectionOfferings?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
id path |
GUIDRef |
The sourcedId of the AcademicSession | Required |
limit query |
PositiveInteger |
Specifices the download segmentation value i.e. the maximum number of records to be contained in the response. Default: 100. | Optional |
offset query |
NonNegativeInteger |
Specifices the number of the first record to be supplied in the segmented response message. Default: 0. | Optional |
sort query |
String |
Specifies that the collection should be sorted on the given data field value. The form of ordering is implementation dependent if the 'orderBy' attribute is not used. | Optional |
orderBy query |
String |
Specifies whether the collection should be ordered ascending (asc) or descending (desc). | Optional |
filter query |
String |
Specifies that the returned collection should be filtered using the supplied criteria. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality Level |
|---|---|---|---|---|---|
| 200 | application/json | CollectionOffering[] |
Required | Unrestricted | |
| 404 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the origin server did not find a current representation for the target resource or is not willing to disclose that one exists. | Required | Unrestricted |
| 400 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server cannot or will not process the request due to something that is perceived to be a client error. | Required | Unrestricted |
| 401 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the request has not been applied because it lacks valid authentication credentials for the target resource. | Required | Unrestricted |
| 403 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server understood the request but refuses to fulfill it. The exact reason SHOULD be explained in the response payload. | Required | Unrestricted |
| 422 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, used when the server cannot validate an incoming entity. | Required | Unrestricted |
| 429 | application/json | Imsx_StatusInfo |
As defined in Additional HTTP Status Codes, indicating that the user has sent too many requests in a given amount of time ('rate limiting'). | Required | Unrestricted |
| 500 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics. Implementations SHOULD avoid using this error code - use only if there is catastrophic error and there is not a more appropriate code. | Required | Unrestricted |
| DEFAULT | application/json | Imsx_StatusInfo |
The request was invalid or cannot be served. The exact error SHOULD be explained in the response payload. | Required | Unrestricted |
getCollectionOfferingsForStudent
Read all collectionOfferings for a student
Request
GET /1edtech/eduapi/base/v1p0/students/{id}/collectionOfferings?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
id path |
GUIDRef |
The sourcedId of the Person representing the student | Required |
limit query |
PositiveInteger |
Specifices the download segmentation value i.e. the maximum number of records to be contained in the response. Default: 100. | Optional |
offset query |
NonNegativeInteger |
Specifices the number of the first record to be supplied in the segmented response message. Default: 0. | Optional |
sort query |
String |
Specifies that the collection should be sorted on the given data field value. The form of ordering is implementation dependent if the 'orderBy' attribute is not used. | Optional |
orderBy query |
String |
Specifies whether the collection should be ordered ascending (asc) or descending (desc). | Optional |
filter query |
String |
Specifies that the returned collection should be filtered using the supplied criteria. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality Level |
|---|---|---|---|---|---|
| 200 | application/json | CollectionOffering[] |
Required | Unrestricted | |
| 404 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the origin server did not find a current representation for the target resource or is not willing to disclose that one exists. | Required | Unrestricted |
| 400 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server cannot or will not process the request due to something that is perceived to be a client error. | Required | Unrestricted |
| 401 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the request has not been applied because it lacks valid authentication credentials for the target resource. | Required | Unrestricted |
| 403 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server understood the request but refuses to fulfill it. The exact reason SHOULD be explained in the response payload. | Required | Unrestricted |
| 422 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, used when the server cannot validate an incoming entity. | Required | Unrestricted |
| 429 | application/json | Imsx_StatusInfo |
As defined in Additional HTTP Status Codes, indicating that the user has sent too many requests in a given amount of time ('rate limiting'). | Required | Unrestricted |
| 500 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics. Implementations SHOULD avoid using this error code - use only if there is catastrophic error and there is not a more appropriate code. | Required | Unrestricted |
| DEFAULT | application/json | Imsx_StatusInfo |
The request was invalid or cannot be served. The exact error SHOULD be explained in the response payload. | Required | Unrestricted |
getCollectionOfferingsForStaff
Read all collectionOfferings for a staff member
Request
GET /1edtech/eduapi/base/v1p0/staff/{id}/collectionOfferings?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
id path |
GUIDRef |
The sourcedId of the Person representing the staff member | Required |
limit query |
PositiveInteger |
Specifices the download segmentation value i.e. the maximum number of records to be contained in the response. Default: 100. | Optional |
offset query |
NonNegativeInteger |
Specifices the number of the first record to be supplied in the segmented response message. Default: 0. | Optional |
sort query |
String |
Specifies that the collection should be sorted on the given data field value. The form of ordering is implementation dependent if the 'orderBy' attribute is not used. | Optional |
orderBy query |
String |
Specifies whether the collection should be ordered ascending (asc) or descending (desc). | Optional |
filter query |
String |
Specifies that the returned collection should be filtered using the supplied criteria. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality Level |
|---|---|---|---|---|---|
| 200 | application/json | CollectionOffering[] |
Required | Unrestricted | |
| 404 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the origin server did not find a current representation for the target resource or is not willing to disclose that one exists. | Required | Unrestricted |
| 400 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server cannot or will not process the request due to something that is perceived to be a client error. | Required | Unrestricted |
| 401 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the request has not been applied because it lacks valid authentication credentials for the target resource. | Required | Unrestricted |
| 403 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server understood the request but refuses to fulfill it. The exact reason SHOULD be explained in the response payload. | Required | Unrestricted |
| 422 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, used when the server cannot validate an incoming entity. | Required | Unrestricted |
| 429 | application/json | Imsx_StatusInfo |
As defined in Additional HTTP Status Codes, indicating that the user has sent too many requests in a given amount of time ('rate limiting'). | Required | Unrestricted |
| 500 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics. Implementations SHOULD avoid using this error code - use only if there is catastrophic error and there is not a more appropriate code. | Required | Unrestricted |
| DEFAULT | application/json | Imsx_StatusInfo |
The request was invalid or cannot be served. The exact error SHOULD be explained in the response payload. | Required | Unrestricted |
getComponentOfferingsForStudent
Read all componentOfferings for a student
Request
GET /1edtech/eduapi/base/v1p0/students/{id}/componentOfferings?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
id path |
GUIDRef |
The sourcedId of the Person representing the student | Required |
limit query |
PositiveInteger |
Specifices the download segmentation value i.e. the maximum number of records to be contained in the response. Default: 100. | Optional |
offset query |
NonNegativeInteger |
Specifices the number of the first record to be supplied in the segmented response message. Default: 0. | Optional |
sort query |
String |
Specifies that the collection should be sorted on the given data field value. The form of ordering is implementation dependent if the 'orderBy' attribute is not used. | Optional |
orderBy query |
String |
Specifies whether the collection should be ordered ascending (asc) or descending (desc). | Optional |
filter query |
String |
Specifies that the returned collection should be filtered using the supplied criteria. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality Level |
|---|---|---|---|---|---|
| 200 | application/json | ComponentOffering[] |
Required | Unrestricted | |
| 404 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the origin server did not find a current representation for the target resource or is not willing to disclose that one exists. | Required | Unrestricted |
| 400 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server cannot or will not process the request due to something that is perceived to be a client error. | Required | Unrestricted |
| 401 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the request has not been applied because it lacks valid authentication credentials for the target resource. | Required | Unrestricted |
| 403 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server understood the request but refuses to fulfill it. The exact reason SHOULD be explained in the response payload. | Required | Unrestricted |
| 422 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, used when the server cannot validate an incoming entity. | Required | Unrestricted |
| 429 | application/json | Imsx_StatusInfo |
As defined in Additional HTTP Status Codes, indicating that the user has sent too many requests in a given amount of time ('rate limiting'). | Required | Unrestricted |
| 500 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics. Implementations SHOULD avoid using this error code - use only if there is catastrophic error and there is not a more appropriate code. | Required | Unrestricted |
| DEFAULT | application/json | Imsx_StatusInfo |
The request was invalid or cannot be served. The exact error SHOULD be explained in the response payload. | Required | Unrestricted |
getComponentOfferingsForStaff
Read all componentOfferings for a staff member
Request
GET /1edtech/eduapi/base/v1p0/staff/{id}/componentOfferings?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
id path |
GUIDRef |
The sourcedId of the Person representing the staff member | Required |
limit query |
PositiveInteger |
Specifices the download segmentation value i.e. the maximum number of records to be contained in the response. Default: 100. | Optional |
offset query |
NonNegativeInteger |
Specifices the number of the first record to be supplied in the segmented response message. Default: 0. | Optional |
sort query |
String |
Specifies that the collection should be sorted on the given data field value. The form of ordering is implementation dependent if the 'orderBy' attribute is not used. | Optional |
orderBy query |
String |
Specifies whether the collection should be ordered ascending (asc) or descending (desc). | Optional |
filter query |
String |
Specifies that the returned collection should be filtered using the supplied criteria. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality Level |
|---|---|---|---|---|---|
| 200 | application/json | ComponentOffering[] |
Required | Unrestricted | |
| 404 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the origin server did not find a current representation for the target resource or is not willing to disclose that one exists. | Required | Unrestricted |
| 400 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server cannot or will not process the request due to something that is perceived to be a client error. | Required | Unrestricted |
| 401 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the request has not been applied because it lacks valid authentication credentials for the target resource. | Required | Unrestricted |
| 403 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server understood the request but refuses to fulfill it. The exact reason SHOULD be explained in the response payload. | Required | Unrestricted |
| 422 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, used when the server cannot validate an incoming entity. | Required | Unrestricted |
| 429 | application/json | Imsx_StatusInfo |
As defined in Additional HTTP Status Codes, indicating that the user has sent too many requests in a given amount of time ('rate limiting'). | Required | Unrestricted |
| 500 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics. Implementations SHOULD avoid using this error code - use only if there is catastrophic error and there is not a more appropriate code. | Required | Unrestricted |
| DEFAULT | application/json | Imsx_StatusInfo |
The request was invalid or cannot be served. The exact error SHOULD be explained in the response payload. | Required | Unrestricted |
AcademicSessionManagement
Operations relating to AcademicSessions
getAllAcademicSessions
Read all AcademicSessions for an institution
Request
GET /1edtech/eduapi/base/v1p0/academicSessions?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
limit query |
PositiveInteger |
Specifices the download segmentation value i.e. the maximum number of records to be contained in the response. Default: 100. | Optional |
offset query |
NonNegativeInteger |
Specifices the number of the first record to be supplied in the segmented response message. Default: 0. | Optional |
sort query |
String |
Specifies that the collection should be sorted on the given data field value. The form of ordering is implementation dependent if the 'orderBy' attribute is not used. | Optional |
orderBy query |
String |
Specifies whether the collection should be ordered ascending (asc) or descending (desc). | Optional |
filter query |
String |
Specifies that the returned collection should be filtered using the supplied criteria. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality Level |
|---|---|---|---|---|---|
| 200 | application/json | AcademicSession[] |
Required | Unrestricted | |
| 400 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server cannot or will not process the request due to something that is perceived to be a client error. | Required | Unrestricted |
| 401 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the request has not been applied because it lacks valid authentication credentials for the target resource. | Required | Unrestricted |
| 403 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server understood the request but refuses to fulfill it. The exact reason SHOULD be explained in the response payload. | Required | Unrestricted |
| 422 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, used when the server cannot validate an incoming entity. | Required | Unrestricted |
| 429 | application/json | Imsx_StatusInfo |
As defined in Additional HTTP Status Codes, indicating that the user has sent too many requests in a given amount of time ('rate limiting'). | Required | Unrestricted |
| 500 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics. Implementations SHOULD avoid using this error code - use only if there is catastrophic error and there is not a more appropriate code. | Required | Unrestricted |
| DEFAULT | application/json | Imsx_StatusInfo |
The request was invalid or cannot be served. The exact error SHOULD be explained in the response payload. | Required | Unrestricted |
getAcademicSessionById
Read an AcademicSession with a specific id
Request
GET /1edtech/eduapi/base/v1p0/academicSessions/{id}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
id path |
GUIDRef |
The sourcedId of the AcademicSession | Required |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality Level |
|---|---|---|---|---|---|
| 200 | application/json | AcademicSession |
Required | Unrestricted | |
| 400 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server cannot or will not process the request due to something that is perceived to be a client error. | Required | Unrestricted |
| 401 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the request has not been applied because it lacks valid authentication credentials for the target resource. | Required | Unrestricted |
| 403 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server understood the request but refuses to fulfill it. The exact reason SHOULD be explained in the response payload. | Required | Unrestricted |
| 404 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the origin server did not find a current representation for the target resource or is not willing to disclose that one exists. | Required | Unrestricted |
| 422 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, used when the server cannot validate an incoming entity. | Required | Unrestricted |
| 429 | application/json | Imsx_StatusInfo |
As defined in Additional HTTP Status Codes, indicating that the user has sent too many requests in a given amount of time ('rate limiting'). | Required | Unrestricted |
| 500 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics. Implementations SHOULD avoid using this error code - use only if there is catastrophic error and there is not a more appropriate code. | Required | Unrestricted |
| DEFAULT | application/json | Imsx_StatusInfo |
The request was invalid or cannot be served. The exact error SHOULD be explained in the response payload. | Required | Unrestricted |
OrganizationManagement
Operations relating to Organizations
getAllOrganizations
Read all Organizations for an institution
Request
GET /1edtech/eduapi/base/v1p0/organizations?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
limit query |
PositiveInteger |
Specifices the download segmentation value i.e. the maximum number of records to be contained in the response. Default: 100. | Optional |
offset query |
NonNegativeInteger |
Specifices the number of the first record to be supplied in the segmented response message. Default: 0. | Optional |
sort query |
String |
Specifies that the collection should be sorted on the given data field value. The form of ordering is implementation dependent if the 'orderBy' attribute is not used. | Optional |
orderBy query |
String |
Specifies whether the collection should be ordered ascending (asc) or descending (desc). | Optional |
filter query |
String |
Specifies that the returned collection should be filtered using the supplied criteria. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality Level |
|---|---|---|---|---|---|
| 200 | application/json | Organization[] |
Required | Unrestricted | |
| 400 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server cannot or will not process the request due to something that is perceived to be a client error. | Required | Unrestricted |
| 401 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the request has not been applied because it lacks valid authentication credentials for the target resource. | Required | Unrestricted |
| 403 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server understood the request but refuses to fulfill it. The exact reason SHOULD be explained in the response payload. | Required | Unrestricted |
| 422 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, used when the server cannot validate an incoming entity. | Required | Unrestricted |
| 429 | application/json | Imsx_StatusInfo |
As defined in Additional HTTP Status Codes, indicating that the user has sent too many requests in a given amount of time ('rate limiting'). | Required | Unrestricted |
| 500 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics. Implementations SHOULD avoid using this error code - use only if there is catastrophic error and there is not a more appropriate code. | Required | Unrestricted |
| DEFAULT | application/json | Imsx_StatusInfo |
The request was invalid or cannot be served. The exact error SHOULD be explained in the response payload. | Required | Unrestricted |
getOrganizationById
Read Organization with a specific Id
Request
GET /1edtech/eduapi/base/v1p0/organizations/{id}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
id path |
GUIDRef |
The sourcedId of the Organization | Required |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality Level |
|---|---|---|---|---|---|
| 200 | application/json | Organization |
Required | Unrestricted | |
| 400 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server cannot or will not process the request due to something that is perceived to be a client error. | Required | Unrestricted |
| 401 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the request has not been applied because it lacks valid authentication credentials for the target resource. | Required | Unrestricted |
| 403 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server understood the request but refuses to fulfill it. The exact reason SHOULD be explained in the response payload. | Required | Unrestricted |
| 404 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the origin server did not find a current representation for the target resource or is not willing to disclose that one exists. | Required | Unrestricted |
| 422 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, used when the server cannot validate an incoming entity. | Required | Unrestricted |
| 429 | application/json | Imsx_StatusInfo |
As defined in Additional HTTP Status Codes, indicating that the user has sent too many requests in a given amount of time ('rate limiting'). | Required | Unrestricted |
| 500 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics. Implementations SHOULD avoid using this error code - use only if there is catastrophic error and there is not a more appropriate code. | Required | Unrestricted |
| DEFAULT | application/json | Imsx_StatusInfo |
The request was invalid or cannot be served. The exact error SHOULD be explained in the response payload. | Required | Unrestricted |
getOrganizationsForStaff
Read all organizations associated with a staff member
Request
GET /1edtech/eduapi/base/v1p0/staff/{id}/organizations?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
id path |
GUIDRef |
The sourcedId of the Person representing the staff member | Required |
limit query |
PositiveInteger |
Specifices the download segmentation value i.e. the maximum number of records to be contained in the response. Default: 100. | Optional |
offset query |
NonNegativeInteger |
Specifices the number of the first record to be supplied in the segmented response message. Default: 0. | Optional |
sort query |
String |
Specifies that the collection should be sorted on the given data field value. The form of ordering is implementation dependent if the 'orderBy' attribute is not used. | Optional |
orderBy query |
String |
Specifies whether the collection should be ordered ascending (asc) or descending (desc). | Optional |
filter query |
String |
Specifies that the returned collection should be filtered using the supplied criteria. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality Level |
|---|---|---|---|---|---|
| 200 | application/json | Organization[] |
Required | Unrestricted | |
| 404 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the origin server did not find a current representation for the target resource or is not willing to disclose that one exists. | Required | Unrestricted |
| 400 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server cannot or will not process the request due to something that is perceived to be a client error. | Required | Unrestricted |
| 401 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the request has not been applied because it lacks valid authentication credentials for the target resource. | Required | Unrestricted |
| 403 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server understood the request but refuses to fulfill it. The exact reason SHOULD be explained in the response payload. | Required | Unrestricted |
| 422 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, used when the server cannot validate an incoming entity. | Required | Unrestricted |
| 429 | application/json | Imsx_StatusInfo |
As defined in Additional HTTP Status Codes, indicating that the user has sent too many requests in a given amount of time ('rate limiting'). | Required | Unrestricted |
| 500 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics. Implementations SHOULD avoid using this error code - use only if there is catastrophic error and there is not a more appropriate code. | Required | Unrestricted |
| DEFAULT | application/json | Imsx_StatusInfo |
The request was invalid or cannot be served. The exact error SHOULD be explained in the response payload. | Required | Unrestricted |
getOrganizationsForStudent
Read all organizations associated with a student
Request
GET /1edtech/eduapi/base/v1p0/students/{id}/organizations?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
id path |
GUIDRef |
The sourcedId of the Person representing the student | Required |
limit query |
PositiveInteger |
Specifices the download segmentation value i.e. the maximum number of records to be contained in the response. Default: 100. | Optional |
offset query |
NonNegativeInteger |
Specifices the number of the first record to be supplied in the segmented response message. Default: 0. | Optional |
sort query |
String |
Specifies that the collection should be sorted on the given data field value. The form of ordering is implementation dependent if the 'orderBy' attribute is not used. | Optional |
orderBy query |
String |
Specifies whether the collection should be ordered ascending (asc) or descending (desc). | Optional |
filter query |
String |
Specifies that the returned collection should be filtered using the supplied criteria. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality Level |
|---|---|---|---|---|---|
| 200 | application/json | Organization[] |
Required | Unrestricted | |
| 404 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the origin server did not find a current representation for the target resource or is not willing to disclose that one exists. | Required | Unrestricted |
| 400 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server cannot or will not process the request due to something that is perceived to be a client error. | Required | Unrestricted |
| 401 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the request has not been applied because it lacks valid authentication credentials for the target resource. | Required | Unrestricted |
| 403 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server understood the request but refuses to fulfill it. The exact reason SHOULD be explained in the response payload. | Required | Unrestricted |
| 422 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, used when the server cannot validate an incoming entity. | Required | Unrestricted |
| 429 | application/json | Imsx_StatusInfo |
As defined in Additional HTTP Status Codes, indicating that the user has sent too many requests in a given amount of time ('rate limiting'). | Required | Unrestricted |
| 500 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics. Implementations SHOULD avoid using this error code - use only if there is catastrophic error and there is not a more appropriate code. | Required | Unrestricted |
| DEFAULT | application/json | Imsx_StatusInfo |
The request was invalid or cannot be served. The exact error SHOULD be explained in the response payload. | Required | Unrestricted |
PersonManagement
Operations relating to Persons
getAllPersons
Read all Persons for an institution
Request
GET /1edtech/eduapi/base/v1p0/persons?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
limit query |
PositiveInteger |
Specifices the download segmentation value i.e. the maximum number of records to be contained in the response. Default: 100. | Optional |
offset query |
NonNegativeInteger |
Specifices the number of the first record to be supplied in the segmented response message. Default: 0. | Optional |
sort query |
String |
Specifies that the collection should be sorted on the given data field value. The form of ordering is implementation dependent if the 'orderBy' attribute is not used. | Optional |
orderBy query |
String |
Specifies whether the collection should be ordered ascending (asc) or descending (desc). | Optional |
filter query |
String |
Specifies that the returned collection should be filtered using the supplied criteria. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality Level |
|---|---|---|---|---|---|
| 200 | application/json | Person[] |
Required | Unrestricted | |
| 400 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server cannot or will not process the request due to something that is perceived to be a client error. | Required | Unrestricted |
| 401 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the request has not been applied because it lacks valid authentication credentials for the target resource. | Required | Unrestricted |
| 403 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server understood the request but refuses to fulfill it. The exact reason SHOULD be explained in the response payload. | Required | Unrestricted |
| 422 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, used when the server cannot validate an incoming entity. | Required | Unrestricted |
| 429 | application/json | Imsx_StatusInfo |
As defined in Additional HTTP Status Codes, indicating that the user has sent too many requests in a given amount of time ('rate limiting'). | Required | Unrestricted |
| 500 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics. Implementations SHOULD avoid using this error code - use only if there is catastrophic error and there is not a more appropriate code. | Required | Unrestricted |
| DEFAULT | application/json | Imsx_StatusInfo |
The request was invalid or cannot be served. The exact error SHOULD be explained in the response payload. | Required | Unrestricted |
getPersonById
Read Person with a specific id
Request
GET /1edtech/eduapi/base/v1p0/persons/{id}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
id path |
GUIDRef |
The sourcedId of the Person | Required |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality Level |
|---|---|---|---|---|---|
| 200 | application/json | Person |
Required | Unrestricted | |
| 400 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server cannot or will not process the request due to something that is perceived to be a client error. | Required | Unrestricted |
| 401 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the request has not been applied because it lacks valid authentication credentials for the target resource. | Required | Unrestricted |
| 403 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server understood the request but refuses to fulfill it. The exact reason SHOULD be explained in the response payload. | Required | Unrestricted |
| 404 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the origin server did not find a current representation for the target resource or is not willing to disclose that one exists. | Required | Unrestricted |
| 422 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, used when the server cannot validate an incoming entity. | Required | Unrestricted |
| 429 | application/json | Imsx_StatusInfo |
As defined in Additional HTTP Status Codes, indicating that the user has sent too many requests in a given amount of time ('rate limiting'). | Required | Unrestricted |
| 500 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics. Implementations SHOULD avoid using this error code - use only if there is catastrophic error and there is not a more appropriate code. | Required | Unrestricted |
| DEFAULT | application/json | Imsx_StatusInfo |
The request was invalid or cannot be served. The exact error SHOULD be explained in the response payload. | Required | Unrestricted |
getAllStaff
Read all persons with role of staff
Request
GET /1edtech/eduapi/base/v1p0/staff?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
limit query |
PositiveInteger |
Specifices the download segmentation value i.e. the maximum number of records to be contained in the response. Default: 100. | Optional |
offset query |
NonNegativeInteger |
Specifices the number of the first record to be supplied in the segmented response message. Default: 0. | Optional |
sort query |
String |
Specifies that the collection should be sorted on the given data field value. The form of ordering is implementation dependent if the 'orderBy' attribute is not used. | Optional |
orderBy query |
String |
Specifies whether the collection should be ordered ascending (asc) or descending (desc). | Optional |
filter query |
String |
Specifies that the returned collection should be filtered using the supplied criteria. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality Level |
|---|---|---|---|---|---|
| 200 | application/json | Person[] |
Required | Unrestricted | |
| 400 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server cannot or will not process the request due to something that is perceived to be a client error. | Required | Unrestricted |
| 401 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the request has not been applied because it lacks valid authentication credentials for the target resource. | Required | Unrestricted |
| 403 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server understood the request but refuses to fulfill it. The exact reason SHOULD be explained in the response payload. | Required | Unrestricted |
| 422 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, used when the server cannot validate an incoming entity. | Required | Unrestricted |
| 429 | application/json | Imsx_StatusInfo |
As defined in Additional HTTP Status Codes, indicating that the user has sent too many requests in a given amount of time ('rate limiting'). | Required | Unrestricted |
| 500 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics. Implementations SHOULD avoid using this error code - use only if there is catastrophic error and there is not a more appropriate code. | Required | Unrestricted |
| DEFAULT | application/json | Imsx_StatusInfo |
The request was invalid or cannot be served. The exact error SHOULD be explained in the response payload. | Required | Unrestricted |
getAllStudents
Read all persons with a role of student
Request
GET /1edtech/eduapi/base/v1p0/students?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
limit query |
PositiveInteger |
Specifices the download segmentation value i.e. the maximum number of records to be contained in the response. Default: 100. | Optional |
offset query |
NonNegativeInteger |
Specifices the number of the first record to be supplied in the segmented response message. Default: 0. | Optional |
sort query |
String |
Specifies that the collection should be sorted on the given data field value. The form of ordering is implementation dependent if the 'orderBy' attribute is not used. | Optional |
orderBy query |
String |
Specifies whether the collection should be ordered ascending (asc) or descending (desc). | Optional |
filter query |
String |
Specifies that the returned collection should be filtered using the supplied criteria. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality Level |
|---|---|---|---|---|---|
| 200 | application/json | Person[] |
Required | Unrestricted | |
| 400 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server cannot or will not process the request due to something that is perceived to be a client error. | Required | Unrestricted |
| 401 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the request has not been applied because it lacks valid authentication credentials for the target resource. | Required | Unrestricted |
| 403 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server understood the request but refuses to fulfill it. The exact reason SHOULD be explained in the response payload. | Required | Unrestricted |
| 422 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, used when the server cannot validate an incoming entity. | Required | Unrestricted |
| 429 | application/json | Imsx_StatusInfo |
As defined in Additional HTTP Status Codes, indicating that the user has sent too many requests in a given amount of time ('rate limiting'). | Required | Unrestricted |
| 500 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics. Implementations SHOULD avoid using this error code - use only if there is catastrophic error and there is not a more appropriate code. | Required | Unrestricted |
| DEFAULT | application/json | Imsx_StatusInfo |
The request was invalid or cannot be served. The exact error SHOULD be explained in the response payload. | Required | Unrestricted |
getAllStudentsForCollectionOffering
Read all students for a collectionOffering
Request
GET /1edtech/eduapi/base/v1p0/collectionOfferings/{id}/students?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
id path |
GUIDRef |
The sourcedId of the CollectionOffering | Required |
limit query |
PositiveInteger |
Specifices the download segmentation value i.e. the maximum number of records to be contained in the response. Default: 100. | Optional |
offset query |
NonNegativeInteger |
Specifices the number of the first record to be supplied in the segmented response message. Default: 0. | Optional |
sort query |
String |
Specifies that the collection should be sorted on the given data field value. The form of ordering is implementation dependent if the 'orderBy' attribute is not used. | Optional |
orderBy query |
String |
Specifies whether the collection should be ordered ascending (asc) or descending (desc). | Optional |
filter query |
String |
Specifies that the returned collection should be filtered using the supplied criteria. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality Level |
|---|---|---|---|---|---|
| 200 | application/json | Person[] |
Required | Unrestricted | |
| 404 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the origin server did not find a current representation for the target resource or is not willing to disclose that one exists. | Required | Unrestricted |
| 400 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server cannot or will not process the request due to something that is perceived to be a client error. | Required | Unrestricted |
| 401 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the request has not been applied because it lacks valid authentication credentials for the target resource. | Required | Unrestricted |
| 403 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server understood the request but refuses to fulfill it. The exact reason SHOULD be explained in the response payload. | Required | Unrestricted |
| 422 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, used when the server cannot validate an incoming entity. | Required | Unrestricted |
| 429 | application/json | Imsx_StatusInfo |
As defined in Additional HTTP Status Codes, indicating that the user has sent too many requests in a given amount of time ('rate limiting'). | Required | Unrestricted |
| 500 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics. Implementations SHOULD avoid using this error code - use only if there is catastrophic error and there is not a more appropriate code. | Required | Unrestricted |
| DEFAULT | application/json | Imsx_StatusInfo |
The request was invalid or cannot be served. The exact error SHOULD be explained in the response payload. | Required | Unrestricted |
getAllStaffForCollectionOffering
Read all staff for a collectionOffering
Request
GET /1edtech/eduapi/base/v1p0/collectionOfferings/{id}/staff?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
id path |
GUIDRef |
The sourcedId of the CollectionOffering | Required |
limit query |
PositiveInteger |
Specifices the download segmentation value i.e. the maximum number of records to be contained in the response. Default: 100. | Optional |
offset query |
NonNegativeInteger |
Specifices the number of the first record to be supplied in the segmented response message. Default: 0. | Optional |
sort query |
String |
Specifies that the collection should be sorted on the given data field value. The form of ordering is implementation dependent if the 'orderBy' attribute is not used. | Optional |
orderBy query |
String |
Specifies whether the collection should be ordered ascending (asc) or descending (desc). | Optional |
filter query |
String |
Specifies that the returned collection should be filtered using the supplied criteria. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality Level |
|---|---|---|---|---|---|
| 200 | application/json | Person[] |
Required | Unrestricted | |
| 404 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the origin server did not find a current representation for the target resource or is not willing to disclose that one exists. | Required | Unrestricted |
| 400 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server cannot or will not process the request due to something that is perceived to be a client error. | Required | Unrestricted |
| 401 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the request has not been applied because it lacks valid authentication credentials for the target resource. | Required | Unrestricted |
| 403 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server understood the request but refuses to fulfill it. The exact reason SHOULD be explained in the response payload. | Required | Unrestricted |
| 422 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, used when the server cannot validate an incoming entity. | Required | Unrestricted |
| 429 | application/json | Imsx_StatusInfo |
As defined in Additional HTTP Status Codes, indicating that the user has sent too many requests in a given amount of time ('rate limiting'). | Required | Unrestricted |
| 500 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics. Implementations SHOULD avoid using this error code - use only if there is catastrophic error and there is not a more appropriate code. | Required | Unrestricted |
| DEFAULT | application/json | Imsx_StatusInfo |
The request was invalid or cannot be served. The exact error SHOULD be explained in the response payload. | Required | Unrestricted |
getAllStudentsForCourseOffering
Read all students for a courseOffering
Request
GET /1edtech/eduapi/base/v1p0/courseOfferings/{id}/students?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
id path |
GUIDRef |
The sourcedId of the CourseOffering | Required |
limit query |
PositiveInteger |
Specifices the download segmentation value i.e. the maximum number of records to be contained in the response. Default: 100. | Optional |
offset query |
NonNegativeInteger |
Specifices the number of the first record to be supplied in the segmented response message. Default: 0. | Optional |
sort query |
String |
Specifies that the collection should be sorted on the given data field value. The form of ordering is implementation dependent if the 'orderBy' attribute is not used. | Optional |
orderBy query |
String |
Specifies whether the collection should be ordered ascending (asc) or descending (desc). | Optional |
filter query |
String |
Specifies that the returned collection should be filtered using the supplied criteria. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality Level |
|---|---|---|---|---|---|
| 200 | application/json | Person[] |
Required | Unrestricted | |
| 404 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the origin server did not find a current representation for the target resource or is not willing to disclose that one exists. | Required | Unrestricted |
| 400 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server cannot or will not process the request due to something that is perceived to be a client error. | Required | Unrestricted |
| 401 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the request has not been applied because it lacks valid authentication credentials for the target resource. | Required | Unrestricted |
| 403 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server understood the request but refuses to fulfill it. The exact reason SHOULD be explained in the response payload. | Required | Unrestricted |
| 422 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, used when the server cannot validate an incoming entity. | Required | Unrestricted |
| 429 | application/json | Imsx_StatusInfo |
As defined in Additional HTTP Status Codes, indicating that the user has sent too many requests in a given amount of time ('rate limiting'). | Required | Unrestricted |
| 500 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics. Implementations SHOULD avoid using this error code - use only if there is catastrophic error and there is not a more appropriate code. | Required | Unrestricted |
| DEFAULT | application/json | Imsx_StatusInfo |
The request was invalid or cannot be served. The exact error SHOULD be explained in the response payload. | Required | Unrestricted |
getAllStaffForCourseOffering
Read all staff for a courseOffering
Request
GET /1edtech/eduapi/base/v1p0/courseOfferings/{id}/staff?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
id path |
GUIDRef |
The sourcedId of the CourseOffering | Required |
limit query |
PositiveInteger |
Specifices the download segmentation value i.e. the maximum number of records to be contained in the response. Default: 100. | Optional |
offset query |
NonNegativeInteger |
Specifices the number of the first record to be supplied in the segmented response message. Default: 0. | Optional |
sort query |
String |
Specifies that the collection should be sorted on the given data field value. The form of ordering is implementation dependent if the 'orderBy' attribute is not used. | Optional |
orderBy query |
String |
Specifies whether the collection should be ordered ascending (asc) or descending (desc). | Optional |
filter query |
String |
Specifies that the returned collection should be filtered using the supplied criteria. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality Level |
|---|---|---|---|---|---|
| 200 | application/json | Person[] |
Required | Unrestricted | |
| 404 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the origin server did not find a current representation for the target resource or is not willing to disclose that one exists. | Required | Unrestricted |
| 400 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server cannot or will not process the request due to something that is perceived to be a client error. | Required | Unrestricted |
| 401 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the request has not been applied because it lacks valid authentication credentials for the target resource. | Required | Unrestricted |
| 403 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server understood the request but refuses to fulfill it. The exact reason SHOULD be explained in the response payload. | Required | Unrestricted |
| 422 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, used when the server cannot validate an incoming entity. | Required | Unrestricted |
| 429 | application/json | Imsx_StatusInfo |
As defined in Additional HTTP Status Codes, indicating that the user has sent too many requests in a given amount of time ('rate limiting'). | Required | Unrestricted |
| 500 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics. Implementations SHOULD avoid using this error code - use only if there is catastrophic error and there is not a more appropriate code. | Required | Unrestricted |
| DEFAULT | application/json | Imsx_StatusInfo |
The request was invalid or cannot be served. The exact error SHOULD be explained in the response payload. | Required | Unrestricted |
getAllStaffForOrganization
Read all staff members of an org
Request
GET /1edtech/eduapi/base/v1p0/organizations/{id}/staff?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
id path |
GUIDRef |
The sourcedId of the organization | Required |
limit query |
PositiveInteger |
Specifices the download segmentation value i.e. the maximum number of records to be contained in the response. Default: 100. | Optional |
offset query |
NonNegativeInteger |
Specifices the number of the first record to be supplied in the segmented response message. Default: 0. | Optional |
sort query |
String |
Specifies that the collection should be sorted on the given data field value. The form of ordering is implementation dependent if the 'orderBy' attribute is not used. | Optional |
orderBy query |
String |
Specifies whether the collection should be ordered ascending (asc) or descending (desc). | Optional |
filter query |
String |
Specifies that the returned collection should be filtered using the supplied criteria. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality Level |
|---|---|---|---|---|---|
| 200 | application/json | Person[] |
Required | Unrestricted | |
| 404 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the origin server did not find a current representation for the target resource or is not willing to disclose that one exists. | Required | Unrestricted |
| 400 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server cannot or will not process the request due to something that is perceived to be a client error. | Required | Unrestricted |
| 401 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the request has not been applied because it lacks valid authentication credentials for the target resource. | Required | Unrestricted |
| 403 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server understood the request but refuses to fulfill it. The exact reason SHOULD be explained in the response payload. | Required | Unrestricted |
| 422 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, used when the server cannot validate an incoming entity. | Required | Unrestricted |
| 429 | application/json | Imsx_StatusInfo |
As defined in Additional HTTP Status Codes, indicating that the user has sent too many requests in a given amount of time ('rate limiting'). | Required | Unrestricted |
| 500 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics. Implementations SHOULD avoid using this error code - use only if there is catastrophic error and there is not a more appropriate code. | Required | Unrestricted |
| DEFAULT | application/json | Imsx_StatusInfo |
The request was invalid or cannot be served. The exact error SHOULD be explained in the response payload. | Required | Unrestricted |
getAllStudentsForOrganization
Read all students of an organization
Request
GET /1edtech/eduapi/base/v1p0/organizations/{id}/students?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
id path |
GUIDRef |
The sourcedId of the Organization | Required |
limit query |
PositiveInteger |
Specifices the download segmentation value i.e. the maximum number of records to be contained in the response. Default: 100. | Optional |
offset query |
NonNegativeInteger |
Specifices the number of the first record to be supplied in the segmented response message. Default: 0. | Optional |
sort query |
String |
Specifies that the collection should be sorted on the given data field value. The form of ordering is implementation dependent if the 'orderBy' attribute is not used. | Optional |
orderBy query |
String |
Specifies whether the collection should be ordered ascending (asc) or descending (desc). | Optional |
filter query |
String |
Specifies that the returned collection should be filtered using the supplied criteria. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality Level |
|---|---|---|---|---|---|
| 200 | application/json | Person[] |
Required | Unrestricted | |
| 404 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the origin server did not find a current representation for the target resource or is not willing to disclose that one exists. | Required | Unrestricted |
| 400 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server cannot or will not process the request due to something that is perceived to be a client error. | Required | Unrestricted |
| 401 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the request has not been applied because it lacks valid authentication credentials for the target resource. | Required | Unrestricted |
| 403 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server understood the request but refuses to fulfill it. The exact reason SHOULD be explained in the response payload. | Required | Unrestricted |
| 422 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, used when the server cannot validate an incoming entity. | Required | Unrestricted |
| 429 | application/json | Imsx_StatusInfo |
As defined in Additional HTTP Status Codes, indicating that the user has sent too many requests in a given amount of time ('rate limiting'). | Required | Unrestricted |
| 500 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics. Implementations SHOULD avoid using this error code - use only if there is catastrophic error and there is not a more appropriate code. | Required | Unrestricted |
| DEFAULT | application/json | Imsx_StatusInfo |
The request was invalid or cannot be served. The exact error SHOULD be explained in the response payload. | Required | Unrestricted |
getAllStudentsForComponentOffering
Read all students for a componentOffering
Request
GET /1edtech/eduapi/base/v1p0/componentOfferings/{id}/students?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
id path |
GUIDRef |
The sourcedId of the ComponentOffering | Required |
limit query |
PositiveInteger |
Specifices the download segmentation value i.e. the maximum number of records to be contained in the response. Default: 100. | Optional |
offset query |
NonNegativeInteger |
Specifices the number of the first record to be supplied in the segmented response message. Default: 0. | Optional |
sort query |
String |
Specifies that the collection should be sorted on the given data field value. The form of ordering is implementation dependent if the 'orderBy' attribute is not used. | Optional |
orderBy query |
String |
Specifies whether the collection should be ordered ascending (asc) or descending (desc). | Optional |
filter query |
String |
Specifies that the returned collection should be filtered using the supplied criteria. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality Level |
|---|---|---|---|---|---|
| 200 | application/json | Person[] |
Required | Unrestricted | |
| 404 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the origin server did not find a current representation for the target resource or is not willing to disclose that one exists. | Required | Unrestricted |
| 400 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server cannot or will not process the request due to something that is perceived to be a client error. | Required | Unrestricted |
| 401 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the request has not been applied because it lacks valid authentication credentials for the target resource. | Required | Unrestricted |
| 403 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server understood the request but refuses to fulfill it. The exact reason SHOULD be explained in the response payload. | Required | Unrestricted |
| 422 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, used when the server cannot validate an incoming entity. | Required | Unrestricted |
| 429 | application/json | Imsx_StatusInfo |
As defined in Additional HTTP Status Codes, indicating that the user has sent too many requests in a given amount of time ('rate limiting'). | Required | Unrestricted |
| 500 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics. Implementations SHOULD avoid using this error code - use only if there is catastrophic error and there is not a more appropriate code. | Required | Unrestricted |
| DEFAULT | application/json | Imsx_StatusInfo |
The request was invalid or cannot be served. The exact error SHOULD be explained in the response payload. | Required | Unrestricted |
getAllStaffForComponentOffering
Read all students for a componentOffering
Request
GET /1edtech/eduapi/base/v1p0/componentOfferings/{id}/staff?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
id path |
GUIDRef |
The sourcedId of the ComponentOffering | Required |
limit query |
PositiveInteger |
Specifices the download segmentation value i.e. the maximum number of records to be contained in the response. Default: 100. | Optional |
offset query |
NonNegativeInteger |
Specifices the number of the first record to be supplied in the segmented response message. Default: 0. | Optional |
sort query |
String |
Specifies that the collection should be sorted on the given data field value. The form of ordering is implementation dependent if the 'orderBy' attribute is not used. | Optional |
orderBy query |
String |
Specifies whether the collection should be ordered ascending (asc) or descending (desc). | Optional |
filter query |
String |
Specifies that the returned collection should be filtered using the supplied criteria. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality Level |
|---|---|---|---|---|---|
| 200 | application/json | Person[] |
Required | Unrestricted | |
| 404 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the origin server did not find a current representation for the target resource or is not willing to disclose that one exists. | Required | Unrestricted |
| 400 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server cannot or will not process the request due to something that is perceived to be a client error. | Required | Unrestricted |
| 401 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the request has not been applied because it lacks valid authentication credentials for the target resource. | Required | Unrestricted |
| 403 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server understood the request but refuses to fulfill it. The exact reason SHOULD be explained in the response payload. | Required | Unrestricted |
| 422 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, used when the server cannot validate an incoming entity. | Required | Unrestricted |
| 429 | application/json | Imsx_StatusInfo |
As defined in Additional HTTP Status Codes, indicating that the user has sent too many requests in a given amount of time ('rate limiting'). | Required | Unrestricted |
| 500 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics. Implementations SHOULD avoid using this error code - use only if there is catastrophic error and there is not a more appropriate code. | Required | Unrestricted |
| DEFAULT | application/json | Imsx_StatusInfo |
The request was invalid or cannot be served. The exact error SHOULD be explained in the response payload. | Required | Unrestricted |
EnrollmentManagement
Operations relating to Enrollments
getAllEnrollments
Read all Enrollments for an institution
Request
GET /1edtech/eduapi/base/v1p0/enrollments?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
limit query |
PositiveInteger |
Specifices the download segmentation value i.e. the maximum number of records to be contained in the response. Default: 100. | Optional |
offset query |
NonNegativeInteger |
Specifices the number of the first record to be supplied in the segmented response message. Default: 0. | Optional |
sort query |
String |
Specifies that the collection should be sorted on the given data field value. The form of ordering is implementation dependent if the 'orderBy' attribute is not used. | Optional |
orderBy query |
String |
Specifies whether the collection should be ordered ascending (asc) or descending (desc). | Optional |
filter query |
String |
Specifies that the returned collection should be filtered using the supplied criteria. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality Level |
|---|---|---|---|---|---|
| 200 | application/json | Enrollment[] |
Required | Unrestricted | |
| 400 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server cannot or will not process the request due to something that is perceived to be a client error. | Required | Unrestricted |
| 401 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the request has not been applied because it lacks valid authentication credentials for the target resource. | Required | Unrestricted |
| 403 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server understood the request but refuses to fulfill it. The exact reason SHOULD be explained in the response payload. | Required | Unrestricted |
| 422 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, used when the server cannot validate an incoming entity. | Required | Unrestricted |
| 429 | application/json | Imsx_StatusInfo |
As defined in Additional HTTP Status Codes, indicating that the user has sent too many requests in a given amount of time ('rate limiting'). | Required | Unrestricted |
| 500 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics. Implementations SHOULD avoid using this error code - use only if there is catastrophic error and there is not a more appropriate code. | Required | Unrestricted |
| DEFAULT | application/json | Imsx_StatusInfo |
The request was invalid or cannot be served. The exact error SHOULD be explained in the response payload. | Required | Unrestricted |
getEnrollmentById
Read Enrollment with a specific id
Request
GET /1edtech/eduapi/base/v1p0/enrollments/{id}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
id path |
GUIDRef |
The sourcedId of the Enrollment | Required |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality Level |
|---|---|---|---|---|---|
| 200 | application/json | Enrollment |
Required | Unrestricted | |
| 400 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server cannot or will not process the request due to something that is perceived to be a client error. | Required | Unrestricted |
| 401 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the request has not been applied because it lacks valid authentication credentials for the target resource. | Required | Unrestricted |
| 403 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server understood the request but refuses to fulfill it. The exact reason SHOULD be explained in the response payload. | Required | Unrestricted |
| 404 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the origin server did not find a current representation for the target resource or is not willing to disclose that one exists. | Required | Unrestricted |
| 422 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, used when the server cannot validate an incoming entity. | Required | Unrestricted |
| 429 | application/json | Imsx_StatusInfo |
As defined in Additional HTTP Status Codes, indicating that the user has sent too many requests in a given amount of time ('rate limiting'). | Required | Unrestricted |
| 500 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics. Implementations SHOULD avoid using this error code - use only if there is catastrophic error and there is not a more appropriate code. | Required | Unrestricted |
| DEFAULT | application/json | Imsx_StatusInfo |
The request was invalid or cannot be served. The exact error SHOULD be explained in the response payload. | Required | Unrestricted |
getAllEnrollmentsForCourseOffering
Read all enrollments for a courseOffering
Request
GET /1edtech/eduapi/base/v1p0/courseOfferings/{id}/enrollments?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
id path |
GUIDRef |
The sourcedId of the CourseOffering | Required |
limit query |
PositiveInteger |
Specifices the download segmentation value i.e. the maximum number of records to be contained in the response. Default: 100. | Optional |
offset query |
NonNegativeInteger |
Specifices the number of the first record to be supplied in the segmented response message. Default: 0. | Optional |
sort query |
String |
Specifies that the collection should be sorted on the given data field value. The form of ordering is implementation dependent if the 'orderBy' attribute is not used. | Optional |
orderBy query |
String |
Specifies whether the collection should be ordered ascending (asc) or descending (desc). | Optional |
filter query |
String |
Specifies that the returned collection should be filtered using the supplied criteria. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality Level |
|---|---|---|---|---|---|
| 200 | application/json | Enrollment[] |
Required | Unrestricted | |
| 404 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the origin server did not find a current representation for the target resource or is not willing to disclose that one exists. | Required | Unrestricted |
| 400 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server cannot or will not process the request due to something that is perceived to be a client error. | Required | Unrestricted |
| 401 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the request has not been applied because it lacks valid authentication credentials for the target resource. | Required | Unrestricted |
| 403 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server understood the request but refuses to fulfill it. The exact reason SHOULD be explained in the response payload. | Required | Unrestricted |
| 422 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, used when the server cannot validate an incoming entity. | Required | Unrestricted |
| 429 | application/json | Imsx_StatusInfo |
As defined in Additional HTTP Status Codes, indicating that the user has sent too many requests in a given amount of time ('rate limiting'). | Required | Unrestricted |
| 500 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics. Implementations SHOULD avoid using this error code - use only if there is catastrophic error and there is not a more appropriate code. | Required | Unrestricted |
| DEFAULT | application/json | Imsx_StatusInfo |
The request was invalid or cannot be served. The exact error SHOULD be explained in the response payload. | Required | Unrestricted |
getAllEnrollmentsForCollectionOffering
Read all enrollments for a courseOffering
Request
GET /1edtech/eduapi/base/v1p0/collectionOfferings/{id}/enrollments?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
id path |
GUIDRef |
The sourcedId of the CourseOffering | Required |
limit query |
PositiveInteger |
Specifices the download segmentation value i.e. the maximum number of records to be contained in the response. Default: 100. | Optional |
offset query |
NonNegativeInteger |
Specifices the number of the first record to be supplied in the segmented response message. Default: 0. | Optional |
sort query |
String |
Specifies that the collection should be sorted on the given data field value. The form of ordering is implementation dependent if the 'orderBy' attribute is not used. | Optional |
orderBy query |
String |
Specifies whether the collection should be ordered ascending (asc) or descending (desc). | Optional |
filter query |
String |
Specifies that the returned collection should be filtered using the supplied criteria. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality Level |
|---|---|---|---|---|---|
| 200 | application/json | Enrollment[] |
Required | Unrestricted | |
| 404 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the origin server did not find a current representation for the target resource or is not willing to disclose that one exists. | Required | Unrestricted |
| 400 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server cannot or will not process the request due to something that is perceived to be a client error. | Required | Unrestricted |
| 401 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the request has not been applied because it lacks valid authentication credentials for the target resource. | Required | Unrestricted |
| 403 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server understood the request but refuses to fulfill it. The exact reason SHOULD be explained in the response payload. | Required | Unrestricted |
| 422 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, used when the server cannot validate an incoming entity. | Required | Unrestricted |
| 429 | application/json | Imsx_StatusInfo |
As defined in Additional HTTP Status Codes, indicating that the user has sent too many requests in a given amount of time ('rate limiting'). | Required | Unrestricted |
| 500 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics. Implementations SHOULD avoid using this error code - use only if there is catastrophic error and there is not a more appropriate code. | Required | Unrestricted |
| DEFAULT | application/json | Imsx_StatusInfo |
The request was invalid or cannot be served. The exact error SHOULD be explained in the response payload. | Required | Unrestricted |
getAllEnrollmentsForComponentOffering
Read all enrollments for a courseOffering
Request
GET /1edtech/eduapi/base/v1p0/componentOfferings/{id}/enrollments?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
id path |
GUIDRef |
The sourcedId of the CourseOffering | Required |
limit query |
PositiveInteger |
Specifices the download segmentation value i.e. the maximum number of records to be contained in the response. Default: 100. | Optional |
offset query |
NonNegativeInteger |
Specifices the number of the first record to be supplied in the segmented response message. Default: 0. | Optional |
sort query |
String |
Specifies that the collection should be sorted on the given data field value. The form of ordering is implementation dependent if the 'orderBy' attribute is not used. | Optional |
orderBy query |
String |
Specifies whether the collection should be ordered ascending (asc) or descending (desc). | Optional |
filter query |
String |
Specifies that the returned collection should be filtered using the supplied criteria. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality Level |
|---|---|---|---|---|---|
| 200 | application/json | Enrollment[] |
Required | Unrestricted | |
| 404 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the origin server did not find a current representation for the target resource or is not willing to disclose that one exists. | Required | Unrestricted |
| 400 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server cannot or will not process the request due to something that is perceived to be a client error. | Required | Unrestricted |
| 401 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the request has not been applied because it lacks valid authentication credentials for the target resource. | Required | Unrestricted |
| 403 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server understood the request but refuses to fulfill it. The exact reason SHOULD be explained in the response payload. | Required | Unrestricted |
| 422 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, used when the server cannot validate an incoming entity. | Required | Unrestricted |
| 429 | application/json | Imsx_StatusInfo |
As defined in Additional HTTP Status Codes, indicating that the user has sent too many requests in a given amount of time ('rate limiting'). | Required | Unrestricted |
| 500 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics. Implementations SHOULD avoid using this error code - use only if there is catastrophic error and there is not a more appropriate code. | Required | Unrestricted |
| DEFAULT | application/json | Imsx_StatusInfo |
The request was invalid or cannot be served. The exact error SHOULD be explained in the response payload. | Required | Unrestricted |
getAllEnrollmentsBySession
Read all enrollments in a specified academic session
Request
GET /1edtech/eduapi/base/v1p0/academicSessions/{id}/enrollments?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
id path |
GUIDRef |
The sourcedId of the AcademicSession | Required |
limit query |
PositiveInteger |
Specifices the download segmentation value i.e. the maximum number of records to be contained in the response. Default: 100. | Optional |
offset query |
NonNegativeInteger |
Specifices the number of the first record to be supplied in the segmented response message. Default: 0. | Optional |
sort query |
String |
Specifies that the collection should be sorted on the given data field value. The form of ordering is implementation dependent if the 'orderBy' attribute is not used. | Optional |
orderBy query |
String |
Specifies whether the collection should be ordered ascending (asc) or descending (desc). | Optional |
filter query |
String |
Specifies that the returned collection should be filtered using the supplied criteria. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality Level |
|---|---|---|---|---|---|
| 200 | application/json | Enrollment[] |
Required | Unrestricted | |
| 404 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the origin server did not find a current representation for the target resource or is not willing to disclose that one exists. | Required | Unrestricted |
| 400 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server cannot or will not process the request due to something that is perceived to be a client error. | Required | Unrestricted |
| 401 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the request has not been applied because it lacks valid authentication credentials for the target resource. | Required | Unrestricted |
| 403 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server understood the request but refuses to fulfill it. The exact reason SHOULD be explained in the response payload. | Required | Unrestricted |
| 404 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the origin server did not find a current representation for the target resource or is not willing to disclose that one exists. | Required | Unrestricted |
| 422 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, used when the server cannot validate an incoming entity. | Required | Unrestricted |
| 429 | application/json | Imsx_StatusInfo |
As defined in Additional HTTP Status Codes, indicating that the user has sent too many requests in a given amount of time ('rate limiting'). | Required | Unrestricted |
| 500 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics. Implementations SHOULD avoid using this error code - use only if there is catastrophic error and there is not a more appropriate code. | Required | Unrestricted |
| DEFAULT | application/json | Imsx_StatusInfo |
The request was invalid or cannot be served. The exact error SHOULD be explained in the response payload. | Required | Unrestricted |
AffiliationManagement
Operations relating to Affiliations
getAllAffiliations
Read all affiliations for an institution
Request
GET /1edtech/eduapi/base/v1p0/affiliations?limit={limit}&offset={offset}&sort={sort}&orderBy={orderBy}&filter={filter}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
limit query |
PositiveInteger |
Specifices the download segmentation value i.e. the maximum number of records to be contained in the response. Default: 100. | Optional |
offset query |
NonNegativeInteger |
Specifices the number of the first record to be supplied in the segmented response message. Default: 0. | Optional |
sort query |
String |
Specifies that the collection should be sorted on the given data field value. The form of ordering is implementation dependent if the 'orderBy' attribute is not used. | Optional |
orderBy query |
String |
Specifies whether the collection should be ordered ascending (asc) or descending (desc). | Optional |
filter query |
String |
Specifies that the returned collection should be filtered using the supplied criteria. | Optional |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality Level |
|---|---|---|---|---|---|
| 200 | application/json | Affiliation[] |
Required | Unrestricted | |
| 400 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server cannot or will not process the request due to something that is perceived to be a client error. | Required | Unrestricted |
| 401 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the request has not been applied because it lacks valid authentication credentials for the target resource. | Required | Unrestricted |
| 403 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server understood the request but refuses to fulfill it. The exact reason SHOULD be explained in the response payload. | Required | Unrestricted |
| 422 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, used when the server cannot validate an incoming entity. | Required | Unrestricted |
| 429 | application/json | Imsx_StatusInfo |
As defined in Additional HTTP Status Codes, indicating that the user has sent too many requests in a given amount of time ('rate limiting'). | Required | Unrestricted |
| 500 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics. Implementations SHOULD avoid using this error code - use only if there is catastrophic error and there is not a more appropriate code. | Required | Unrestricted |
| DEFAULT | application/json | Imsx_StatusInfo |
The request was invalid or cannot be served. The exact error SHOULD be explained in the response payload. | Required | Unrestricted |
getAffiliationById
Read Affiliation with a specific id
Request
GET /1edtech/eduapi/base/v1p0/affiliations/{id}
Request header, path, and query parameters
| Parameter | Parameter Type | Description | Required |
|---|---|---|---|
id path |
GUIDRef |
The sourcedId of the Affiliation | Required |
Responses
Allowed response codes and content types
| Status Code | Content-Type Header | Content Type | Content Description | Content Required | Confidentiality Level |
|---|---|---|---|---|---|
| 200 | application/json | Affiliation |
Required | Unrestricted | |
| 400 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server cannot or will not process the request due to something that is perceived to be a client error. | Required | Unrestricted |
| 401 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the request has not been applied because it lacks valid authentication credentials for the target resource. | Required | Unrestricted |
| 403 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the server understood the request but refuses to fulfill it. The exact reason SHOULD be explained in the response payload. | Required | Unrestricted |
| 404 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, indicating that the origin server did not find a current representation for the target resource or is not willing to disclose that one exists. | Required | Unrestricted |
| 422 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics, used when the server cannot validate an incoming entity. | Required | Unrestricted |
| 429 | application/json | Imsx_StatusInfo |
As defined in Additional HTTP Status Codes, indicating that the user has sent too many requests in a given amount of time ('rate limiting'). | Required | Unrestricted |
| 500 | application/json | Imsx_StatusInfo |
As defined in HTTP Semantics. Implementations SHOULD avoid using this error code - use only if there is catastrophic error and there is not a more appropriate code. | Required | Unrestricted |
| DEFAULT | application/json | Imsx_StatusInfo |
The request was invalid or cannot be served. The exact error SHOULD be explained in the response payload. | Required | Unrestricted |
Query Parameters
Edu-API defines the following query parameters on the REST API binding. Below are the descriptions of their use in Edu-API.
Limit
Limit MUST be enabled on all responses that produce a collection to restrict
the returned value in the response to a maximum number of records. Limit uses
the reserved word "limit", e.g. ?limit=500.
Providers can declare their segmentation window to consumers by providing a
maximum and/or minimum value in the limit parameter schema in their Open
API definition file.
"limit" : {
"name" : "limit",
"in" : "query",
"description" : "Specifices the download segmentation value i.e. the maximum number of records to be contained in the response. Default: 50.",
"required" : false,
"allowEmptyValue" : false,
"style" : "form",
"schema" : {
"minimum" : 1,
"maximum" : 50,
"type" : "integer",
"format" : "int32"
}
}
Sorting
Sorting should be enabled on all responses that produce a collection, e.g. the
response for a getAllPersons request should be returned in a sorted order.
Sorting should be enabled on any attribute in a resource. Sorting uses the
reserved word "sort", e.g. ?sort=attribute. The syntax for a request that
retrieves all persons from the getAllPersons endpoint and sorts the results
by the formattedName attribute would look like:
"GET /1edtech/eduapi/base/v1p0/persons?sort=formattedName"
Sort requests may be further supplemented via use of the reserved word orderBy.
Order by takes the arguments asc for ascending or desc for descending. The
syntax for a request that retrieves all persons from the getAllPersons and
sorts the results by the formattedName attribute, ascending, would look like:
"GET /1edtech/eduapi/base/v1p0/persons?sort=formattedName&orderBy=asc"
Providers can declare their support for sorting to consumers by providing a
enumerated list of fields in the sort parameter schema in their Open API
definition file.
"sort":{
"name":"sort",
"in":"query",
"description":"Specifies that the collection should be sorted on the given data field value. The form of ordering is implementation dependent if the 'orderBy' attribute is not used.",
"required":false,
"allowEmptyValue":true,
"style":"form",
"schema":{
"type":"string",
"description":"Character strings.",
"enum": ["language", "legalName.familyName", "affiliation.role"]
}
}
In this example, the provider is allowing sorting by the fields:
- language
- legalName.familyName
- affiliation.role
If the enum is omitted, provider don't support sorting.
Note: JSON schema specification requires at least one value in
enumdeclarations.
Implementation notes
-
If the consumer requests that the data is to be sorted by a non-existent field, data MAY be returned in the service provider's default sort order or an error response MAY be returned.
-
When sorting/ordering is requested on a property that is an array, the first value in the array is used as the basis of the sorting/ordering.
-
Sorting and ordering of nested properties should be supported. The syntax for sorting on a nested attribute MUST use a dot-notation approach. An example of sorting on the nested property of
givenNameis:"GET /1edtech/eduapi/base/v1p0/persons?sort=personName.givenName"
Note: Consumers should always consult with their service provider partners for details on their support for sorting in Edu-API
Filtering
Filtering should be enabled on all responses that produce a collection. Collections should be filterable for attributes matching a certain criteria. Filtering should be enabled on all attributes in the core description of the resource. Filter requests use the following syntax:
GET ...hostname/baseurl/resource?filter=
Providers SHOULD declare their support for filtering to consumers by providing
a enumerated list of fields using the x-imssf-allowed-fields Open API
extension in the filter parameter definition in their Open API definition file.
"filter" : {
"name" : "filter",
"in" : "query",
"description" : "Specifies that the returned collection should be filtered using the supplied criteria.",
"required" : false,
"allowEmptyValue" : false,
"style" : "form",
"schema" : {
"type" : "string",
"description" : "Character strings."
},
"x-imssf-allowed-fields": [
"language",
"legalName.familyName",
"affiliation.role"
]
},
If the extension is omitted or contains an empty list, consumers SHOULD assume the provider doesn't allow filtering of any field in the resource.
Note: If the provider supports filtering, it must declare at least one expression in the list of supported expressions. See the next section for more details.
Providing the name of a top-level resource means that the provider supports filtering for every property of the nested resource.
Filter Predicates
- Equals is represented by '='
- Not Equal is represented by '!='
- Greater Than is represented by '>'
- Greater Than or Equal is represented by '>='
- Greater Than or Equal is represented by '>='
- Lesser Than is represented by '<'
- Lesser Than or Equal is represented by '<='
- Contains is represented by '~'
Providers may limit the expressions in the filter predictes to exclude
unsupported expresions. Providers SHOULD declare to consumers their supported
expressions by listing them via the x-imssf-supported-expressions Open API
extension in the filter parameter definition in their Open API definition file.
"filter" : {
"name" : "filter",
"in" : "query",
"description" : "Specifies that the returned collection should be filtered using the supplied criteria.",
"required" : false,
"allowEmptyValue" : false,
"style" : "form",
"schema" : {
"type" : "string",
"description" : "Character strings."
},
"x-imssf-supported-expressions": [
"Equals",
"NotEquals"
]
},
The possible values of items inside the x-imssf-supported-expressions list are:
EqualsNotEqualGreaterThanGreaterThanOrEqualLesserThanLesserThanOrEqualContainsLogicalAndLogicalOr
If the extension is omitted or contains an empty list, consumers SHOULD assume the provider doesn't allow any expression defined in the query language. In this case, the provider should declare that doesn't support filtering following previous indications.
Implementation notes
- All Filter queries MUST be URL encoded.
- Values MUST be enclosed within single quotes and they MUST be handled as case insensitive. When the response is returned it is the receiving system that should consider whether or not case-sensitivity is important.
- The attributes that can be used are those present in the class definition
being filtered. If the consumer requests that the data is filtered by a
non-existent field, no data is returned and the server must provide the
associated transaction status code information of:
- CodeMajor value is 'failure'
- Severity value is 'error'
- CodeMinor value is 'invalid_filter_field'.
- Filtering on extensions is supported. Note then when querying on extensions, the property is loosely typed, performing a string comparison.
- Filtering rules should conform to the use of the Unicode Collation Algorithm The Unicode Standard when using the relevant comparisons.
Complex filters
Complex filter requests can be created via the use of a <logical> parameter in
the query string. Edu-API supports " AND " and " OR " (note the surrounding
white space at each side) and that there is only one such operator used in any
filter, i.e. a single 'AND' or a single 'OR' in the filter. A single white
space must occur before and after the parameter. The syntax for a getAllPersons
request that asks for a filter on formattedName = "John Doe" AND isDeceased = "false" is:
GET /1edtech/eduapi/base/v1p0/persons?filter=formattedName='John Doe' AND isDeceased='false'
The same example request, URL encoded, would look like.
GET /1edtech/eduapi/base/v1p0/persons?filter=formattedName%3D%27John%20Doe%27%20AND isDeceased%3E%27false%27
Providers can declare consumers of their support by adding LogicalAnd and
LogicalOr to the list of supported expressions defined by the
x-imssf-supported-expressions Open API extension.
Filtering on Arrays
When filtering on objects that are arrays, the only predicate permitted is "~" (Contains). The consumer's query expression provides a single filter value; if the array value on the provider has an element that matches that single filter value, then the array does match (it contains the searched for element).
For example, if the languagesSpoken attribute has the value
["English", "French (Canadian)", "German"], then the query expression
?filter=languagesSpoken~"English" exactly matches an element in the
attribute's value array (so the record containing the attribute is returned).
However, the query expression ?filter=languagesSpoken~"French" does
not exactly match an element in the attribute's value array (so the record
containing the attribute is not returned).
Providers can declare consumers of their support for array filtering by setting the
boolean x-imssf-supported-array-filtering Open API extension in the filter
parameter definition in their Open API definition file.
"filter" : {
"name" : "filter",
"in" : "query",
"description" : "Specifies that the returned collection should be filtered using the supplied criteria.",
"required" : false,
"allowEmptyValue" : false,
"style" : "form",
"schema" : {
"type" : "string",
"description" : "Character strings."
},
"x-imssf-supported-array-filtering": true
},
If the extension is omitted, consumers can assume the provider doesn't support this type of filtering.
Pagination
Requests for collections like getAllUsers run a danger of data
overload. To avoid this, implementations should adopt a pagination mechanism.
Pagination is controlled via two parameters appended to the request.
These parameters are:
limit- the number of results to return (the default value is 100);offset- the index of the first record to return (zero index and so the default value is 0).
The syntax for a request that returns the first 10 persons records:
GET /1edtech/eduapi/base/v1p0/persons?limit=10
The syntax for a request that returns the second 10 persons records:
GET /1edtech/eduapi/base/v1p0/persons?limit=10&offset=10
Providers return a list with the elements if the request have been successfully fulfilled. The size of the list size can be:
- "0" if the provider is unable to locate any element within the requested page specified by "limit" and "offset". This indicates that there are no additional elements in the collection.
- Less than "limit". Consumers can infer that there are no more elements in the collection.
- Equals to "limit". In this scenario, the collection may contain additional elements.
Implementation notes
If the consumer requests that data be selected using non-existent field, ALL data for the record is returned. If the consumer requests that data be selected using a blank field the request will be treated as an invalid request. The server must provide the associated transaction status code information of:
- CodeMajor value is 'failure';
- Severity value is 'error';
- CodeMinor value is 'invalid_selection_field'.
Examples
JSON Payload Examples
Below is a set of JSON payload examples for all the 1st class entities in the Edu-API Data model.
Person Example
{
"sourcedId": "A1C-_9",
"otherIdentifiers": [
{
"identifier": "51-_1",
"identifierType": "systemId"
},
{
"identifier": "C-_-1_--",
"identifierType": "productId"
}
],
"recordLanguage": "pl-PL",
"legalName": {
"familyName": "...string...",
"givenName": "...string...",
"additionalName": "...string...",
"patronymicName": "...string...",
"honorificPrefix": "...string...",
"honorificSuffix": "...string...",
"familyNamePrefix": "...string..."
},
"formattedName": "...nfcstring...",
"otherNames": [
{
"nameType": "legalName",
"familyName": "...string...",
"givenName": "...string...",
"additionalName": "...string...",
"patronymicName": "...string...",
"honorificPrefix": "...string...",
"honorificSuffix": "...string...",
"familyNamePrefix": "...string..."
},
{
"nameType": "preferredName",
"familyName": "...string...",
"givenName": "...string...",
"additionalName": "...string...",
"patronymicName": "...string...",
"honorificPrefix": "...string...",
"honorificSuffix": "...string...",
"familyNamePrefix": "...string..."
}
],
"gender": "male",
"pronouns": [
{
"recordLanguage": "sw-Latn-TZ",
"value": "...string..."
},
{
"recordLanguage": "en-PK",
"value": "...string..."
}
],
"languagesSpoken": [
"zgh-MA",
"ar-EG"
],
"dateOfBirth": "2026-10-21",
"placeOfBirth": "...string...",
"countryOfBirth": "...string...",
"isDeceased": true,
"dateOfDeath": "2026-10-21",
"primaryEmail": {
"emailType": "homeEmail",
"email": "jfbyivbx@example.org"
},
"otherEmails": [
{
"emailType": "homeEmail",
"email": "hvnnylfxm@example.org"
},
{
"emailType": "workEmail",
"email": "ucusg@example.org"
}
],
"primaryPhone": {
"phoneType": "homePhone",
"phone": "814348"
},
"otherPhones": [
{
"phoneType": "homePhone",
"phone": "35161999451"
},
{
"phoneType": "workPhone",
"phone": "65834625"
}
],
"primaryAddress": {
"addressType": "visitingAddress",
"addressCountry": "...string...",
"addressCountryCode": "AT",
"addressRegion": "...string...",
"addressLocality": "...string...",
"streetAddress": "...string...",
"postOfficeBoxNumber": "...string...",
"postalCode": "...string...",
"geo": {
"latitude": 0.25954038,
"longitude": 0.54931664
}
},
"otherAddresses": [
{
"addressType": "visitingAddress",
"addressCountry": "...string...",
"addressCountryCode": "FI",
"addressRegion": "...string...",
"addressLocality": "...string...",
"streetAddress": "...string...",
"postOfficeBoxNumber": "...string...",
"postalCode": "...string...",
"geo": {
"latitude": 0.46959054,
"longitude": 0.61813444
}
},
{
"addressType": "mailingAddress",
"addressCountry": "...string...",
"addressCountryCode": "PN",
"addressRegion": "...string...",
"addressLocality": "...string...",
"streetAddress": "...string...",
"postOfficeBoxNumber": "...string...",
"postalCode": "...string...",
"geo": {
"latitude": 0.9144417,
"longitude": 0.6076639
}
}
],
"agents": [
{
"agentType": "parent",
"person": "-B21_",
"description": [
{
"recordLanguage": "pl-PL",
"value": "...string..."
},
{
"recordLanguage": "as",
"value": "...string..."
}
],
"domain": "...string..."
},
{
"agentType": "guardian",
"person": "4AD7_7",
"description": [
{
"recordLanguage": "uz-Cyrl",
"value": "...string..."
},
{
"recordLanguage": "uz-Cyrl-UZ",
"value": "...string..."
}
],
"domain": "...string..."
}
],
"dateLastModified": "2026-10-21T05:10:34+02:00",
"recordStatus": "active"
}
Organization Example
{
"sourcedId": "-__-B64_",
"recordLanguage": "wae-Latn-CH",
"primaryCode": {
"identifier": "C5-----",
"identifierType": "systemId"
},
"otherCodes": [
{
"identifier": "-913E---",
"identifierType": "systemId"
},
{
"identifier": "--_BB_",
"identifierType": "productId"
}
],
"name": [
{
"recordLanguage": "fy-NL",
"value": "...string..."
},
{
"recordLanguage": "es-CO",
"value": "...string..."
}
],
"description": [
{
"recordLanguage": "ksb",
"value": "...string..."
},
{
"recordLanguage": "pl",
"value": "...string..."
}
],
"organizationType": "...string...",
"parent": "-3-3BC",
"children": [
"687_-",
"B6-_-_-C-"
],
"primaryAddress": {
"addressType": "visitingAddress",
"addressCountry": "...string...",
"addressCountryCode": "IL",
"addressRegion": "...string...",
"addressLocality": "...string...",
"streetAddress": "...string...",
"postOfficeBoxNumber": "...string...",
"postalCode": "...string...",
"geo": {
"latitude": 0.9041316,
"longitude": 0.09423703
}
},
"otherAddresses": [
{
"addressType": "visitingAddress",
"addressCountry": "...string...",
"addressCountryCode": "VN",
"addressRegion": "...string...",
"addressLocality": "...string...",
"streetAddress": "...string...",
"postOfficeBoxNumber": "...string...",
"postalCode": "...string...",
"geo": {
"latitude": 0.7970377,
"longitude": 0.84079254
}
},
{
"addressType": "mailingAddress",
"addressCountry": "...string...",
"addressCountryCode": "CH",
"addressRegion": "...string...",
"addressLocality": "...string...",
"streetAddress": "...string...",
"postOfficeBoxNumber": "...string...",
"postalCode": "...string...",
"geo": {
"latitude": 0.4666975,
"longitude": 0.95312685
}
}
],
"dateLastModified": "2026-10-21T05:10:34+02:00",
"recordStatus": "active"
}
Academic Session Example
{
"sourcedId": "_356-F5",
"recordLanguage": "en-JM",
"primaryCode": {
"identifier": "F1-___F",
"identifierType": "systemId"
},
"otherCodes": [
{
"identifier": "D-24_",
"identifierType": "systemId"
},
{
"identifier": "FCC-8",
"identifierType": "productId"
}
],
"sessionType": "gradingPeriod",
"title": [
{
"recordLanguage": "ee",
"value": "...string..."
},
{
"recordLanguage": "ln-CF",
"value": "...string..."
}
],
"startDate": "2026-10-21T05:10:34+02:00",
"endDate": "2026-10-21T05:10:34+02:00",
"parent": "C73_E_-",
"children": [
"A-F_-",
"3_8-1"
],
"recordStatus": "active",
"dateLastModified": "2026-10-21T05:10:34+02:00"
}
Enrollment Example
{
"sourcedId": "8-A4_9_",
"recordLanguage": "kde-TZ",
"isActive": true,
"enrollmentStatus": "onLeave",
"person": "C--455E",
"role": "member",
"startDate": "2026-10-21T05:10:34+02:00",
"endDate": "2026-10-21T05:10:34+02:00",
"educationOffering": "143--8-",
"offeringType": "collection",
"recordStatus": "active",
"dateLastModified": "2026-10-21T05:10:34+02:00"
}
Affilliation Example
{
"sourcedId": "6CAE_6",
"person": "9_--_",
"organization": "2_-_E-5_",
"role": "member",
"startDate": "2026-10-21T05:10:34+02:00",
"endDate": "2026-10-21T05:10:34+02:00",
"affiliationStatus": "active",
"recordStatus": "active",
"dateLastModified": "2026-10-21T05:10:34+02:00"
}
Template Example: Course Template
{
"courseType": "standard",
"parent": [
"-C8718B",
"3-2_9-__"
],
"sourcedId": "5-8-B__",
"recordLanguage": "fi-Latn-FI",
"title": [
{
"recordLanguage": "ta",
"value": "...string..."
},
{
"recordLanguage": "nb",
"value": "...string..."
}
],
"description": [
{
"recordLanguage": "fr-NC",
"value": "...string..."
},
{
"recordLanguage": "mas",
"value": "...string..."
}
],
"primaryCode": {
"identifier": "--__C-11_",
"identifierType": "systemId"
},
"otherCodes": [
{
"identifier": "-_-82F-",
"identifierType": "systemId"
},
{
"identifier": "2-2_-D__6",
"identifierType": "productId"
}
],
"subjectCodes": [
"...string...",
"...string..."
],
"organization": "__75-9_-",
"organizationCode": "...string...",
"level": "graduate",
"creditType": "credit",
"creditsAwarded": "...string...",
"gradingScheme": [
{
"recordLanguage": "nl-BQ",
"value": "...string..."
},
{
"recordLanguage": "lrc-IQ",
"value": "...string..."
}
],
"teachingLanguage": "kw",
"recordStatus": "active",
"dateLastModified": "2026-10-21T05:10:34+02:00",
"learningObjectiveSet": [
{
"sourcedId": "2_9DE6-",
"recordLanguage": "sr-RS",
"recordStatus": "active",
"dateLastModified": "2026-10-21T05:10:34+02:00",
"source": "case",
"learningObjectiveIds": [
"...normalizedstring...",
"...normalizedstring..."
]
},
{
"sourcedId": "F_-D---8",
"recordLanguage": "to-Latn-TO",
"recordStatus": "deleted",
"dateLastModified": "2026-10-21T05:10:34+02:00",
"source": "unknown",
"learningObjectiveIds": [
"...normalizedstring...",
"...normalizedstring..."
]
}
]
}
Offering Example: Course Offering
{
"offeringType": "standard",
"course": "-_-3_5---",
"parent": [
"68_8_-48_",
"-9_9-_FC"
],
"sourcedId": "2-736-",
"recordLanguage": "rwk-TZ",
"title": [
{
"recordLanguage": "tzm",
"value": "...string..."
},
{
"recordLanguage": "kw",
"value": "...string..."
}
],
"description": [
{
"recordLanguage": "es-BR",
"value": "...string..."
},
{
"recordLanguage": "fr-LU",
"value": "...string..."
}
],
"primaryCode": {
"identifier": "11A-4-_",
"identifierType": "systemId"
},
"otherCodes": [
{
"identifier": "-_1A1-D9-",
"identifierType": "systemId"
},
{
"identifier": "___3-_",
"identifierType": "productId"
}
],
"locations": [
{
"identifier": "C----",
"description": [
{
"recordLanguage": "en-SG",
"value": "...string..."
},
{
"recordLanguage": "kab-DZ",
"value": "...string..."
}
],
"geoLocation": {
"latitude": 0.3478337,
"longitude": 0.1747325
}
},
{
"identifier": "_F7_D",
"description": [
{
"recordLanguage": "twq-Latn-NE",
"value": "...string..."
},
{
"recordLanguage": "sq-MK",
"value": "...string..."
}
],
"geoLocation": {
"latitude": 0.10868001,
"longitude": 0.29674786
}
}
],
"organization": "_--2FF-",
"academicSession": "8--2--__7",
"organizationCode": "...string...",
"academicSessionCode": "...string...",
"offeringFormat": "online",
"paceOfStudy": "...percentage...",
"registrationStatus": "open",
"startDate": "2026-10-21T05:10:34+02:00",
"endDate": "2026-10-21T05:10:34+02:00",
"teachingLanguage": "es-PR",
"maxNumberStudents": 0,
"minNumberStudents": 0,
"enrolledNumberStudents": 0,
"pendingNumberStudents": 0,
"roleEnablement": [
{
"role": "member",
"startDate": "2026-10-21T05:10:34+02:00",
"endDate": "2026-10-21T05:10:34+02:00"
},
{
"role": "chair",
"startDate": "2026-10-21T05:10:34+02:00",
"endDate": "2026-10-21T05:10:34+02:00"
}
],
"recordStatus": "active",
"dateLastModified": "2026-10-21T05:10:34+02:00",
"synchronicity": "hybrid",
"learningObjectiveSet": [
{
"sourcedId": "-4-_9",
"recordLanguage": "kln-Latn-KE",
"recordStatus": "active",
"dateLastModified": "2026-10-21T05:10:34+02:00",
"source": "case",
"learningObjectiveIds": [
"...normalizedstring...",
"...normalizedstring..."
]
},
{
"sourcedId": "-7D61_",
"recordLanguage": "ff-Latn-MR",
"recordStatus": "deleted",
"dateLastModified": "2026-10-21T05:10:34+02:00",
"source": "unknown",
"learningObjectiveIds": [
"...normalizedstring...",
"...normalizedstring..."
]
}
]
}
| ID | Name | Description |
|---|---|---|
| 1 | Roster Provisioning | Ensure class rosters and enrollment information remains consistent across every system that needs it. |
| 2 | Role-Based Access | Makes sure people get the right permissions based on their role at the institution. |
| 3 | Staff Provisioning by Org | Ensures systems know which staff belong to which departments or campuses, and what they're allowed to do there. |
| 4 | Retrieve Class Schedule – Student | Lets other systems look up a student's class schedule directly from the source of truth. |
| 5 | Retrieve Roster – Course Offering | Gives instructional tools an accurate, up-to-date list of who's in a given course. |
| 6 | Educational Program Definition | Defines what an academic program consists of before anyone can enroll in it. |
| 7 | Program Based Enrollment | Enrolls a student in an academic program, rather than just an individual course. |
| 8 | Course Change Management | Keeps course details such as instructors, schedules, and credits, in sync as they change over time. |
Use Case Details
Roster Provisioning
Goal Ensure institutional systems maintain consistent and up-to-date roster information across all connected applications.
Description Accurate roster data is essential for enrollment management, access control, and instructional delivery. This use case defines how Edu-API enables systems to synchronize authoritative person, enrollment, and course data so that all consuming applications maintain an aligned view of institutional participation.
Preconditions
- Both systems implement Edu-API v1.0 Core, including Person, Organization, AcademicSession, CourseOffering, and Enrollment.
- Provider and consumer are authenticated via OAuth 2.0.
- Consumer is configured with the provider’s base URL and supported scopes.
Main Flow
- Retrieve persons: getAllPersons.
- Retrieve organizational and session context: getAllOrganizations and getAllAcademicSessions.
- Retrieve course offerings: getAllCourseOfferings.
- Retrieve enrollments: getAllEnrollments.
- Update local systems with current roster information.
Postconditions
- Consuming systems accurately reflect institutional rosters.
- Role and enrollment relationships are preserved.
- Synchronization supports access, analytics, and reporting.
Edu-API References
- Operations: getAllPersons, getAllOrganizations, getAllAcademicSessions, getAllCourseOfferings, getAllEnrollments
- Commonly applied filters:
dateLastModified,academicSessionId,organizationId,role - Data models referenced: Person, Organization, AcademicSession, CourseOffering, Enrollment
- Common HTTP Status Codes:
200,401,403,422,429,500
Role-Based Access
Goal Ensure users have appropriate access, visibility, and permissions across systems based on their institutional roles.
Description Role-based access allows institutions to enforce consistent permissions and responsibilities across platforms. By exchanging role information through Edu-API, institutions enable consuming systems to apply organizational and course-level roles that reflect institutional policy.
Preconditions
- Both systems implement Edu-API v1.0 Core, including Person, Organization, Affiliation, CourseOffering, and Enrollment.
- Roles are managed in the provider system.
- Consumer is authorized through OAuth 2.0.
Main Flow
- Retrieve persons: getAllPersons.
- Retrieve organizational affiliations: getAllAffiliations?personId={sourcedId}.
- Retrieve enrollments and course roles: getAllEnrollments?personId={sourcedId}.
- Apply role data to control access, display, and interaction within the consuming system.
Postconditions
- Role assignments are consistent across systems.
- Permissions and access levels match institutional policies.
- Updates to roles in the SIS are reflected across consuming applications.
Edu-API References
- Operations: getAllPersons, getAllAffiliations?personId={sourcedId}, getAllEnrollments?personId={sourcedId}
- Commonly applied filters:
role,organizationId,courseOfferingId - Data models referenced: Person, Organization, Affiliation, CourseOffering, Enrollment
- Common HTTP Status Codes:
200,401,403,404,429,500
Staff Provisioning by Org
Goal Enable institutions to manage and provision staff across departments and campuses based on organizational hierarchy and roles.
Description Institutions often allocate staff to multiple departments or campuses, requiring clear and consistent provisioning of roles and permissions. Edu-API provides structured mechanisms to describe and exchange staff assignments and affiliations, ensuring that connected systems recognize organizational context and permissions.
Preconditions
- Both systems implement Edu-API v1.0 Core, including Person, Organization, and Affiliation.
- Provider maintains authoritative staff affiliation records.
- Consumer has valid credentials and endpoint configuration.
Main Flow
- Retrieve staff persons: getAllPersons?role=staff.
- Retrieve affiliations: getAllAffiliations?personId={sourcedId}.
- Retrieve associated organizations: getAllOrganizations.
- Assign or update staff access in consuming systems based on affiliation data.
Postconditions
- Staff roles are accurately reflected across systems.
- Organizational context for staff access is preserved.
- Changes in assignments or roles are consistently propagated.
Edu-API References
- Operations: getAllPersons, getAllOrganizations, getAllAffiliations?personId={sourcedId}
- Commonly applied filters:
organizationId,role,status - Data models referenced: Person, Organization, Affiliation
- Common HTTP Status Codes:
200,401,403,404,429,500
Retrieve Class Schedule – Student
Goal Provide connected systems with access to a student’s current course schedule for academic, financial, and advising purposes.
Description A student’s class schedule underpins many administrative and academic workflows. This use case illustrates how Edu-API enables systems such as advising, attendance, or billing to retrieve authoritative enrollment and scheduling information directly from the SIS.
Preconditions
- Both systems implement Edu-API v1.0 Core, including Person, CourseOffering, Enrollment, and AcademicSession.
- Provider maintains accurate enrollment and schedule data.
- Consumer is authenticated and authorized to retrieve student records.
Main Flow
- Retrieve the student’s enrolled courses: getAllCourseOfferings?personId={studentId}&role=student.
- Retrieve associated enrollments: getAllEnrollments?personId={studentId}.
- Retrieve related session and organization context as needed.
- Display or process schedule data for advising or reporting workflows.
Postconditions
- Consuming systems display accurate and complete class schedules.
- Institutional and downstream systems remain aligned on student enrollment data.
- Updates to course schedules are propagated consistently.
Edu-API References
- Operations: getAllCourseOfferings?personId={studentId}&role=student, getAllEnrollments
- Commonly applied filters:
academicSessionId,status,role - Data models referenced: Person, CourseOffering, Enrollment, AcademicSession
- Common HTTP Status Codes:
200,401,403,404,429,500
Retrieve Roster – Course Offering
Goal Ensure connected systems maintain accurate and up-to-date information about course participants for each offering.
Description Course rosters provide the authoritative list of learners and instructors for each offering. Edu-API allows downstream systems to query the SIS for complete roster data, ensuring consistent membership across instructional tools and reducing manual maintenance.
Preconditions
- Both systems implement Edu-API v1.0 Core, including Person, CourseOffering, and Enrollment.
- Provider exposes enrollment and offering relationships.
- Consumer has valid authorization.
Main Flow
- Retrieve the course roster: getAllEnrollments?courseOfferingId={courseOfferingId}&role=student.
- Retrieve related enrollments and instructor assignments: getAllEnrollments?courseOfferingId={courseOfferingId}.
- Update or validate the local roster.
- Handle changes detected via
dateLastModified.
Postconditions
- Rosters in consuming systems are current and consistent.
- Role and status information is accurately represented.
- Course participation data aligns across systems.
Edu-API References
- Operations: getAllEnrollments?courseOfferingId={courseOfferingId}&role=student, getAllEnrollments
- Commonly applied filters:
status,dateLastModified - Data models referenced: Person, CourseOffering, Enrollment, Organization
- Common HTTP Status Codes:
200,401,403,404,429,500
Educational Program Definition
Goal Establish a standardized and shareable representation of academic programs across systems.
Description Accurate representation of academic programs supports consistency across scheduling, accreditation, and reporting. Edu-API provides a model for defining programs hierarchically through collections, courses, and components, ensuring consistent meaning across institutional systems.
Preconditions
- Both systems implement Edu-API v1.0 Core, including CollectionOffering, CourseOffering, and ComponentOffering.
- Program structures are defined and maintained by the provider.
Main Flow
- Retrieve collections: getAllCollectionOfferings.
- Retrieve associated course and component offerings: getAllCourseOfferings, getAllComponentOfferings.
- Link hierarchical relationships to form a program definition.
- Exchange or synchronize program data between systems.
Postconditions
- Programs are consistently represented across systems.
- Hierarchical relationships between offerings are preserved.
- Changes to program structure are accurately propagated.
Edu-API References
- Operations: getAllCollectionOfferings, getAllCourseOfferings, getAllComponentOfferings
- Commonly applied filters:
collectionType,organizationId,status - Data models referenced: CollectionOffering, CourseOffering, ComponentOffering, Organization
- Common HTTP Status Codes:
200,401,403,404,429,500
Program Based Enrollment
Goal Align student and staff enrollments with defined academic programs for institutional coherence and reporting.
Description Programs provide the organizing framework for courses and instructional components. Edu-API enables systems to associate enrollments with specific program structures, allowing institutions to manage participation consistently and support program-level analysis and compliance.
Institutional vocabulary may differ, the pattern described here can be extrapolated to work for any type of collection offering that might better map to an institution's lexicon.
Preconditions
- Both systems implement Edu-API v1.0 Core, including Person, CollectionOffering, and Enrollment.
- Programs are represented as CollectionOffering records linked to their constituent CourseOfferings.
- Consumer is authorized.
Main Flow
- Retrieve programs: getAllCollectionOfferings?collectionType=program.
- Retrieve related enrollments: getAllEnrollments?collectionOfferingId={id}.
- Associate participants and staff with related course offerings.
- Update program alignment in consuming systems.
Postconditions
- Enrollment data reflects program structures.
- Course and program data remain synchronized.
- Reporting and analytics reflect accurate participation context.
Edu-API References
- Operations: getAllCollectionOfferings, getAllEnrollments
- Commonly applied filters:
collectionType,status,academicSessionId - Data models referenced: Person, Enrollment, CollectionOffering, CourseOffering
- Common HTTP Status Codes:
200,401,403,404,429,500
Course Change Management
Goal Keep course templates and offerings synchronized between systems when institutional data changes.
Description Course information changes throughout the academic cycle—titles, credit hours, and learning outcomes at the template level; instructors and schedules at the offering level. Without standardized change propagation, downstream systems drift out of sync, causing misaligned data and administrative overhead. Edu-API enables detection, exchange, and reconciliation of updates across course templates, offerings, and enrollments.
Preconditions
- Both systems implement Edu-API v1.0 Core, including CourseTemplate, CourseOffering, and Enrollment.
- Provider exposes
dateLastModifiedon templates, offerings, and enrollments. - Consumer is configured with valid authentication and API versioning.
Main Flow
- Retrieve updated course templates: getAllCourseTemplates?dateLastModified={since}.
- Apply updates to catalog data.
- Identify affected offerings: getAllCourseOfferings?courseTemplateId={id}.
- Retrieve updated offerings: getAllCourseOfferings?dateLastModified={since}.
- Reconcile enrollments: getAllEnrollments?courseOfferingId={id}&dateLastModified={since}.
- Log all operations for audit and traceability.
Postconditions
- Connected systems reflect current course structures and enrollments.
- Historical data remains intact.
- Compliance and reporting records stay consistent.
Edu-API References
- Operations: getAllCourseTemplates, getAllCourseOfferings, getAllEnrollments
- Commonly applied filters:
dateLastModified,courseTemplateId,academicSessionId,organizationId,status - Data models referenced: CourseTemplate, CourseOffering, Enrollment, Person, AcademicSession, Organization
- Common HTTP Status Codes:
200,401,403,404,422,429,500
References
- [RFC4122]
- A Universally Unique IDentifier (UUID) URN Namespace. P. Leach; M. Mealling; R. Salz. IETF. July 2005. Status: Proposed Standard.
- [RFC6585]
- Additional HTTP Status Codes. M. Nottingham; R. Fielding. IETF. April 2012. Status: Proposed Standard.
- [ISO3166-1]
- Codes for the representation of names of countries and their subdivisions — Part 1: Country code. International Organization for Standardization (ISO). August 2020. Status: Published.
- [RFC9110]
- HTTP Semantics. R. Fielding, Ed.; M. Nottingham, Ed.; J. Reschke, Ed.. IETF. June 2022. Status: Internet Standard.
- [IPA]
- International Phonetic Alphabet
- [WGS-84]
- NGA Geomatics - WGS 84
- [ISO8601]
- Representation of dates and times. ISO 8601:2004.. International Organization for Standardization (ISO). 2004. Status: ISO 8601:2004.
- [BCP47]
- Tags for Identifying Languages. Addison Phillips; Mark Davis. IETF. September 2009. Status: Best Current Practice.
- [RFC8259]
- The JavaScript Object Notation (JSON) Data Interchange Format. T. Bray, Ed.. IETF. December 2017. Status: Internet Standard.
- [UNICODE]
- The Unicode Standard. Unicode Consortium.
- [UAX15]
- Unicode Normalization Forms. Ken Whistler. Unicode Consortium. 12 August 2026. Status: Unicode Standard Annex #15.
- [XMLSCHEMA11-2]
- W3C XML Schema Definition Language (XSD) 1.1 Part 2: Datatypes. David Peterson; Sandy Gao; Ashok Malhotra; Michael Sperberg-McQueen; Henry Thompson; Paul V. Biron. W3C. 5 April 2012. Status: REC.
IP Disclosures
IP disclosures are not listed yet.
List of Contributors
The following individuals contributed to the development of this document:
| Name | Affiliation | Role |
|---|---|---|
| Joshua McGhee | 1EdTech | Author |
| Xavi Aracil | 1EdTech | Editor |
| Jake Owen | Instructure | Co-Chair |
| Stephen Brawn | Oracle Corporation | Co-Chair |
| Jed Breinholt | Western Governors University | Co-Chair |
| Jared Kosanovic | University of Wisconsin | Former Chair |
| Linda Feng | D2L Corporation | Former Chair |
| Mark McConahay | AACRAO | |
| Wade Weichel | Blackboard, Inc | |
| Ed Vannatter | D2L Corporation | |
| Viktor Haag | D2L Corporation | |
| Zak Wilson | D2L Corporation | |
| Jeff Merriam | DXtera Institute | |
| Dan Conley | eLumen | |
| Thomas Selland | eLumen | |
| Stuart Freeman | Georgia Institute of Technology | |
| Kristopher Snover | Google LLC | |
| Alex Medina | Identity Automation | |
| LeeAnn Friemoth | Identity Automation | |
| Jeremy Perkins | Instructure | |
| Nick Jenson | Instructure | |
| Peter Szucs | Instructure | |
| Mattias Sallstrom | Ladok | |
| Per Hörnblad | Ladok / Umeå University | |
| Giampiero Zito | Mediterraneo Lab 4.0 | |
| TJ Vering | Microsoft | |
| Chad Strunk | N2N Services | |
| Joel Dunn | N2N Services | |
| Michael North | Northwestern University | |
| Anthony Dizon | Oracle Corporation | |
| Greg Sayre | Oracle Corporation | |
| Miguel Fernandez | Oregon State University | |
| Shawn Geller | Pennsylvania State University | |
| Jordan Ell | Riipen | |
| Amy Brainard | Rutgers University | |
| Ellen Law | Rutgers University | |
| Gerlie Jeltema | South Orange County Community College District | |
| John Watson | South Orange County Community College District | |
| Helena Ström | SUNET | |
| Johan Planmo | SUNET | |
| Ola Ljungkrona | SUNET | |
| Mark de Jong | SURF | |
| Ronald Ham | SURF | |
| Steven Williams | UCLA | |
| Tommy Larsson | Umeå University | |
| Cary Brown | Unicon, Inc. | |
| Mary Gwozdz | Unicon, Inc. | |
| Bas Toeter | University of Amsterdam | |
| Stephen Michaud | University of British Columbia | |
| Adam Flanders | University of California Office of the President | |
| Mary-Ellen Kreher | University of California Office of the President | |
| Amin Qazi | University of California San Diego | |
| Shefali Dhar | University of Georgia | |
| Rob Ditto | University of Pennsylvania | |
| Bethany Gordy | University of Wisconsin | |
| Andrew Alfers | VitalSource | |
| Brett Horton | VitalSource |
Changelog
Changelog entries are not listed yet.
Revision History
| Version | Doc Version | Date | Comments |
|---|---|---|---|
| Base Document | 2022-01-01 | First release of Edu-API 1.0 Base Document. | |
| Candidate Public Final | 2022-03-01 | First release of Edu-API 1.0 Candidate Final Draft Document. | |
| Final | 2026-10-01 | Final Release |
Related resources
Data Model
Service Model
The service model is available as an OpenAPI document at the following URL:
Skill
The skill model is available as a JSON file at the following URL:
IPR and Distribution Notices
Recipients of this document are requested to submit, with their comments, notification of any relevant patent claims or other intellectual property rights of which they may be aware that might be infringed by any implementation of the specification set forth in this document, and to provide supporting documentation.
1EdTech takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on 1EdTech's procedures with respect to rights in 1EdTech specifications can be found at the 1EdTech Intellectual Property Rights web page: https://www.1edtech.org/ip.
Copyright © 1EdTech Consortium, Inc. All Rights Reserved.
Use of this specification to develop products or services is governed by the license with 1EdTech found on the 1EdTech website: https://www.1edtech.org/standards/specification-license.
Permission is granted to all parties to use excerpts from this document as needed in producing requests for proposals.
The limited permissions granted above are perpetual and will not be revoked by 1EdTech or its successors or assigns.
THIS SPECIFICATION IS BEING OFFERED WITHOUT ANY WARRANTY WHATSOEVER, AND IN PARTICULAR, ANY WARRANTY OF NONINFRINGEMENT IS EXPRESSLY DISCLAIMED. ANY USE OF THIS SPECIFICATION SHALL BE MADE ENTIRELY AT THE IMPLEMENTER'S OWN RISK, AND NEITHER THE CONSORTIUM, NOR ANY OF ITS MEMBERS OR SUBMITTERS, SHALL HAVE ANY LIABILITY WHATSOEVER TO ANY IMPLEMENTER OR THIRD PARTY FOR ANY DAMAGES OF ANY NATURE WHATSOEVER, DIRECTLY OR INDIRECTLY, ARISING FROM THE USE OF THIS SPECIFICATION.
Trademark information: https://www.1edtech.org/about/legal/trademarks