Unit API GraphQL Reference
This GraphQL API for units provides queries and mutations to manage academic units within institutions. It supports operations such as listing units, creating, updating, deleting, merging units, and managing related entities like unit levels, modules, uploads, and previous names. The API enforces validation, handles hierarchical relationships, and publishes events for changes, ensuring data integrity and platform consistency.
API Endpoints
https://unit-api.interfolio.com/institutions/tenant_id/YOUR_TENANT_ID/graphiql
Queries
activityLogActivityTypesFilters
Response
Returns an ActivityLogActivityTypesFilters!
Example
Query
query ActivityLogActivityTypesFilters {
activityLogActivityTypesFilters {
activityTypes
}
}
Response
{
"data": {
"activityLogActivityTypesFilters": {
"activityTypes": ["xyz789"]
}
}
}
activityLogPages
Description
sortColumn can be date, user_last_name or activity_type. Default is date. sortDirection can be asc or desc. Default is desc. limit must be between 1 and 1000. Default is 25. page default is 0.
Response
Returns an ActivityLogPage!
Arguments
| Name | Description |
|---|---|
page - Int
|
|
limit - Int
|
|
sortColumn - String
|
|
sortDirection - String
|
|
filterActivityLogInput - FilterActivityLogInput
|
Example
Query
query ActivityLogPages(
$page: Int,
$limit: Int,
$sortColumn: String,
$sortDirection: String,
$filterActivityLogInput: FilterActivityLogInput
) {
activityLogPages(
page: $page,
limit: $limit,
sortColumn: $sortColumn,
sortDirection: $sortDirection,
filterActivityLogInput: $filterActivityLogInput
) {
activityLogs {
id
institution {
...InstitutionFragment
}
entity
entityID
activityType
user {
...ActivityLogUserFragment
}
description
details {
...ActivityLogDetailsFragment
}
createdAt
}
pageInfo {
page
limit
totalCount
totalPages
hasNextPage
hasPreviousPage
}
}
}
Variables
{
"page": 123,
"limit": 987,
"sortColumn": "xyz789",
"sortDirection": "xyz789",
"filterActivityLogInput": FilterActivityLogInput
}
Response
{
"data": {
"activityLogPages": {
"activityLogs": [ActivityLog],
"pageInfo": ActivityLogPageInfo
}
}
}
activityLogUsersFilters
Response
Returns an ActivityLogUsersFilters!
Example
Query
query ActivityLogUsersFilters {
activityLogUsersFilters {
users {
pid
email
firstName
lastName
}
}
}
Response
{
"data": {
"activityLogUsersFilters": {
"users": [ActivityLogUser]
}
}
}
institution
Response
Returns an Institution!
Example
Query
query Institution {
institution {
id
unit {
id
name
institution {
...InstitutionFragment
}
parentUnit {
...UnitFragment
}
parentUnitID
childUnits {
...UnitFragment
}
unitModules {
...UnitModuleFragment
}
abbreviation
externalID
ancestry
ancestryDepth
createdAt
updatedAt
updatedBy
active
statistics {
...StatisticFragment
}
statisticsIncludingChildren {
...StatisticFragment
}
notes
merge {
...MergeFragment
}
deleteValidation {
...UnitDeleteValidationFragment
}
}
unitCount
isPlatform
unificationStatus
}
}
Response
{
"data": {
"institution": {
"id": 4,
"unit": Unit,
"unitCount": 987,
"isPlatform": false,
"unificationStatus": "xyz789"
}
}
}
institutionModules
Response
Returns [InstitutionModule!]!
Example
Query
query InstitutionModules {
institutionModules {
id
institution {
id
unit {
...UnitFragment
}
unitCount
isPlatform
unificationStatus
}
module {
id
name
label
}
unitCount
label
}
}
Response
{
"data": {
"institutionModules": [
{
"id": 4,
"institution": Institution,
"module": Module,
"unitCount": 123,
"label": "xyz789"
}
]
}
}
modules
Response
Returns [Module!]!
Example
Query
query Modules {
modules {
id
name
label
}
}
Response
{
"data": {
"modules": [
{
"id": "4",
"name": "xyz789",
"label": "abc123"
}
]
}
}
previousNames
Response
Returns [PreviousName!]!
Arguments
| Name | Description |
|---|---|
filterPreviousNameInput - FilterPreviousNameInput
|
Example
Query
query PreviousNames($filterPreviousNameInput: FilterPreviousNameInput) {
previousNames(filterPreviousNameInput: $filterPreviousNameInput) {
id
unit {
id
name
institution {
...InstitutionFragment
}
parentUnit {
...UnitFragment
}
parentUnitID
childUnits {
...UnitFragment
}
unitModules {
...UnitModuleFragment
}
abbreviation
externalID
ancestry
ancestryDepth
createdAt
updatedAt
updatedBy
active
statistics {
...StatisticFragment
}
statisticsIncludingChildren {
...StatisticFragment
}
notes
merge {
...MergeFragment
}
deleteValidation {
...UnitDeleteValidationFragment
}
}
name
source
usedFrom
usedTo
isCurrent
createdBy
updatedBy
createdAt
updatedAt
}
}
Variables
{"filterPreviousNameInput": FilterPreviousNameInput}
Response
{
"data": {
"previousNames": [
{
"id": "4",
"unit": Unit,
"name": "xyz789",
"source": "abc123",
"usedFrom": "abc123",
"usedTo": "abc123",
"isCurrent": "abc123",
"createdBy": "xyz789",
"updatedBy": "xyz789",
"createdAt": "abc123",
"updatedAt": "xyz789"
}
]
}
}
statisticsForBulkUnits
Description
Combined statistics totals across the given units. A selection preview, not a preview of activateUnitModules/deactivateUnitModules's full cascaded impact (activation cascades to ancestors, deactivation cascades to descendants) — see Spec 20260923-144052.
Response
Returns [Statistic!]!
Arguments
| Name | Description |
|---|---|
unitIds - [Int!]!
|
Example
Query
query StatisticsForBulkUnits($unitIds: [Int!]!) {
statisticsForBulkUnits(unitIds: $unitIds) {
ModuleName
type
count
}
}
Variables
{"unitIds": [123]}
Response
{
"data": {
"statisticsForBulkUnits": [
{
"ModuleName": "xyz789",
"type": "xyz789",
"count": 987
}
]
}
}
unit
Example
Query
query Unit($id: Int!) {
unit(id: $id) {
id
name
institution {
id
unit {
...UnitFragment
}
unitCount
isPlatform
unificationStatus
}
parentUnit {
id
name
institution {
...InstitutionFragment
}
parentUnit {
...UnitFragment
}
parentUnitID
childUnits {
...UnitFragment
}
unitModules {
...UnitModuleFragment
}
abbreviation
externalID
ancestry
ancestryDepth
createdAt
updatedAt
updatedBy
active
statistics {
...StatisticFragment
}
statisticsIncludingChildren {
...StatisticFragment
}
notes
merge {
...MergeFragment
}
deleteValidation {
...UnitDeleteValidationFragment
}
}
parentUnitID
childUnits {
id
name
institution {
...InstitutionFragment
}
parentUnit {
...UnitFragment
}
parentUnitID
childUnits {
...UnitFragment
}
unitModules {
...UnitModuleFragment
}
abbreviation
externalID
ancestry
ancestryDepth
createdAt
updatedAt
updatedBy
active
statistics {
...StatisticFragment
}
statisticsIncludingChildren {
...StatisticFragment
}
notes
merge {
...MergeFragment
}
deleteValidation {
...UnitDeleteValidationFragment
}
}
unitModules {
id
module {
...ModuleFragment
}
unit {
...UnitFragment
}
active
refId
createdAt
updatedAt
deactivatedAt
}
abbreviation
externalID
ancestry
ancestryDepth
createdAt
updatedAt
updatedBy
active
statistics {
ModuleName
type
count
}
statisticsIncludingChildren {
ModuleName
type
count
}
notes
merge {
mergeProcess {
...MergeProcessFragment
}
sourceUnitID
sourceUnit {
...UnitFragment
}
targetUnitID
targetUnit {
...UnitFragment
}
createdAt
updatedAt
}
deleteValidation {
canDelete
blockingStats {
...DeleteValidationStatFragment
}
}
}
}
Variables
{"id": 123}
Response
{
"data": {
"unit": {
"id": "4",
"name": "abc123",
"institution": Institution,
"parentUnit": Unit,
"parentUnitID": 123,
"childUnits": [Unit],
"unitModules": [UnitModule],
"abbreviation": "xyz789",
"externalID": "xyz789",
"ancestry": "abc123",
"ancestryDepth": 123,
"createdAt": "xyz789",
"updatedAt": "abc123",
"updatedBy": "abc123",
"active": true,
"statistics": [Statistic],
"statisticsIncludingChildren": [Statistic],
"notes": "xyz789",
"merge": Merge,
"deleteValidation": UnitDeleteValidation
}
}
}
unitLevels
Response
Returns [UnitLevel!]!
Arguments
| Name | Description |
|---|---|
moduleId - Int
|
Example
Query
query UnitLevels($moduleId: Int) {
unitLevels(moduleId: $moduleId) {
id
institution {
id
unit {
...UnitFragment
}
unitCount
isPlatform
unificationStatus
}
units {
id
name
institution {
...InstitutionFragment
}
parentUnit {
...UnitFragment
}
parentUnitID
childUnits {
...UnitFragment
}
unitModules {
...UnitModuleFragment
}
abbreviation
externalID
ancestry
ancestryDepth
createdAt
updatedAt
updatedBy
active
statistics {
...StatisticFragment
}
statisticsIncludingChildren {
...StatisticFragment
}
notes
merge {
...MergeFragment
}
deleteValidation {
...UnitDeleteValidationFragment
}
}
module {
id
name
label
}
ancestryDepth
label
unitCount
createdAt
updatedAt
updatedBy
}
}
Variables
{"moduleId": 123}
Response
{
"data": {
"unitLevels": [
{
"id": 4,
"institution": Institution,
"units": [Unit],
"module": Module,
"ancestryDepth": 123,
"label": "xyz789",
"unitCount": 123,
"createdAt": "abc123",
"updatedAt": "xyz789",
"updatedBy": "xyz789"
}
]
}
}
unitModules
Response
Returns [UnitModule!]!
Example
Query
query UnitModules {
unitModules {
id
module {
id
name
label
}
unit {
id
name
institution {
...InstitutionFragment
}
parentUnit {
...UnitFragment
}
parentUnitID
childUnits {
...UnitFragment
}
unitModules {
...UnitModuleFragment
}
abbreviation
externalID
ancestry
ancestryDepth
createdAt
updatedAt
updatedBy
active
statistics {
...StatisticFragment
}
statisticsIncludingChildren {
...StatisticFragment
}
notes
merge {
...MergeFragment
}
deleteValidation {
...UnitDeleteValidationFragment
}
}
active
refId
createdAt
updatedAt
deactivatedAt
}
}
Response
{
"data": {
"unitModules": [
{
"id": 4,
"module": Module,
"unit": Unit,
"active": false,
"refId": "xyz789",
"createdAt": "xyz789",
"updatedAt": "abc123",
"deactivatedAt": "2007-12-03T10:15:30Z"
}
]
}
}
units
Response
Returns [Unit!]!
Arguments
| Name | Description |
|---|---|
filterUnitInput - FilterUnitInput
|
Example
Query
query Units($filterUnitInput: FilterUnitInput) {
units(filterUnitInput: $filterUnitInput) {
id
name
institution {
id
unit {
...UnitFragment
}
unitCount
isPlatform
unificationStatus
}
parentUnit {
id
name
institution {
...InstitutionFragment
}
parentUnit {
...UnitFragment
}
parentUnitID
childUnits {
...UnitFragment
}
unitModules {
...UnitModuleFragment
}
abbreviation
externalID
ancestry
ancestryDepth
createdAt
updatedAt
updatedBy
active
statistics {
...StatisticFragment
}
statisticsIncludingChildren {
...StatisticFragment
}
notes
merge {
...MergeFragment
}
deleteValidation {
...UnitDeleteValidationFragment
}
}
parentUnitID
childUnits {
id
name
institution {
...InstitutionFragment
}
parentUnit {
...UnitFragment
}
parentUnitID
childUnits {
...UnitFragment
}
unitModules {
...UnitModuleFragment
}
abbreviation
externalID
ancestry
ancestryDepth
createdAt
updatedAt
updatedBy
active
statistics {
...StatisticFragment
}
statisticsIncludingChildren {
...StatisticFragment
}
notes
merge {
...MergeFragment
}
deleteValidation {
...UnitDeleteValidationFragment
}
}
unitModules {
id
module {
...ModuleFragment
}
unit {
...UnitFragment
}
active
refId
createdAt
updatedAt
deactivatedAt
}
abbreviation
externalID
ancestry
ancestryDepth
createdAt
updatedAt
updatedBy
active
statistics {
ModuleName
type
count
}
statisticsIncludingChildren {
ModuleName
type
count
}
notes
merge {
mergeProcess {
...MergeProcessFragment
}
sourceUnitID
sourceUnit {
...UnitFragment
}
targetUnitID
targetUnit {
...UnitFragment
}
createdAt
updatedAt
}
deleteValidation {
canDelete
blockingStats {
...DeleteValidationStatFragment
}
}
}
}
Variables
{"filterUnitInput": FilterUnitInput}
Response
{
"data": {
"units": [
{
"id": "4",
"name": "abc123",
"institution": Institution,
"parentUnit": Unit,
"parentUnitID": 987,
"childUnits": [Unit],
"unitModules": [UnitModule],
"abbreviation": "xyz789",
"externalID": "abc123",
"ancestry": "abc123",
"ancestryDepth": 987,
"createdAt": "xyz789",
"updatedAt": "xyz789",
"updatedBy": "xyz789",
"active": true,
"statistics": [Statistic],
"statisticsIncludingChildren": [Statistic],
"notes": "abc123",
"merge": Merge,
"deleteValidation": UnitDeleteValidation
}
]
}
}
uploads
Response
Returns [Upload!]!
Arguments
| Name | Description |
|---|---|
type - String
|
Example
Query
query Uploads($type: String) {
uploads(type: $type) {
id
institution {
id
unit {
...UnitFragment
}
unitCount
isPlatform
unificationStatus
}
type
status
rowsTotal
rowsProcessed
rowsSuccessful
rowsFailed
createdBy
createdAt
updatedAt
}
}
Variables
{"type": "abc123"}
Response
{
"data": {
"uploads": [
{
"id": 4,
"institution": Institution,
"type": "xyz789",
"status": "abc123",
"rowsTotal": 987,
"rowsProcessed": 123,
"rowsSuccessful": 123,
"rowsFailed": 987,
"createdBy": "abc123",
"createdAt": "xyz789",
"updatedAt": "xyz789"
}
]
}
}
Mutations
activateUnitModules
Response
Returns [UnitModule!]!
Arguments
| Name | Description |
|---|---|
activateUnitModulesInput - ActivateUnitModulesInput!
|
Example
Query
mutation ActivateUnitModules($activateUnitModulesInput: ActivateUnitModulesInput!) {
activateUnitModules(activateUnitModulesInput: $activateUnitModulesInput) {
id
module {
id
name
label
}
unit {
id
name
institution {
...InstitutionFragment
}
parentUnit {
...UnitFragment
}
parentUnitID
childUnits {
...UnitFragment
}
unitModules {
...UnitModuleFragment
}
abbreviation
externalID
ancestry
ancestryDepth
createdAt
updatedAt
updatedBy
active
statistics {
...StatisticFragment
}
statisticsIncludingChildren {
...StatisticFragment
}
notes
merge {
...MergeFragment
}
deleteValidation {
...UnitDeleteValidationFragment
}
}
active
refId
createdAt
updatedAt
deactivatedAt
}
}
Variables
{"activateUnitModulesInput": ActivateUnitModulesInput}
Response
{
"data": {
"activateUnitModules": [
{
"id": 4,
"module": Module,
"unit": Unit,
"active": true,
"refId": "abc123",
"createdAt": "xyz789",
"updatedAt": "xyz789",
"deactivatedAt": "2007-12-03T10:15:30Z"
}
]
}
}
createPreviousName
Response
Returns a PreviousName!
Arguments
| Name | Description |
|---|---|
createPreviousNameInput - CreatePreviousNameInput!
|
Example
Query
mutation CreatePreviousName($createPreviousNameInput: CreatePreviousNameInput!) {
createPreviousName(createPreviousNameInput: $createPreviousNameInput) {
id
unit {
id
name
institution {
...InstitutionFragment
}
parentUnit {
...UnitFragment
}
parentUnitID
childUnits {
...UnitFragment
}
unitModules {
...UnitModuleFragment
}
abbreviation
externalID
ancestry
ancestryDepth
createdAt
updatedAt
updatedBy
active
statistics {
...StatisticFragment
}
statisticsIncludingChildren {
...StatisticFragment
}
notes
merge {
...MergeFragment
}
deleteValidation {
...UnitDeleteValidationFragment
}
}
name
source
usedFrom
usedTo
isCurrent
createdBy
updatedBy
createdAt
updatedAt
}
}
Variables
{"createPreviousNameInput": CreatePreviousNameInput}
Response
{
"data": {
"createPreviousName": {
"id": "4",
"unit": Unit,
"name": "abc123",
"source": "xyz789",
"usedFrom": "xyz789",
"usedTo": "xyz789",
"isCurrent": "xyz789",
"createdBy": "xyz789",
"updatedBy": "abc123",
"createdAt": "xyz789",
"updatedAt": "xyz789"
}
}
}
createUnit
Response
Returns a Unit!
Arguments
| Name | Description |
|---|---|
createUnitInput - CreateUnitInput!
|
Example
Query
mutation CreateUnit($createUnitInput: CreateUnitInput!) {
createUnit(createUnitInput: $createUnitInput) {
id
name
institution {
id
unit {
...UnitFragment
}
unitCount
isPlatform
unificationStatus
}
parentUnit {
id
name
institution {
...InstitutionFragment
}
parentUnit {
...UnitFragment
}
parentUnitID
childUnits {
...UnitFragment
}
unitModules {
...UnitModuleFragment
}
abbreviation
externalID
ancestry
ancestryDepth
createdAt
updatedAt
updatedBy
active
statistics {
...StatisticFragment
}
statisticsIncludingChildren {
...StatisticFragment
}
notes
merge {
...MergeFragment
}
deleteValidation {
...UnitDeleteValidationFragment
}
}
parentUnitID
childUnits {
id
name
institution {
...InstitutionFragment
}
parentUnit {
...UnitFragment
}
parentUnitID
childUnits {
...UnitFragment
}
unitModules {
...UnitModuleFragment
}
abbreviation
externalID
ancestry
ancestryDepth
createdAt
updatedAt
updatedBy
active
statistics {
...StatisticFragment
}
statisticsIncludingChildren {
...StatisticFragment
}
notes
merge {
...MergeFragment
}
deleteValidation {
...UnitDeleteValidationFragment
}
}
unitModules {
id
module {
...ModuleFragment
}
unit {
...UnitFragment
}
active
refId
createdAt
updatedAt
deactivatedAt
}
abbreviation
externalID
ancestry
ancestryDepth
createdAt
updatedAt
updatedBy
active
statistics {
ModuleName
type
count
}
statisticsIncludingChildren {
ModuleName
type
count
}
notes
merge {
mergeProcess {
...MergeProcessFragment
}
sourceUnitID
sourceUnit {
...UnitFragment
}
targetUnitID
targetUnit {
...UnitFragment
}
createdAt
updatedAt
}
deleteValidation {
canDelete
blockingStats {
...DeleteValidationStatFragment
}
}
}
}
Variables
{"createUnitInput": CreateUnitInput}
Response
{
"data": {
"createUnit": {
"id": "4",
"name": "abc123",
"institution": Institution,
"parentUnit": Unit,
"parentUnitID": 123,
"childUnits": [Unit],
"unitModules": [UnitModule],
"abbreviation": "abc123",
"externalID": "xyz789",
"ancestry": "xyz789",
"ancestryDepth": 987,
"createdAt": "xyz789",
"updatedAt": "abc123",
"updatedBy": "xyz789",
"active": true,
"statistics": [Statistic],
"statisticsIncludingChildren": [Statistic],
"notes": "abc123",
"merge": Merge,
"deleteValidation": UnitDeleteValidation
}
}
}
createUnitLevel
Response
Returns a UnitLevel!
Arguments
| Name | Description |
|---|---|
createUnitLevelInput - CreateUnitLevelInput!
|
Example
Query
mutation CreateUnitLevel($createUnitLevelInput: CreateUnitLevelInput!) {
createUnitLevel(createUnitLevelInput: $createUnitLevelInput) {
id
institution {
id
unit {
...UnitFragment
}
unitCount
isPlatform
unificationStatus
}
units {
id
name
institution {
...InstitutionFragment
}
parentUnit {
...UnitFragment
}
parentUnitID
childUnits {
...UnitFragment
}
unitModules {
...UnitModuleFragment
}
abbreviation
externalID
ancestry
ancestryDepth
createdAt
updatedAt
updatedBy
active
statistics {
...StatisticFragment
}
statisticsIncludingChildren {
...StatisticFragment
}
notes
merge {
...MergeFragment
}
deleteValidation {
...UnitDeleteValidationFragment
}
}
module {
id
name
label
}
ancestryDepth
label
unitCount
createdAt
updatedAt
updatedBy
}
}
Variables
{"createUnitLevelInput": CreateUnitLevelInput}
Response
{
"data": {
"createUnitLevel": {
"id": 4,
"institution": Institution,
"units": [Unit],
"module": Module,
"ancestryDepth": 987,
"label": "abc123",
"unitCount": 987,
"createdAt": "abc123",
"updatedAt": "xyz789",
"updatedBy": "abc123"
}
}
}
createUploadURL
Response
Returns an CreateUploadURLResponse!
Arguments
| Name | Description |
|---|---|
createUploadURLInput - CreateUploadURLInput
|
Example
Query
mutation CreateUploadURL($createUploadURLInput: CreateUploadURLInput) {
createUploadURL(createUploadURLInput: $createUploadURLInput) {
url
path
}
}
Variables
{"createUploadURLInput": CreateUploadURLInput}
Response
{
"data": {
"createUploadURL": {
"url": "abc123",
"path": "xyz789"
}
}
}
deactivateUnitModules
Response
Returns [UnitModule!]!
Arguments
| Name | Description |
|---|---|
deactivateUnitModulesInput - DeactivateUnitModulesInput!
|
Example
Query
mutation DeactivateUnitModules($deactivateUnitModulesInput: DeactivateUnitModulesInput!) {
deactivateUnitModules(deactivateUnitModulesInput: $deactivateUnitModulesInput) {
id
module {
id
name
label
}
unit {
id
name
institution {
...InstitutionFragment
}
parentUnit {
...UnitFragment
}
parentUnitID
childUnits {
...UnitFragment
}
unitModules {
...UnitModuleFragment
}
abbreviation
externalID
ancestry
ancestryDepth
createdAt
updatedAt
updatedBy
active
statistics {
...StatisticFragment
}
statisticsIncludingChildren {
...StatisticFragment
}
notes
merge {
...MergeFragment
}
deleteValidation {
...UnitDeleteValidationFragment
}
}
active
refId
createdAt
updatedAt
deactivatedAt
}
}
Variables
{"deactivateUnitModulesInput": DeactivateUnitModulesInput}
Response
{
"data": {
"deactivateUnitModules": [
{
"id": "4",
"module": Module,
"unit": Unit,
"active": false,
"refId": "xyz789",
"createdAt": "abc123",
"updatedAt": "xyz789",
"deactivatedAt": "2007-12-03T10:15:30Z"
}
]
}
}
deletePreviousName
Response
Returns a PreviousName!
Arguments
| Name | Description |
|---|---|
id - Int!
|
Example
Query
mutation DeletePreviousName($id: Int!) {
deletePreviousName(id: $id) {
id
unit {
id
name
institution {
...InstitutionFragment
}
parentUnit {
...UnitFragment
}
parentUnitID
childUnits {
...UnitFragment
}
unitModules {
...UnitModuleFragment
}
abbreviation
externalID
ancestry
ancestryDepth
createdAt
updatedAt
updatedBy
active
statistics {
...StatisticFragment
}
statisticsIncludingChildren {
...StatisticFragment
}
notes
merge {
...MergeFragment
}
deleteValidation {
...UnitDeleteValidationFragment
}
}
name
source
usedFrom
usedTo
isCurrent
createdBy
updatedBy
createdAt
updatedAt
}
}
Variables
{"id": 987}
Response
{
"data": {
"deletePreviousName": {
"id": 4,
"unit": Unit,
"name": "xyz789",
"source": "xyz789",
"usedFrom": "xyz789",
"usedTo": "abc123",
"isCurrent": "xyz789",
"createdBy": "xyz789",
"updatedBy": "abc123",
"createdAt": "abc123",
"updatedAt": "xyz789"
}
}
}
deleteUnit
Example
Query
mutation DeleteUnit($id: Int!) {
deleteUnit(id: $id) {
id
name
institution {
id
unit {
...UnitFragment
}
unitCount
isPlatform
unificationStatus
}
parentUnit {
id
name
institution {
...InstitutionFragment
}
parentUnit {
...UnitFragment
}
parentUnitID
childUnits {
...UnitFragment
}
unitModules {
...UnitModuleFragment
}
abbreviation
externalID
ancestry
ancestryDepth
createdAt
updatedAt
updatedBy
active
statistics {
...StatisticFragment
}
statisticsIncludingChildren {
...StatisticFragment
}
notes
merge {
...MergeFragment
}
deleteValidation {
...UnitDeleteValidationFragment
}
}
parentUnitID
childUnits {
id
name
institution {
...InstitutionFragment
}
parentUnit {
...UnitFragment
}
parentUnitID
childUnits {
...UnitFragment
}
unitModules {
...UnitModuleFragment
}
abbreviation
externalID
ancestry
ancestryDepth
createdAt
updatedAt
updatedBy
active
statistics {
...StatisticFragment
}
statisticsIncludingChildren {
...StatisticFragment
}
notes
merge {
...MergeFragment
}
deleteValidation {
...UnitDeleteValidationFragment
}
}
unitModules {
id
module {
...ModuleFragment
}
unit {
...UnitFragment
}
active
refId
createdAt
updatedAt
deactivatedAt
}
abbreviation
externalID
ancestry
ancestryDepth
createdAt
updatedAt
updatedBy
active
statistics {
ModuleName
type
count
}
statisticsIncludingChildren {
ModuleName
type
count
}
notes
merge {
mergeProcess {
...MergeProcessFragment
}
sourceUnitID
sourceUnit {
...UnitFragment
}
targetUnitID
targetUnit {
...UnitFragment
}
createdAt
updatedAt
}
deleteValidation {
canDelete
blockingStats {
...DeleteValidationStatFragment
}
}
}
}
Variables
{"id": 987}
Response
{
"data": {
"deleteUnit": {
"id": 4,
"name": "abc123",
"institution": Institution,
"parentUnit": Unit,
"parentUnitID": 987,
"childUnits": [Unit],
"unitModules": [UnitModule],
"abbreviation": "abc123",
"externalID": "abc123",
"ancestry": "xyz789",
"ancestryDepth": 123,
"createdAt": "abc123",
"updatedAt": "abc123",
"updatedBy": "xyz789",
"active": false,
"statistics": [Statistic],
"statisticsIncludingChildren": [Statistic],
"notes": "xyz789",
"merge": Merge,
"deleteValidation": UnitDeleteValidation
}
}
}
mergeUnits
Response
Returns a Unit!
Arguments
| Name | Description |
|---|---|
mergeUnitsInput - MergeUnitsInput!
|
Example
Query
mutation MergeUnits($mergeUnitsInput: MergeUnitsInput!) {
mergeUnits(mergeUnitsInput: $mergeUnitsInput) {
id
name
institution {
id
unit {
...UnitFragment
}
unitCount
isPlatform
unificationStatus
}
parentUnit {
id
name
institution {
...InstitutionFragment
}
parentUnit {
...UnitFragment
}
parentUnitID
childUnits {
...UnitFragment
}
unitModules {
...UnitModuleFragment
}
abbreviation
externalID
ancestry
ancestryDepth
createdAt
updatedAt
updatedBy
active
statistics {
...StatisticFragment
}
statisticsIncludingChildren {
...StatisticFragment
}
notes
merge {
...MergeFragment
}
deleteValidation {
...UnitDeleteValidationFragment
}
}
parentUnitID
childUnits {
id
name
institution {
...InstitutionFragment
}
parentUnit {
...UnitFragment
}
parentUnitID
childUnits {
...UnitFragment
}
unitModules {
...UnitModuleFragment
}
abbreviation
externalID
ancestry
ancestryDepth
createdAt
updatedAt
updatedBy
active
statistics {
...StatisticFragment
}
statisticsIncludingChildren {
...StatisticFragment
}
notes
merge {
...MergeFragment
}
deleteValidation {
...UnitDeleteValidationFragment
}
}
unitModules {
id
module {
...ModuleFragment
}
unit {
...UnitFragment
}
active
refId
createdAt
updatedAt
deactivatedAt
}
abbreviation
externalID
ancestry
ancestryDepth
createdAt
updatedAt
updatedBy
active
statistics {
ModuleName
type
count
}
statisticsIncludingChildren {
ModuleName
type
count
}
notes
merge {
mergeProcess {
...MergeProcessFragment
}
sourceUnitID
sourceUnit {
...UnitFragment
}
targetUnitID
targetUnit {
...UnitFragment
}
createdAt
updatedAt
}
deleteValidation {
canDelete
blockingStats {
...DeleteValidationStatFragment
}
}
}
}
Variables
{"mergeUnitsInput": MergeUnitsInput}
Response
{
"data": {
"mergeUnits": {
"id": 4,
"name": "xyz789",
"institution": Institution,
"parentUnit": Unit,
"parentUnitID": 123,
"childUnits": [Unit],
"unitModules": [UnitModule],
"abbreviation": "abc123",
"externalID": "abc123",
"ancestry": "abc123",
"ancestryDepth": 987,
"createdAt": "xyz789",
"updatedAt": "abc123",
"updatedBy": "xyz789",
"active": true,
"statistics": [Statistic],
"statisticsIncludingChildren": [Statistic],
"notes": "abc123",
"merge": Merge,
"deleteValidation": UnitDeleteValidation
}
}
}
updatePreviousName
Response
Returns a PreviousName!
Arguments
| Name | Description |
|---|---|
updatePreviousNameInput - UpdatePreviousNameInput!
|
Example
Query
mutation UpdatePreviousName($updatePreviousNameInput: UpdatePreviousNameInput!) {
updatePreviousName(updatePreviousNameInput: $updatePreviousNameInput) {
id
unit {
id
name
institution {
...InstitutionFragment
}
parentUnit {
...UnitFragment
}
parentUnitID
childUnits {
...UnitFragment
}
unitModules {
...UnitModuleFragment
}
abbreviation
externalID
ancestry
ancestryDepth
createdAt
updatedAt
updatedBy
active
statistics {
...StatisticFragment
}
statisticsIncludingChildren {
...StatisticFragment
}
notes
merge {
...MergeFragment
}
deleteValidation {
...UnitDeleteValidationFragment
}
}
name
source
usedFrom
usedTo
isCurrent
createdBy
updatedBy
createdAt
updatedAt
}
}
Variables
{"updatePreviousNameInput": UpdatePreviousNameInput}
Response
{
"data": {
"updatePreviousName": {
"id": 4,
"unit": Unit,
"name": "abc123",
"source": "abc123",
"usedFrom": "xyz789",
"usedTo": "xyz789",
"isCurrent": "abc123",
"createdBy": "xyz789",
"updatedBy": "xyz789",
"createdAt": "abc123",
"updatedAt": "xyz789"
}
}
}
updateUnit
Response
Returns a Unit!
Arguments
| Name | Description |
|---|---|
updateUnitInput - UpdateUnitInput!
|
Example
Query
mutation UpdateUnit($updateUnitInput: UpdateUnitInput!) {
updateUnit(updateUnitInput: $updateUnitInput) {
id
name
institution {
id
unit {
...UnitFragment
}
unitCount
isPlatform
unificationStatus
}
parentUnit {
id
name
institution {
...InstitutionFragment
}
parentUnit {
...UnitFragment
}
parentUnitID
childUnits {
...UnitFragment
}
unitModules {
...UnitModuleFragment
}
abbreviation
externalID
ancestry
ancestryDepth
createdAt
updatedAt
updatedBy
active
statistics {
...StatisticFragment
}
statisticsIncludingChildren {
...StatisticFragment
}
notes
merge {
...MergeFragment
}
deleteValidation {
...UnitDeleteValidationFragment
}
}
parentUnitID
childUnits {
id
name
institution {
...InstitutionFragment
}
parentUnit {
...UnitFragment
}
parentUnitID
childUnits {
...UnitFragment
}
unitModules {
...UnitModuleFragment
}
abbreviation
externalID
ancestry
ancestryDepth
createdAt
updatedAt
updatedBy
active
statistics {
...StatisticFragment
}
statisticsIncludingChildren {
...StatisticFragment
}
notes
merge {
...MergeFragment
}
deleteValidation {
...UnitDeleteValidationFragment
}
}
unitModules {
id
module {
...ModuleFragment
}
unit {
...UnitFragment
}
active
refId
createdAt
updatedAt
deactivatedAt
}
abbreviation
externalID
ancestry
ancestryDepth
createdAt
updatedAt
updatedBy
active
statistics {
ModuleName
type
count
}
statisticsIncludingChildren {
ModuleName
type
count
}
notes
merge {
mergeProcess {
...MergeProcessFragment
}
sourceUnitID
sourceUnit {
...UnitFragment
}
targetUnitID
targetUnit {
...UnitFragment
}
createdAt
updatedAt
}
deleteValidation {
canDelete
blockingStats {
...DeleteValidationStatFragment
}
}
}
}
Variables
{"updateUnitInput": UpdateUnitInput}
Response
{
"data": {
"updateUnit": {
"id": "4",
"name": "abc123",
"institution": Institution,
"parentUnit": Unit,
"parentUnitID": 123,
"childUnits": [Unit],
"unitModules": [UnitModule],
"abbreviation": "abc123",
"externalID": "xyz789",
"ancestry": "abc123",
"ancestryDepth": 123,
"createdAt": "xyz789",
"updatedAt": "xyz789",
"updatedBy": "xyz789",
"active": false,
"statistics": [Statistic],
"statisticsIncludingChildren": [Statistic],
"notes": "xyz789",
"merge": Merge,
"deleteValidation": UnitDeleteValidation
}
}
}
updateUnitLevel
Response
Returns a UnitLevel!
Arguments
| Name | Description |
|---|---|
updateUnitLevelInput - UpdateUnitLevelInput!
|
Example
Query
mutation UpdateUnitLevel($updateUnitLevelInput: UpdateUnitLevelInput!) {
updateUnitLevel(updateUnitLevelInput: $updateUnitLevelInput) {
id
institution {
id
unit {
...UnitFragment
}
unitCount
isPlatform
unificationStatus
}
units {
id
name
institution {
...InstitutionFragment
}
parentUnit {
...UnitFragment
}
parentUnitID
childUnits {
...UnitFragment
}
unitModules {
...UnitModuleFragment
}
abbreviation
externalID
ancestry
ancestryDepth
createdAt
updatedAt
updatedBy
active
statistics {
...StatisticFragment
}
statisticsIncludingChildren {
...StatisticFragment
}
notes
merge {
...MergeFragment
}
deleteValidation {
...UnitDeleteValidationFragment
}
}
module {
id
name
label
}
ancestryDepth
label
unitCount
createdAt
updatedAt
updatedBy
}
}
Variables
{"updateUnitLevelInput": UpdateUnitLevelInput}
Response
{
"data": {
"updateUnitLevel": {
"id": "4",
"institution": Institution,
"units": [Unit],
"module": Module,
"ancestryDepth": 987,
"label": "xyz789",
"unitCount": 123,
"createdAt": "xyz789",
"updatedAt": "xyz789",
"updatedBy": "abc123"
}
}
}
Types
ActivateUnitModulesInput
ActivityLog
Fields
| Field Name | Description |
|---|---|
id - ID!
|
|
institution - Institution!
|
|
entity - String!
|
entity represents the type of entity being acted upon, e.g., 'Unit', 'AcademicLevel', 'PreviousName', etc. |
entityID - Int!
|
entityID represents the unique identifier of the specific entity being acted upon. |
activityType - String!
|
activityType represents the type of activity performed, e.g., 'CREATE', 'UPDATE', 'DELETE', 'MERGE', etc. |
user - ActivityLogUser!
|
|
description - String!
|
|
details - ActivityLogDetails!
|
details is a bucket of all potential details we can have on an activity log such as name updates, bulk activates, unit deletes, etc. |
createdAt - String!
|
Example
{
"id": 4,
"institution": Institution,
"entity": "xyz789",
"entityID": 123,
"activityType": "abc123",
"user": ActivityLogUser,
"description": "abc123",
"details": ActivityLogDetails,
"createdAt": "abc123"
}
ActivityLogAcademicLevel
Fields
| Field Name | Description |
|---|---|
name - Diff
|
Example
{"name": Diff}
ActivityLogActivate
Fields
| Field Name | Description |
|---|---|
unitNames - [String!]!
|
|
moduleIDs - [Int!]!
|
Example
{
"unitNames": ["abc123"],
"moduleIDs": [123]
}
ActivityLogActivityTypesFilters
Fields
| Field Name | Description |
|---|---|
activityTypes - [String!]!
|
Example
{"activityTypes": ["xyz789"]}
ActivityLogDeactivate
Fields
| Field Name | Description |
|---|---|
unitNames - [String!]!
|
|
moduleIDs - [Int!]!
|
Example
{
"unitNames": ["xyz789"],
"moduleIDs": [987]
}
ActivityLogDetails
Fields
| Field Name | Description |
|---|---|
unit - ActivityLogUnit
|
|
academicLevel - ActivityLogAcademicLevel
|
|
upload - ActivityLogUpload
|
|
merge - ActivityLogMerge
|
|
activate - ActivityLogActivate
|
|
deactivate - ActivityLogDeactivate
|
Example
{
"unit": ActivityLogUnit,
"academicLevel": ActivityLogAcademicLevel,
"upload": ActivityLogUpload,
"merge": ActivityLogMerge,
"activate": ActivityLogActivate,
"deactivate": ActivityLogDeactivate
}
ActivityLogMerge
Fields
| Field Name | Description |
|---|---|
target - String!
|
|
source - ActivityLogUnitNames!
|
|
childDetails - ActivityLogMergeChildren
|
Example
{
"target": "xyz789",
"source": ActivityLogUnitNames,
"childDetails": ActivityLogMergeChildren
}
ActivityLogMergeChildren
Fields
| Field Name | Description |
|---|---|
action - String!
|
action represents whether child units were MERGED or MOVED during a merge |
target - String!
|
|
childUnits - ActivityLogUnitNames!
|
Example
{
"action": "xyz789",
"target": "xyz789",
"childUnits": ActivityLogUnitNames
}
ActivityLogPage
Fields
| Field Name | Description |
|---|---|
activityLogs - [ActivityLog!]!
|
|
pageInfo - ActivityLogPageInfo!
|
Example
{
"activityLogs": [ActivityLog],
"pageInfo": ActivityLogPageInfo
}
ActivityLogPageInfo
ActivityLogUnit
Fields
| Field Name | Description |
|---|---|
name - Diff
|
|
internalName - Diff
|
|
externalID - Diff
|
|
parentUnitName - Diff
|
|
notes - Diff
|
|
modules - DiffArray
|
|
activeModuleNames - [String!]
|
activeModuleNames lists modules that were activated. On a 'Unit Added' entry, this is the unit's complete active-module state at creation time (null unless the unit has at least one enrolled module). On a 'Unit Edited' entry, this lists only the modules that actually transitioned to active as part of that specific edit (null unless module activation was requested in that edit — independent of whether deactivation was also requested). Returns [] (not null) when the entry applies but nothing landed in this bucket. |
inactiveModuleNames - [String!]
|
inactiveModuleNames lists modules that were deactivated. On a 'Unit Added' entry, this is the unit's complete inactive-module state at creation time (null unless the unit has at least one enrolled module). On a 'Unit Edited' entry, this lists only the modules that actually transitioned to inactive as part of that specific edit (null unless module deactivation was requested in that edit — independent of whether activation was also requested). Returns [] (not null) when the entry applies but nothing landed in this bucket. |
Example
{
"name": Diff,
"internalName": Diff,
"externalID": Diff,
"parentUnitName": Diff,
"notes": Diff,
"modules": DiffArray,
"activeModuleNames": ["abc123"],
"inactiveModuleNames": ["abc123"]
}
ActivityLogUnitNames
Fields
| Field Name | Description |
|---|---|
unitNames - [String!]!
|
Example
{"unitNames": ["xyz789"]}
ActivityLogUpload
Fields
| Field Name | Description |
|---|---|
added - ActivityLogUnitNames
|
Example
{"added": ActivityLogUnitNames}
ActivityLogUser
ActivityLogUsersFilters
Fields
| Field Name | Description |
|---|---|
users - [ActivityLogUser!]!
|
Example
{"users": [ActivityLogUser]}
Boolean
Description
The Boolean scalar type represents true or false.
Example
{}
CreatePreviousNameInput
CreateUnitInput
Fields
| Input Field | Description |
|---|---|
name - String!
|
|
abbreviation - String!
|
Shortened institution identifier for the unit. Must be unique amongst the units of the institution. 100 character limit. Also referred to as Internal Name. |
externalID - String!
|
Institution identifier for the unit. Must be unique amongst the units of the institution. 100 character limit. Also referred to as Unit ID. |
parentUnitID - Int!
|
ID of a Unit within the platform to nest the unit being created under. |
inactiveModuleIDs - [Int!]
|
IDs of modules (institution_modules.module_id) to mark as inactive on creation. Modules not listed inherit the parent unit's inactive state. Requires the platform_units_activate_deactivate feature flag. |
Example
{}
CreateUnitLevelInput
CreateUploadURLInput
Fields
| Input Field | Description |
|---|---|
fileExtension - String
|
Determines the type of file being uploaded to S3. Accepts csv or xlsx. |
Example
{}
CreateUploadURLResponse
Example
{
"url": "abc123",
"path": "abc123"
}
DateTime
Example
{}
DeactivateUnitModulesInput
DeleteValidationStat
Diff
DiffArray
FilterActivityLogInput
FilterPreviousNameInput
Fields
| Input Field | Description |
|---|---|
ids - [Int]
|
Filter to a set of previous names. Not recommended to be combined with other filters. |
unitIds - [Int]
|
|
usedFromDate - DateTime
|
Filter to set of previous names after this date. Ex. YYYY-MM-DD |
usedToDate - DateTime
|
Filter to set of previous names before this date. Ex. YYYY-MM-DD |
Example
{}
FilterUnitInput
Fields
| Input Field | Description |
|---|---|
id - Int
|
Filter to a specific unit. Not recommended to be combined with other filters. |
ids - [Int]
|
Filter to a set of units. Not recommended to be combined with other filters. |
ancestryDepths - [Int]
|
Filter by a collection of specific hierarchical depths. Zero (0) indexed. |
moduleID - Int
|
Filter by a specific module. |
moduleIDs - [Int]
|
Filter by a specific module. |
searchString - String
|
Filter by a search string. Name, externalID, and abbreviation fields are searched. |
createdAtFrom - DateTime
|
|
createdAtTo - DateTime
|
|
updatedAtFrom - DateTime
|
|
updatedAtTo - DateTime
|
|
deactivatedAtFrom - DateTime
|
Filter by a module's deactivation date range. Requires moduleID or moduleIDs to also be set, except on InstitutionModule.unitCount, which always scopes to its own module automatically. |
deactivatedAtTo - DateTime
|
Filter by a module's deactivation date range. Requires moduleID or moduleIDs to also be set, except on InstitutionModule.unitCount, which always scopes to its own module automatically. |
moduleActive - Boolean
|
Filter by whether the module selected by moduleID/moduleIDs is active. true = active only, false = inactive only, omitted = unfiltered (matches both the "both checked" and "neither checked" UI states). Requires moduleID or moduleIDs to also be set, except on InstitutionModule.unitCount, which always scopes to its own module automatically. |
Example
{}
ID
Description
The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4") or integer (such as 4) input value will be accepted as an ID.
Example
{}
Institution
Fields
| Field Name | Description |
|---|---|
id - ID!
|
|
unit - Unit!
|
|
unitCount - Int!
|
|
Arguments
|
|
isPlatform - Boolean!
|
When true, the institution is flagged for platform management of organizational units and hierarchy. |
unificationStatus - String!
|
Unification status provides the unification state for multi-module institutions. Status values are:
|
Example
{
"id": "4",
"unit": Unit,
"unitCount": 123,
"isPlatform": false,
"unificationStatus": "xyz789"
}
InstitutionModule
Fields
| Field Name | Description |
|---|---|
id - ID!
|
|
institution - Institution!
|
|
module - Module!
|
|
unitCount - Int!
|
|
Arguments
|
|
label - String
|
Institution customized label for the module. |
Example
{
"id": "4",
"institution": Institution,
"module": Module,
"unitCount": 123,
"label": "xyz789"
}
Int
Description
The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.
Example
{}
Merge
Description
Merge records represent the merging of two units, from source to target. The presence of these records exists only during a pending merge operation and is removed (along with the source unit) upon completion.
Fields
| Field Name | Description |
|---|---|
mergeProcess - MergeProcess!
|
Process encapsulating individual merge directives. |
sourceUnitID - Int!
|
Source unit ID. This is the unit ID that is being merged. |
sourceUnit - Unit!
|
Source unit. This is the unit that is being merged. |
targetUnitID - Int!
|
Target unit ID. This is the unit ID that the source unit is being merged into. |
targetUnit - Unit!
|
Target unit. This is the unit that the source unit is being merged into. |
createdAt - String!
|
Timestamp of when the merge was created. |
updatedAt - String!
|
Timestamp of when the merge was last updated. |
Example
{
"mergeProcess": MergeProcess,
"sourceUnitID": 123,
"sourceUnit": Unit,
"targetUnitID": 987,
"targetUnit": Unit,
"createdAt": "abc123",
"updatedAt": "xyz789"
}
MergeProcess
Fields
| Field Name | Description |
|---|---|
status - String!
|
Status of the merge, one of: IN_PROGRESS COMPLETE FAILED |
createdBy - String
|
Name of the user who initiated the merge. |
createdByEmail - String
|
Email of the user who initiated the merge. |
createdAt - String!
|
Timestamp of when the merge was created. |
updatedAt - String!
|
Timestamp of when the merge was last updated. |
Example
{
"status": "xyz789",
"createdBy": "abc123",
"createdByEmail": "abc123",
"createdAt": "abc123",
"updatedAt": "xyz789"
}
MergeUnitsInput
Fields
| Input Field | Description |
|---|---|
id - Int!
|
Target unit id of the unit you are moving the data to. |
unitIDs - [Int!]
|
Id or ids of the units you are moving data from. |
mergeChildren - Boolean
|
When false(default) keep child units as children of the target unit or, when true, merge them into a new unit which can be supplied by targetChildID. |
targetChildID - Int
|
Optional secondary unit ID for merging child units into a different unit. Defaults to target unit id. Must be the target unit id or one of its children. |
Example
{}
Module
Fields
| Field Name | Description |
|---|---|
id - ID!
|
|
name - String!
|
Name is an internal identifier for a particular module. Names include:
|
label - String!
|
Label is the default module label used within Interfolio. Labels include:
|
Example
{
"id": 4,
"name": "abc123",
"label": "xyz789"
}
ModuleInactiveUpdateInput
PreviousName
Example
{
"id": "4",
"unit": Unit,
"name": "abc123",
"source": "xyz789",
"usedFrom": "abc123",
"usedTo": "abc123",
"isCurrent": "abc123",
"createdBy": "xyz789",
"updatedBy": "xyz789",
"createdAt": "xyz789",
"updatedAt": "xyz789"
}
Statistic
Fields
| Field Name | Description |
|---|---|
ModuleName - String!
|
ModuleName is an internal identifier for a particular module. ModuleNames include:
|
type - String!
|
Type represents a specific statistic associated with the unit. The following types are available:
|
count - Int!
|
Count represents the number of records found for a particular type. |
Example
{
"ModuleName": "abc123",
"type": "xyz789",
"count": 123
}
String
Description
The Stringscalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.
Example
{}
Unit
Fields
| Field Name | Description |
|---|---|
id - ID!
|
|
name - String!
|
|
institution - Institution!
|
|
parentUnit - Unit
|
|
parentUnitID - Int
|
|
childUnits - [Unit]
|
|
Arguments
|
|
unitModules - [UnitModule]
|
|
abbreviation - String
|
Shortened institution identifier for the unit. Must be unique amongst the units of the institution. 100 character limit. Also referred to as Internal Name. |
externalID - String
|
Institution identifier for the unit. Must be unique amongst the units of the institution. 100 character limit. Also referred to as Unit ID. |
ancestry - String!
|
Ancestry is a slash (/) delimited list of unit IDs, representing the parent(s) down to the current unit. |
ancestryDepth - Int!
|
Ancestry depth is a zero (0) indexed representation of the depth a unit exists within the hierarchy. |
createdAt - String!
|
|
updatedAt - String!
|
|
updatedBy - String
|
|
active - Boolean!
|
Indicates whether or not the unit is active at the platform. An inactive unit will not be active in any modules. |
statistics - [Statistic]
|
Provides a collection of various statistics for the unit. Can only be queried for once per request. |
statisticsIncludingChildren - [Statistic]
|
Provides a collection of various statistics for the unit and all of it's children. Can only be queried once per a request and can not be combined with a call for statistics. |
notes - String
|
|
merge - Merge
|
Merge record associated with the unit while it is pending being merged into another unit. |
deleteValidation - UnitDeleteValidation
|
Pre-flight delete validation result. Returns whether the unit can be deleted and which data types are blocking deletion. |
Example
{
"id": "4",
"name": "xyz789",
"institution": Institution,
"parentUnit": Unit,
"parentUnitID": 987,
"childUnits": [Unit],
"unitModules": [UnitModule],
"abbreviation": "xyz789",
"externalID": "xyz789",
"ancestry": "xyz789",
"ancestryDepth": 123,
"createdAt": "xyz789",
"updatedAt": "xyz789",
"updatedBy": "abc123",
"active": false,
"statistics": [Statistic],
"statisticsIncludingChildren": [Statistic],
"notes": "xyz789",
"merge": Merge,
"deleteValidation": UnitDeleteValidation
}
UnitDeleteValidation
Fields
| Field Name | Description |
|---|---|
canDelete - Boolean!
|
|
blockingStats - [DeleteValidationStat]
|
Example
{
"canDelete": true,
"blockingStats": [DeleteValidationStat]
}
UnitLevel
Fields
| Field Name | Description |
|---|---|
id - ID!
|
|
institution - Institution!
|
|
units - [Unit]
|
|
module - Module!
|
|
ancestryDepth - Int!
|
Ancestry depth is a zero (0) indexed representation of the depth a unit exists within the hierarchy. |
label - String
|
|
unitCount - Int!
|
|
createdAt - String!
|
|
updatedAt - String!
|
|
updatedBy - String
|
Example
{
"id": 4,
"institution": Institution,
"units": [Unit],
"module": Module,
"ancestryDepth": 123,
"label": "abc123",
"unitCount": 987,
"createdAt": "xyz789",
"updatedAt": "xyz789",
"updatedBy": "abc123"
}
UnitModule
Fields
| Field Name | Description |
|---|---|
id - ID!
|
|
module - Module!
|
|
unit - Unit!
|
|
active - Boolean!
|
When false, unit is inactive within that module. This feature is not supported at this time. |
refId - String!
|
Represents the ID of the unit within the specific module within Interfolio. |
createdAt - String!
|
|
updatedAt - String!
|
|
deactivatedAt - DateTime
|
The recorded deactivation timestamp. Null when no timestamp is recorded — this includes currently-active unit modules and any unit module deactivated before deactivated_at tracking was added (migration 20250515143510). |
Example
{
"id": "4",
"module": Module,
"unit": Unit,
"active": false,
"refId": "xyz789",
"createdAt": "xyz789",
"updatedAt": "xyz789",
"deactivatedAt": "2007-12-03T10:15:30Z"
}
UpdatePreviousNameInput
UpdateUnitInput
Fields
| Input Field | Description |
|---|---|
id - Int!
|
|
name - String
|
Name of the unit. If not provided, the name will not be changed. |
abbreviation - String
|
Shortened institution identifier for the unit. Must be unique amongst the units of the institution. 100 character limit. Also referred to as Internal Name. If not provided, the name will not be changed. |
externalID - String
|
Institution identifier for the unit. Must be unique amongst the units of the institution. 100 character limit. Also referred to as Unit ID. If not provided, the name will not be changed. |
parentUnitID - Int
|
ID of a Unit within the platform to nest the unit being updated under. If not provided, the unit will not be moved. |
notes - String
|
Notes of a unit. If not provided, the notes will not be updated. |
moduleInactiveUpdates - [ModuleInactiveUpdateInput!]
|
Per-module inactive state updates. Requires the platform_units_activate_deactivate feature flag. Activation cascades up to all ancestors. Deactivation cascades down to all descendants. |
Example
{}
UpdateUnitLevelInput
Upload
Fields
| Field Name | Description |
|---|---|
id - ID!
|
|
institution - Institution!
|
|
type - String!
|
Type can be: unification, or upload |
status - String
|
State of the upload. Valid values:
|
rowsTotal - Int!
|
|
rowsProcessed - Int!
|
|
rowsSuccessful - Int!
|
|
rowsFailed - Int!
|
|
createdBy - String
|
|
createdAt - String!
|
|
updatedAt - String!
|
Example
{
"id": "4",
"institution": Institution,
"type": "xyz789",
"status": "abc123",
"rowsTotal": 123,
"rowsProcessed": 987,
"rowsSuccessful": 987,
"rowsFailed": 123,
"createdBy": "xyz789",
"createdAt": "abc123",
"updatedAt": "abc123"
}