Skip to content

Unified API

Unified Ticketing API

One standardized interface to read and write issue tracking & support data across every provider. 17 unified resources, 59 supported integrations, zero provider-specific code.

https://api.truto.one/unified/ticketing
Start integrating API docs
17

Unified resources

59

Supported integrations

Pass‑through

Real-time, no data storage

Data Model

Ticketing resources

Every resource is normalized across providers. Use the same schema whether your customer is on Accelo or Airtable.

Accounts

Accounts represent the companies or organizations that you are in contact with. Accounts have one or more Contacts associated with them.

6 fields Docs →
Accounts fields
id string
name string
domains array
updated_at string
created_at string
etag string

Attachments

Attachments are the files associated with a ticket or a comment.

11 fields Docs →
Attachments fields
id string
file_name string
ticket_id string
size number
file_url string
content_type string
uploaded_by string
uploaded_by_type string
created_at string
updated_at string
etag string

Collections

Tickets and contacts can be grouped into Collections. Collection resource usually maps to the various grouping systems used in the underlying product. Some examples are lists, projects, epics, etc. You can differentiate between these grouping systems using the type attribute of a Collection.

11 fields Docs →
Collections fields
id string
name string
description string
type string
parent_collection_id string
urls array
workspace object
created_at string
updated_at string
etag string
entity_type string

Comments

Comments represent the communication happening on a Ticket, both between a User and a Contact and the internal things like notes, private comments, etc. A Ticket can have one or more Comments.

13 fields Docs →
Comments fields
id string
author object
receiver object
body string
html_body string
ticket object
attachments array
is_internal boolean
is_private boolean
channel object
created_at string
updated_at string
etag string

Contacts

Contact represent the external people you are in contact with. These could be customers, leads, etc. Contacts can be associated with an Account if the underlying product supports it.

13 fields Docs →
Contacts fields
id string
first_name string
last_name string
name string
emails array
phones array
details string
account_id string
created_at string
updated_at string
etag string
custom_fields object
is_active boolean

Fields

Fields represent the attributes defined for various entities in the underlying product. Depending on the underlying product, custom attributes can be defined by a User on various entities like Ticket, Contact, etc. is_user_defined attribute within Field can be used to differentiate between custom and system defined Fields.

20 fields Docs →
Fields fields
id string
name string
label string
description string
type string
format string
is_hidden boolean
is_unique boolean
is_required boolean
options array
is_user_defined boolean
entity_type string
entity_id string
created_at string
updated_at string
etag string
applicable_in string
applicable_for string
ticket_type string
status string

Organizations

Organization represents the company or the entity using the ticketing system. An Organization can have one or more Workspaces and Users.

5 fields Docs →
Organizations fields
id string
name string
created_at string
updated_at string
etag string

Tags

Tags represent a common classification approach used in various ticketing systems. A Ticket may have one or more Tags associated with them.

9 fields Docs →
Tags fields
id string
name string
color string
workspace object
created_at string
updated_at string
etag string
status string
parent object

Task Lists

Task Lists represent a collection of Tasks on a Ticket.

7 fields Docs →
Task Lists fields
id string
name string
ticket object
tasks array
created_at string
updated_at string
etag string

Tasks

Task represent a smaller subdivision of a Ticket, which could be the list of things to do in a Ticket.

11 fields Docs →
Tasks fields
id string
name string
assignees array
description string
due_date string
ticket object
task_list object
status object
created_at string
updated_at string
etag string

Teams

Teams represent the grouping system used for Users. These are usually called groups, teams, agent groups, etc. in the underlying products. A User can belong to one or more Teams.

6 fields Docs →
Teams fields
id string
name string
description string
created_at string
updated_at string
etag string

Ticket Priorities

Ticket Priorities represent the intended order in which the Tickets should be worked on. Some products provide customizing the Ticket Priorities.

4 fields Docs →
Ticket Priorities fields
id string
name string
description string
etag string

Ticket Status

Ticket Status represents the completion level of the Ticket. Some products provide customizing the Ticket Status.

4 fields Docs →
Ticket Status fields
id string
name string
description string
etag string

Ticket Types

Ticket Types represent the classification system used by the underlying products for Tickets. Some examples are bugs, feature, incident, etc.

7 fields Docs →
Ticket Types fields
id string
name string
description string
project string
created_at string
updated_at string
etag string

Tickets

Core resource which represents some work that needs to be carried out. Tickets are usually mapped to issues, tasks, work items, etc. depending on the underlying product.

29 fields Docs →
Tickets fields
id string
name string
number string
assignees array
status object
created_by object
due_date string
description string
workspace object
team object
collections array
conversations array
ticket_type object
contact object
additional_contacts array
account object
parent_ticket object
attachments array
tags array
created_at string
updated_at string
completed_at string
ticket_url string
priority object
languages array
is_unread boolean
source object
custom_fields object
etag string

Users

Users represent the people using the underlying ticketing system. They are usually called agents, team members, admins, etc.

13 fields Docs →
Users fields
id string
name string
first_name string
last_name string
username string
emails array
is_active boolean
team_ids array
avatar string
roles array
created_at string
updated_at string
etag string

Workspaces

Workspaces represent the top-level subdivision in a ticketing system. They usually have their own set of settings, tickets, statuses, priorities and users. Some of the usual terminologies used by the products for the top-level subdivision are projects, bases, spaces, workspace, etc. A Workspace could belong to an Organization.

7 fields Docs →
Workspaces fields
id string
name string
status string
description string
created_at string
updated_at string
etag string

How It Works

From zero to integrated

Go live with the Unified Ticketing API in under an hour. No boilerplate, no maintenance burden.

01

Connect your customer’s account

Use Truto’s pre-built auth flows to connect any issue tracking & support provider. OAuth, API keys, and custom auth — all handled.

02

Query the unified API

Read and write data through a single, normalized REST API. Same endpoints, same schema, regardless of the underlying provider.

03

Customize with JSONata

Need a field the unified model doesn’t cover? Extend the schema with declarative JSONata mappings — no code deploys, no waiting on us.

From the Blog

Ticketing integration guides

Deep dives, architecture guides, and practical tutorials for building issue tracking & support integrations.

Unified Ticketing API

Start building with the Unified Ticketing API

59 integrations. 17 unified resources. Zero provider-specific code. Ship issue tracking & support integrations in hours, not months.

Talk to us