Welcome to Voshi
Voshi connects your educational app to Learning Management Systems — Canvas, Blackboard, Moodle, and any other LTI 1.3 platform — without you writing a single line of LTI code.
Voshi handles all the interactions with the LMS and sends each launch to an HTTPS endpoint you build — a signed JWT identifying the school, course, and user. When a student finishes graded work, you can push a score back with one API call.
Voshi is in early stages of development. These docs and the related features can and probably will change — we'll keep you appraised of changes that impact you.
Building with an AI assistant? The entire documentation is available as a single markdown file at https://myeducator-llc.github.io/voshi-docs/llms-full.txt — point your assistant at that URL and it has everything. A page index lives at /llms.txt.
Start with the vocabulary
Voshi's docs lean on a few key ideas — locations, extids, and placements. They're short, and the rest of the docs assume them: read Concepts first.
How an integration works
- You register your app in the Voshi dashboard — a name and three HTTPS endpoints Voshi calls: your launch receiver, your provisioning receiver, and the one that lists the locations (destinations) instructors can place.
- An instructor adds your app to a course. Voshi presents the content picker and asks your app which destinations it currently offers.
- Voshi asks your app to set the course up. Your app prepares the course and the placed location, then tells Voshi it's ready — see provisioning. Students wait until it is.
- A student opens your app from the course. Voshi sends the student's browser to your callback URL with a signed JWT describing who they are, what course they're in, and which location they opened.
- Your app verifies the JWT and takes over. From that point the student is simply using your app.
- You push a grade back (optional) with a single authenticated
POST— Voshi syncs it to the LMS gradebook.
What you get in every launch
The launch JWT tells you everything you need, with stable Voshi IDs and no PII on student launches:
- Who: a stable user ID, their membership in this course, and their role groups (
instructor,student, …) — plus name and email when the launching user is course staff - Where: the course and the school (organization)
- What: which of your locations was launched
- Grading: whether this launch can accept a grade
- Storage: URLs for four per-launch data rows you can read and write through the App Data API
Start building
Locations, extids, and placements — the vocabulary everything else uses.
Register an app, stand up a launch receiver, and send your first grade.
The endpoint that receives people, and what Voshi sends to it.
Push scores to the LMS gradebook with one API call.
Free key-value storage scoped to courses, placements, and students.