Typhoon is a proprietary system that TIG uses to manage various asset management services, including procurement, technical support, ticketing, and more.
The Typhoon API provides secure access to data stored in Typhoon, as well as functions that can be used to request service. Using the API, developers can easily integrate Typhoon with help desk, ticketing, and workflow systems, dashboards, and more.
This documentation is provided so that developers can explore and learn about the API.
The Typhoon API is an RPC style API. Requests are sent using the HTTP POST request method, with JSON-encoded request bodies. All API requests are sent to: https://api.typhoon.tig.com/
API requests are authenticated using an API key, which is passed using the "API_Key" parameter in the request body. To obtain an API key, please contact your TIG point of contact.
If, for any reason, a request cannot be processed, the API will return a JSON-encoded response with an "error" element describing the issue.
For example, a request sent with an invalid API key will result in this response.
{ "error": { "code": 130, "message": "The API Key is invalid.", "details": null } }
Similarly, a request sent that specifies an invalid function, or a function for which the account is not authorized, will result in this response.
{ "error": { "code": 180, "message": "The account is not authorized to perform the requested operation on the given resource.", "details": null } }
The error information should help you to resolve the issue. However, if you need assistance, please request technical support from TIG. See below for more information.
Each Typhoon API account is configured with unique permissions, giving it access to one or more Typhoon instances, as well as specific API functions within each instance.
Additionally, there are two types of Typhoon API accounts: Production and Development. The account type is taken into consideration when certain API functions are used, such as submitting Tickets. See below for details.
For information about the Typhoon instances and functions that an account has been granted access to, send an "API-Account-Select" request.
Here's an example request.
{ "API_Key": "*** Your API KEY ***", "Function": "API-Account-Select" }
Here's a sample response.
{ "comment": "Acme account for ServiceNow integration.", "typhoonCustomerID": "D245B77A-12387-123213-A95F-23213", "accountType": "Development", "databases": [ { "name": "Typhoon", "functions": [ "Tickets-Insert", "Tickets-Select" ] } ] }
Typhoon refers to service requests as Tickets. The Typhoon API provides functions for creating and retrieving Tickets.
To create a Ticket, you send a request that specifies "Tickets-Insert" as the Function, as well as an array of Values describing the ticket.
Here's an example request.
{ "API_Key": "*** Your API KEY ***", "Function": "Tickets-Insert", "Values": { "External_Ticket_Number": "T1000", "Ticket_Type": "Advanced Exchange", "Location": "Midwest HQ", "End_User": "John Doe", "Email": "johndoe@test.com", "Phone_Number": "555-555-5555", "Address_Line_1": "100 Main Street", "Address_Line_2": "Suite A", "City": "Columbus", "State_Region": "OH", "Postal_Code": "99999", "Country": "US", "Current_Device": "Model 1", "Device_Model": "Model 2", "Serial_Number": "555-55-5555", "Accessories_Requested": "External Mouse", "Additional_Comments": "This is a test.", "Problems_Reported": "Unit will not power on.", "Damage_Type": "Accidental", "Damage_Cause": "Unit was dropped while traveling.", "Image_Type": "Win-10-Pro", "Employee_Start_Date": "12/31/2019" } }
Note that tickets created by "Development" accounts are flagged in Typhoon as being test tickets, and will not be processed. The API_Environment attribute of a ticket can be used to indicate if a ticket is a Production or Development type.
{ "records": [ { "mod-id": "0", "record-id": "7137", "relatedset": [ { "count": "0", "table": "AED_TicketsLineItems" }, { "count": "0", "table": "AED_Ticket to Location" } ], "fields": { "Ticket_Number": "4405", "Customers_Ticket_Number": "T1000", "Location": "Midwest HQ", "End_User": "John Doe", "Outbound_Tracking_Number": [], "Return_Tracking_Number": [], "Request_Date": "01\/08\/2020", "Ship_Date": [], "Ticket_Type": "ADVANCED EXCHANGE", "fk_ID_Customers": "D245B77A-12387-123213-A95F-23213", "AED_Tickets_Customers::pk_Customer": "Acme", "DateTime_Outbound_Pickup": [], "DateTime_Outbound_Delivery": [], "DateTime_Return_Pickup": [], "DateTime_Return_Delivery": [], "AdrLine1": "100 Main Street", "AdrLine2": "Suite A", "AdrCity": "Columbus", "AdrStateRegion": "OH", "AdrPostalCode": "99999", "AdrPhoneNumber": "555-555-5555", "End_User_Email": "johndoe@test.com", "AdrCountry": "US", "API_Accessories_Requested": "External Mouse", "API_Additional_Comments": "This is a test.", "API_Damage_Cause": "Unit was dropped while traveling.", "API_Damage_Type": "Accidental", "API_Current_Device": "Model 1", "API_Device_Model": "Model 2", "API_Image_Type": "Win-10-Pro", "API_Problems_Reported": "Unit will not power on.", "API_Serial_Number": "555-55-5555", "API_Status_Ticket_Accepted": [], "API_Status_Ticket_Canceled": [], "API_Status_Ticket_Canceled_Reason": [], "API_Status_Ticket_Outbound_Received": [], "API_Status_Ticket_Outbound_Shipped": [], "API_Status_Ticket_Processed": [], "API_Status_Ticket_Received": "01\/08\/2020 11:41:53", "API_Status_Ticket_Rejected": [], "API_Status_Ticket_Rejected_Reason": [], "API_Status_Ticket_Return_Received": [], "API_Status_Ticket_Return_Shipped": [], "API_Environment": "Development" } } ] }
If the request is successful, the API will respond by returning a JSON representation of the ticket that was created. For example...
The Values supported by the Tickets-Insert function are described below.
Name | Description | Type | Required |
---|---|---|---|
External_Ticket_Number | The number or ID that the external uses to refer to the ticket. | Text | Yes |
Ticket_Type | Describes the type of service being requested. Supported values are Advanced Exchange, Deployment, On-Boarding, Other, PC Refresh, and ITAM Request. | Text | Yes |
Location | The location of the user who has requested service. | Text | No |
End_User | The name of the user who has requested service. | Text | No |
The email address of the user who has requested service. | Text | No | |
Phone_Number | The user's phone number. | Text | No |
Address_Line_1 | The user's street address. (Line 1) | Text | No |
Address_Line_2 | The user's street address. (Line 2) | Text | No |
City | The user's city. | Text | No |
State_Region | The user's state or region. | Text | No |
Postal_Code | The user's postal or zip code. | Text | No |
Country | The user's country. | Text | No |
Current_Device | The type of device that the user current has. | Text | No |
Device_Model | The model of the device for which service has been requested. | Text | No |
Serial_Number | The serial number of the device for which service has been requested. | Text | No |
Accessories_Requested | Used to specify any accessories that the user has requested. | Text | No |
Additional_Comments | Any additional comments or information that will help to provide service. | Text | No |
Problems_Reported | A description of any problems that the user is experiencing. | Text | No |
Damage_Type | A brief description of any damage that has been done to the unit. | Text | No |
Damage_Cause | A brief description of how the unit was damaged. | Text | No |
Image_Type | For units that need to be imaged, this is a description of the image. | Text | No |
Employee_Start_Date | The start date for the employee associated with the request. | Text | No |
To retrieve a Ticket, you send a request that specifies "Tickets-Select" as the Function, and specify either your system's ticket number (the External_Ticket_Number value that was used to created a ticket) or Typhoon's internal ticket number (the Ticket_Number value that was assigned by Typhoon when the ticket was create).
Here's an example request, where an External_Ticket_Number was specified.
{ "API_Key": "*** Your API KEY ***", "Function": "Tickets-Select", "Filters": { "External_Ticket_Number": "T1000" } }
If the request is successful, the API will respond by returning a JSON representation of the ticket. For example...
{ "found_count": "1", "offset": 0, "limit": "1", "records": [ { "mod-id": "0", "record-id": "7137", "fields": { "Ticket_Number": "4405", "Customers_Ticket_Number": "T1000", "Location": "Midwest HQ", "End_User": "John Doe", "Outbound_Tracking_Number": null, "Return_Tracking_Number": null, "Request_Date": "01\/08\/2020", "Ship_Date": null, "Ticket_Type": "ADVANCED EXCHANGE", "fk_ID_Customers": "D245B77A-12387-123213-A95F-232136", "AED_Tickets_Customers_pk_Customer": "Acme", "DateTime_Outbound_Pickup": null, "DateTime_Outbound_Delivery": null, "DateTime_Return_Pickup": null, "DateTime_Return_Delivery": null, "AdrLine1": "100 Main Street", "AdrLine2": "Suite A", "AdrCity": "Columbus", "AdrStateRegion": "OH", "AdrPostalCode": "99999", "AdrPhoneNumber": "555-555-5555", "End_User_Email": "johndoe@test.com", "AdrCountry": "US", "API_Accessories_Requested": "External Mouse", "API_Additional_Comments": "This is a test.", "API_Damage_Cause": "Unit was dropped while traveling.", "API_Damage_Type": "Accidental", "API_Device_Model": "Model 1000", "API_Image_Type": "Win-10-Pro", "API_Problems_Reported": "Unit will not power on.", "API_Serial_Number": "555-55-5555", "API_Status_Ticket_Accepted": null, "API_Status_Ticket_Canceled": null, "API_Status_Ticket_Canceled_Reason": null, "API_Status_Ticket_Outbound_Received": null, "API_Status_Ticket_Outbound_Shipped": null, "API_Status_Ticket_Processed": null, "API_Status_Ticket_Received": "01\/08\/2020 11:41:53", "API_Status_Ticket_Rejected": null, "API_Status_Ticket_Rejected_Reason": null, "API_Status_Ticket_Return_Received": null, "API_Status_Ticket_Return_Shipped": null, "API_Environment": "Development", "API_Caller_IP_Address": "127.0.0.1", "API_Caller_User_Agent": "Paw\/3.1.8 (Macintosh; OS X\/10.14.6) GCDHTTPRequest", "API_Current_Device": "Model 1" }, "related_record_sets": { "AED_TicketsLineItems": [], "AED_Ticket_to_Location": [] } } ] }
The fields that are returned by the Tickets-Select function are described below.
Name | Description | Type |
---|---|---|
Ticket_Number | The ticket number that Typhoon assigned to the ticket. | Text |
Customers_Ticket_Number | The customer's ticket number. | Text |
Location | The location of the user who has requested service. | Text |
End_User | The name of the user who has requested service. | Text |
Outbound_Tracking_Number | The tracking number of a shipment that was made to fulfill the request. | Text |
Return_Tracking_Number | The tracking number of a shipment that was used to return a unit to TIG. | Text |
Request_Date | The date that the ticket was created. | Date (mm/dd/yyyy) |
Ship_Date | The date that an outbound shipment was made. | Date (mm/dd/yyyy) |
Ticket_Type | Describes the type of service being requested. Supported values are Advanced Exchange, Deployment, On-Boarding, Other, and PC Refresh. | Text |
fk_ID_Customers | The Customer ID that typhoon has assigned to the customer. | Text |
AED_Tickets_Customers_pk_Customer | The Customer's name. | Text |
DateTime_Outbound_Pickup | The date and time that the outbound shipment was picked up by the carrier. | Timestamp |
DateTime_Outbound_Delivery | The date and time that the outbound shipment was delivered by the carrier. | Timestamp |
DateTime_Return_Pickup | The date and time that the inbound (return) shipment was picked up by the carrier. | Timestamp |
DateTime_Return_Delivery | The date and time that the inbound (return) shipment was received by TIG. | Timestamp |
AdrLine1 | The user's street address. | Text |
AdrLine2 | The user's street address. (Line 2) | Text |
AdrCity | The user's city. | Text |
AdrStateRegion | The user's state / region. | Text |
AdrPostalCode | The user's postal / zip code. | Text |
AdrPhoneNumber | The user's phone number. | Text |
End_User_Email | The user's email address. | Text |
AdrCountry | The user's country. | Text |
API_Accessories_Requested | Accessories that were requested. | Text |
API_Additional_Comments | Any additional comments or note that were provided when the ticket was created. | Text |
API_Damage_Cause | A brief description of how the unit was damaged. | Text |
API_Damage_Type | A brief description of any damage that has been done to the unit. | Text |
API_Device_Model | The model of the device for which service has been requested. | Text |
API_Image_Type | For units that need to be imaged, this is a description of the image. | Text |
API_Problems_Reported | A description of any problems that the user is experiencing. | Text |
API_Serial_Number | The serial number of the device for which service has been requested. | Text |
API_Status_Ticket_Accepted | The date and time that the ticket was accepted. | Timestamp |
API_Status_Ticket_Canceled | The date and time that the ticket was canceled. | Timestamp |
API_Status_Ticket_Canceled_Reason | The reason that the ticket was canceled. | Text |
API_Status_Ticket_Outbound_Received | The date and time that the outbound shipment was delivered by the carrier. | Timestamp |
API_Status_Ticket_Outbound_Shipped | The date and time that the outbound shipment was picked up by the carrier. | Timestamp |
API_Status_Ticket_Processed | The date and time that the ticket was processed. | Timestamp |
API_Status_Ticket_Received | The date and time that the ticket was received. | Timestamp |
API_Status_Ticket_Rejected | The date and time that the ticket was rejected. | Timestamp |
API_Status_Ticket_Rejected_Reason | The reason that the ticket was rejected. | Timestamp |
API_Status_Ticket_Return_Received | The date and time that the inbound (return) shipment was received by TIG. | Timestamp |
API_Status_Ticket_Return_Shipped | The date and time that the inbound (return) shipment was picked up by the carrier. | Timestamp |
API_Environment | Indicates whether the ticket was entered using a Production or Development account. | Text |
API_Caller_IP_Address | For tickets created via the API, this is the IP address of the user or system from which the API request originated. | Text |
API_Caller_User_Agent | For tickets created via the API, this is the the user agent that the user or system that was used to submit the request. | Text |
API_Current_Device | The type of device that the user had when the ticket was submitted. | Text |