> ## Documentation Index
> Fetch the complete documentation index at: https://docs.periskope.app/llms.txt
> Use this file to discover all available pages before exploring further.

# The Ticket Info Object

> A ticket together with its chat, the message it was raised from and (on GET /tickets/{ticket_id}) the messages attached to it.

<ResponseExample>
  ```json The Ticket Info Object theme={null}
  {
    "chat": {
      "org_id": "00000000-0000-0000-0000-000000000000",
      "chat_id": "120363000000000000@g.us",
      "members": {
        "key": {
          "contact_id": "911111111111@c.us",
          "chat_id": "120363000000000000@g.us",
          "org_id": "00000000-0000-0000-0000-000000000000",
          "org_phone": "911111111111@c.us",
          "is_admin": false,
          "is_super_admin": false,
          "contact_name": "Rahul Sharma",
          "contact_image": "https://example.com/files/image.png",
          "contact_color": "#7D9EF1",
          "is_internal": false,
          "contact_labels": "vip, billing"
        }
      },
      "is_muted": false,
      "chat_name": "Example Corp Support",
      "chat_type": "group",
      "org_phone": "911111111111@c.us",
      "chat_image": "https://example.com/files/image.png",
      "created_at": "2026-01-10T08:00:00+00:00",
      "chat_labels": "customer, priority",
      "invite_link": null,
      "group_description": null,
      "custom_properties": {
        "Region": "EMEA"
      },
      "freshdesk_metadata": {},
      "zohodesk_metadata": {},
      "initiated_by": null,
      "is_archived": false,
      "parent_community_id": null
    },
    "message": {
      "message_id": "false_120363000000000000@g.us_AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
      "chat_id": "120363000000000000@g.us",
      "org_phone": "911111111111@c.us",
      "timestamp": "2026-01-15T09:28:00+00:00",
      "body": "I cannot open my invoices from the portal",
      "media_path": "",
      "sender_phone": "911111111111",
      "sender_name": "Rahul Sharma",
      "performed_by": null
    },
    "ticket": {
      "ticket_id": "ACM-001",
      "org_id": "00000000-0000-0000-0000-000000000000",
      "subject": "Customer cannot access invoices",
      "status": "open",
      "priority": 2,
      "assignee": "user@example.com",
      "assigned_by": "",
      "raised_by": "api",
      "due_date": "2026-02-01 00:00:00+00",
      "ticket_labels": "urgent, billing",
      "ticket_custom_properties": {
        "Workspace": "Example Corp"
      },
      "quoted_message_id": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
      "created_at": "2026-01-15T09:30:00.000Z",
      "closed_at": null,
      "closed_by": null,
      "closed_message": null,
      "first_assigned_at": null,
      "is_deleted": false
    },
    "attached_messages": [
      {
        "message_id": "false_120363000000000000@g.us_AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
        "chat_id": "120363000000000000@g.us",
        "org_phone": "911111111111@c.us",
        "timestamp": "2026-01-15T09:28:00+00:00",
        "body": "I cannot open my invoices from the portal",
        "media_path": "",
        "sender_phone": "911111111111",
        "sender_name": "Rahul Sharma",
        "performed_by": null
      }
    ]
  }
  ```
</ResponseExample>

**Attributes**

<ParamField path="chat" type="object">
  The chat the ticket is raised on. null in the rare case the chat record is no longer available.

  <Expandable title="properties">
    <ParamField path="org_id" type="string">
      Id of the organization the chat belongs to
    </ParamField>

    <ParamField path="chat_id" type="string">
      Unique id of the chat — \<countrycode>\<number>@c.us for 1-1 chats, \<group-id>@g.us for group chats
    </ParamField>

    <ParamField path="members" type="object">
      Participants of the chat, as a map of contact\_id → member. null when no participants are recorded.

      <Expandable title="each value">
        <ParamField path="contact_id" type="string">
          Contact id of the member, suffixed with @c.us
        </ParamField>

        <ParamField path="chat_id" type="string">
          Chat the membership belongs to
        </ParamField>

        <ParamField path="org_id" type="string">
          Id of the organization
        </ParamField>

        <ParamField path="org_phone" type="string">
          Org phone (WhatsApp account) the chat belongs to, suffixed with @c.us
        </ParamField>

        <ParamField path="is_admin" type="boolean">
          Whether the member is an admin of the group chat
        </ParamField>

        <ParamField path="is_super_admin" type="boolean">
          Whether the member is the super admin (creator) of the group chat
        </ParamField>

        <ParamField path="contact_name" type="string">
          Saved name of the contact. null when not a saved contact.
        </ParamField>

        <ParamField path="contact_image" type="string">
          URL of the profile image of the contact, when available
        </ParamField>

        <ParamField path="contact_color" type="string">
          Hex color assigned to the contact in the dashboard
        </ParamField>

        <ParamField path="is_internal" type="boolean">
          Whether the contact is an internal (workspace) contact rather than an external customer
        </ParamField>

        <ParamField path="contact_labels" type="string">
          Names of the labels applied to the contact, joined with ", ". An empty string when the contact has no labels.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="is_muted" type="boolean">
      Whether the chat is muted on the phone
    </ParamField>

    <ParamField path="chat_name" type="string">
      Display name of the chat
    </ParamField>

    <ParamField path="chat_type" type="string">
      Type of the chat: 'user' for 1-1 chats, 'group' for groups
    </ParamField>

    <ParamField path="org_phone" type="string">
      Org phone (WhatsApp account) the chat belongs to, suffixed with @c.us
    </ParamField>

    <ParamField path="chat_image" type="string">
      URL of the chat image, when available
    </ParamField>

    <ParamField path="created_at" type="string">
      When the chat was created, as an ISO 8601 timestamp
    </ParamField>

    <ParamField path="chat_labels" type="string">
      Names of the labels applied to the chat, joined with ", ". An empty string when the chat has no labels.
    </ParamField>

    <ParamField path="invite_link" type="string">
      WhatsApp invite link of the group. null for 1-1 chats or when not available.
    </ParamField>

    <ParamField path="group_description" type="string">
      Description of the group. null for 1-1 chats.
    </ParamField>

    <ParamField path="custom_properties" type="object">
      Values of every chat custom property of the workspace, as a map of property name → formatted display value (an empty string for properties not set on this chat). Property definitions are managed via the Properties endpoints (see the CustomProperty component).
    </ParamField>

    <ParamField path="freshdesk_metadata" type="object">
      Sync metadata of the Freshdesk integration, when connected
    </ParamField>

    <ParamField path="zohodesk_metadata" type="object">
      Sync metadata of the Zoho Desk integration, when connected
    </ParamField>

    <ParamField path="initiated_by" type="string">
      Who initiated the chat, when known (e.g. the org phone or the contact)
    </ParamField>

    <ParamField path="is_archived" type="boolean">
      Whether the chat is archived on the phone
    </ParamField>

    <ParamField path="parent_community_id" type="string">
      Id of the parent WhatsApp community when the group belongs to one. null otherwise.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="message" type="object">
  The message the ticket was raised from (quoted\_message\_id). Always present as an object — every field in it is null when the ticket is not linked to a message.

  <Expandable title="properties">
    <ParamField path="message_id" type="string">
      Unique id of the message. Like every field of this object, null when the ticket has no linked message.
    </ParamField>

    <ParamField path="chat_id" type="string">
      Chat the message belongs to
    </ParamField>

    <ParamField path="org_phone" type="string">
      Org phone (WhatsApp account) the message was sent or received on, suffixed with @c.us
    </ParamField>

    <ParamField path="timestamp" type="string">
      When the message was sent, as an ISO 8601 timestamp
    </ParamField>

    <ParamField path="body" type="string">
      Text content of the message. An empty string for media-only messages.
    </ParamField>

    <ParamField path="media_path" type="string">
      URL of the message attachment. An empty string when the message has no media.
    </ParamField>

    <ParamField path="sender_phone" type="string">
      Phone number of the sender, as country code + number without the @c.us suffix
    </ParamField>

    <ParamField path="sender_name" type="string">
      Contact name of the sender. An empty string when the sender is not a saved contact.
    </ParamField>

    <ParamField path="performed_by" type="string">
      Who sent the message through Periskope: a member's email or 'api'. null for messages received from WhatsApp.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="ticket" type="object">
  The ticket itself

  <Expandable title="properties">
    <ParamField path="ticket_id" type="string">
      Unique human-readable id of the ticket
    </ParamField>

    <ParamField path="org_id" type="string">
      Id of the organization the ticket belongs to
    </ParamField>

    <ParamField path="subject" type="string">
      Subject of the ticket
    </ParamField>

    <ParamField path="status" type="string">
      Lifecycle status of the ticket: 'open', 'inprogress', 'closed' or 'archived' One of: `open`, `inprogress`, `closed`, `archived`.
    </ParamField>

    <ParamField path="priority" type="integer">
      Priority of the ticket: 1 (low), 2 (medium), 3 (high) or 4 (urgent). Tickets with no priority set are reported as 1 here.
    </ParamField>

    <ParamField path="assignee" type="string">
      Email of the member the ticket is assigned to. An empty string when unassigned.
    </ParamField>

    <ParamField path="assigned_by" type="string">
      Email of the member who assigned the ticket. An empty string when it has not been assigned.
    </ParamField>

    <ParamField path="raised_by" type="string">
      Who raised the ticket: a member's email, or 'api' when created via the API
    </ParamField>

    <ParamField path="due_date" type="string">
      Due date of the ticket as a timestamp string (e.g. 2026-02-01 00:00:00+00). An empty string when no due date is set.
    </ParamField>

    <ParamField path="ticket_labels" type="string">
      Names of the ticket labels applied to the ticket, joined with ", ". An empty string when the ticket has no labels.
    </ParamField>

    <ParamField path="ticket_custom_properties" type="object">
      Values of every ticket custom property of the workspace, as a map of property name → formatted display value (an empty string for properties not set on this ticket; option ids are resolved to their labels). Property definitions are managed via the Properties endpoints (see the CustomProperty component).
    </ParamField>

    <ParamField path="quoted_message_id" type="string">
      Unique id of the message the ticket was raised from. null when the ticket is not linked to a message.
    </ParamField>

    <ParamField path="created_at" type="string">
      When the ticket was created, as an ISO 8601 timestamp
    </ParamField>

    <ParamField path="closed_at" type="string">
      When the ticket was closed, as an ISO 8601 timestamp. null while the ticket is not closed.
    </ParamField>

    <ParamField path="closed_by" type="string">
      Who closed the ticket: a member's email, or 'api' when closed via the API without a closed\_by value. null while the ticket is not closed.
    </ParamField>

    <ParamField path="closed_message" type="string">
      Closing message supplied when the ticket was closed. null while the ticket is not closed or when none was given.
    </ParamField>

    <ParamField path="first_assigned_at" type="string">
      When the ticket was first assigned to a member, as an ISO 8601 timestamp. null when it has never been assigned.
    </ParamField>

    <ParamField path="is_deleted" type="boolean">
      Whether the ticket has been deleted
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="attached_messages" type="object[]">
  Messages attached to the ticket. Populated only by GET /tickets/\{ticket\_id} — always an empty array in create and update responses.

  <Expandable title="each item">
    <ParamField path="message_id" type="string">
      Unique id of the message. Like every field of this object, null when the ticket has no linked message.
    </ParamField>

    <ParamField path="chat_id" type="string">
      Chat the message belongs to
    </ParamField>

    <ParamField path="org_phone" type="string">
      Org phone (WhatsApp account) the message was sent or received on, suffixed with @c.us
    </ParamField>

    <ParamField path="timestamp" type="string">
      When the message was sent, as an ISO 8601 timestamp
    </ParamField>

    <ParamField path="body" type="string">
      Text content of the message. An empty string for media-only messages.
    </ParamField>

    <ParamField path="media_path" type="string">
      URL of the message attachment. An empty string when the message has no media.
    </ParamField>

    <ParamField path="sender_phone" type="string">
      Phone number of the sender, as country code + number without the @c.us suffix
    </ParamField>

    <ParamField path="sender_name" type="string">
      Contact name of the sender. An empty string when the sender is not a saved contact.
    </ParamField>

    <ParamField path="performed_by" type="string">
      Who sent the message through Periskope: a member's email or 'api'. null for messages received from WhatsApp.
    </ParamField>
  </Expandable>
</ParamField>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.