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)})}
  • /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
  • /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
  • /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})}
  • /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
  • /authenticate
    • POST /authenticate/login
      • document body: {username, password, remoteAddr}
      • returns 201{token}
    • PUT /authenticate/logout
      • returns 204
  • /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
  • /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
  • /tokens [settings]
    • POST /tokens/search
      • document body: {username, ipAddress, startDate, endDate}
      • returns 200{array(token{user, ipAddress, issueTime, expireTime, expired})}
  • /notifications [settings]
    • POST /notifications
      • document body: {title, data, important, email, roles}
      • returns 201{count}

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
  • /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

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
  • /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
  • /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
  • /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}
  • /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
  • /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

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
  • /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

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
  • /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
  • /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

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

DHCP Logs

  • /dhcplogs [itsm_dhcplogs-r]
    • GET /dhcplogs
      • returns 200{array(logLine)}

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/teams [tickets-admin]
      • GET /tickets/teams
      • GET /tickets/teams/$id
      • POST /tickets/teams
      • PUT /tickets/teams
      • DELETE /tickets/teams