Your community experience is moving to Customer Central, our new portal, this summer, with a more intuitive experience. Learn More.
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:
Are any /ws/contacts/* write endpoints supported for third-party integrations?
If direct contact CRUD is not supported, what is the recommended approach for maintaining contact records programmatically?
Any guidance from would be appreciated.
