> This page is for Unified.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.merge.dev/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.merge.dev/_mcp/server.

The `Ticket` object is used to represent a ticket, issue, task or case.

### The Ticket Object

```json
{
  "id": "string",
  "remote_id": "string",
  "created_at": "2023-01-01T00:00:00Z",
  "modified_at": "2023-01-01T00:00:00Z",
  "name": "string",
  "assignees": [
    "string"
  ],
  "assigned_teams": [
    "string"
  ],
  "creator": "string",
  "due_date": "2023-01-01T00:00:00Z",
  "status": "OPEN",
  "description": "string",
  "collections": [
    "string"
  ],
  "ticket_type": "string",
  "account": "string",
  "contact": "string",
  "parent_ticket": "string",
  "attachments": [
    "string"
  ],
  "access_level": "COMPANY",
  "permissions": [
    {
      "id": "string",
      "remote_id": "string",
      "created_at": "2023-01-01T00:00:00Z",
      "modified_at": "2023-01-01T00:00:00Z",
      "effect": "ALLOWED",
      "actions": [
        "VIEW"
      ],
      "applied_to_users": [
        "string"
      ],
      "applied_to_roles": [
        "string"
      ],
      "applied_to_teams": [
        "string"
      ],
      "applied_to_collections": [
        "string"
      ],
      "remote_was_deleted": true,
      "field_mappings": {
        "organization_defined_targets": {
          "string": {}
        },
        "linked_account_defined_targets": {
          "string": {}
        }
      }
    }
  ],
  "tags": [
    "string"
  ],
  "roles": [
    "string"
  ],
  "ticket_url": "string",
  "priority": "URGENT",
  "remote_created_at": "2023-01-01T00:00:00Z",
  "remote_updated_at": "2023-01-01T00:00:00Z",
  "completed_at": "2023-01-01T00:00:00Z",
  "remote_was_deleted": true,
  "field_mappings": {
    "organization_defined_targets": {
      "string": {}
    },
    "linked_account_defined_targets": {
      "string": {}
    }
  },
  "remote_data": [
    {
      "path": "string",
      "data": {}
    }
  ],
  "remote_fields": [
    {
      "remote_field_class": {
        "id": "string",
        "display_name": "string",
        "remote_key_name": "string",
        "description": "string",
        "is_custom": true,
        "is_common_model_field": true,
        "is_required": true,
        "field_type": "string",
        "field_format": "string",
        "field_choices": [
          "string"
        ],
        "item_schema": {
          "item_type": "string",
          "item_format": "string",
          "item_choices": [
            "string"
          ]
        }
      },
      "value": {
        "string": {}
      }
    }
  ]
}
```

### Schema (`Ticket`)

```yaml
components:
  schemas:
    TicketStatusEnum:
      type: string
      enum:
        - OPEN
        - CLOSED
        - IN_PROGRESS
        - ON_HOLD
      title: TicketStatusEnum
    TicketAccessLevelEnum:
      type: string
      enum:
        - COMPANY
        - PUBLIC
        - PRIVATE
        - COLLECTION
      title: TicketAccessLevelEnum
    EffectEnum:
      type: string
      enum:
        - ALLOWED
        - DENIED
        - INHERITED
      title: EffectEnum
    ActionsEnum:
      type: string
      enum:
        - VIEW
        - CREATE
        - EDIT
        - DELETE
      title: ActionsEnum
    PermissionFieldMappings:
      type: object
      properties:
        organization_defined_targets:
          type: object
          additionalProperties:
            description: Any type
        linked_account_defined_targets:
          type: object
          additionalProperties:
            description: Any type
      title: PermissionFieldMappings
    Permission:
      type: object
      properties:
        id:
          type: string
          format: uuid
        remote_id:
          type:
            - string
            - 'null'
          description: The third-party API ID of the matching object.
        created_at:
          type: string
          format: date-time
          description: The datetime that this object was created by Merge.
        modified_at:
          type: string
          format: date-time
          description: The datetime that this object was modified by Merge.
        effect:
          oneOf:
            - $ref: '#/components/schemas/EffectEnum'
            - type: 'null'
          description: Outcome of this permission rule for matching users.
        actions:
          type:
            - array
            - 'null'
          items:
            $ref: '#/components/schemas/ActionsEnum'
          description: >-
            Operations that this permission applies to. If the entity inherits
            permission from a parent entity, then this should be an empty array.
            In that case, the entity would inherit the parent entity’s actions.
        applied_to_users:
          type: array
          items:
            type: string
            format: uuid
        applied_to_roles:
          type: array
          items:
            type: string
            format: uuid
        applied_to_teams:
          type: array
          items:
            type: string
            format: uuid
        applied_to_collections:
          type: array
          items:
            type: string
            format: uuid
        remote_was_deleted:
          type: boolean
          description: >-
            Indicates whether or not this object has been deleted in the third
            party platform. Full coverage deletion detection is a premium
            add-on. Native deletion detection is offered for free with limited
            coverage. [Learn
            more](https://docs.merge.dev/integrations/hris/supported-features/).
        field_mappings:
          oneOf:
            - $ref: '#/components/schemas/PermissionFieldMappings'
            - type: 'null'
      description: >-
        # The Permission Object

        ### Description

        The `Permission` object is used to represent permissions that can be
        applied to users, roles, teams, collections, and tickets.


        ### Usage Example

        TODO
      title: Permission
    PriorityEnum:
      type: string
      enum:
        - URGENT
        - HIGH
        - NORMAL
        - LOW
      title: PriorityEnum
    TicketFieldMappings:
      type: object
      properties:
        organization_defined_targets:
          type: object
          additionalProperties:
            description: Any type
        linked_account_defined_targets:
          type: object
          additionalProperties:
            description: Any type
      title: TicketFieldMappings
    RemoteData:
      type: object
      properties:
        path:
          type: string
          description: The third-party API path that is being called.
        data:
          description: >-
            The data returned from the third-party for this object in its
            original, unnormalized format.
      required:
        - path
      description: >-
        # The RemoteData Object

        ### Description

        The `RemoteData` object is used to represent the full data pulled from
        the third-party API for an object.


        ### Usage Example

        TODO
      title: RemoteData
    FieldTypeEnum:
      type: string
      enum:
        - string
        - number
        - date
        - datetime
        - bool
        - list
      title: FieldTypeEnum
    FieldFormatEnum:
      type: string
      enum:
        - string
        - number
        - date
        - datetime
        - bool
        - list
      title: FieldFormatEnum
    ItemTypeEnum:
      type: string
      enum:
        - string
        - number
        - date
        - datetime
        - bool
        - list
      title: ItemTypeEnum
    ItemFormatEnum:
      type: string
      enum:
        - string
        - number
        - date
        - datetime
        - bool
        - list
      title: ItemFormatEnum
    ItemSchema:
      type: object
      properties:
        item_type:
          $ref: '#/components/schemas/ItemTypeEnum'
        item_format:
          $ref: '#/components/schemas/ItemFormatEnum'
        item_choices:
          type: array
          items:
            type: string
      title: ItemSchema
    RemoteFieldClass:
      type: object
      properties:
        id:
          type: string
        display_name:
          type: string
        remote_key_name:
          type: string
        description:
          type: string
        is_custom:
          type: boolean
        is_common_model_field:
          type: boolean
        is_required:
          type: boolean
        field_type:
          $ref: '#/components/schemas/FieldTypeEnum'
        field_format:
          $ref: '#/components/schemas/FieldFormatEnum'
        field_choices:
          type: array
          items:
            type: string
        item_schema:
          $ref: '#/components/schemas/ItemSchema'
      title: RemoteFieldClass
    RemoteField:
      type: object
      properties:
        remote_field_class:
          $ref: '#/components/schemas/RemoteFieldClass'
        value:
          type: object
          additionalProperties:
            description: Any type
      required:
        - remote_field_class
      title: RemoteField
    Ticket:
      type: object
      properties:
        id:
          type: string
          format: uuid
        remote_id:
          type:
            - string
            - 'null'
          description: The third-party API ID of the matching object.
        created_at:
          type: string
          format: date-time
          description: The datetime that this object was created by Merge.
        modified_at:
          type: string
          format: date-time
          description: The datetime that this object was modified by Merge.
        name:
          type:
            - string
            - 'null'
          description: The ticket's name.
        assignees:
          type: array
          items:
            type: string
            format: uuid
          description: >-
            The individual `Users` who are assigned to this ticket. This does
            not include `Users` who just have view access to this ticket. To
            fetch all `Users` and `Teams` that can access the ticket, use the
            `GET /tickets/{ticket_id}/viewers`
            [endpoint](https://docs.merge.dev/ticketing/tickets/#tickets_viewers_list).
        assigned_teams:
          type: array
          items:
            type: string
            format: uuid
          description: >-
            The `Teams` that are assigned to this ticket. This does not include
            `Teams` who just have view access to this ticket. To fetch all
            `Users` and `Teams` that can access this ticket, use the `GET
            /tickets/{ticket_id}/viewers`
            [endpoint](https://docs.merge.dev/ticketing/tickets/#tickets_viewers_list).
        creator:
          type:
            - string
            - 'null'
          format: uuid
          description: The user who created this ticket.
        due_date:
          type:
            - string
            - 'null'
          format: date-time
          description: The ticket's due date.
        status:
          oneOf:
            - $ref: '#/components/schemas/TicketStatusEnum'
            - type: 'null'
          description: >-
            The current status of the ticket. This field is an open enum: Merge
            can return a value outside this list when an integration provides
            one it does not map. Pass `show_enum_origins=status` to receive the
            integration's own value instead.
        description:
          type:
            - string
            - 'null'
          description: >-
            The ticket’s description. HTML version of description is mapped if
            supported by the third-party platform.
        collections:
          type: array
          items:
            type: string
            format: uuid
          description: The `Collections` that this `Ticket` is included in.
        ticket_type:
          type:
            - string
            - 'null'
          description: >-
            The sub category of the ticket within the 3rd party system. Examples
            include incident, task, subtask or to-do. This field is an open
            enum: Merge can return a value outside this list when an integration
            provides one it does not map. Pass `show_enum_origins=ticket_type`
            to receive the integration's own value instead.
        account:
          type:
            - string
            - 'null'
          format: uuid
          description: The account associated with the ticket.
        contact:
          type:
            - string
            - 'null'
          format: uuid
          description: The contact associated with the ticket.
        parent_ticket:
          type:
            - string
            - 'null'
          format: uuid
          description: The ticket's parent ticket.
        attachments:
          type: array
          items:
            type: string
            format: uuid
        access_level:
          oneOf:
            - $ref: '#/components/schemas/TicketAccessLevelEnum'
            - type: 'null'
          description: >-
            The description of who is able to access a given ticket, or where
            access is inherited from.
        permissions:
          type: array
          items:
            $ref: '#/components/schemas/Permission'
        tags:
          type: array
          items:
            type: string
        roles:
          type: array
          items:
            type: string
            format: uuid
        ticket_url:
          type:
            - string
            - 'null'
          format: uri
          maxLength: 2000
          description: The 3rd party url of the Ticket.
        priority:
          oneOf:
            - $ref: '#/components/schemas/PriorityEnum'
            - type: 'null'
          description: >-
            The priority or urgency of the Ticket. This field is an open enum:
            Merge can return a value outside this list when an integration
            provides one it does not map. Pass `show_enum_origins=priority` to
            receive the integration's own value instead.
        remote_created_at:
          type:
            - string
            - 'null'
          format: date-time
          description: When the third party's ticket was created.
        remote_updated_at:
          type:
            - string
            - 'null'
          format: date-time
          description: When the third party's ticket was updated.
        completed_at:
          type:
            - string
            - 'null'
          format: date-time
          description: When the ticket was completed.
        remote_was_deleted:
          type: boolean
          description: >-
            Indicates whether or not this object has been deleted in the third
            party platform. Full coverage deletion detection is a premium
            add-on. Native deletion detection is offered for free with limited
            coverage. [Learn
            more](https://docs.merge.dev/integrations/hris/supported-features/).
        field_mappings:
          oneOf:
            - $ref: '#/components/schemas/TicketFieldMappings'
            - type: 'null'
        remote_data:
          type:
            - array
            - 'null'
          items:
            $ref: '#/components/schemas/RemoteData'
        remote_fields:
          type: array
          items:
            $ref: '#/components/schemas/RemoteField'
      title: Ticket
```