Help

Your community experience is moving to Customer Central, our new portal, this summer, with a more intuitive experience. Learn More.

Supported CRUD operations in the PowerSchool contacts API?

ethjames
Rookie

Supported CRUD operations in the PowerSchool contacts API?

I'm working on a desktop application that manages and deduplicates contacts. I'm trying to determine what CRUD operations are supported through PowerSchool APIs.

Using an OAuth plugin (client_credentials grant), I can successfully read contact information through endpoints such as:

GET /ws/contacts/contact/{contactId}
GET /ws/contacts/student/{studentDcid}
GET /ws/contacts/guardian/{guardianId}

I can also read underlying schema tables through the schema API.

However, when attempting to update contact-related tables directly, PowerSchool returns errors such as:

{
  "message": "POST, PUT, and DELETE are not allowed on this table"
}

for tables like:

personemailaddressassoc
personphoneassoc

While investigating the Contact Management UI, I captured some network traffic and found that the UI appears to use internal endpoints under:

/ws/contacts/*

Examples observed:

POST /ws/contacts/{contactId}/emails
POST /ws/contacts/{contactId}/phones
DELETE /ws/contacts/{contactId}/students/{studentAssociationId}
POST /ws/contacts/mergedcontact/{contactId}

The Contact Consolidation page appears to perform merges through:

POST /ws/contacts/mergedcontact/{contactId}

rather than directly manipulating schema tables.

My questions are:

  1. Are any /ws/contacts/* write endpoints supported for third-party integrations?

  2. If direct contact CRUD is not supported, what is the recommended approach for maintaining contact records programmatically?

Any guidance from would be appreciated.

0 Replies