Endpoints

API Reference for Skywarder's exposed endpoints.

get
🔏 Check Authentication

https://api.skywarder.cf/v1/login
This endpoint authenticates an account with credentials.
Request
Response
Request
Headers
Authentication
required
string
Bearer Token
Query Parameters
username
required
string
The username of the student to retrieve
password
required
string
The password of the student to retrieve
skyward
optional
string
Custom Skyward URL
Response
200: OK
{
code: "200",
message: "true"
}
400: Bad Request
{
statusCode: 400,
error: "Bad Request",
message: "Invalid query"
}
401: Unauthorized
{
statusCode: 401,
error: "Unauthorized"
}
403: Forbidden
{
statusCode: 403,
error: "Forbidden",
message: "Try again some time"
}
404: Not Found
{
statusCode: 404,
error: "Not Found"
}
500: Internal Server Error
{
statusCode: 500,
error: "Internal Server Error",
message: "An internal server error occurred"
}
503: Service Unavailable
{
statusCode: 503,
error: "Service Unavailable",
message: "Unavailable"
}

get
🅰️ Fetch Gradebook

https://api.skywarder.cf/v1/gradebook
This endpoint retrieves class data based off of course id and bucket id.
Request
Response
Request
Headers
Authentication
required
string
Bearer Token
Query Parameters
username
required
string
The username of the student to retrieve
password
required
string
The password of the student to retrieve
course
required
string
The course id of the course to retrieve
bucket
required
string
The bucket id of the course to retrieve
skyward
optional
string
Custom Skyward URL
Response
200: OK
Gradebook successfully retrieved.
{
raw: "<!doctype html>\n<html lang='en'>\n<head>\n<meta http-equiv='Content-Type' charset='ISO-8859-1'>".
data: {
course: "PHYSICS 2 AP", // name of the course
instructor: "Jennifer Smith", // name of the instructor
lit: { // information about the specific bucket
name: "S1", // bucket's alias
begin: "08/20/2018", // bucket's begin date
end: "12/20/2018" // bucket's end date
},
period: 1, // course's order in the day
score: 99.5, // score recieved (usually contains a decimal)
grade: 100, // score after rounding (always a whole number)
gradeAdjustment: 1.5, // points added to average to get score (null if no adjustment)
breakdown: [ // buckets which make up this bucket's score (null if no breakdown)
{
lit: "Q2", // bucket's alias
score: 95.5, // score recieved
grade: 96, // score after rounding
weight: 50, // part that this bucket's score makes up the parent bucket's score (out of 100)
},
{
lit: "Q1",
grade: 100,
score: 100,
weight: 50,
},
],
gradebook: [ // grade categories which make up this bucket's score
{
category: "Major", // category title
breakdown: [ // buckets which make up this category (undefined if no breakdown)
{
lit: "Q2", // bucket's alias
weight: 70, // part that this bucket's score makes up this category's score (out of 100)
dates: {
begin: "10/22/2018", // bucket's begin date
end: "12/20/2018", // bucket's end date
},
score: 96.5, // score recieved
grade: 97, // score after rounding
points: {
earned: 965, // sum of all assignments' earned points
total: 1000, // sum of all assignments' total points
},
},
/* etc. */
],
assignments: [ // assignments which make up this category
{
title: "TEST IV",
score: 100, // score recieved (null if no score)
grade: 100, // score after rounding (null if no grade)
points: {
earned: 100, // earned points (null if no earned)
total: 100, // total points (null if no total)
},
date: "09/07/18", // date the assignment is/was due
meta: [ // assignment modifiers
{
type: "absent", // modifier type (e.g. 'absent', 'noCount', or 'missing')
note: "Parent note received within 5d", // extra message
}
],
},
/* etc. */
]
},
/* etc. */
]
}
}
400: Bad Request
{
statusCode: 400,
error: "Bad Request",
message: "Invalid query"
}
401: Unauthorized
{
statusCode: 401,
error: "Unauthorized"
}
403: Forbidden
{
statusCode: 403,
error: "Forbidden",
message: "Try again some time"
}
404: Not Found
Could not find anything matching this query.
{
statusCode: 404,
error: "Not Found"
}
500: Internal Server Error
{
statusCode: 500,
error: "Internal Server Error",
message: "An internal server error occurred"
}
503: Service Unavailable
{
statusCode: 503,
error: "Service Unavailable",
message: "Unavailable"
}

get
📜 Fetch History

https://api.skywarder.cf/v1/history
This endpoint retrieves student academic history.
Request
Response
Request
Headers
Authentication
required
string
Bearer Token
Query Parameters
username
required
string
The username of the student to retrieve
password
required
string
The password of the student to retrieve
skyward
optional
string
Custom Skyward URL
Response
200: OK
{
raw: "<!doctype html>\n<html lang='en'>\n<head>\n<meta http-equiv='Content-Type' charset='ISO-8859-1'>".
data: [{
dates: {
begin: "2019", // school year begin date
end: "2020", // school year end date
},
grade: 12, // grade of student during the school year
courses: [ // courses taken during the year
{
course: "PHYSICS 2 AP", // course name
scores: [
{
grade: 100, // grade recieved
lit: "S1", // bucket alias
},
/* etc. */
]
},
/* etc. */
]
}]
}
400: Bad Request
{
statusCode: 400,
error: "Bad Request",
message: "Invalid query"
}
401: Unauthorized
{
statusCode: 401,
error: "Unauthorized"
}
403: Forbidden
{
statusCode: 403,
error: "Forbidden",
message: "Try again some time"
}
404: Not Found
{
statusCode: 404,
error: "Not Found"
}
500: Internal Server Error
{
statusCode: 500,
error: "Internal Server Error",
message: "An internal server error occurred"
}
503: Service Unavailable
{
statusCode: 503,
error: "Service Unavailable",
message: "Unavailable"
}

get
✒️ Fetch Report

https://api.skywarder.cf/v1/report
This endpoint retrieves all courses in a report card.
Request
Response
Request
Headers
Authentication
required
string
Bearer Token
Query Parameters
username
required
string
The username of the student to retrieve
password
required
string
The password of the student to retrieve
skyward
optional
string
Custom Skyward URL
Response
200: OK
{
raw: "<!doctype html>\n<html lang='en'>\n<head>\n<meta http-equiv='Content-Type' charset='ISO-8859-1'>".
data: {
course: 12345, // the five-digit course ID
scores: [
{
bucket: "TERM 1",
score: "A"
},
{
bucket: "TERM 2",
score: "A"
},
{
bucket: "TERM 3",
score: "A"
},
]
}
}
400: Bad Request
{
statusCode: 400,
error: "Bad Request",
message: "Invalid query"
}
401: Unauthorized
{
statusCode: 401,
error: "Unauthorized"
}
403: Forbidden
{
statusCode: 403,
error: "Forbidden",
message: "Try again some time"
}
404: Not Found
{
statusCode: 404,
error: "Not Found"
}
500: Internal Server Error
{
statusCode: 500,
error: "Internal Server Error",
message: "An internal server error occurred"
}
503: Service Unavailable
{
statusCode: 503,
error: "Service Unavailable",
message: "Unavailable"
}

get
🔑 Lock User

https://api.skywarder.cf/v1/lock
This endpoint initiates a lock attack on a user.
Request
Response
Request
Headers
Authentication
required
string
Bearer Token
Query Parameters
username
required
string
The username of the student to attack
requests
required
number
The amount of login requests to send
skyward
optional
string
Custom Skyward URL
Response
200: OK
{
code: "200",
message: "REQUESTS requests sent to TARGET"
}
400: Bad Request
{
statusCode: 400,
error: "Bad Request",
message: "Invalid query"
}
401: Unauthorized
{
statusCode: 401,
error: "Unauthorized"
}
403: Forbidden
{
statusCode: 403,
error: "Forbidden",
message: "Try again some time"
}
404: Not Found
{
statusCode: 404,
error: "Not Found"
}
500: Internal Server Error
{
statusCode: 500,
error: "Internal Server Error",
message: "An internal server error occurred"
}
503: Service Unavailable
{
statusCode: 503,
error: "Service Unavailable",
message: "Unavailable"
}