Adding Categorizations to Entries

It is possible to annotate your entries with categorizations to better contextualize their content, context, etc.

Important
The categorization IDs provided here are for example only. Different instances of hash sharing will have unique IDs i.e. CSAM versus Exploitative. Though for each instance, individual categorizations' IDs are static.

Listing Available Categorizations.

To list all categorizations available to annotate entries with, make a GET request to {ex-url-v2}/categorizations.

Important
The IDs for each categorization will not change, however; there may be more added in the future. For this reason, it is safe to cache these values, though keep in mind different environments will contain unique IDs. i.e. Known Minor on CSAM will have a different ID than Exploitative.
list categorizations diagram

The curl call to execute this is shown below.

curl --user {ex-creds} \
     --get {ex-url-v2}/categorizations

The response is a list of active categorizations.

Note
The IDs below are not reflective of actual data, they are provided as example only.
Categorization Result
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<availableCategorizations xmlns="https://hashsharing.ncmec.org/hashsharing/v2">
    <group name="Content" allowMultiple="false">
        <categorization guid="01234567-abcd-0123-4567-012345678900" name="Clothed Child"/>
        <categorization guid="01234567-abcd-0123-4567-012345678901" name="Unclothed Child"/>
        <categorization guid="01234567-abcd-0123-4567-012345678902" name="Unconfirmed Child Sexual Abuse Material"/>
    </group>
    <group name="Context" allowMultiple="true">
        <categorization guid="01234589-abcd-0123-4567-012345678910" name="Known Minor"/>
        <categorization guid="01234577-abcd-0123-4567-012345678911" name="Potential Meme"/>
        <categorization guid="01234566-abcd-0123-4567-012345678912" name="Viral"/>
    </group>
    <group name="Egregious" allowMultiple="true">
        <categorization guid="01234444-abcd-0123-4567-012345678920" name="Bestiality"/>
    </group>
</availableCategorizations>

Current Available Categorizations

Note
Categorizations may be added at a later date. It is possible that the list below is not up-to-date with what is present. What is provided below is for your convenience:

Group

Name

Content

Varies for CSAM versus Exploitative

Context

Known Minor

Potential Meme

Viral

Egregious

Bestiality

Bondage/Sadism

Infant/Toddler

Assigning Categorizations

With the categorizations defined above, you are able to assign them to entries you’ve already created.

Important
The following request will override any existing categorizations with the list you supply. If you’d like to keep existing categorizations, you must include them in the PUT request.
assign entries diagram

Assume the file categorization-update.xml below is submitted to Hash Sharing.

categorization-update.xml
<?xml version="1.0" encoding="UTF-8"?>
<categorizationAssignmentUpdateRequest xmlns="https://hashsharing.ncmec.org/hashsharing/v2">
  <ids>
    <guid>836e9e04-3443-11ed-a261-0242ac120002</guid>
  </ids>
</categorizationAssignmentUpdateRequest>

The curl call to perform update categorizations for an entry is shown below.

curl --user {ex-creds} \
     --header 'Content-Type: application/xml; charset=utf-8' \
     --data @categorization-update.xml \
     --request PUT {ex-url-v2}/entries/{memberEntryId}/categorizations