API Documentation
As of InfoCentral 1.2.0
This is a breakdown of all API routes currently in InfoCentral. If a requesting agent does not have permission to use a route, InfoCentral will typically return response code 401, if an object is not found 404, and if a form submission has validation errors 400 will be returned along with an array ‘errors’ detailing what went wrong.
The following breakdown (attempts to) follow this notation:
- /route [permissions]
- array(type{fields})
- responseCode{responseBody}
Core
- /history
- GET /history
- document body: {object, index, action, username}
- returns: 200{array(user{id, username, time, action, array(changes)})}
- GET /history
- /users [settings, tickets-admin]
- GET /users
- returns: 200{array(user{id, username, firstName, lastName, email, disabled, authType})}
- GET /users/$id [settings]
- returns: 200{id, username, firstName, lastName, email, disabled, authType, array(roles{id, name})}
- GET /users/$id/roles [settings]
- returns: 200{array(roles{id, name})}
- GET /users/$id/permissions [settings]
- returns: 200{array(permissions{code})}
- POST /users/search [settings]
- document body: {username, firstName, lastName, disabled}
- returns: 200{array(user{id, username, firstName, lastName, email, disabled, authType, array(roles{id, name})})}
- POST /users [settings]
- document body: {username, firstName, lastName, email, password, disabled, authType, array(roles{id})}
- returns: 201{id}
- PUT /users [settings]
- document body: {username, firstName, lastName, email, password, disabled, authType, array(roles{id})}
- returns: 204
- DELETE /users/$id [settings]
- returns: 204
- GET /users
- /roles [settings]
- GET /roles
- returns: 200{array(role{id, name})}
- GET /roles/$id
- returns: 200{id, name}
- GET /roles/$id/permissions
- returns: 200{array(permission{code})}
- POST /roles
- document body: {name, array(permission{code})}
- returns: 201: {id}
- POST /roles/search
- document body: {name}
- returns: 200{array(role{id, name})}
- PUT /roles/$id
- document body: {name, array(permission{code})}
- returns 204
- DELETE /roles/$id
- returns 204
- GET /roles
- /permissions [settings]
- GET /permissions
- returns 200{array(permission{code})}
- POST /permissions/audit
- document body: array(permission{code})
- returns: 200{array(user{id, username, firstName+lastName})}
- POST /permissions/audit/$userId
- returns 200{array(role{id, name})}
- GET /permissions
- /currentUser
- GET /currentUser/roles
- returns: 200{array(role{id, name})}
- GET /currentUser/permissions
- returns: 200{array(permission{code})}
- GET /currentUser/unreadNotificationCount
- returns 200{count}
- GET /currentUser/unreadNotifications
- returns 200{array(notification{id, title, time, data})}
- GET /currentUser/bulletins
- returns 200{array(bulletin{title, message, type})}
- GET /currentUser/notifications
- returns 200{array(notification{id, title, time, data})}
- GET /currentUser/notifications/$id
- returns 200{id, title, time, data}
- DELETE /currentUser/notifications/$id
- returns 204
- PUT /currentUser/changePassword
- document body: {old, new, confirm}
- returns 204
- GET /currentUser/roles
- /authenticate
- POST /authenticate/login
- document body: {username, password, remoteAddr}
- returns 201{token}
- PUT /authenticate/logout
- returns 204
- POST /authenticate/login
- /bulletins [settings]
- GET /bulletins
- returns 200{array(role{id, startDate, endDate, title, inactive, type})}
- GET /bulletins/$id
- returns 200{id, startDate, endDate, title, message, inactive, type, array(roles{id, name})}
- POST /bulletins
- document body: {startDate, endDate, title, message, inactive, type, roles}
- returns 201{id}
- POST /bulletins/search
- document body: {startDate, endDate, title, message, inactive, type, roles}
- returns 200{array(role{id, startDate, endDate, title, inactive, type})}
- PUT /bulletins/$id
- document body: {startDate, endDate, title, message, inactive, type, roles}
- returns 204
- DELETE /bulletins/$id
- returns 204
- GET /bulletins
- /secrets [api-settings]
- GET /secrets
- returns 200{array(secret{id, name})}
- GET /secrets/$Id
- returns 200{id, name, secret, array(permissions{code})}
- POST /secrets
- document body: {name, permissions}
- returns 201{id}
- PUT /secrets/$id
- document body: {name, permissions}
- returns 204
- DELETE /secrets/$id
- returns 204
- GET /secrets
- /tokens [settings]
- POST /tokens/search
- document body: {username, ipAddress, startDate, endDate}
- returns 200{array(token{user, ipAddress, issueTime, expireTime, expired})}
- POST /tokens/search
- /notifications [settings]
- POST /notifications
- document body: {title, data, important, email, roles}
- returns 201{count}
- POST /notifications
Facilities
- /buildings [facilitiescore_facilities-r, itsm_inventory-assets-w]
- GET /buildings
- returns 200{array(building{id, code, name, streetAddress, city, state, zipCode})}
- GET /buildings/$id
- returns 200{id, code, name, streetAddress, city, state, zipCode}
- GET /buildings/$id/locations
- returns 200{array(location{id, code, name})}
- POST /buildings [facilitiescore_facilities-w]
- document body: {code, name, streetAddress, city, state, zipCode}
- returns 201{id}
- POST /buildings/search
- document body: {code, name, streetAddress, city, state, zipCode}
- returns 200{array(building{id, code, name, streetAddress, city, state, zipCode})}
- PUT /buildings/$id [facilitiescore_facilities-w]
- document body: {code, name, streetAddress, city, state, zipCode}
- returns 204
- DELETE /buildings/$id [facilitiescore_facilities-w]
- returns 204
- GET /buildings
- /locations [facilitiescore_facilities-r, itsm_inventory-assets-w]
- GET /locations/$id
- returns 200{id, buildingId, buildingCode, buildingName, code, name}
- POST /location/$buildingId [facilitiescore_facilities-w]
- document body: {code, name}
- returns 201{id}
- DELETE /locations/$id [facilitiescore_facilities-w]
- returns 204
- PUT /locations/$id [facilitiescore_facilities-w]
- document body: {code, name}
- returns 204
- GET /locations/$id
Inventory
- /commodities [itsm_inventory-purchaseorders-w, itsm_inventory-commodities-r, itsm_inventory-assets-r]
- GET /commodities
- returns 200{array(commodity{id, code, name, commodityType, assetType, manufacturer, model})}
- GET /commodities/$id
- returns 200{id, code, name, commodityType, commodityTypeName, assetType, assetTypeName, manufacturer, model, unitCost}
- GET /commodities/commodityTypes
- returns 200{array(attribute{id, code, name})}
- GET /commodities/assetTypes
- returns 200{array(attribute{id, code, name})}
- PUT /commodities/$id [itsm_inventory-commodities-w]
- document body: {code, name, commodityType, assetType, manufacturer, model, unitCost}
- returns 204
- PUT /commodities/assetTypes/$id [itsm_inventory-commodities-w]
- document body: {code, name}
- returns 204
- POST /commodities/search
- document body: {code, name, commodityType, assetType, manufacturer, model, unitCost}
- returns 200{array(commodity{id, code, name, commodityType, assetType, manufacturer, model})}
- POST /commodities [itsm_inventory-commodities-w]
- document body: {code, name, commodityType, assetType, manufacturer, model, unitCost}
- returns 201{id}
- POST /commodities/assetTypes [itsm_inventory-commodities-w]
- document body: {code, name}
- returns 201{id}
- DELETE /commodities/$id [itsm_inventory-commodities-w]
- returns 204
- DELETE /commodities/assetTypes/$id [itsm_inventory-commodities-w]
- returns 204
- GET /commodities
- /warehouses [itsm_inventory-warehouses-r, itsm_inventory-assets-r]
- GET /warehouses
- returns 200{array(warehouse{code, name})}
- GET /warehouses/$id
- returns 200{id, code, name, closed}
- POST /warehouses
- document body: {code, name}
- returns 201{id}
- POST /warehouses/search
- document body: {code, name}
- returns 200{array(warehouse{code, name})}
- PUT /warehouses/$id
- returns 204
- DELETE /warehouses/$id
- returns 204
- GET /warehouses
- /vendors [itsm_inventory-vendors-r, itsm_inventory-purchaseorders-w]
- GET /vendors
- returns 200{array(vendor{id, code, name})}
- GET /vendors/$id
- returns 200{id, code, name, streetAddress, city, state, zipCode, phone, fax}
- POST /vendors
- document body: {code, name, streetAddress, city, state, zipCode, phone, fax}
- returns 201{id}
- POST /vendors/search
- document body: {code, name, streetAddress, city, state, zipCode, phone, fax}
- returns 200{array(vendor{id, code, name})}
- PUT /vendors/$id
- document body: {code, name, streetAddress, city, state, zipCode, phone, fax}
- returns 204
- DELETE /vendors/$id
- returns 204
- GET /vendors
- /assets [itsm_inventory-assets-r]
- GET /assets
- returns 200{array(asset{inWorksheet, assetTag, commodityCode, commodityName, assetType, serialNumber, location, warehouse, verified})}
- GET /assets/$id
- returns 200{assetTag, inWorksheet, commodity, commodityCode, commodityName, commodityType, commodityManufacturer, commodityModel, assetType, warehouse, warehouseCode, warehouseName, parentAssetTag, location, building, buildingCode, buildingName, locationCode, locationName, serialNumber, manufactureDate, purchaseOrder, notes, discarded, discardDate, discardOrder, verified, verifyDate}
- GET /assets/$id/children
- return 200{array(asset{assetTag, commodityName})}
- POST /assets/search
- document body: {assetTag, serialNumber, inWarehouse, isDiscarded, buildingCode, locationCode, warehouseCode, purchaseOrder, manufacturer, model, commodityCode, commodityName, commodityType, assetType, isVerified, notes}
- returns 200{array(asset{inWorksheet, assetTag, commodityCode, commodityName, assetType, serialNumber, location, warehouse, verified})}
- POST /assets/$id/parent [itsm_inventory-assets-w]
- document body: {parentAssetTag}
- returns 204
- PUT /assets/$id [itsm_inventory-assets-w]
- document body: {assetTag, serialNumber, notes, manufactureDate}
- returns 204
- PUT /assets/$id/verify [itsm_inventory-assets-w]
- returns 204
- PUT /assets/$id/unverify [itsm_inventory-assets-w]
- returns 204
- PUT /assets/$id/location [itsm_inventory-assets-w]
- document body: {buildingCode, locationCode}
- returns 204
- PUT /assets/$id/warehouse [itsm_inventory-assets-w]
- document body: {locationCode}
- returns 204
- DELETE /assets/$id/parent [itsm_inventory-assets-w]
- returns 204
- GET /assets/worksheet
- returns 200{array(asset{assetTag, commodityCode, commodityName, assetType, serialNumber, location, warehouse, verified})}
- GET /assets/worksheet/count
- returns 200{count}
- PUT /assets/worksheet/location [itsm_inventory-assets-w]
- document body: {buildingCode, locationCode}
- returns 204
- PUT /assets/worksheet/warehouse [itsm_inventory-assets-w]
- document body: {warehouseCode}
- returns 204
- PUT /assets/worksheet/verify [itsm_inventory-assets-w]
- returns 204
- PUT /assets/worksheet/unverify [itsm_inventory-assets-w]
- returns 204
- POST /assets/worksheet [itsm_inventory-assets-w]
- document body: {array(asset{id})}
- returns 201
- DELETE /assets/worksheet/$assetId [itsm_inventory-assets-w]
- returns 204
- DELETE /assets/worksheet [itsm_inventory-assets-w]
- returns 200{removed}
- GET /assets
- /purchaseorders [itsm_inventory-purchaseorders-r]
- GET /purchaseorders
- returns 200{array(purchaseorder{number, orderDate, warehouseCode, warehouseName, vendorCode, vendorName, status})}
- GET /purchaseorders/$number
- returns 200{number, orderDate, warehouse, warehouseCode, warehouseName, vendor, vendorCode, vendorName, status, notes, sent, sendDate, received, receiveDate, canceled, cancelDate}
- GET /purchaseorders/statuses
- returns 200{array(attribute{code, name})}
- GET /purchaseorders/$number/commodities
- returns 200{array({id, commodity, commodityCode, commodityName, quantity, unitCost})}
- GET /purchaseorders/$number/costitems
- returns 200{array(costitem{id, cost, notes})}
- POST /purchaseorders [itsm_inventory-purchaseorders-w]
- document body: {orderDate, warehouse, vendor, notes}
- return 201{number}
- POST /purchaseorders/search
- document body: {number, vendor, warehouse, orderStart, orderEnd, status}
- returns 200{array(purchaseorder{number, orderDate, warehouseCode, warehouseName, vendorCode, vendorName, status})}
- POST /purchaseorders/$number/commodities [itsm_inventory-purchaseorders-w]
- document body: {commodity, quantity, unitCost}
- returns 201
- POST /purchaseorders/$number/costitems [itsm_inventory-purchaseorders-w]
- document body: {cost, notes}
- returns 201
- PUT /purchaseorders/$number [itsm_inventory-purchaseorders-w]
- document body: {orderDate, warehouse, vendor, notes}
- returns 204
- PUT /purchaseorders/$number/send [itsm_inventory-purchaseorders-w]
- returns 204
- PUT /purchaseorders/$number/cancel [itsm_inventory-purchaseorders-w]
- returns 204
- PUT /purchaseorders/$number/receive [itsm_inventory-purchaseorders-w]
- document body: {receiveDate, startAssetTag}
- returns 204
- DELETE /purchaseorders/$number/commodities/$commodity [itsm_inventory-purchaseorders-w]
- returns 204
- DELETE /purchaseorders/$number/costitems/$costItem [itsm_inventory-purchaseorders-w]
- returns 204
- GET /purchaseorders
- /discardorders [itsm_inventory-discards-r]
- GET /discardorders
- returns 200{array(discard{number, date, approved, fulfilled, canceled})}
- GET /discardorders/$number
- returns 200{number, notes, date, approved, approveDate, fulfilled, fulfillDate, canceled, cancelDate}
- GET /discardorders/$number/assets
- returns 200{array(asset{assetTag, serialNumber})}
- PUT /discardorders/$number [itsm_inventory-discards-w]
- document body: {notes}
- returns 204
- PUT /discardorders/$number/approve [itsm_inventory-discards-w]
- returns 204
- PUT /discardorders/$number/fulfill [itsm_inventory-discards-w]
- returns 204
- PUT /discardorders/$number/cancel [itsm_inventory-discards-w]
- returns 204
- POST /discardorders [itsm_inventory-discards-w]
- document body: {notes}
- returns 201{number}
- POST /discardorders/$number/search
- document body: {number, startDate, endDate, approved, fulfilled, canceled}
- returns 200{array(discard{number, date, approved, fulfilled, canceled})}
- POST /discardorders/$number/assets [itsm_inventory-discards-w]
- document body: {assetTag}
- returns 204
- DELETE /discardorders/$number/assets [itsm_inventory-discards-w]
- returns 204
- GET /discardorders
Devices
- /hosts [itsm_devices-hosts-r, itsm_ait-apps-w]
- GET /hosts
- returns 200{array(host){id ipAddress, macAddress, assetTag, systemName}}
- GET /hosts/$id
- returns 200{id, ipAddress, macAddress, assetTag, systemName, systemCPU, systemRAM, systemOS, systemDomain}
- POST /hosts [itsm_devices-hosts-w]
- document body: {assetTag, ipAddress, macAddress, systemName, systemCPU, systemRAM, systemOS, systemDomain}
- returns 201{id}
- POST /hosts/search
- document body: {assetTag, ipAddress, macAddress, systemName, systemCPU, systemRAM, systemOS, systemDomain}
- returns 200{array(host){id ipAddress, macAddress, assetTag, systemName}}
- PUT /hosts/$id [itsm_devices-hosts-w]
- document body: {assetTag, ipAddress, macAddress, systemName, systemCPU, systemRAM, systemOS, systemDomain}
- returns 204
- DELETE /hosts/$id [itsm_devices-hosts-w]
- returns 204
- GET /hosts
- /hostCategories [itsmmonitor-hosts-r]
- GET /hostCategories
- returns 200{array(category{id, name, displayed})}
- GET /hostCategories/displayed
- returns 200{array(category{id, name, displayed})}
- GET /hostCategories/$id
- returns 200{id, name, displayed, array(host{id, ipAddress, systemName})}
- GET /hostCategories/$id/status
- returns 200{id, name, displayed, array(host{id, ipAddress, systemName, status})}
- POST /hostCategories [itsmmonitor-hosts-w]
- document body: {name, displayed, hosts}
- returns 201{id}
- PUT /hostCategories/$id [itsmmonitor-hosts-w]
- document body: {name, displayed, hosts}
- returns 204
- DELETE /hostCategories/$id [itsmmonitor-hosts-w]
- returns 204
- GET /hostCategories
Web
- /vhosts [itsm_web-vhosts-r, itsm_ait-apps-w]
- GET /vhosts
- returns 200{array(vhost{id, subdomain, domain, name, registrar, registrarName, status, statusName, host, hostName})}
- GET /vhosts/$id
- returns 200{id, subdomain, domain, name, host, ipAddress, registrar, registrarCode, registrarName, status, renewCost, webRoot, logPath, notes, registerDate, expireDate}
- GET /vhosts/statuses
- returns 200{array(attribute{id, code, name})}
- GET /vhosts/$id/logs
- POST /vhosts [itsm_web-vhosts-w]
- document body: {domain, subdomain, name, host, status, registrar, renewCost, notes, webRoot, logPath, registerDate, expireDate}
- returns 201{id}
- POST /vhosts/search
- document body: {domain, subdomain, name, host, registrar, status}
- returns 200{array(vhost{id, subdomain, domain, name, registrar, registrarName, status, statusName, host, hostName})}
- PUT /vhosts/$id [itsm_web-vhosts-w]
- document body: {domain, subdomain, name, host, status, registrar, renewCost, notes, webRoot, logPath, registerDate, expireDate}
- returns 204
- DELETE /vhosts/$id [itsm_web-vhosts-w]
- returns 204
- GET /vhosts
- /registrars [itsm_web-registrars-r]
- GET /registrars
- returns 200{array(vhost{id, code, name})}
- GET /registrars/$id
- returns 200{id, code, name, url, phone}
- POST /registrars [itsm_web-registrars-w]
- document body: {code, name, url, phone}
- returns 201{id}
- POST /registrars/search
- document body: {code, name}
- returns 200{array(vhost{id, code, name})}
- PUT /registrars/$id [itsm_web-registrars-w]
- document body: {code, name, url, phone}
- returns 204
- DELETE /registrars$id [itsm_web-registrars-w]
- returns 204
- GET /registrars
- /urlaliases [itsm_web-aliases-rw]
- GET /urlaliases
- returns 200{array(alias{id, alias, destination, disabled})}
- GET /urlaliases/$id
- returns 200{id, alias, destination, disabled}
- POST /urlaliases/search
- document body: {alias, destination, disabled}
- returns 200{array(alias{id, alias, destination, disabled})}
- POST /urlaliases
- document body: {alias, destination, disabled}
- returns 201{od}
- PUT /urlaliases/$id
- document body: {alias, destination, disabled}
- returns 204
- DELETE /urlaliases/$id
- returns 204
- GET /urlaliases
AIT
- /applications [itsm_ait-apps-r]
- GET /applications
- returns 200{array(application{number, name, type, status, owner})}
- GET /applications/$number
- returns 200{number, name, description, owner, type, typeName, status, statusName, publicFacing, lifeExpectancy, lifeExpectancyName, dataVolume, dataVolumeName, authType, authTypeName, port, array(appHosts{id, systemName, ipAddress}), array(webHosts{id, systemName, ipAddress}), array(dataHosts{id, systemName, ipAddress}), array(vHosts{id, domain, subdomain})}
- GET /applications/types
- returns 200{array(attribute{id, code, name})}
- GET /applications/lifeExpectancies
- returns 200{array(attribute{id, code, name})}
- GET /applications/dataVolumes
- returns 200{array(attribute{id, code, name})}
- GET /applications/authTypes
- returns 200{array(attribute{id, code, name})}
- GET /applications/statuses
- returns 200{array(attribute{id, code, name})}
- POST /applications [itsm_ait-apps-w]
- document body: {number, name, description, owner, type, publicFacing, lifeExpectancy, dataVolumes, authType, port, host, vhost, status, webHosts, appHosts, dataHosts, vHosts}
- returns 201{$number}
- POST /applications/search
- document body: {number, name, description, owner, type, publicFacing, lifeExpectancy, dataVolumes, authType, port, host, vhost, status, webHosts, appHosts, dataHosts, vHosts}
- returns 200{array(application{number, name, type, status, owner})}
- PUT /applications/$number [itsm_ait-apps-w]
- document body: {number, name, description, owner, type, publicFacing, lifeExpectancy, dataVolumes, authType, port, host, vhost, status, webHosts, appHosts, dataHosts, vHosts}
- returns 204
- GET /applications
DHCP Logs
- /dhcplogs [itsm_dhcplogs-r]
- GET /dhcplogs
- returns 200{array(logLine)}
- GET /dhcplogs
Tickets
- /tickets [tickets]
- /tickets/requests [tickets-customer]
- GET /tickets/requests/attributes
- GET /tickets/requests/open
- GET /tickets/requests/closed
- GET /tickets/requests/$workspace/$number
- POST /tickets/requests
- PUT /tickets/requests/$workspace/$id
- /tickets/workspaces [tickets]
- tickets/workspaces/$id/attributes
- GET /tickets/workspaces/$id/attributes
- GET /tickets/workspaces/$id/attributes/$type
- POST /tickets/workspaces/$id/attributes [tickets-admin]
- PUT /tickets/workspaces/$id/attributes/$id [tickets-admin]
- DELETE /tickets/workspaces/$id/attributes/$id [tickets-admin]
- tickets/workspaces/$id/tickets [tickets-agent]
- GET /tickets/workspaces/$id/tickets/myAssignments
- GET /tickets/workspaces/$id/tickets/open
- GET /tickets/workspaces/$id/tickets/closed
- GET /tickets/workspaces/$id/tickets/$id
- GET /tickets/workspaces/$id/tickets/$id/updates
- GET /tickets/workspaces/$id/tickets/$id/history
- GET /tickets/workspaces/$id/tickets/$id/assignees
- GET /tickets/workspaces/$id/tickets/$id/linked
- POST /tickets/workspaces/$id/tickets/search
- POST /tickets/workspaces/$id/tickets/quickSearch
- POST /tickets/workspaces/$id/tickets/$id/link
- POST /tickets/workspaces/$id/tickets
- PUT /tickets/workspaces/$id/tickets/$id
- PUT /tickets/workspaces/$id/tickets/$id/assignees
- DELETE/tickets/workspaces/$id/tickets/$id/assignee
- DELETE/tickets/workspaces/$id/tickets/$id/link
- tickets/workspaces/$id/searches [tickets-agent]
- GET /tickets/workspaces/$id/searches
- GET /tickets/workspaces/$id/searches/$id
- POST /tickets/workspaces/$id/searches
- DELETE /tickets/workspaces/$id/searches/$id
- tickets/workspaces/$id/widgets [tickets-agent]
- GET /tickets/workspaces/$id/widgets
- POST /tickets/workspaces/$id/widgets
- DELETE /tickets/workspaces/$id/widgets/$id
- GET /tickets/workspaces/requestPortal
- GET /tickets/workspaces [tickets-agent]
- GET /tickets/workspaces/all [tickets-agent]
- GET /tickets/workspaces/$id [tickets-agent]
- GET /tickets/workspaces/$id/assignees [tickets-agent]
- POST /tickets/workspaces [tickets-admin]
- PUT /tickets/workspaces/$id [tickets-admin]
- DELETE /tickets/workspaces/$id [tickets-admin]
- tickets/workspaces/$id/attributes
- /tickets/teams [tickets-admin]
- GET /tickets/teams
- GET /tickets/teams/$id
- POST /tickets/teams
- PUT /tickets/teams
- DELETE /tickets/teams
- /tickets/requests [tickets-customer]