ticket API (develop:84871a)

Download OpenAPI specification:

License: None

Automatically generated swagger spec for the ticket stack.

HistoryService

List ticket history changes

Returns the change history events for a ticket identified by ticketId or publicTicketId. Events include editor, type, timestamp, and type-specific change data.

path Parameters
ticketId
required
string
query Parameters
publicTicketId
string

Responses

Response samples

Content type
application/json
{
  • "events": [
    ]
}

TicketService

Change status of multiple tickets

Sets the same status on all tickets identified by the given IDs.

Request Body schema: application/json
required
ids
required
Array of strings
status
required
string (ticketTicketStatus)
Default: "TICKET_STATUS_OPEN"
Enum: "TICKET_STATUS_OPEN" "TICKET_STATUS_IN_PROGRESS" "TICKET_STATUS_DONE" "TICKET_STATUS_CLOSED" "TICKET_STATUS_DRAFT"

Responses

Request samples

Content type
application/json
{
  • "ids": [
    ],
  • "status": "TICKET_STATUS_OPEN"
}

Response samples

Content type
application/json
{ }

Count my unread tickets

Returns the number of unread tickets for the given user IDs.

query Parameters
userIds
Array of strings

Responses

Response samples

Content type
application/json
{
  • "amount": 0
}

Count tickets by reference IDs

Returns per-reference counts of tasks and orders for the given reference IDs.

Request Body schema: application/json
required
referenceIds
required
Array of strings

Responses

Request samples

Content type
application/json
{
  • "referenceIds": [
    ]
}

Response samples

Content type
application/json
{
  • "entries": [
    ]
}

Create a ticket

Creates a new ticket for the given owner with type, status, title, description, references, assignee, watchers, dates, costs, checklist, and related fields. Optional key may be supplied. Returns the created ticket.

Request Body schema: application/json
required
required
Array of objects (ticketAdditionalData)
required
object (ticketSetAssignee)
required
Array of objects (ticketChecklistItem)
required
Array of objects (ticketSetCorrespondence)
required
object (ticketticketCosts)
required
Array of objects (ticketticketCosts)
description
required
string
required
object (Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following:)
  • A full date, with non-zero year, month, and day values
  • A month and day value, with a zero year, such as an anniversary
  • A year on its own, with zero month and day values
  • A year and month value, with a zero day, such as a credit card expiration date

Related types are [google.type.TimeOfDay][google.type.TimeOfDay] and google.protobuf.Timestamp.

required
Array of objects (ticketExternalTicketWatcher)
key
string

Optional

required
Array of objects (ticketTicketLink)
mediaIds
required
Array of strings
required
object (ticketSetOnSiteContact)
required
Array of objects (ticketSetOnSiteContact)
ownerId
required
string <int64>
priority
required
string (ticketTicketPriority)
Default: "DEFAULT"
Enum: "DEFAULT" "LOW" "HIGH"
required
object (ticketRecurrence)
required
Array of objects (ticketTicketReference)
required
object (Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following:)
  • A full date, with non-zero year, month, and day values
  • A month and day value, with a zero year, such as an anniversary
  • A year on its own, with zero month and day values
  • A year and month value, with a zero day, such as a credit card expiration date

Related types are [google.type.TimeOfDay][google.type.TimeOfDay] and google.protobuf.Timestamp.

status
required
string (ticketTicketStatus)
Default: "TICKET_STATUS_OPEN"
Enum: "TICKET_STATUS_OPEN" "TICKET_STATUS_IN_PROGRESS" "TICKET_STATUS_DONE" "TICKET_STATUS_CLOSED" "TICKET_STATUS_DRAFT"
title
required
string
type
required
string (ticketTicketType)
Default: "TICKET_TYPE_UNDEFINED"
Enum: "TICKET_TYPE_UNDEFINED" "TICKET_TYPE_ORDER" "TICKET_TYPE_OFFER" "TICKET_TYPE_ACTIVITY" "TICKET_TYPE_TASK" "TICKET_TYPE_CHECKLIST" "TICKET_TYPE_CLAIM"
required
Array of objects (ticketSetTicketWatcher)

Responses

Request samples

Content type
application/json
{
  • "additionalData": [
    ],
  • "assignee": {
    },
  • "checklist": [
    ],
  • "correspondences": [
    ],
  • "costs": {
    },
  • "costsEntries": [
    ],
  • "description": "string",
  • "dueDate": {
    },
  • "externalTicketWatchers": [
    ],
  • "key": "string",
  • "links": [
    ],
  • "mediaIds": [
    ],
  • "onSiteContact": {
    },
  • "onSiteContacts": [
    ],
  • "ownerId": "string",
  • "priority": "DEFAULT",
  • "recurrence": {
    },
  • "references": [
    ],
  • "startDate": {
    },
  • "status": "TICKET_STATUS_OPEN",
  • "title": "string",
  • "type": "TICKET_TYPE_UNDEFINED",
  • "watchers": [
    ]
}

Response samples

Content type
application/json
{
  • "ticket": {
    }
}

Create a checklist template

Creates a checklist ticket template for the owner with name, assignee settings, media, and checklist items. Returns the created template.

Request Body schema: application/json
required
assigneeUserId
required
string

Ignored if usePropertyAssignee is set to true.

checklistItemTitles
required
Array of strings

Deprecated. Use checklistItems instead.

required
Array of objects (ticketChecklistItemTemplate)
mediaIds
required
Array of strings
name
required
string
ownerId
required
string <int64>
usePropertyAssignee
required
boolean

Responses

Request samples

Content type
application/json
{
  • "assigneeUserId": "string",
  • "checklistItemTitles": [
    ],
  • "checklistItems": [
    ],
  • "mediaIds": [
    ],
  • "name": "string",
  • "ownerId": "string",
  • "usePropertyAssignee": true
}

Response samples

Content type
application/json
{
  • "template": {
    }
}

Delete checklist templates

Deletes the checklist ticket templates identified by the given IDs.

path Parameters
ids
required
Array of strings non-empty

Responses

Response samples

Content type
application/json
{ }

Enable or disable ticketing

Enables or disables ticketing for the given account.

Request Body schema: application/json
required
accountId
required
string <int64>
enable
required
boolean

Responses

Request samples

Content type
application/json
{
  • "accountId": "string",
  • "enable": true
}

Response samples

Content type
application/json
{ }

Get ticket by key

Returns a single ticket identified by its human-readable key.

path Parameters
key
required
string

Responses

Response samples

Content type
application/json
{
  • "ticket": {
    }
}

Get ticket by public ID

Returns a ticket identified by its public ID, usable without auth for non-registered access. Includes invoice document and media when linked.

path Parameters
publicId
required
string

Responses

Response samples

Content type
application/json
{
  • "invoiceDocument": {
    },
  • "invoiceMedia": [
    ],
  • "ticket": {
    }
}

Get notification mailbox

Returns the notification mailbox ID configured for the given account.

path Parameters
accountId
required
string <int64>

Responses

Response samples

Content type
application/json
{
  • "mailboxId": "string"
}

Get ticket statistics for a user

Returns overall ticket count and priority-grouped counts for open, in-progress, done, and closed tickets for the given user.

path Parameters
userId
required
string

Responses

Response samples

Content type
application/json
{
  • "closedTickets": {
    },
  • "countOverall": 0,
  • "doneTickets": {
    },
  • "inProgressTickets": {
    },
  • "openTickets": {
    }
}

Check if ticketing is enabled

Returns whether ticketing is enabled for the given account.

query Parameters
accountId
string <int64>

Responses

Response samples

Content type
application/json
{
  • "enabled": true
}

Check if a contact is in use

Returns whether the given contact ID is referenced by any tickets.

path Parameters
contactId
required
string

Responses

Response samples

Content type
application/json
{
  • "inUse": true
}

List tickets by contact IDs

Returns tickets associated with any of the given contact IDs.

Request Body schema: application/json
required
contactIds
required
Array of strings

Responses

Request samples

Content type
application/json
{
  • "contactIds": [
    ]
}

Response samples

Content type
application/json
{
  • "tickets": [
    ]
}

List tickets by IDs

Returns the tickets matching the given ticket IDs.

Request Body schema: application/json
required
ids
required
Array of strings

Responses

Request samples

Content type
application/json
{
  • "ids": [
    ]
}

Response samples

Content type
application/json
{
  • "tickets": [
    ]
}

List tickets by query

Returns tickets matching the given free-text query string.

query Parameters
query
string

Responses

Response samples

Content type
application/json
{
  • "tickets": [
    ]
}

List tickets by reference IDs

Returns tickets that reference any of the given reference IDs.

Request Body schema: application/json
required
referenceIds
required
Array of strings

Responses

Request samples

Content type
application/json
{
  • "referenceIds": [
    ]
}

Response samples

Content type
application/json
{
  • "tickets": [
    ]
}

List checklist templates

Returns all checklist ticket templates for the given account.

path Parameters
accountId
required
string <int64>

Responses

Response samples

Content type
application/json
{
  • "templates": [
    ]
}

List my tickets

Returns a paginated list of tickets for the authenticated caller. Supports filtering by query, priorities, types, statuses, owners, creators, assignees, contacts, references, and flags such as closed, overdue, watching, or unread. Response includes total ticket and page counts.

query Parameters
query
string

Optional filter parameter

page
integer <int32>

Optional. Leave out or set to 0 to disable pagination

itemsPerPage
integer <int32>

Only used when page is set

priorities
Array of strings
Items Enum: "DEFAULT" "LOW" "HIGH"

Optional filter parameter

types
Array of strings
Items Enum: "TICKET_TYPE_UNDEFINED" "TICKET_TYPE_ORDER" "TICKET_TYPE_OFFER" "TICKET_TYPE_ACTIVITY" "TICKET_TYPE_TASK" "TICKET_TYPE_CHECKLIST" "TICKET_TYPE_CLAIM"

Optional filter parameter

statuses
Array of strings
Items Enum: "TICKET_STATUS_OPEN" "TICKET_STATUS_IN_PROGRESS" "TICKET_STATUS_DONE" "TICKET_STATUS_CLOSED" "TICKET_STATUS_DRAFT"

Optional filter parameter

ownerIds
Array of strings <int64> [ items <int64 > ]

Optional filter parameter

creatorUserIds
Array of strings

Optional filter parameter

assigneeUserIds
Array of strings

Optional filter parameter

correspondenceContactIds
Array of strings

Optional filter parameter

involvedContactIds
Array of strings

Optional filter parameter

referenceIds
Array of strings

Optional filter parameter

closedOnly
boolean
overdueOnly
boolean
watchingOnly
boolean
directReferenceIdsOnly
boolean
includeClosed
boolean
unreadByAssigneeOnly
boolean
hasInvoiceOnly
boolean

Optional filter parameter. Only tickets with an invoice document are returned.

Responses

Response samples

Content type
application/json
{
  • "tickets": [
    ],
  • "totalPages": 0,
  • "totalTickets": 0
}

List my tickets

Returns a paginated list of tickets for the authenticated caller. Supports filtering by query, priorities, types, statuses, owners, creators, assignees, contacts, references, and flags such as closed, overdue, watching, or unread. Response includes total ticket and page counts.

Request Body schema: application/json
required
assigneeUserIds
Array of strings

Optional filter parameter

closedOnly
required
boolean
correspondenceContactIds
Array of strings

Optional filter parameter

creatorUserIds
Array of strings

Optional filter parameter

directReferenceIdsOnly
required
boolean
hasInvoiceOnly
boolean

Optional filter parameter. Only tickets with an invoice document are returned.

includeClosed
required
boolean
involvedContactIds
Array of strings

Optional filter parameter

itemsPerPage
required
integer <int32>

Only used when page is set

overdueOnly
required
boolean
ownerIds
Array of strings <int64> [ items <int64 > ]

Optional filter parameter

page
integer <int32>

Optional. Leave out or set to 0 to disable pagination

priorities
Array of strings (ticketTicketPriority)
Items Enum: "DEFAULT" "LOW" "HIGH"

Optional filter parameter

query
string

Optional filter parameter

referenceIds
Array of strings

Optional filter parameter

statuses
Array of strings (ticketTicketStatus)
Items Enum: "TICKET_STATUS_OPEN" "TICKET_STATUS_IN_PROGRESS" "TICKET_STATUS_DONE" "TICKET_STATUS_CLOSED" "TICKET_STATUS_DRAFT"

Optional filter parameter

types
Array of strings (ticketTicketType)
Items Enum: "TICKET_TYPE_UNDEFINED" "TICKET_TYPE_ORDER" "TICKET_TYPE_OFFER" "TICKET_TYPE_ACTIVITY" "TICKET_TYPE_TASK" "TICKET_TYPE_CHECKLIST" "TICKET_TYPE_CLAIM"

Optional filter parameter

unreadByAssigneeOnly
required
boolean
watchingOnly
required
boolean

Responses

Request samples

Content type
application/json
{
  • "assigneeUserIds": [
    ],
  • "closedOnly": true,
  • "correspondenceContactIds": [
    ],
  • "creatorUserIds": [
    ],
  • "directReferenceIdsOnly": true,
  • "hasInvoiceOnly": true,
  • "includeClosed": true,
  • "involvedContactIds": [
    ],
  • "itemsPerPage": 0,
  • "overdueOnly": true,
  • "ownerIds": [
    ],
  • "page": 0,
  • "priorities": [
    ],
  • "query": "string",
  • "referenceIds": [
    ],
  • "statuses": [
    ],
  • "types": [
    ],
  • "unreadByAssigneeOnly": true,
  • "watchingOnly": true
}

Response samples

Content type
application/json
{
  • "tickets": [
    ],
  • "totalPages": 0,
  • "totalTickets": 0
}

List accounts with ticketing enabled

From the given account IDs, returns those that have ticketing enabled.

Request Body schema: application/json
required
accountIds
required
Array of strings <int64> [ items <int64 > ]

Responses

Request samples

Content type
application/json
{
  • "accountIds": [
    ]
}

Response samples

Content type
application/json
{
  • "enabledAccountIds": [
    ]
}

Mark tickets as read

Marks the given tickets as read for the assignee.

Request Body schema: application/json
required
ids
required
Array of strings

Responses

Request samples

Content type
application/json
{
  • "ids": [
    ]
}

Response samples

Content type
application/json
{ }

Mark tickets as unread

Marks the given tickets as unread for the assignee.

Request Body schema: application/json
required
ids
required
Array of strings

Responses

Request samples

Content type
application/json
{
  • "ids": [
    ]
}

Response samples

Content type
application/json
{ }

Remove watcher from assignee tickets

Removes the given watcher user from all tickets assigned to the given assignee. Returns the number of modified tickets.

Request Body schema: application/json
required
assigneeUserId
required
string

The userId that must be set as assignee on the ticket whose watchers should be modified.

watcherUserId
required
string

The userId that should be removed from watchers list.

Responses

Request samples

Content type
application/json
{
  • "assigneeUserId": "string",
  • "watcherUserId": "string"
}

Response samples

Content type
application/json
{
  • "modifiedTickets": 0
}

Reserve ticket keys

Reserves the requested number of human-readable ticket keys for the given account. Returns the reserved keys.

Request Body schema: application/json
required
accountId
required
string <int64>
amount
required
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "accountId": "string",
  • "amount": 0
}

Response samples

Content type
application/json
{
  • "keys": [
    ]
}

Set automatic ticket schedules

Creates or updates the given automatic ticket schedules (category, timing, language, and assignee settings).

Request Body schema: application/json
required
required
Array of objects (ticketticketSchedule)

Responses

Request samples

Content type
application/json
{
  • "schedules": [
    ]
}

Response samples

Content type
application/json
{ }

List schedules for an account

Returns automatic ticket schedules for the given account. Optional categories filter may be applied.

path Parameters
accountId
required
string <int64>
query Parameters
categories
Array of strings

Optional filter parameter

Responses

Response samples

Content type
application/json
{
  • "schedules": [
    ]
}

Set notification mailbox

Sets the notification mailbox ID for the given account.

path Parameters
accountId
required
string <int64>
Request Body schema: application/json
required
mailboxId
string

Responses

Request samples

Content type
application/json
{
  • "mailboxId": "string"
}

Response samples

Content type
application/json
{ }

Update a checklist template

Updates a checklist ticket template by ID, including name, assignee settings, media, and checklist items. Returns the updated template.

path Parameters
id
required
string
Request Body schema: application/json
required
assigneeUserId
string

Ignored if usePropertyAssignee is set to true.

checklistItemTitles
Array of strings

Deprecated. Use checklistItems instead.

Array of objects (ticketChecklistItemTemplate)
mediaIds
Array of strings
name
string
usePropertyAssignee
boolean

Responses

Request samples

Content type
application/json
{
  • "assigneeUserId": "string",
  • "checklistItemTitles": [
    ],
  • "checklistItems": [
    ],
  • "mediaIds": [
    ],
  • "name": "string",
  • "usePropertyAssignee": true
}

Response samples

Content type
application/json
{
  • "template": {
    }
}

Mark tickets as read

Marks the given tickets as read for the assignee.

path Parameters
ids
required
Array of strings non-empty

Responses

Response samples

Content type
application/json
{ }

Mark tickets as unread

Marks the given tickets as unread for the assignee.

path Parameters
ids
required
Array of strings non-empty

Responses

Response samples

Content type
application/json
{ }

Add an invoice to a ticket

Attaches invoice media to the ticket by media ID. Optional publicId and operatorName support unregistered craftsman uploads. Returns the updated ticket.

path Parameters
id
required
string
Request Body schema: application/json
required
mediaId
string

The medium ID (NOT documentId) from the file that should be added to invoice document.

operatorName
string

The name of the operator who added the invoice. Only set if publicId is set.

publicId
string

Optional. Used to authenticate for unregistered upload by craftsman.

Responses

Request samples

Content type
application/json
{
  • "mediaId": "string",
  • "operatorName": "string",
  • "publicId": "string"
}

Response samples

Content type
application/json
{
  • "ticket": {
    }
}

Add a watcher to a ticket

Adds a watcher (account and user) to the given ticket. Returns the updated ticket.

path Parameters
id
required
string
Request Body schema: application/json
required
object (ticketSetTicketWatcher)

Responses

Request samples

Content type
application/json
{
  • "watcher": {
    }
}

Response samples

Content type
application/json
{
  • "ticket": {
    }
}

Change ticket status

Changes the status of a ticket by ID. Optional name and email identify who performed the change.

path Parameters
id
required
string
Request Body schema: application/json
required
email
string
name
string
status
string (ticketTicketStatus)
Default: "TICKET_STATUS_OPEN"
Enum: "TICKET_STATUS_OPEN" "TICKET_STATUS_IN_PROGRESS" "TICKET_STATUS_DONE" "TICKET_STATUS_CLOSED" "TICKET_STATUS_DRAFT"

Responses

Request samples

Content type
application/json
{
  • "email": "string",
  • "name": "string",
  • "status": "TICKET_STATUS_OPEN"
}

Response samples

Content type
application/json
{ }

Delete a ticket

Deletes the ticket by ID. Optionally also deletes its recurrence configuration.

path Parameters
id
required
string
query Parameters
deleteRecurrence
boolean

Responses

Response samples

Content type
application/json
{ }

Delete a ticket invoice

Removes the invoice document from the ticket. Optional publicId and operatorName support unregistered craftsman access. Returns the updated ticket.

path Parameters
id
required
string
Request Body schema: application/json
required
operatorName
string

The name of the operator who added the invoice. Only set if publicId is set.

publicId
string

Optional. Used to authenticate for unregistered upload by craftsman.

Responses

Request samples

Content type
application/json
{
  • "operatorName": "string",
  • "publicId": "string"
}

Response samples

Content type
application/json
{
  • "ticket": {
    }
}

Update a ticket

Updates an existing ticket using the update operation and field mask. Optionally updates recurrence fields and can omit correspondence notifications. Returns the updated ticket.

path Parameters
update.id
required
string
Request Body schema: application/json
required
omitCorrespondenceNotification
boolean
object
updateMask
string
updateRecurrenceFields
boolean

Responses

Request samples

Content type
application/json
{
  • "omitCorrespondenceNotification": true,
  • "update": {
    },
  • "updateMask": "string",
  • "updateRecurrenceFields": true
}

Response samples

Content type
application/json
{
  • "ticket": {
    }
}