This endpoint is used to obtain an Access Token using the Client Credentials Grant flow. This flow is typically used for machine-to-machine (M2M) communication where a specific user’s consent is not required, and the client application is acting on its own behalf.

Create Case

FeatureDetails
MethodPOST
Endpoint/apis/v1alpha/namespaces/{namespace}/clientcase

Path parameters

ParameterTypeRequiredDescription
namespaceStringYesThe unique identifier for the environment or organization (e.g., 7).

Headers

HeaderValueRequiredDescription
AuthorizationBearer <TOKEN>YesA valid API Bearer token for authentication
Content-Typeapplication/jsonYesSpecifies the media type of the resource (standard for JSON APIs)

Request body schema

The request body is divided into standard metadata and a spec object containing the case details.

FieldTypeRequiredDescription
kindStringYesMust be set to case.
versionStringYesThe API version (e.g., v1alpha).
namespaceStringYesMust match the namespace in the URL.
spec.short_descriptionStringYesA brief summary of the issue.
spec.descriptionStringNoDetailed information regarding the case.
spec.case_typeStringYesThe type of record (e.g., Incident).
spec.priorityStringYesImpact level (e.g., 1 – Critical).
spec.categoryStringYesHigh-level service category (e.g., Secure Network).
spec.subcategoryStringNoSpecific sub-type (e.g., Service Down).

Success response (201 created)

Upon successful creation, the API returns the full case object, including system-generated fields like case_id and number.

Key output fields:

  • name / number: The human-readable ticket ID (e.g., CS0074187).
  • spec.case_id: The unique 32-character system GUID.
  • spec.state: The current status of the ticket (defaults to Open).
  • spec.opened_at: Timestamp of creation in YYYY-MM-DD HH:MM:SS format.

Note: The {name} field in the request is usually ignored or overwritten by the system-generated ticket number in the response.

Error codes

CodeMeaningCommon Cause
401UnauthorizedMissing or expired Bearer token.
403ForbiddenToken does not have permission for the specified namespace.
422Unprocessable EntityMissing required fields in the spec or validation failure.

Get case details

This endpoint retrieves the specific details of a single support case (ticket) identified by its unique Case ID (name).

FeatureDetails
MethodGET
Endpoint/apis/v1alpha/namespaces/{namespace}/case/{case_name}

Path parameters

ParameterTypeRequiredDescription
namespaceStringYesThe unique identifier for the namespace (e.g., 7).
case_nameStringYesThe unique system identifier for the specific case (e.g., CS0071740).

Headers

HeaderValueRequiredDescription
AuthorizationBearer <TOKEN>YesA valid API Bearer token for authentication
Content-Typeapplication/jsonYesSpecifies the media type of the resource (standard for JSON APIs)

Response Specification

The API returns a single JSON object representing the requested case.

Schema definitions

FieldTypeDescription
kindStringThe type of resource returned (e.g., “case”).
versionStringThe API version used (e.g., “v1alpha”).
namespaceStringThe ID of the namespace the case belongs to.
nameStringThe unique system identifier for the case record.
metadataObjectA key-value map for additional custom data.
specObjectThe specification object containing detailed case information.
numberStringThe human-readable case ticket number.
stateStringThe current status of the case (e.g., “Open”, “New”).
account_nameStringThe name of the customer account associated with the case.
categoryStringThe high-level category of the issue (e.g., “Secure Network”).
subcategoryStringA specific classification of the issue (e.g., “Service Down”).
client_ticketStringAn optional reference ID provided by the client (can be null).
created_onStringTimestamp of creation (Format: YYYY-MM-DD HH:MM:SS).
updated_onStringTimestamp of the last update.
short_descriptionStringA brief summary or subject line of the issue.
descriptionStringThe full details of the issue.

Example request

curl --location --request GET 'https://test.api.gtt.services/apis/v1alpha/namespaces/7/case/CS0071740' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <TOKEN>'

Example response

{
    "kind": "case",
    "version": "v1alpha",
    "namespace": "7",
    "name": "CS0071728",
    "metadata": {},
    "spec": {
        "number": "CS0071728",
        "state": "Open",
        "account_name": "Sample Customer",
        "category": "Secure Network",
        "subcategory": "Service Down",
        "client_ticket": null,
        "created_on": "2026-01-08 00:48:11",
        "updated_on": "2026-01-13 14:47:08",
        "short_description": "GTT proactively detected a service failure",
        "description": "GTT proactively detected a service failure"
    }
}

List cases

This endpoint retrieves a list of support cases (tickets) associated with a specific namespace. It allows users to view the details, status, and metadata of ongoing or past support issues within the GTT system.

FeatureDetails
MethodGET
Endpoint/apis/v1alpha/namespaces/{namespace}/case

Path parameters

ParameterTypeRequiredDescription
namespaceStringYesThe unique identifier for the namespace (e.g., 7 in the example).

Headers

The API returns a JSON array where each item represents a single support case.

HeaderValueRequiredDescription
AuthorizationBearer <TOKEN>YesA valid API Bearer token for authentication
Content-Typeapplication/jsonYesSpecifies the media type of the resource (standard for JSON APIs)

Response specification

FieldTypeDescription
kindStringThe type of resource returned (e.g., “case”).
versionStringThe API version used (e.g., “v1alpha”).
namespaceStringThe ID of the namespace the case belongs to.
nameStringA unique system identifier for the case record.
metadataObjectA key-value map for additional custom data (returns {} if empty).
specObjectThe specification object containing detailed case information.
numberStringThe human-readable case ticket number (e.g., “CS0071728”).
stateStringThe current lifecycle status of the case (e.g., “New”, “Closed”, “In Progress”).
account_nameStringThe name of the customer account associated with the case.
categoryStringThe high-level category of the issue (e.g., “Secure Network”).
subcategoryStringA specific classification of the issue (e.g., “Service Down”).
customer_ticket_referenceStringAn optional reference ID provided by the customer for their internal tracking (can be null).
created_onStringTimestamp of when the case was created (Format: YYYY-MM-DD HH:MM:SS).
updated_onStringTimestamp of the last update to the case.
descriptionStringA detailed description of the issue, often including error messages, Service IDs, or hostnames.

Example request

curl --location 'https://test.api.gtt.services/apis/v1alpha/namespaces/7/case' \
--header 'Authorization: Bearer <YOUR_ACCESS_TOKEN>'

Example response

[
    {
        "kind": "case",
        "version": "v1alpha",
        "namespace": "7",
        "name": "CS0071728",
        "metadata": {},
        "spec": {
            "number": "CS0071728",
            "state": "New",
            "account_name": "Sample Customer",
            "category": "Secure Network",
            "subcategory": "Service Down",
            "customer_ticket_reference": null,
            "created_on": "2026-01-08 00:48:11",
            "updated_on": "2026-01-13 14:47:08",
            "description": "GTT proactively detected a service failure"
        }
    },
    {
        "kind": "case",
        "version": "v1alpha",
        "namespace": "7",
        "name": "CS0071726",
        "metadata": {},
        "spec": {
            "number": "CS0071726",
            "state": "New",
            "account_name": "Sample Customer",
            "category": "Secure Network",
            "subcategory": "Service Down",
            "customer_ticket_reference": null,
            "created_on": "2026-01-08 00:48:05",
            "updated_on": "2026-01-08 00:48:09",
            "description": "GTT proactively detected a service failure"
        }
    }
]

Update case

This call will allow you to update your reference for a given Case directly in the GTT System – the Customer Case Reference ID.

FeatureDetails
MethodPATCH
Endpointapis/v1alpha/namespaces/{namespace}/clientcase/{case_name}

Path parameters

ParameterTypeDescription
namespaceStringThe unique identifier for the environment (e.g., 7).
case_numberStringThe human-readable ID of the case to update (e.g., CS0074187).

Headers

HeaderValueRequiredDescription
AuthorizationBearer <TOKEN>YesA valid API Bearer token for authentication
Content-Typeapplication/jsonYesSpecifies the media type of the resource (standard for JSON APIs)

Request body

FieldTypeRequiredDescription
opStringYesSet value “replace”
pathStringYesSet value “/spec/customer_ticket_reference”
valueStringYesYour ID corresponding to the GTT Case

Response highlights (200 OK)

A successful update returns the updated object. Note the system’s normalization of data:

  • Audit Timestamps: The updated_on field will reflect the current system time of the modification ( in the sample).

Common error scenarios

  • 404 Not Found: The case_number does not exist within the specified namespace.

Request case closure

This transaction will indicate in the GTT system, that you would like to close a case.

FeatureDetails
MethodPATCH
Endpoint/apis/v1alpha/namespaces/{namespace}/clientcase/{case_name}

Path parameters

ParameterTypeDescription
namespaceStringThe unique identifier for the namespace. (e.g., 7 in the example)
case_numberStringThe unique system identifier for the specific case (e.g., CS0148474 in the example)

Headers

HeaderValueRequiredDescription
AuthorizationBearer <TOKEN>YesA valid API Bearer token for authentication
Content-Typeapplication/jsonYesSpecifies the media type of the resource (standard for JSON APIs)

Request body

FieldTypeRequiredDescription
opStringYesSet value “add”
pathStringYesSet value “/spec/state”
valueStringYesSet value “request closure”

This transaction will indicate in the GTT system, that you would like to close a case.

Response highlights (200 OK)

A successful update returns the updated object. Note the system’s normalization of data:

  • Audit Timestamps: The updated_on field will reflect the current system time of the modification ( in the sample).

Common error scenarios

  • 404 Not Found: The case_number does not exist within the specified namespace.

Add note to case

This endpoint allows users to append a comment or work note to an existing Case. It is primarily used for communication between the requester and the support team without modifying the core attributes of the case (like priority or category).

FeatureDetails
MethodPOST
Endpoint/apis/v1alpha/namespaces/{namespace}/case/{case_number}/note

Path parameters

ParameterTypeDescription
namespaceStringThe unique identifier for the environment (e.g., 7).
case_numberStringThe human-readable ID of the target case (e.g., CS0074187).

Headers

HeaderValueRequiredDescription
AuthorizationBearer <TOKEN>YesA valid API Bearer token for authentication
Content-Typeapplication/jsonYesSpecifies the media type of the resource (standard for JSON APIs)

Request body schema

The payload follows the standard resource structure but focuses on the comment field within the spec object.

FieldTypeRequiredDescription
kindStringYesMust be set to note.
versionStringYesThe API version (e.g., v1alpha).
namespaceStringYesMust match the namespace in the URL.
nameStringYesMust match the case_number in the URL.
spec.commentStringYesThe text content to be added to the case history.

Data relationship

Adding a note creates a child record associated with the parent Case. This allows for a chronological audit trail of all interactions.

Success response (200 OK / 201 Created)

The response confirms the action and provides the current state of the parent case.

Key Output Fields:

  • spec.action: Confirms the operation performed (e.g., add_comment).
  • spec.state: Displays the current state of the case (Note: Comments can often be added even if the state is Closed).
  • spec.message: A short status message (e.g., Case updated).

Important notes

  • Immutability: Once a note is posted via this endpoint, it typically cannot be edited or deleted through the API to maintain a reliable audit log.
  • Notifications: Depending on the system configuration, adding a note may trigger automated email notifications to the contact_email associated with the case.

List case notes

This endpoint retrieves a chronological list of all notes, comments, and work logs associated with a specific Case. It is essential for synchronizing conversation histories between GTT and external ticketing systems.

FeatureDetails
MethodGET
Endpoint/apis/v1alpha/namespaces/{namespace}/case/{case_number}/note

Path parameters

ParameterTypeDescription
namespaceStringThe unique identifier for the environment (e.g., 7).
case_numberStringThe human-readable ID of the parent case (e.g., CS0074187).

Headers

HeaderValueRequiredDescription
AuthorizationBearer <TOKEN>YesA valid API Bearer token for authentication
Content-Typeapplication/jsonYesSpecifies the media type of the resource (standard for JSON APIs)

Response schema

The response returns a JSON Array of note objects. Each object represents a single entry in the case’s activity log.

FieldTypeDescription
kindStringIdentifies the resource type (always note).
nameStringThe unique system identifier (sys_id) for this specific note entry.
spec.authorStringThe username or system account that created the note.
spec.fieldStringThe internal field type (e.g., comments for public notes).
spec.noteStringThe actual text content of the message.
spec.created_onStringTimestamp of when the note was posted ().

Understanding the data structure

Notes are returned as discrete resources linked to a parent case. This structure supports a “thread” view where multiple updates can be tracked over the lifecycle of an incident.

Implementation details

  • Sorting: By default, notes are usually returned in chronological order (oldest to newest), though it is recommended to sort by the created_on timestamp in your application logic to ensure accuracy.
  • Permissions: Access to notes is governed by the same permissions as the parent case. If you can view the case, you can generally view its notes.
  • Empty States: If a case exists but has no notes, the API will return an empty array [] with a 200 OK status.

Common use cases

  • Audit Logs: Reviewing the timeline of an incident resolution.
  • System Integration: Pulling updates from GTT into a local ITSM tool (like ServiceNow or Jira) to keep local users informed.
  • Verification: Confirming that a POST request to create a note was successfully committed to the database.

Upload case attachment

This endpoint allows users to upload a file and associate it with a specific case record within a designated namespace. It is designed to handle multipart/form-data uploads.

FeatureDetails
MethodPOST
Endpoint/apis/v1alpha/namespaces/{namespace}/case/{case_id}/attachment

Path parameters

ParameterTypeDescription
namespaceStringThe unique identifier for the environment or tenant (e.g., 7).
case_idStringThe specific Case ID the file should be attached to (e.g., CS0074930).

Body parameters (Form-Data)

KeyTypeDescription
filesFileRequired. The binary file data to be uploaded.

Headers

HeaderValueRequiredDescription
AuthorizationBearer <TOKEN>YesA valid OAuth2 or JWT bearer token for authentication.
Content-Typemultipart/form-data

Response schema

The response returns a JSON object representing the metadata of the successfully uploaded attachment.

FieldTypeDescription
kindStringThe resource type (always attachment).
nameStringThe unique system-generated name/ID for the attachment.
spec.file_nameStringThe original name of the uploaded file.
spec.size_bytesStringThe raw size of the file in bytes.
spec.download_linkStringThe direct URL to retrieve the uploaded file.
spec.content_typeStringThe MIME type of the file (e.g., image/png).
spec.stateStringThe current availability of the file (e.g., available).

Example implementation

cURL request

curl --location 'https://test.api.gtt.services/apis/v1alpha/namespaces/7/case/CS0074930/attachment' \
--header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
--form 'files=@"/path/to/your/file.png"'

Successful response (201 created)

{
    "kind": "attachment",
    "version": "v1alpha",
    "namespace": "7",
    "name": "beec57eafffa72104fb6fb91e34fd935",
    "spec": {
        "file_name": "Screenshot.png",
        "size_bytes": "218445",
        "download_link": "https://gttdev.service-now.com/api/now/attachment/beec57.../file",
        "content_type": "image/png",
        "state": "available"
    }
}

List case attachments

This endpoint retrieves a collection of all attachments associated with a specific case record. It provides detailed metadata for each file, including the file size, type, and a direct link for download.

FeatureDetails
MethodPOST
Endpoint/apis/v1alpha/namespaces/{namespace}/case/{case_id}/attachment

Path parameters

ParameterTypeDescription
namespaceStringThe unique identifier for the environment or tenant (e.g., 7).
case_idStringThe specific Case ID the file should be attached to (e.g., CS0074930).

Headers

HeaderValueDescription
AuthorizationBearer <TOKEN>Required. Your valid access token.

Data model and relationships

The attachment system acts as a bridge between the Case Management layer and the Binary Storage layer. When you query this endpoint, the API resolves the relationships as shown below:

Response fields

The response returns an Array of attachment objects.

FieldNested propertyTypeDescription
kindStringResource type (e.g., attachment).
versionStringAPI version used for the response.
nameStringThe unique system name for the file entry.
specObjectThe container for specific file metadata.
sys_idStringThe unique internal ID of the attachment record.
file_nameStringThe original name of the file (e.g., Screenshot.png).
content_typeStringThe MIME type of the file.
size_bytesStringThe total file size in bytes.
download_urlStringThe authenticated URL used to download the file content.

Example usage

cURL request

curl --location 'https://test.api.gtt.services/apis/v1alpha/namespaces/7/case/CS0074930/attachment' \ --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'

JSON response

[
    {
        "kind": "attachment",
        "version": "v1alpha",
        "namespace": "7",
        "name": "beec57eafffa72104fb6fb91e34fd935",
        "spec": {
            "file_name": "Screenshot 2026-02-04 at 10.03.07 AM.png",
            "content_type": "image/png",
            "size_bytes": "218445",
            "download_url": "https://gttdev.service-now.com/api/now/attachment/beec57eafffa72104fb6fb91e34fd935/file"
        }
    }
]

Case categories

This endpoint retrieves a comprehensive list of Case Categories associated with specific service types within the GTT namespace. It provides a hierarchical structure—from service types down to specific subcategories—useful for classifying support incidents or service requests.

FeatureDetails
MethodGET
Endpoint/apis/v1alpha/namespaces/gtt/casecategory

Headers

HeaderValueDescription
AuthorizationBearer <TOKEN>Required. Your valid access token.

Response schema

The response returns an Array of Objects. Each object represents a service classification record.

FieldNested propertyTypeDescription
kindStringResource type (e.g., casecategory).
versionStringAPI versioning (e.g., v1alpha)
namespaceStringThe organizational scope (e.g., gtt)
nameStringThe unique identifier for this category set (often matches the serviceType)
metadataObjectContains dateCreated and dateUpdated in Unix millisecond timestamps
specObjectThe container for specific file metadata.
serviceTypeStringThe ID of the service associated with these categories
categoriesArrayA list of category groupings
caseTypeStringThe classification of the case (e.g., Incident)
nameStringThe high-level category name (e.g., Cloud Solutions, Managed Networking)
subcategoriesArraySpecific issues belonging to the category
nameStringThe label for the sub-issue (e.g., Latency, Backup Issue)

Example response (truncated)

[
    {
        "kind": "casecategory",
        "version": "v1alpha",
        "name": "410",
        "spec": {
            "serviceType": "410",
            "categories": [
                {
                    "caseType": "Incident",
                    "name": "Cloud Solutions",
                    "subcategories": [
                        { "name": "Application - Slow Response" },
                        { "name": "Database Major Issue" }
                    ]
                }
            ]
        }
    }
]

Common subcategory groups

Based on the data, subcategories are generally grouped by the service family:

CategoryTypical Subcategories
Cloud SolutionsApplication Performance, Database Issues, Storage, Disk Utilization, Backups.
Managed NetworkingLatency, Packet Loss, Routing Issues, Line Down, Hardware Issue.

Case category detail

This endpoint retrieves the specific classification schema for a single Case Category. It is primarily used to fetch the hierarchical relationship between a Service Type, its parent Categories, and granular Subcategories—essential for building dynamic incident forms or automated routing logic.

FeatureDetails
MethodGET
Endpoint/apis/v1alpha/namespaces/gtt/casecategory/{name}

Path parameters

ParameterTypeDescription
nameStringThe unique identifier for the category resource (e.g., 410). This typically corresponds to a specific service ID.

Headers

HeaderValueRequiredDescription
AuthorizationBearer <TOKEN>YesA valid API Bearer token for authentication

Response schema

The response returns a single JSON object. The data is organized into a standard Kubernetes-style resource format (kind, version, metadata, spec).

FieldNested propertyTypeDescription
kindStringResource type (casecategory)
versionStringAPI version (v1alpha)
namespaceStringThe logical grouping (gtt)
nameStringThe resource name
metadataObjectContains system-generated timestamps
dateCreatedUnix timestamp (ms) of resource creation
dateUpdatedUnix timestamp (ms) of the last modification
specObjectThe container for specific file metadata.
serviceTypeStringThe ID of the service this category set applies to
categoriesArrayAn array of objects defining high-level ticket types
caseTypeStringThe classification of the work (e.g., Incident)
nameStringThe functional category (e.g., Cloud Solutions)
subcategoriesArrayAn array of specific issues used for detailed reporting and triage

Data example: Cloud solutions (ID 410)

For the resource 410, the classification follows this logic:

LevelValue
Service ID410
CategoryCloud Solutions
Incident TypeIncident
SubcategoriesConnectivity, Host Down, Storage, Database Critical Issue, etc.

Usage implementation

When implementing this API in a frontend application, the response should be used to drive a nested selection UI.

  1. Level 1: Identify the serviceType from the user’s context.
  2. Level 2: Map spec.categories[].name to a “Category” dropdown.
  3. Level 3: Once a category is selected, populate a “Subcategory” dropdown using spec.categories[].subcategories[].name.