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
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
}
}
unitCount
isPlatform
unificationStatus
}
}
Response
{
"data": {
"institution": {
"id": "4",
"unit": Unit,
"unitCount": 123,
"isPlatform": false,
"unificationStatus": "abc123"
}
}
}
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": 987,
"label": "abc123"
}
]
}
}
modules
Response
Returns [Module!]!
Example
Query
query Modules {
modules {
id
name
label
}
}
Response
{
"data": {
"modules": [
{
"id": "4",
"name": "abc123",
"label": "xyz789"
}
]
}
}
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
}
}
name
source
usedFrom
usedTo
isCurrent
createdBy
updatedBy
createdAt
updatedAt
}
}
Variables
{"filterPreviousNameInput": FilterPreviousNameInput}
Response
{
"data": {
"previousNames": [
{
"id": 4,
"unit": Unit,
"name": "xyz789",
"source": "abc123",
"usedFrom": "xyz789",
"usedTo": "xyz789",
"isCurrent": "abc123",
"createdBy": "abc123",
"updatedBy": "xyz789",
"createdAt": "abc123",
"updatedAt": "xyz789"
}
]
}
}
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
}
}
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": "abc123",
"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
}
}
active
refId
createdAt
updatedAt
}
}
Response
{
"data": {
"unitModules": [
{
"id": "4",
"module": Module,
"unit": Unit,
"active": true,
"refId": "abc123",
"createdAt": "abc123",
"updatedAt": "xyz789"
}
]
}
}
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
}
}
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
}
}
unitModules {
id
module {
...ModuleFragment
}
unit {
...UnitFragment
}
active
refId
createdAt
updatedAt
}
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
}
}
}
Variables
{"filterUnitInput": FilterUnitInput}
Response
{
"data": {
"units": [
{
"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": "xyz789",
"updatedBy": "xyz789",
"active": false,
"statistics": [Statistic],
"statisticsIncludingChildren": [Statistic],
"notes": "xyz789",
"merge": Merge
}
]
}
}
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": "abc123",
"status": "xyz789",
"rowsTotal": 987,
"rowsProcessed": 987,
"rowsSuccessful": 123,
"rowsFailed": 123,
"createdBy": "xyz789",
"createdAt": "abc123",
"updatedAt": "xyz789"
}
]
}
}
Mutations
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
}
}
name
source
usedFrom
usedTo
isCurrent
createdBy
updatedBy
createdAt
updatedAt
}
}
Variables
{"createPreviousNameInput": CreatePreviousNameInput}
Response
{
"data": {
"createPreviousName": {
"id": 4,
"unit": Unit,
"name": "xyz789",
"source": "xyz789",
"usedFrom": "abc123",
"usedTo": "xyz789",
"isCurrent": "xyz789",
"createdBy": "xyz789",
"updatedBy": "abc123",
"createdAt": "abc123",
"updatedAt": "abc123"
}
}
}
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
}
}
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
}
}
unitModules {
id
module {
...ModuleFragment
}
unit {
...UnitFragment
}
active
refId
createdAt
updatedAt
}
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
}
}
}
Variables
{"createUnitInput": CreateUnitInput}
Response
{
"data": {
"createUnit": {
"id": "4",
"name": "xyz789",
"institution": Institution,
"parentUnit": Unit,
"parentUnitID": 987,
"childUnits": [Unit],
"unitModules": [UnitModule],
"abbreviation": "xyz789",
"externalID": "abc123",
"ancestry": "abc123",
"ancestryDepth": 123,
"createdAt": "xyz789",
"updatedAt": "abc123",
"updatedBy": "xyz789",
"active": false,
"statistics": [Statistic],
"statisticsIncludingChildren": [Statistic],
"notes": "abc123",
"merge": Merge
}
}
}
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
}
}
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": "xyz789",
"unitCount": 987,
"createdAt": "abc123",
"updatedAt": "abc123",
"updatedBy": "xyz789"
}
}
}
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": "xyz789",
"path": "xyz789"
}
}
}
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
}
}
name
source
usedFrom
usedTo
isCurrent
createdBy
updatedBy
createdAt
updatedAt
}
}
Variables
{"id": 987}
Response
{
"data": {
"deletePreviousName": {
"id": 4,
"unit": Unit,
"name": "abc123",
"source": "xyz789",
"usedFrom": "abc123",
"usedTo": "abc123",
"isCurrent": "xyz789",
"createdBy": "abc123",
"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
}
}
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
}
}
unitModules {
id
module {
...ModuleFragment
}
unit {
...UnitFragment
}
active
refId
createdAt
updatedAt
}
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
}
}
}
Variables
{"id": 123}
Response
{
"data": {
"deleteUnit": {
"id": 4,
"name": "xyz789",
"institution": Institution,
"parentUnit": Unit,
"parentUnitID": 123,
"childUnits": [Unit],
"unitModules": [UnitModule],
"abbreviation": "abc123",
"externalID": "abc123",
"ancestry": "abc123",
"ancestryDepth": 123,
"createdAt": "abc123",
"updatedAt": "abc123",
"updatedBy": "abc123",
"active": true,
"statistics": [Statistic],
"statisticsIncludingChildren": [Statistic],
"notes": "abc123",
"merge": Merge
}
}
}
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
}
}
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
}
}
unitModules {
id
module {
...ModuleFragment
}
unit {
...UnitFragment
}
active
refId
createdAt
updatedAt
}
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
}
}
}
Variables
{"mergeUnitsInput": MergeUnitsInput}
Response
{
"data": {
"mergeUnits": {
"id": 4,
"name": "xyz789",
"institution": Institution,
"parentUnit": Unit,
"parentUnitID": 123,
"childUnits": [Unit],
"unitModules": [UnitModule],
"abbreviation": "abc123",
"externalID": "xyz789",
"ancestry": "xyz789",
"ancestryDepth": 123,
"createdAt": "xyz789",
"updatedAt": "abc123",
"updatedBy": "xyz789",
"active": true,
"statistics": [Statistic],
"statisticsIncludingChildren": [Statistic],
"notes": "abc123",
"merge": Merge
}
}
}
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
}
}
name
source
usedFrom
usedTo
isCurrent
createdBy
updatedBy
createdAt
updatedAt
}
}
Variables
{"updatePreviousNameInput": UpdatePreviousNameInput}
Response
{
"data": {
"updatePreviousName": {
"id": 4,
"unit": Unit,
"name": "abc123",
"source": "xyz789",
"usedFrom": "abc123",
"usedTo": "xyz789",
"isCurrent": "abc123",
"createdBy": "xyz789",
"updatedBy": "xyz789",
"createdAt": "xyz789",
"updatedAt": "abc123"
}
}
}
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
}
}
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
}
}
unitModules {
id
module {
...ModuleFragment
}
unit {
...UnitFragment
}
active
refId
createdAt
updatedAt
}
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
}
}
}
Variables
{"updateUnitInput": UpdateUnitInput}
Response
{
"data": {
"updateUnit": {
"id": "4",
"name": "xyz789",
"institution": Institution,
"parentUnit": Unit,
"parentUnitID": 987,
"childUnits": [Unit],
"unitModules": [UnitModule],
"abbreviation": "xyz789",
"externalID": "xyz789",
"ancestry": "abc123",
"ancestryDepth": 987,
"createdAt": "abc123",
"updatedAt": "abc123",
"updatedBy": "abc123",
"active": true,
"statistics": [Statistic],
"statisticsIncludingChildren": [Statistic],
"notes": "abc123",
"merge": Merge
}
}
}
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
}
}
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": "abc123",
"unitCount": 123,
"createdAt": "xyz789",
"updatedAt": "abc123",
"updatedBy": "xyz789"
}
}
}
Types
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. |
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": "xyz789"
}
DateTime
Example
{}
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
|
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": 987,
"isPlatform": true,
"unificationStatus": "abc123"
}
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": 987,
"label": "abc123"
}
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": 987,
"sourceUnit": Unit,
"targetUnitID": 123,
"targetUnit": Unit,
"createdAt": "xyz789",
"updatedAt": "abc123"
}
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": "xyz789",
"createdByEmail": "xyz789",
"createdAt": "xyz789",
"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": "xyz789",
"label": "xyz789"
}
PreviousName
Example
{
"id": 4,
"unit": Unit,
"name": "abc123",
"source": "xyz789",
"usedFrom": "abc123",
"usedTo": "abc123",
"isCurrent": "xyz789",
"createdBy": "abc123",
"updatedBy": "xyz789",
"createdAt": "xyz789",
"updatedAt": "abc123"
}
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]
|
|
Arguments
|
|
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. |
Example
{
"id": "4",
"name": "xyz789",
"institution": Institution,
"parentUnit": Unit,
"parentUnitID": 987,
"childUnits": [Unit],
"unitModules": [UnitModule],
"abbreviation": "xyz789",
"externalID": "xyz789",
"ancestry": "xyz789",
"ancestryDepth": 123,
"createdAt": "abc123",
"updatedAt": "abc123",
"updatedBy": "xyz789",
"active": false,
"statistics": [Statistic],
"statisticsIncludingChildren": [Statistic],
"notes": "xyz789",
"merge": Merge
}
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": 987,
"label": "xyz789",
"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!
|
Example
{
"id": "4",
"module": Module,
"unit": Unit,
"active": false,
"refId": "abc123",
"createdAt": "xyz789",
"updatedAt": "xyz789"
}
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. |
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": "xyz789",
"rowsTotal": 123,
"rowsProcessed": 987,
"rowsSuccessful": 987,
"rowsFailed": 987,
"createdBy": "xyz789",
"createdAt": "xyz789",
"updatedAt": "abc123"
}