> ## Documentation Index > Fetch the complete documentation index at: https://learn.servitly.com/llms.txt > Use this file to discover all available pages before exploring further. # Get ticket by id > Returns the ticket for the given id, i.e. a support or maintenance request associated with a thing.
The response reports the public code, the title and the type of the ticket, the organization responsible for it, the assignee, the current status and the ordered list of items which traces the whole audit trail: status changes, notes and attachments.

Required permissions: READ_TICKET. ## OpenAPI ````json GET /inventory/tickets/{ticketId} { "openapi": "3.1.0", "info": { "title": "Servitly DPS API", "version": "1.0.0" }, "servers": [ { "url": "https://api.servitly-sandbox.com", "description": "[AWS SANDBOX]" }, { "url": "https://api.servitly.com", "description": "[AWS PRODUCTION Ireland]" }, { "url": "https://api-ap.servitly.com", "description": "[AWS Hong Kong]" }, { "url": "https://azapi.servitly-dev.com", "description": "[AZURE DEV Frankfurt]" }, { "url": "https://azapi.servitly-staging.com", "description": "[AZURE STAGING Frankfurt]" }, { "url": "https://azapi.servitly.com", "description": "[AZURE PRODUCTION Frankfurt]" } ], "security": [ { "bearerAuth": [] } ], "tags": [ { "name": "ACTIONS" }, { "name": "ALERTS" }, { "name": "API GATEWAY" }, { "name": "AUTHENTICATION" }, { "name": "AUTHORIZATIONS" }, { "name": "CUSTOMERS" }, { "name": "DATA IMPORT / EXPORT" }, { "name": "EVENTS" }, { "name": "LOCATIONS" }, { "name": "MAINTENANCE" }, { "name": "MAPPING" }, { "name": "METRIC DATA" }, { "name": "MOBILE APP" }, { "name": "ORGANIZATION" }, { "name": "PARTNERS" }, { "name": "PRODUCT MODELS" }, { "name": "SPARE PARTS" }, { "name": "STATISTICS" }, { "name": "STORE ORDERS" }, { "name": "SUBSCRIPTIONS" }, { "name": "SUBSCRIPTIONS (OLD)" }, { "name": "THING CONTROL" }, { "name": "THING DEFINITIONS" }, { "name": "THING MANAGEMENT" }, { "name": "THINGS" }, { "name": "TICKETS" }, { "name": "USER TYPES" }, { "name": "USERS" }, { "name": "WORK SESSIONS" } ], "paths": { "/inventory/tickets/{ticketId}": { "get": { "summary": "Get ticket by id", "description": "Returns the ticket for the given id, i.e. a support or maintenance request associated with a thing.
The response reports the public code, the title and the type of the ticket, the organization responsible for it, the assignee, the current status and the ordered list of items which traces the whole audit trail: status changes, notes and attachments.

Required permissions: READ_TICKET.", "tags": [ "TICKETS" ], "parameters": [ { "$ref": "#/components/parameters/tenantNameHeader" }, { "$ref": "#/components/parameters/ticketId" } ], "responses": { "200": { "description": "Successful operation.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Ticket" } } } }, "401": { "$ref": "#/components/responses/NotAuthenticated" }, "403": { "$ref": "#/components/responses/NotAuthorized" }, "404": { "$ref": "#/components/responses/NotFound" }, "429": { "$ref": "#/components/responses/ApiLimit" }, "500": { "$ref": "#/components/responses/IntError" } } } } }, "components": { "parameters": { "tenantNameHeader": { "in": "header", "name": "X-Servitly-Tenant", "required": "true", "schema": { "type": "string", "example": "{{tenantName}}" }, "description": "The name of the tenant (e.g. acme)." }, "ticketId": { "in": "query", "name": "ticketId", "required": "false", "schema": { "type": "string", "example": "abcd1234" }, "description": "Condition on ticket id." } }, "schemas": { "Ticket": { "type": "object", "description": "Represents a support or maintenance ticket associated with a specific asset (thing), tracking its lifecycle from creation to resolution.", "properties": { "id": { "type": "string", "description": "Unique identifier of the ticket, assigned by the system at creation.", "example": "69cd430d90379a1f9604cca0", "readOnly": "true" }, "code": { "type": "string", "description": "Public, human-readable identifier for the ticket. Unlike \"id\", which is the immutable internal identifier, \"code\" is exposed externally and can be modified by clients. Must be unique.", "example": "TKT-000002" }, "organizationId": { "type": "string", "description": "ID of the organization currently responsible for managing this ticket.", "example": "661533adc04f90248aa739a2" }, "responsibileName": { "type": "string", "description": "Display name of the organization responsible for this ticket.", "example": "ACME" }, "creationOrganizationId": { "type": "string", "description": "ID of the organization that originally created the ticket. May differ from organizationId if responsibility was transferred.", "example": "661533adc04f90248aa739a2" }, "creationUserId": { "type": "string", "description": "ID of the user who created the ticket.", "example": "69cd30c0619a917c2d416b78" }, "thingId": { "type": "string", "description": "ID of the asset (thing) this ticket is associated with.", "example": "661fabf042541977c4ff380c" }, "title": { "type": "string", "description": "Short descriptive title of the ticket, provided by the creator.", "example": "test2" }, "typeId": { "type": "string", "description": "ID of the ticket type definition that classifies this ticket (e.g. fault report, maintenance request).", "example": "69cce8e238f8146af79b66df" }, "type": { "description": "Expanded ticket type object, providing the name and label of the ticket classification.", "$ref": "#/components/schemas/TicketType" }, "status": { "description": "Current lifecycle status of the ticket.", "$ref": "#/components/schemas/TicketStatus" }, "creationTimestamp": { "type": "integer", "format": "int64", "description": "Unix timestamp in milliseconds representing when the ticket was created.", "example": "1775059725671" }, "assigneeUserId": { "type": "string", "nullable": "true", "description": "ID of the user currently assigned to handle this ticket. Null if the ticket is unassigned.", "example": "6a058e933082730da608263c" }, "items": { "type": "array", "description": "Ordered list of activity entries representing the full audit trail of the ticket (status changes, notes, attachments).", "items": { "$ref": "#/components/schemas/TicketItem" } }, "properties": { "description": "Dynamic set of additional properties associated with the ticket, such as priority or custom properties defined by the ticket type.", "$ref": "#/components/schemas/Properties" } } }, "TicketType": { "type": "object", "description": "Defines the classification of a ticket, determining its purpose and behavior (e.g. fault report, inspection, maintenance request).", "properties": { "id": { "type": "string", "description": "Unique identifier of the ticket type.", "example": "69cce8e238f8146af79b66df" }, "name": { "type": "string", "description": "Internal machine-readable name of the ticket type.", "example": "issue_report" }, "label": { "type": "string", "description": "Human-readable label of the ticket type, suitable for display in the UI.", "example": "Fault/Anomaly Report" } } }, "TicketStatus": { "type": "string", "description": "Lifecycle status of a ticket: - OPEN: ticket created but not yet being worked on. - IN_PROGRESS: ticket is actively being handled. - ON_HOLD: work is paused, waiting for external input or conditions. - RESOLVED: the issue has been fixed. - REJECTED: ticket was dismissed without resolution.", "enum": [ "OPEN", "IN_PROGRESS", "ON_HOLD", "RESOLVED", "REJECTED" ], "example": "IN_PROGRESS" }, "TicketItem": { "type": "object", "description": "A single audit trail entry recording an action performed on the ticket, such as a status transition, a note left by a user, or a file attachment.", "properties": { "timestamp": { "type": "integer", "format": "int64", "description": "Unix timestamp in milliseconds of when this item was recorded.", "example": "1777301746141" }, "userId": { "type": "string", "description": "ID of the user who performed the action recorded by this item.", "example": "69ef57196e9f727fab42fcab" }, "type": { "type": "string", "description": "Current lifecycle status of the ticket.", "$ref": "#/components/schemas/TicketStatus", "example": "STATUS_CHANGE" }, "statusChange": { "description": "Details of the status transition. Populated only when `type` is `STATUS_CHANGE`, null otherwise.", "nullable": "true", "$ref": "#/components/schemas/TicketStatusChange" }, "note": { "type": "string", "nullable": "true", "description": "Free-text note content. Populated only when `type` is `NOTE`, null otherwise." }, "attachment": { "nullable": "true", "description": "Attached file object. Populated only when `type` is `ATTACHMENT`, null otherwise." } } }, "Properties": { "type": "object", "description": "The set of properties providing additional details to the parent object.", "additionalProperties": { "type": "string" }, "example": { "foo": "abc", "bar": "123" } }, "TicketStatusChange": { "type": "object", "description": "Records a status transition on a ticket, capturing both the previous and the new status.", "properties": { "from": { "description": "The ticket status before the transition.", "$ref": "#/components/schemas/TicketStatus" }, "to": { "description": "The ticket status after the transition.", "$ref": "#/components/schemas/TicketStatus" } } } }, "responses": { "NotAuthenticated": { "description": "User not authenticated.", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "description": "The error response.", "example": "User not authenticated" } } } } } }, "NotAuthorized": { "description": "User not authorized.", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "description": "The error response.", "example": "User not authorized" } } } } } }, "NotFound": { "description": "Resource was not found.", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "description": "The error response.", "example": "Resource not found" } } } } } }, "ApiLimit": { "description": "API call rate limit exceeded.", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "description": "The error response.", "example": "API call rate limit exceeded" } } } } } }, "IntError": { "description": "Internal server error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "description": "The error response.", "example": "Internal Server Error" } } } } } } }, "securitySchemes": { "bearerAuth": { "type": "http", "scheme": "bearer" } } } } ````