Charlton's Blog

PyEdsby: An Edsby Python API

A Python API for the Edsby SIS

Published: Apr 28, 2017
Category: Programming, Projects
Tags: ,

Check it out on GitHub.

Edsby doesn’t have any sort of public API, so I did a little snooping to make a wrapper/library for it.

Quickstart:

import requests, json
from edsby import Edsby

edsby = Edsby(host='your_edsbyhost.edsby.com', username='your_username', password='your_password')
print json.dumps( edsby.getAllClassAverages() )

You can also check out more examples here.

Getting Started

Everything you need to know is explained comprehensively in the Wiki. If you have any questions, feel free to open an issue or send me an email. Definitely check that documentation out first, though, because it’s pretty extensive.

Notes

Currently, Edsby does not expose any kind of public API (at least not for underprivileged users), so PyEdsby has to scrape data from the actual page content returned by Edsby’s XDS endpoints. I tried to abstract it all away as nicely as I could, but it’s still a little crufty in places. With this library, however, it’s much easier to work with. For this reason, I tried to keep the amount of processing done on the data returned minimal. Should a publicly accessible API become available, however, PyEdsby will be updated appropriately.

Secondly, I can only guarantee that this works with my school’s own Edsby instance. I’m assuming they’re all more or less the same, but I’ve only got one instance to test with. The endpoints seem nonspecific enough, but I can’t rule out the possibility that you might still need to make some minor tweaks to fit your specific environment.

App Ideas

PyEdsby implements more or less every major feature of the web interface, and then some. You can access all the important data visible on the web that you, as a student, would be interested in. Check out the documentation for a list of available methods.

Using PyEdsby, you could:

  • Create a tool to find common classmates in each of your periods,
  • Write a lambda function to expose a webhook that posts in class feeds for you,
  • Automatically crawl class feeds, and download attachments any time a teacher posts a new one,
  • Write a script that notifies you whenever your grades drop below a certain point,
  • Automatically post a message or link in the feed for a specific class,
  • Write a script that forwards Edsby direct messages to your phone,
  • And so much more!

More cool projects using PyEdsby include:

  • drEdsby, a complete redesign of the Edsby frontend
  • PyEdsby-CLI, a command-line interface for Edsby

The only limits are your imagination. If you make something cool, let me know!

Best of luck, and enjoy! Pull requests are always welcome:)

The Edsby trademark and brand are property of CoreFour, Inc. This software is unofficial and not supported by CoreFour in any way. I do not work for CoreFour.