DEV Community

ANIRUDH ULABALA
ANIRUDH ULABALA

Posted on

How I reverse-engineered the StudentVue SOAP API to build the only study planner that syncs with it

I've been building IntelliPlan — a free AI study planner for students that connects to Canvas, StudentVue, and Schoology. The Canvas and Schoology integrations were straightforward (both have documented REST APIs). StudentVue was a different story.

The Problem

StudentVue is used by millions of K-12 students in the U.S. through Synergy's software platform. It's how students check grades, assignments, and attendance at hundreds of school districts. But Synergy has never published a public API.

Every student planner I found either skipped StudentVue entirely or required students to manually copy their assignments. The automation gap was real.

Reverse Engineering the API

The official StudentVue mobile apps (iOS and Android) obviously talk to something. Using a proxy (Charles) to inspect the traffic, I found that the apps communicate via a SOAP-based XML API over HTTPS.

The endpoint pattern is:

https://[district-domain]/Service/PXPCommunication.asmx
Enter fullscreen mode Exit fullscreen mode

And requests follow the structure:




      student_username
      student_password
      true
      false
      PXPWebServices
      GetContentOfWebService
      <Parms><ChildIntID>0</ChildIntID></Parms>



Enter fullscreen mode Exit fullscreen mode

The methodName field is where it gets interesting — there are several methods available:

  • Gradebook — returns current grades and assignment details
  • StudentHWList — returns the homework/assignment list
  • Attendance — returns attendance data
  • StudentInfo — returns basic student profile info

Parsing the Response

The responses come back as XML strings inside the SOAP envelope. For example, a StudentHWList response gives you assignments with due dates, subject names, point values, and completion status — everything you need to build a study planner.

// Simplified example of parsing the response
const parser = new XMLParser({ ignoreAttributes: false });
const result = parser.parse(soapResponse);
const assignments = result?.StudentHWList?.StudentHW || [];

const parsed = assignments.map(hw => ({
  title: hw['@_Title'],
  dueDate: hw['@_DueDate'],
  subject: hw['@_Subject'],
  points: hw['@_Points'],
  isCompleted: hw['@_IsCompleted'] === 'true'
}));
Enter fullscreen mode Exit fullscreen mode

District URL Discovery

One challenge: every school district has its own subdomain. Students need to know their district's URL. We solved this by maintaining a lookup table of known districts (there are open-source lists available) and letting students search by district name or zip code.

What We Built On Top

Once we had the StudentVue data pipeline, we combined it with our Canvas (OAuth 2.0 + REST API) and Schoology (REST API) integrations to create a unified assignment feed. This feeds our AI scheduling algorithm which weighs tasks by urgency, point value, effort estimate, and available time in the student's week.

The result: IntelliPlan — the only study planner that works with all three major student LMS platforms, completely free.

The Public API

If you want to build something on top of IntelliPlan's data, we expose a public REST API in our Pro plan. We also ship an MCP server for AI agent integrations.

Happy to answer questions about the StudentVue integration or the scheduling algorithm in the comments.


IntelliPlan is free for students: intelliplan.tech

Top comments (0)