<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Supported CRUD operations in the PowerSchool contacts API? in Community Forum</title>
    <link>https://help.powerschool.com/t5/Community-Forum/Supported-CRUD-operations-in-the-PowerSchool-contacts-API/m-p/573970#M29450</link>
    <description>&lt;P&gt;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.&lt;/P&gt;&lt;P&gt;Using an OAuth plugin (client_credentials grant), I can successfully read contact information through endpoints such as:&lt;/P&gt;&lt;PRE&gt;GET /ws/contacts/contact/{contactId}
GET /ws/contacts/student/{studentDcid}
GET /ws/contacts/guardian/{guardianId}&lt;/PRE&gt;&lt;P&gt;I can also read underlying schema tables through the schema API.&lt;/P&gt;&lt;P&gt;However, when attempting to update contact-related tables directly, PowerSchool returns errors such as:&lt;/P&gt;&lt;PRE&gt;{
  "message": "POST, PUT, and DELETE are not allowed on this table"
}&lt;/PRE&gt;&lt;P&gt;for tables like:&lt;/P&gt;&lt;PRE&gt;personemailaddressassoc
personphoneassoc&lt;/PRE&gt;&lt;P&gt;While investigating the Contact Management UI, I captured some network traffic and found that the UI appears to use internal endpoints under:&lt;/P&gt;&lt;PRE&gt;/ws/contacts/*&lt;/PRE&gt;&lt;P&gt;Examples observed:&lt;/P&gt;&lt;PRE&gt;POST /ws/contacts/{contactId}/emails
POST /ws/contacts/{contactId}/phones
DELETE /ws/contacts/{contactId}/students/{studentAssociationId}
POST /ws/contacts/mergedcontact/{contactId}&lt;/PRE&gt;&lt;P&gt;The Contact Consolidation page appears to perform merges through:&lt;/P&gt;&lt;PRE&gt;POST /ws/contacts/mergedcontact/{contactId}&lt;/PRE&gt;&lt;P&gt;rather than directly manipulating schema tables.&lt;/P&gt;&lt;P&gt;My questions are:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;P&gt;Are any /ws/contacts/* write endpoints supported for third-party integrations?&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;If direct contact CRUD is not supported, what is the recommended approach for maintaining contact records programmatically?&lt;/P&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;Any guidance from would be appreciated.&lt;/P&gt;</description>
    <pubDate>Mon, 15 Jun 2026 22:02:09 GMT</pubDate>
    <dc:creator>ethjames</dc:creator>
    <dc:date>2026-06-15T22:02:09Z</dc:date>
    <item>
      <title>Supported CRUD operations in the PowerSchool contacts API?</title>
      <link>https://help.powerschool.com/t5/Community-Forum/Supported-CRUD-operations-in-the-PowerSchool-contacts-API/m-p/573970#M29450</link>
      <description>&lt;P&gt;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.&lt;/P&gt;&lt;P&gt;Using an OAuth plugin (client_credentials grant), I can successfully read contact information through endpoints such as:&lt;/P&gt;&lt;PRE&gt;GET /ws/contacts/contact/{contactId}
GET /ws/contacts/student/{studentDcid}
GET /ws/contacts/guardian/{guardianId}&lt;/PRE&gt;&lt;P&gt;I can also read underlying schema tables through the schema API.&lt;/P&gt;&lt;P&gt;However, when attempting to update contact-related tables directly, PowerSchool returns errors such as:&lt;/P&gt;&lt;PRE&gt;{
  "message": "POST, PUT, and DELETE are not allowed on this table"
}&lt;/PRE&gt;&lt;P&gt;for tables like:&lt;/P&gt;&lt;PRE&gt;personemailaddressassoc
personphoneassoc&lt;/PRE&gt;&lt;P&gt;While investigating the Contact Management UI, I captured some network traffic and found that the UI appears to use internal endpoints under:&lt;/P&gt;&lt;PRE&gt;/ws/contacts/*&lt;/PRE&gt;&lt;P&gt;Examples observed:&lt;/P&gt;&lt;PRE&gt;POST /ws/contacts/{contactId}/emails
POST /ws/contacts/{contactId}/phones
DELETE /ws/contacts/{contactId}/students/{studentAssociationId}
POST /ws/contacts/mergedcontact/{contactId}&lt;/PRE&gt;&lt;P&gt;The Contact Consolidation page appears to perform merges through:&lt;/P&gt;&lt;PRE&gt;POST /ws/contacts/mergedcontact/{contactId}&lt;/PRE&gt;&lt;P&gt;rather than directly manipulating schema tables.&lt;/P&gt;&lt;P&gt;My questions are:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;P&gt;Are any /ws/contacts/* write endpoints supported for third-party integrations?&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;If direct contact CRUD is not supported, what is the recommended approach for maintaining contact records programmatically?&lt;/P&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;Any guidance from would be appreciated.&lt;/P&gt;</description>
      <pubDate>Mon, 15 Jun 2026 22:02:09 GMT</pubDate>
      <guid>https://help.powerschool.com/t5/Community-Forum/Supported-CRUD-operations-in-the-PowerSchool-contacts-API/m-p/573970#M29450</guid>
      <dc:creator>ethjames</dc:creator>
      <dc:date>2026-06-15T22:02:09Z</dc:date>
    </item>
  </channel>
</rss>

