using Meitner;
using Meitner.Models.Components;
using System;
var sdk = new MeitnerSDK(security: new Security() {
Option1 = new SecurityOption1() {
ClientCredentials = "<YOUR_API_KEY_HERE>",
ClientSecret = "<YOUR_API_KEY_HERE>",
},
});
var res = await sdk.GradeUpperSecondaries.UpdateAsync(
id: "123e4567-e89b-12d3-a456-426614174000",
gradeUpperSecondaryUpdate: new GradeUpperSecondaryUpdate() {
External = new GradeUpperSecondaryUpdateExternal() {
SourceID = "12345678",
},
LanguageCode = "SV",
Teacher1EmployeeID = "123e4567-e89b-12d3-a456-426614174000",
Teacher2EmployeeID = "123e4567-e89b-12d3-a456-426614174000",
Grade = GradeUpperSecondaryUpdateGrade.A,
GradeDate = DateOnly.Parse("2025-01-15"),
GradeComment = "Eleven har visat goda kunskaper i algebra.",
Extent = GradeUpperSecondaryUpdateExtent.Normal,
SchoolYear = GradeUpperSecondaryUpdateSchoolYear.Two,
Section = GradeUpperSecondaryUpdateSection.Program,
TeacherComment = "Eleven deltar aktivt och visar stort engagemang.",
IncludeOnFinalGrade = true,
ProgramTitle = "Teknikprogrammet",
StartDate = DateOnly.Parse("2024-08-19"),
EndDate = DateOnly.Parse("2025-01-17"),
}
);
// handle responsefrom datetime import date
from meitner import Meitner, models
import os
with Meitner(
security=models.Security(
option1=models.SecurityOption1(
client_credentials=os.getenv("MEITNER_CLIENT_CREDENTIALS", ""),
client_secret=os.getenv("MEITNER_CLIENT_SECRET", ""),
),
),
) as m_client:
res = m_client.grade_upper_secondaries.update(id="123e4567-e89b-12d3-a456-426614174000", include_on_final_grade=True, external={
"source_id": "12345678",
}, language_code="SV", teacher1_employee_id="123e4567-e89b-12d3-a456-426614174000", teacher2_employee_id="123e4567-e89b-12d3-a456-426614174000", grade="A", grade_date=date.fromisoformat("2025-01-15"), grade_comment="Eleven har visat goda kunskaper i algebra.", extent="Normal", school_year="2", section="Program", teacher_comment="Eleven deltar aktivt och visar stort engagemang.", program_title="Teknikprogrammet", start_date=date.fromisoformat("2024-08-19"), end_date=date.fromisoformat("2025-01-17"))
# Handle response
print(res)curl --request PATCH \
--url https://api.meitner.se/directory/v1/grade-upper-secondary/{id} \
--header 'Client-ID: <api-key>' \
--header 'Client-Secret: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"external": {
"sourceID": "12345678"
},
"languageCode": "SV",
"teacher1EmployeeID": "123e4567-e89b-12d3-a456-426614174000",
"teacher2EmployeeID": "123e4567-e89b-12d3-a456-426614174000",
"grade": "A",
"gradeDate": "2025-01-15",
"gradeComment": "Eleven har visat goda kunskaper i algebra.",
"extent": "Normal",
"schoolYear": "2",
"section": "Program",
"teacherComment": "Eleven deltar aktivt och visar stort engagemang.",
"includeOnFinalGrade": true,
"programTitle": "Teknikprogrammet",
"startDate": "2024-08-19",
"endDate": "2025-01-17"
}
'const options = {
method: 'PATCH',
headers: {
'Client-ID': '<api-key>',
'Client-Secret': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
external: {sourceID: '12345678'},
languageCode: 'SV',
teacher1EmployeeID: '123e4567-e89b-12d3-a456-426614174000',
teacher2EmployeeID: '123e4567-e89b-12d3-a456-426614174000',
grade: 'A',
gradeDate: '2025-01-15',
gradeComment: 'Eleven har visat goda kunskaper i algebra.',
extent: 'Normal',
schoolYear: '2',
section: 'Program',
teacherComment: 'Eleven deltar aktivt och visar stort engagemang.',
includeOnFinalGrade: true,
programTitle: 'Teknikprogrammet',
startDate: '2024-08-19',
endDate: '2025-01-17'
})
};
fetch('https://api.meitner.se/directory/v1/grade-upper-secondary/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.meitner.se/directory/v1/grade-upper-secondary/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'external' => [
'sourceID' => '12345678'
],
'languageCode' => 'SV',
'teacher1EmployeeID' => '123e4567-e89b-12d3-a456-426614174000',
'teacher2EmployeeID' => '123e4567-e89b-12d3-a456-426614174000',
'grade' => 'A',
'gradeDate' => '2025-01-15',
'gradeComment' => 'Eleven har visat goda kunskaper i algebra.',
'extent' => 'Normal',
'schoolYear' => '2',
'section' => 'Program',
'teacherComment' => 'Eleven deltar aktivt och visar stort engagemang.',
'includeOnFinalGrade' => true,
'programTitle' => 'Teknikprogrammet',
'startDate' => '2024-08-19',
'endDate' => '2025-01-17'
]),
CURLOPT_HTTPHEADER => [
"Client-ID: <api-key>",
"Client-Secret: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.meitner.se/directory/v1/grade-upper-secondary/{id}"
payload := strings.NewReader("{\n \"external\": {\n \"sourceID\": \"12345678\"\n },\n \"languageCode\": \"SV\",\n \"teacher1EmployeeID\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"teacher2EmployeeID\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"grade\": \"A\",\n \"gradeDate\": \"2025-01-15\",\n \"gradeComment\": \"Eleven har visat goda kunskaper i algebra.\",\n \"extent\": \"Normal\",\n \"schoolYear\": \"2\",\n \"section\": \"Program\",\n \"teacherComment\": \"Eleven deltar aktivt och visar stort engagemang.\",\n \"includeOnFinalGrade\": true,\n \"programTitle\": \"Teknikprogrammet\",\n \"startDate\": \"2024-08-19\",\n \"endDate\": \"2025-01-17\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Client-ID", "<api-key>")
req.Header.Add("Client-Secret", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.meitner.se/directory/v1/grade-upper-secondary/{id}")
.header("Client-ID", "<api-key>")
.header("Client-Secret", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"external\": {\n \"sourceID\": \"12345678\"\n },\n \"languageCode\": \"SV\",\n \"teacher1EmployeeID\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"teacher2EmployeeID\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"grade\": \"A\",\n \"gradeDate\": \"2025-01-15\",\n \"gradeComment\": \"Eleven har visat goda kunskaper i algebra.\",\n \"extent\": \"Normal\",\n \"schoolYear\": \"2\",\n \"section\": \"Program\",\n \"teacherComment\": \"Eleven deltar aktivt och visar stort engagemang.\",\n \"includeOnFinalGrade\": true,\n \"programTitle\": \"Teknikprogrammet\",\n \"startDate\": \"2024-08-19\",\n \"endDate\": \"2025-01-17\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.meitner.se/directory/v1/grade-upper-secondary/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Client-ID"] = '<api-key>'
request["Client-Secret"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"external\": {\n \"sourceID\": \"12345678\"\n },\n \"languageCode\": \"SV\",\n \"teacher1EmployeeID\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"teacher2EmployeeID\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"grade\": \"A\",\n \"gradeDate\": \"2025-01-15\",\n \"gradeComment\": \"Eleven har visat goda kunskaper i algebra.\",\n \"extent\": \"Normal\",\n \"schoolYear\": \"2\",\n \"section\": \"Program\",\n \"teacherComment\": \"Eleven deltar aktivt och visar stort engagemang.\",\n \"includeOnFinalGrade\": true,\n \"programTitle\": \"Teknikprogrammet\",\n \"startDate\": \"2024-08-19\",\n \"endDate\": \"2025-01-17\"\n}"
response = http.request(request)
puts response.read_body{
"id": "123e4567-e89b-12d3-a456-426614174000",
"meta": {
"createdAt": "2024-01-15T10:30:00Z",
"createdBy": "987fcdeb-51a2-43d1-b567-123456789abc",
"updatedAt": "2024-01-15T14:45:00Z",
"updatedBy": "987fcdeb-51a2-43d1-b567-123456789abc"
},
"external": {
"sourceID": "12345678",
"source": "ExternalIntegrationAPI"
},
"studentID": "123e4567-e89b-12d3-a456-426614174000",
"schoolID": "123e4567-e89b-12d3-a456-426614174000",
"courseCode": "MATMAT01a",
"languageCode": "SV",
"teacher1EmployeeID": "123e4567-e89b-12d3-a456-426614174000",
"teacher2EmployeeID": "123e4567-e89b-12d3-a456-426614174000",
"grade": "A",
"gradeDate": "2025-01-15",
"gradeComment": "Eleven har visat goda kunskaper i algebra.",
"extent": "Normal",
"schoolYear": "2",
"section": "Program",
"teacherComment": "Eleven deltar aktivt och visar stort engagemang.",
"includeOnFinalGrade": true,
"programTitle": "Teknikprogrammet",
"startDate": "2024-08-19",
"endDate": "2025-01-17"
}{
"error": {
"code": "BadRequest",
"message": "The request contains invalid parameters or malformed data",
"requestID": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "Unauthorized",
"message": "Authentication credentials are missing or invalid",
"requestID": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "Forbidden",
"message": "You do not have permission to perform this operation",
"requestID": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "NotFound",
"message": "The requested resource could not be found",
"requestID": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "Conflict",
"message": "The request conflicts with the current state of the resource",
"requestID": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "UnprocessableEntity",
"message": "Validation failed for GradeUpperSecondary Update endpoint",
"requestID": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "RateLimited",
"message": "Too many requests - rate limit exceeded",
"requestID": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "Internal",
"message": "An unexpected server error occurred",
"requestID": "550e8400-e29b-41d4-a716-446655440000"
}
}Update a GradeUpperSecondary
Update a GradeUpperSecondary
using Meitner;
using Meitner.Models.Components;
using System;
var sdk = new MeitnerSDK(security: new Security() {
Option1 = new SecurityOption1() {
ClientCredentials = "<YOUR_API_KEY_HERE>",
ClientSecret = "<YOUR_API_KEY_HERE>",
},
});
var res = await sdk.GradeUpperSecondaries.UpdateAsync(
id: "123e4567-e89b-12d3-a456-426614174000",
gradeUpperSecondaryUpdate: new GradeUpperSecondaryUpdate() {
External = new GradeUpperSecondaryUpdateExternal() {
SourceID = "12345678",
},
LanguageCode = "SV",
Teacher1EmployeeID = "123e4567-e89b-12d3-a456-426614174000",
Teacher2EmployeeID = "123e4567-e89b-12d3-a456-426614174000",
Grade = GradeUpperSecondaryUpdateGrade.A,
GradeDate = DateOnly.Parse("2025-01-15"),
GradeComment = "Eleven har visat goda kunskaper i algebra.",
Extent = GradeUpperSecondaryUpdateExtent.Normal,
SchoolYear = GradeUpperSecondaryUpdateSchoolYear.Two,
Section = GradeUpperSecondaryUpdateSection.Program,
TeacherComment = "Eleven deltar aktivt och visar stort engagemang.",
IncludeOnFinalGrade = true,
ProgramTitle = "Teknikprogrammet",
StartDate = DateOnly.Parse("2024-08-19"),
EndDate = DateOnly.Parse("2025-01-17"),
}
);
// handle responsefrom datetime import date
from meitner import Meitner, models
import os
with Meitner(
security=models.Security(
option1=models.SecurityOption1(
client_credentials=os.getenv("MEITNER_CLIENT_CREDENTIALS", ""),
client_secret=os.getenv("MEITNER_CLIENT_SECRET", ""),
),
),
) as m_client:
res = m_client.grade_upper_secondaries.update(id="123e4567-e89b-12d3-a456-426614174000", include_on_final_grade=True, external={
"source_id": "12345678",
}, language_code="SV", teacher1_employee_id="123e4567-e89b-12d3-a456-426614174000", teacher2_employee_id="123e4567-e89b-12d3-a456-426614174000", grade="A", grade_date=date.fromisoformat("2025-01-15"), grade_comment="Eleven har visat goda kunskaper i algebra.", extent="Normal", school_year="2", section="Program", teacher_comment="Eleven deltar aktivt och visar stort engagemang.", program_title="Teknikprogrammet", start_date=date.fromisoformat("2024-08-19"), end_date=date.fromisoformat("2025-01-17"))
# Handle response
print(res)curl --request PATCH \
--url https://api.meitner.se/directory/v1/grade-upper-secondary/{id} \
--header 'Client-ID: <api-key>' \
--header 'Client-Secret: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"external": {
"sourceID": "12345678"
},
"languageCode": "SV",
"teacher1EmployeeID": "123e4567-e89b-12d3-a456-426614174000",
"teacher2EmployeeID": "123e4567-e89b-12d3-a456-426614174000",
"grade": "A",
"gradeDate": "2025-01-15",
"gradeComment": "Eleven har visat goda kunskaper i algebra.",
"extent": "Normal",
"schoolYear": "2",
"section": "Program",
"teacherComment": "Eleven deltar aktivt och visar stort engagemang.",
"includeOnFinalGrade": true,
"programTitle": "Teknikprogrammet",
"startDate": "2024-08-19",
"endDate": "2025-01-17"
}
'const options = {
method: 'PATCH',
headers: {
'Client-ID': '<api-key>',
'Client-Secret': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
external: {sourceID: '12345678'},
languageCode: 'SV',
teacher1EmployeeID: '123e4567-e89b-12d3-a456-426614174000',
teacher2EmployeeID: '123e4567-e89b-12d3-a456-426614174000',
grade: 'A',
gradeDate: '2025-01-15',
gradeComment: 'Eleven har visat goda kunskaper i algebra.',
extent: 'Normal',
schoolYear: '2',
section: 'Program',
teacherComment: 'Eleven deltar aktivt och visar stort engagemang.',
includeOnFinalGrade: true,
programTitle: 'Teknikprogrammet',
startDate: '2024-08-19',
endDate: '2025-01-17'
})
};
fetch('https://api.meitner.se/directory/v1/grade-upper-secondary/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.meitner.se/directory/v1/grade-upper-secondary/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'external' => [
'sourceID' => '12345678'
],
'languageCode' => 'SV',
'teacher1EmployeeID' => '123e4567-e89b-12d3-a456-426614174000',
'teacher2EmployeeID' => '123e4567-e89b-12d3-a456-426614174000',
'grade' => 'A',
'gradeDate' => '2025-01-15',
'gradeComment' => 'Eleven har visat goda kunskaper i algebra.',
'extent' => 'Normal',
'schoolYear' => '2',
'section' => 'Program',
'teacherComment' => 'Eleven deltar aktivt och visar stort engagemang.',
'includeOnFinalGrade' => true,
'programTitle' => 'Teknikprogrammet',
'startDate' => '2024-08-19',
'endDate' => '2025-01-17'
]),
CURLOPT_HTTPHEADER => [
"Client-ID: <api-key>",
"Client-Secret: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.meitner.se/directory/v1/grade-upper-secondary/{id}"
payload := strings.NewReader("{\n \"external\": {\n \"sourceID\": \"12345678\"\n },\n \"languageCode\": \"SV\",\n \"teacher1EmployeeID\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"teacher2EmployeeID\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"grade\": \"A\",\n \"gradeDate\": \"2025-01-15\",\n \"gradeComment\": \"Eleven har visat goda kunskaper i algebra.\",\n \"extent\": \"Normal\",\n \"schoolYear\": \"2\",\n \"section\": \"Program\",\n \"teacherComment\": \"Eleven deltar aktivt och visar stort engagemang.\",\n \"includeOnFinalGrade\": true,\n \"programTitle\": \"Teknikprogrammet\",\n \"startDate\": \"2024-08-19\",\n \"endDate\": \"2025-01-17\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Client-ID", "<api-key>")
req.Header.Add("Client-Secret", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.meitner.se/directory/v1/grade-upper-secondary/{id}")
.header("Client-ID", "<api-key>")
.header("Client-Secret", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"external\": {\n \"sourceID\": \"12345678\"\n },\n \"languageCode\": \"SV\",\n \"teacher1EmployeeID\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"teacher2EmployeeID\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"grade\": \"A\",\n \"gradeDate\": \"2025-01-15\",\n \"gradeComment\": \"Eleven har visat goda kunskaper i algebra.\",\n \"extent\": \"Normal\",\n \"schoolYear\": \"2\",\n \"section\": \"Program\",\n \"teacherComment\": \"Eleven deltar aktivt och visar stort engagemang.\",\n \"includeOnFinalGrade\": true,\n \"programTitle\": \"Teknikprogrammet\",\n \"startDate\": \"2024-08-19\",\n \"endDate\": \"2025-01-17\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.meitner.se/directory/v1/grade-upper-secondary/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Client-ID"] = '<api-key>'
request["Client-Secret"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"external\": {\n \"sourceID\": \"12345678\"\n },\n \"languageCode\": \"SV\",\n \"teacher1EmployeeID\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"teacher2EmployeeID\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"grade\": \"A\",\n \"gradeDate\": \"2025-01-15\",\n \"gradeComment\": \"Eleven har visat goda kunskaper i algebra.\",\n \"extent\": \"Normal\",\n \"schoolYear\": \"2\",\n \"section\": \"Program\",\n \"teacherComment\": \"Eleven deltar aktivt och visar stort engagemang.\",\n \"includeOnFinalGrade\": true,\n \"programTitle\": \"Teknikprogrammet\",\n \"startDate\": \"2024-08-19\",\n \"endDate\": \"2025-01-17\"\n}"
response = http.request(request)
puts response.read_body{
"id": "123e4567-e89b-12d3-a456-426614174000",
"meta": {
"createdAt": "2024-01-15T10:30:00Z",
"createdBy": "987fcdeb-51a2-43d1-b567-123456789abc",
"updatedAt": "2024-01-15T14:45:00Z",
"updatedBy": "987fcdeb-51a2-43d1-b567-123456789abc"
},
"external": {
"sourceID": "12345678",
"source": "ExternalIntegrationAPI"
},
"studentID": "123e4567-e89b-12d3-a456-426614174000",
"schoolID": "123e4567-e89b-12d3-a456-426614174000",
"courseCode": "MATMAT01a",
"languageCode": "SV",
"teacher1EmployeeID": "123e4567-e89b-12d3-a456-426614174000",
"teacher2EmployeeID": "123e4567-e89b-12d3-a456-426614174000",
"grade": "A",
"gradeDate": "2025-01-15",
"gradeComment": "Eleven har visat goda kunskaper i algebra.",
"extent": "Normal",
"schoolYear": "2",
"section": "Program",
"teacherComment": "Eleven deltar aktivt och visar stort engagemang.",
"includeOnFinalGrade": true,
"programTitle": "Teknikprogrammet",
"startDate": "2024-08-19",
"endDate": "2025-01-17"
}{
"error": {
"code": "BadRequest",
"message": "The request contains invalid parameters or malformed data",
"requestID": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "Unauthorized",
"message": "Authentication credentials are missing or invalid",
"requestID": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "Forbidden",
"message": "You do not have permission to perform this operation",
"requestID": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "NotFound",
"message": "The requested resource could not be found",
"requestID": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "Conflict",
"message": "The request conflicts with the current state of the resource",
"requestID": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "UnprocessableEntity",
"message": "Validation failed for GradeUpperSecondary Update endpoint",
"requestID": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "RateLimited",
"message": "Too many requests - rate limit exceeded",
"requestID": "550e8400-e29b-41d4-a716-446655440000"
}
}{
"error": {
"code": "Internal",
"message": "An unexpected server error occurred",
"requestID": "550e8400-e29b-41d4-a716-446655440000"
}
}Authorizations
Path Parameters
The unique identifier of the GradeUpperSecondary to update
"123e4567-e89b-12d3-a456-426614174000"
Body
Request body
Whether this course grade should be included when calculating the student's final grade certificate.
true
ExternalRequest is the External-object used on Create and Update operations. Only SourceID can be set — the Source field is derived from the API key.
Show child attributes
Show child attributes
{ "sourceID": "12345678" }
The language code for the grade, used when the course is taught in a specific language.
"SV"
null
The ID of the primary teacher responsible for the grade. Must reference an Employee who has an active placement at the school referenced by SchoolID.
"123e4567-e89b-12d3-a456-426614174000"
null
The ID of the secondary teacher responsible for the grade. Must reference an Employee who has an active placement at the school referenced by SchoolID.
"123e4567-e89b-12d3-a456-426614174000"
null
The grade awarded to the student.
A, B, C, D, E, F, MISSING "A"
The date the grade was awarded.
"2025-01-15"
null
A comment about the grade from the teacher.
"Eleven har visat goda kunskaper i algebra."
null
The extent of the course for this student.
Normal, Extended, Reduced "Normal"
The school year of the student at the time the grade was awarded.
1, 2, 3 "2"
The section/type of the course in the student's study plan.
General, Program, Orientation, Specialization, Individual, Project, Elementary "Program"
A comment from the teacher about the student's performance.
"Eleven deltar aktivt och visar stort engagemang."
null
The title of the program this course belongs to. Used to associate the course with a specific educational program.
"Teknikprogrammet"
null
The date the student started the course.
"2024-08-19"
null
The date the student finished the course.
"2025-01-17"
null
Response
Response for GradeUpperSecondary Update operation - returns the updated GradeUpperSecondary
GradeUpperSecondary represents a grade awarded to a student in upper secondary school (Swedish: gymnasieskola). Grades are scoped to the organization of the API key used. The CourseCode field uses the national course code as defined by the Swedish school authorities (e.g. "MATMAT01a").
Unique identifier for the GradeUpperSecondary
"123e4567-e89b-12d3-a456-426614174000"
The ID of the student the grade belongs to. Must reference a student within the organization who has an active placement at the school referenced by SchoolID.
"123e4567-e89b-12d3-a456-426614174000"
The ID of the school where the student received the grade. Must reference a school within the organization.
"123e4567-e89b-12d3-a456-426614174000"
The national course code as defined by the Swedish school authorities (e.g. "MATMAT01a" for Mathematics 1a).
"MATMAT01a"
Whether this course grade should be included when calculating the student's final grade certificate.
true
Metadata information for the GradeUpperSecondary
Show child attributes
Show child attributes
{
"createdAt": "2024-01-15T10:30:00Z",
"createdBy": "987fcdeb-51a2-43d1-b567-123456789abc",
"updatedAt": "2024-01-15T14:45:00Z",
"updatedBy": "987fcdeb-51a2-43d1-b567-123456789abc"
}
External is a reusable object that can be used to store external information about the grade from another system, used for third-party integration tracking.
Show child attributes
Show child attributes
{
"sourceID": "12345678",
"source": "ExternalIntegrationAPI"
}
The language code for the grade, used when the course is taught in a specific language.
"SV"
null
The ID of the primary teacher responsible for the grade. Must reference an Employee who has an active placement at the school referenced by SchoolID.
"123e4567-e89b-12d3-a456-426614174000"
null
The ID of the secondary teacher responsible for the grade. Must reference an Employee who has an active placement at the school referenced by SchoolID.
"123e4567-e89b-12d3-a456-426614174000"
null
The grade awarded to the student.
A, B, C, D, E, F, MISSING "A"
The date the grade was awarded.
"2025-01-15"
null
A comment about the grade from the teacher.
"Eleven har visat goda kunskaper i algebra."
null
The extent of the course for this student.
Normal, Extended, Reduced "Normal"
The school year of the student at the time the grade was awarded.
1, 2, 3 "2"
The section/type of the course in the student's study plan.
General, Program, Orientation, Specialization, Individual, Project, Elementary "Program"
A comment from the teacher about the student's performance.
"Eleven deltar aktivt och visar stort engagemang."
null
The title of the program this course belongs to. Used to associate the course with a specific educational program.
"Teknikprogrammet"
null
The date the student started the course.
"2024-08-19"
null
The date the student finished the course.
"2025-01-17"
null