> ## 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 tickets
> Returns the list of tickets received by the parent entity (organization or partner) or submitted by the parent entity (customer, partner, and organization).
Required permissions: READ_TICKET.
## OpenAPI
````json GET /v2/inventory/tickets
{
"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": {
"/v2/inventory/tickets": {
"get": {
"summary": "Get tickets",
"description": "Returns the list of tickets received by the parent entity (organization or partner) or submitted by the parent entity (customer, partner, and organization).
Required permissions: READ_TICKET.",
"tags": [
"TICKETS"
],
"parameters": [
{
"$ref": "#/components/parameters/tenantNameHeader"
},
{
"$ref": "#/components/parameters/ticketReceived"
},
{
"$ref": "#/components/parameters/ticketSubmitted"
},
{
"$ref": "#/components/parameters/ticketStatus"
},
{
"$ref": "#/components/parameters/pageSize"
},
{
"$ref": "#/components/parameters/page"
},
{
"$ref": "#/components/parameters/sort"
}
],
"responses": {
"200": {
"description": "Successful operation.",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"type": "object",
"properties": {
"content": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Ticket"
}
}
}
},
{
"$ref": "#/components/schemas/PaginatedResponse"
}
]
}
}
}
},
"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)."
},
"ticketReceived": {
"in": "query",
"name": "received",
"required": "false",
"schema": {
"type": "boolean"
},
"description": "If true, the response includes the tickets received by the parent entity."
},
"ticketSubmitted": {
"in": "query",
"name": "received",
"required": "false",
"schema": {
"type": "boolean"
},
"description": "If true, the response includes the tickets submitted by the parent entity."
},
"ticketStatus": {
"in": "query",
"name": "status",
"required": "false",
"schema": {
"type": "string",
"enum": [
"OPEN",
"IN_PROGRESS",
"ON_HOLD",
"RESOLVED",
"REJECTED"
],
"example": "OPEN"
},
"description": "The status of the tickets to be retrieved."
},
"pageSize": {
"in": "query",
"name": "size",
"required": "false",
"schema": {
"type": "integer",
"minimum": "1"
},
"example": "200",
"description": "The number of elements to retrieve for the current page."
},
"page": {
"in": "query",
"name": "page",
"required": "false",
"schema": {
"type": "integer",
"minimum": "0"
},
"example": "0",
"description": "The page number to retrieve (zero-based)."
},
"sort": {
"in": "query",
"name": "sort",
"required": "false",
"schema": {
"type": "string",
"minimum": "0"
},
"example": "name,ASC",
"description": "The sorting criteria based on object properties."
}
},
"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"
}
}
},
"PaginatedResponse": {
"type": "object",
"properties": {
"first": {
"type": "boolean",
"description": "The flag indicating whether the page is the first one."
},
"last": {
"type": "boolean",
"description": "The flag indicating whether the last page has been reached."
},
"totalPages": {
"type": "integer",
"description": "The total number of pages."
},
"totalElements": {
"type": "integer",
"description": "The total number of elements."
},
"sort": {
"type": "string",
"description": "The current sorting criteria."
},
"numberOfElements": {
"type": "integer",
"description": "The number of elements in this page."
},
"size": {
"type": "integer",
"description": "The requested page size."
},
"number": {
"type": "integer",
"minimum": "0",
"description": "The number of the page (zero-based)."
}
}
},
"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"
}
}
}
}
````