Your Periskope API token, sent as Authorization: Bearer <token>. Generate one from the Periskope dashboard under Settings → API & Webhooks. API access requires an active Pro or Enterprise plan.
New status of the ticket: 'open', 'inprogress', 'closed' or 'archived'. Setting 'closed' stamps closed_at and records closed_by/closed_message; setting 'open' or 'inprogress' reopens the ticket and clears them. An empty string is ignored (the status is left unchanged).
New due date of the ticket. Accepts ISO 8601 (e.g. 2026-02-01T00:00:00Z) and any format parseable as a JavaScript date (YYYY-MM-DD, MM/DD/YYYY, etc.). Epoch timestamps are not supported. Pass null or an empty string to clear the due date.
Priority of the ticket as a string: '1' (low), '2' (medium), '3' (high) or '4' (urgent). An empty string is ignored (the priority is left unchanged/unset).
Comma-separated list of ticket label names, matched case-insensitively. Replaces the entire label set of the ticket. Labels that do not exist yet are created automatically. Pass null or an empty string to remove every label from the ticket.
Ticket custom property values to set, as a map of property name or property_id (case-insensitive) → value. Values are validated against the property definitions of the workspace (see the CustomProperty component and the Properties endpoints): text takes any string, date any parseable date, dropdown an option id or label, picklist an array or comma-separated string of option ids or labels, dependent_dropdown an array of per-level ids/labels or a dot-joined id path. file properties cannot be updated via the API. Pass null, an empty string or an empty array as a value to clear that property; properties not included are left unchanged. Passing null or an empty object as custom_properties changes nothing.
Email of the member closing the ticket, recorded in close_ticket_metadata. Only used together with status 'closed'; must be the email of a member of the organization. Defaults to 'api' when omitted.
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.
Messages attached to the ticket. Populated only by GET /tickets/{ticket_id} — always an empty array in create and update responses.
Show child attributes
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Periskope Docs","colors":{"primary":"#15803D","light":"#15803D"},"logo":{"light":"https://mintcdn.com/bharatkumarramesh/Sq5VlnE2OgDOCH8s/logo/periskope-logo-full.svg?fit=max\u0026auto=format\u0026n=Sq5VlnE2OgDOCH8s\u0026q=85\u0026s=cace2e822ea7c0cd2a98b9d946baa593","dark":"https://mintcdn.com/bharatkumarramesh/Sq5VlnE2OgDOCH8s/logo/periskope-logo-full.svg?fit=max\u0026auto=format\u0026n=Sq5VlnE2OgDOCH8s\u0026q=85\u0026s=cace2e822ea7c0cd2a98b9d946baa593"},"favicon":"https://mintcdn.com/bharatkumarramesh/4Au0rGi6EzWXLRIt/logo/periskope-logo.svg?fit=max\u0026auto=format\u0026n=4Au0rGi6EzWXLRIt\u0026q=85\u0026s=275c52e578008a630d9a4c6e150100a0","api":{"playground":{"display":"none"}},"appearance":{"strict":true},"navbar":{"links":[{"href":"https://www.postman.com/periskope/workspace/periskope-platform-api","label":"Postman API collection"},{"href":"https://what.sapp.link/periskope","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://console.periskope.app"}},"footer":{"socials":{"twitter":"https://twitter.com/periskope_app","linkedin":"https://www.linkedin.com/company/periskope-app","youtube":"https://www.youtube.com/@PeriskopeApp"}},"integrations":{"gtm":{"tagId":"GTM-N9SPZLGR"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"bharatkumarramesh","hasAudioNarration":false,"actualSubdomain":"bharatkumarramesh","customDomains":["docs.periskope.app"],"gitSource":{"type":"github","owner":"periskope-org","repo":"docs-mintlify","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ace2b08a71bd07e07006d57","collectionId":"48f31024-df92-485a-8d57-54cf320a1a90","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ace2b08a71bd07e07006d57"},"feedback":{"thumbs":true},"entitlements":{},"buildId":"6ace2b08a71bd07e07006d57","clientVersion":"0.0.3990","searchFilterCounts":[{"language":"default","tag":"APIs \u0026 Webhooks","count":133},{"language":"default","tag":"Documentation","count":68},{"language":"default","tag":"Webhooks","count":21},{"language":"default","tag":"Message APIs","count":14},{"language":"default","tag":"API","count":13},{"language":"default","tag":"Chat APIs","count":13},{"language":"default","tag":"AI Agent","count":11},{"language":"default","tag":"Manage WhatsApp Groups, 1:1 Chats \u0026 Communities","count":11},{"language":"default","tag":"Group Settings APIs","count":9},{"language":"default","tag":"Objects","count":9}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[],"isAtlas":false,"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":".image-container{max-width:50%;margin:0 auto}"}],"page":{"pagePath":"api-reference/tickets/update-ticket","slug":"/api-reference/tickets/update-ticket","pageMetadata":{"title":"Update Ticket","openapi":"api-reference/openapi-generated.json PATCH /v1/tickets/{ticket_id}","description":"Updates a ticket — any combination of the body fields, at least one required. labels replaces the entire label set.","href":"/api-reference/tickets/update-ticket"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Updates a ticket — any combination of the body fields, at least one required. labels replaces the entire label set.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Update Ticket","openapi":"api-reference/openapi-generated.json PATCH /v1/tickets/{ticket_id}","description":"Updates a ticket — any combination of the body fields, at least one required. labels replaces the entire label set.","href":"/api-reference/tickets/update-ticket"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"updateTicket","summary":"Update a ticket","description":"Updates a ticket — any combination of the body fields, at least one required. labels replaces the entire label set.","tags":["Tickets"],"security":["2bcec9be-bea0-43dc-aa58-ae68efc387d0"],"parameters":["3758ecd2-0f4f-48bc-acd1-7f22ffce85d8"],"requestBody":"61e30006-321e-4477-a334-0b7b2aba9402","responses":{"200":"adf61a7f-4fb3-4d3e-871e-8de7c50735c3","401":"1e2b0d2b-b1df-4a47-bd05-43caf937a679","404":"a2749f15-f02c-43f9-be97-69b8e1a83ccd","422":"326ae033-32b4-417b-95e5-f2eb791bf68c","429":"6a900be1-72ce-46be-a1a5-f7930efe3cec","500":"657adfc2-20e9-4747-ba06-4efd56efb8b0"},"x-codeSamples":[{"lang":"typescript","label":"TypeScript","source":"import { PeriskopeApi } from '@periskope/periskope-client';\n\nconst client = new PeriskopeApi({\n authToken: 'YOUR_API_KEY',\n});\n\nasync function main() {\n const response = await client.tickets.updateTicket({\n ticket_id: 'ACM-001',\n subject: 'Customer cannot access invoices',\n });\n console.log(response);\n}\n\nmain();"},{"lang":"bash","label":"cURL","source":"curl -X PATCH 'https://api.periskope.app/v1/tickets/ACM-001' \\\n -H 'Authorization: Bearer YOUR_API_KEY' \\\n -H 'Content-Type: application/json' \\\n -d '{\n \"subject\": \"Customer cannot access invoices\"\n }'"}],"method":"patch","type":"path","servers":["2ec064a0-e791-41aa-a9fb-19cffabac6c9"],"path":"/v1/tickets/{ticket_id}","baseUrlOptions":["https://api.periskope.app"],"title":"Update a ticket","codeSamples":[{"label":"TypeScript","lang":"typescript","source":"import { PeriskopeApi } from '@periskope/periskope-client';\n\nconst client = new PeriskopeApi({\n authToken: 'YOUR_API_KEY',\n});\n\nasync function main() {\n const response = await client.tickets.updateTicket({\n ticket_id: 'ACM-001',\n subject: 'Customer cannot access invoices',\n });\n console.log(response);\n}\n\nmain();"},{"label":"cURL","lang":"bash","source":"curl -X PATCH 'https://api.periskope.app/v1/tickets/ACM-001' \\\n -H 'Authorization: Bearer YOUR_API_KEY' \\\n -H 'Content-Type: application/json' \\\n -d '{\n \"subject\": \"Customer cannot access invoices\"\n }'"}],"requiredOnlyExamples":false,"requestExampleType":"codeSamples","responseExampleType":"generated"},"dependencies":{"parameters":{"3758ecd2-0f4f-48bc-acd1-7f22ffce85d8":{"schema":{"type":"string","minLength":1,"description":"Unique id of the ticket (e.g. ACM-001) — the ticket_id returned when the ticket was created","example":"ACM-001","isRequired":true,"uniqueKey":"","typeLabel":"string"},"required":true,"description":"Unique id of the ticket (e.g. ACM-001) — the ticket_id returned when the ticket was created","name":"ticket_id","in":"path"}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"subject":{"type":"string","minLength":1,"description":"New subject for the ticket","example":"Customer cannot access invoices","uniqueKey":"subject","typeLabel":"string"},"assignee":{"oneOf":[{"type":"string","description":"Email of the member to assign the ticket to. Must be the email of a member of the organization. Pass null or an empty string to unassign the ticket.","example":"user@example.com","uniqueKey":"assignee.oneOf.0","typeLabel":"string"},{"type":"null","description":"Email of the member to assign the ticket to. Must be the email of a member of the organization. Pass null or an empty string to unassign the ticket.","example":"user@example.com","uniqueKey":"assignee.oneOf.1","typeLabel":"null"}],"uniqueKey":"assignee","typeLabel":"string | null"},"status":{"type":"string","description":"New status of the ticket: 'open', 'inprogress', 'closed' or 'archived'. Setting 'closed' stamps closed_at and records closed_by/closed_message; setting 'open' or 'inprogress' reopens the ticket and clears them. An empty string is ignored (the status is left unchanged).","example":"closed","uniqueKey":"status","typeLabel":"string"},"due_date":{"oneOf":[{"type":"string","description":"New due date of the ticket. Accepts ISO 8601 (e.g. 2026-02-01T00:00:00Z) and any format parseable as a JavaScript date (YYYY-MM-DD, MM/DD/YYYY, etc.). Epoch timestamps are not supported. Pass null or an empty string to clear the due date.","example":"2026-02-01","uniqueKey":"due_date.oneOf.0","typeLabel":"string"},{"type":"null","description":"New due date of the ticket. Accepts ISO 8601 (e.g. 2026-02-01T00:00:00Z) and any format parseable as a JavaScript date (YYYY-MM-DD, MM/DD/YYYY, etc.). Epoch timestamps are not supported. Pass null or an empty string to clear the due date.","example":"2026-02-01","uniqueKey":"due_date.oneOf.1","typeLabel":"null"}],"uniqueKey":"due_date","typeLabel":"string | null"},"priority":{"type":"string","description":"Priority of the ticket as a string: '1' (low), '2' (medium), '3' (high) or '4' (urgent). An empty string is ignored (the priority is left unchanged/unset).","example":"2","uniqueKey":"priority","typeLabel":"string"},"labels":{"oneOf":[{"type":"string","description":"Comma-separated list of ticket label names, matched case-insensitively. Replaces the entire label set of the ticket. Labels that do not exist yet are created automatically. Pass null or an empty string to remove every label from the ticket.","example":"urgent, billing","uniqueKey":"labels.oneOf.0","typeLabel":"string"},{"type":"null","description":"Comma-separated list of ticket label names, matched case-insensitively. Replaces the entire label set of the ticket. Labels that do not exist yet are created automatically. Pass null or an empty string to remove every label from the ticket.","example":"urgent, billing","uniqueKey":"labels.oneOf.1","typeLabel":"null"}],"uniqueKey":"labels","typeLabel":"string | null"},"custom_properties":{"oneOf":[{"type":"object","description":"Ticket custom property values to set, as a map of property name or property_id (case-insensitive) → value. Values are validated against the property definitions of the workspace (see the CustomProperty component and the Properties endpoints): text takes any string, date any parseable date, dropdown an option id or label, picklist an array or comma-separated string of option ids or labels, dependent_dropdown an array of per-level ids/labels or a dot-joined id path. file properties cannot be updated via the API. Pass null, an empty string or an empty array as a value to clear that property; properties not included are left unchanged. Passing null or an empty object as custom_properties changes nothing.","example":{"Workspace":"Example Corp"},"uniqueKey":"custom_properties.oneOf.0","typeLabel":"object"},{"type":"null","description":"Ticket custom property values to set, as a map of property name or property_id (case-insensitive) → value. Values are validated against the property definitions of the workspace (see the CustomProperty component and the Properties endpoints): text takes any string, date any parseable date, dropdown an option id or label, picklist an array or comma-separated string of option ids or labels, dependent_dropdown an array of per-level ids/labels or a dot-joined id path. file properties cannot be updated via the API. Pass null, an empty string or an empty array as a value to clear that property; properties not included are left unchanged. Passing null or an empty object as custom_properties changes nothing.","example":{"Workspace":"Example Corp"},"uniqueKey":"custom_properties.oneOf.1","typeLabel":"null"}],"uniqueKey":"custom_properties","typeLabel":"object | null"},"closed_by":{"type":"string","description":"Email of the member closing the ticket, recorded in close_ticket_metadata. Only used together with status 'closed'; must be the email of a member of the organization. Defaults to 'api' when omitted.","example":"user@example.com","uniqueKey":"closed_by","typeLabel":"string"},"closed_message":{"oneOf":[{"type":"string","description":"Closing message recorded in close_ticket_metadata. Only used together with status 'closed'.","example":"Resolved over call","uniqueKey":"closed_message.oneOf.0","typeLabel":"string"},{"type":"null","description":"Closing message recorded in close_ticket_metadata. Only used together with status 'closed'.","example":"Resolved over call","uniqueKey":"closed_message.oneOf.1","typeLabel":"null"}],"uniqueKey":"closed_message","typeLabel":"string | null"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"subject":"Customer cannot access invoices","assignee":"user@example.com","status":"closed","due_date":"2026-02-01","priority":"2","labels":"urgent, billing","custom_properties":{"Workspace":"Example Corp"},"closed_by":"user@example.com","closed_message":"Resolved over call"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"adf61a7f-4fb3-4d3e-871e-8de7c50735c3":{"description":"The updated ticket with its chat and quoted message","content":{"application/json":{"schema":{"type":"object","properties":{"chat":{"type":"object","properties":{"org_id":{"type":"string","description":"Id of the organization the chat belongs to","example":"00000000-0000-0000-0000-000000000000","uniqueKey":"chat.org_id","typeLabel":"string"},"chat_id":{"type":"string","description":"Unique id of the chat — \u003ccountrycode>\u003cnumber>@c.us for 1-1 chats, \u003cgroup-id>@g.us for group chats","example":"120363000000000000@g.us","uniqueKey":"chat.chat_id","typeLabel":"string"},"members":{"type":"object","additionalProperties":{"type":"object","properties":{"contact_id":{"type":"string","description":"Contact id of the member, suffixed with @c.us","example":"911111111111@c.us","uniqueKey":"chat.members.additionalProperties.contact_id","typeLabel":"string"},"chat_id":{"type":"string","description":"Chat the membership belongs to","example":"120363000000000000@g.us","uniqueKey":"chat.members.additionalProperties.chat_id","typeLabel":"string"},"org_id":{"type":"string","description":"Id of the organization","example":"00000000-0000-0000-0000-000000000000","uniqueKey":"chat.members.additionalProperties.org_id","typeLabel":"string"},"org_phone":{"type":"string","description":"Org phone (WhatsApp account) the chat belongs to, suffixed with @c.us","example":"911111111111@c.us","uniqueKey":"chat.members.additionalProperties.org_phone","typeLabel":"string"},"is_admin":{"type":"boolean","description":"Whether the member is an admin of the group chat","example":false,"uniqueKey":"chat.members.additionalProperties.is_admin","typeLabel":"boolean"},"is_super_admin":{"type":"boolean","description":"Whether the member is the super admin (creator) of the group chat","example":false,"uniqueKey":"chat.members.additionalProperties.is_super_admin","typeLabel":"boolean"},"contact_name":{"type":"string","description":"Saved name of the contact. null when not a saved contact.","example":"Rahul Sharma","uniqueKey":"chat.members.additionalProperties.contact_name","typeLabel":"string"},"contact_image":{"type":"string","description":"URL of the profile image of the contact, when available","example":"https://example.com/files/image.png","uniqueKey":"chat.members.additionalProperties.contact_image","typeLabel":"string"},"contact_color":{"type":"string","description":"Hex color assigned to the contact in the dashboard","example":"#7D9EF1","uniqueKey":"chat.members.additionalProperties.contact_color","typeLabel":"string"},"is_internal":{"type":"boolean","description":"Whether the contact is an internal (workspace) contact rather than an external customer","example":false,"uniqueKey":"chat.members.additionalProperties.is_internal","typeLabel":"boolean"},"contact_labels":{"type":"string","description":"Names of the labels applied to the contact, joined with \", \". An empty string when the contact has no labels.","example":"vip, billing","uniqueKey":"chat.members.additionalProperties.contact_labels","typeLabel":"string"}},"description":"A participant of the chat a ticket is raised on.","uniqueKey":"chat.members.additionalProperties","typeLabel":"object"},"description":"Participants of the chat, as a map of contact_id → member. null when no participants are recorded.","uniqueKey":"chat.members","typeLabel":"object"},"is_muted":{"type":"boolean","description":"Whether the chat is muted on the phone","example":false,"uniqueKey":"chat.is_muted","typeLabel":"boolean"},"chat_name":{"type":"string","description":"Display name of the chat","example":"Example Corp Support","uniqueKey":"chat.chat_name","typeLabel":"string"},"chat_type":{"type":"string","description":"Type of the chat: 'user' for 1-1 chats, 'group' for groups","example":"group","uniqueKey":"chat.chat_type","typeLabel":"string"},"org_phone":{"type":"string","description":"Org phone (WhatsApp account) the chat belongs to, suffixed with @c.us","example":"911111111111@c.us","uniqueKey":"chat.org_phone","typeLabel":"string"},"chat_image":{"type":"string","description":"URL of the chat image, when available","example":"https://example.com/files/image.png","uniqueKey":"chat.chat_image","typeLabel":"string"},"created_at":{"type":"string","description":"When the chat was created, as an ISO 8601 timestamp","example":"2026-01-10T08:00:00+00:00","uniqueKey":"chat.created_at","typeLabel":"string"},"chat_labels":{"type":"string","description":"Names of the labels applied to the chat, joined with \", \". An empty string when the chat has no labels.","example":"customer, priority","uniqueKey":"chat.chat_labels","typeLabel":"string"},"invite_link":{"type":"string","description":"WhatsApp invite link of the group. null for 1-1 chats or when not available.","example":null,"uniqueKey":"chat.invite_link","typeLabel":"string"},"group_description":{"type":"string","description":"Description of the group. null for 1-1 chats.","example":null,"uniqueKey":"chat.group_description","typeLabel":"string"},"custom_properties":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"chat.custom_properties.additionalProperties","typeLabel":"string"},"description":"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).","example":{"Region":"EMEA"},"uniqueKey":"chat.custom_properties","typeLabel":"object"},"freshdesk_metadata":{"type":"object","description":"Sync metadata of the Freshdesk integration, when connected","example":{},"uniqueKey":"chat.freshdesk_metadata","typeLabel":"object"},"zohodesk_metadata":{"type":"object","description":"Sync metadata of the Zoho Desk integration, when connected","example":{},"uniqueKey":"chat.zohodesk_metadata","typeLabel":"object"},"initiated_by":{"type":"string","description":"Who initiated the chat, when known (e.g. the org phone or the contact)","example":null,"uniqueKey":"chat.initiated_by","typeLabel":"string"},"is_archived":{"type":"boolean","description":"Whether the chat is archived on the phone","example":false,"uniqueKey":"chat.is_archived","typeLabel":"boolean"},"parent_community_id":{"type":"string","description":"Id of the parent WhatsApp community when the group belongs to one. null otherwise.","example":null,"uniqueKey":"chat.parent_community_id","typeLabel":"string"}},"description":"The chat the ticket is raised on. null in the rare case the chat record is no longer available.","uniqueKey":"chat","typeLabel":"object"},"message":{"type":"object","properties":{"message_id":{"type":"string","description":"Unique id of the message. Like every field of this object, null when the ticket has no linked message.","example":"false_120363000000000000@g.us_AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA","uniqueKey":"message.message_id","typeLabel":"string"},"chat_id":{"type":"string","description":"Chat the message belongs to","example":"120363000000000000@g.us","uniqueKey":"message.chat_id","typeLabel":"string"},"org_phone":{"type":"string","description":"Org phone (WhatsApp account) the message was sent or received on, suffixed with @c.us","example":"911111111111@c.us","uniqueKey":"message.org_phone","typeLabel":"string"},"timestamp":{"type":"string","description":"When the message was sent, as an ISO 8601 timestamp","example":"2026-01-15T09:28:00+00:00","uniqueKey":"message.timestamp","typeLabel":"string"},"body":{"type":"string","description":"Text content of the message. An empty string for media-only messages.","example":"I cannot open my invoices from the portal","uniqueKey":"message.body","typeLabel":"string"},"media_path":{"type":"string","description":"URL of the message attachment. An empty string when the message has no media.","example":"","uniqueKey":"message.media_path","typeLabel":"string"},"sender_phone":{"type":"string","description":"Phone number of the sender, as country code + number without the @c.us suffix","example":"911111111111","uniqueKey":"message.sender_phone","typeLabel":"string"},"sender_name":{"type":"string","description":"Contact name of the sender. An empty string when the sender is not a saved contact.","example":"Rahul Sharma","uniqueKey":"message.sender_name","typeLabel":"string"},"performed_by":{"type":"string","description":"Who sent the message through Periskope: a member's email or 'api'. null for messages received from WhatsApp.","example":null,"uniqueKey":"message.performed_by","typeLabel":"string"}},"description":"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.","uniqueKey":"message","typeLabel":"object"},"ticket":{"type":"object","properties":{"ticket_id":{"type":"string","description":"Unique human-readable id of the ticket","example":"ACM-001","uniqueKey":"ticket.ticket_id","typeLabel":"string"},"org_id":{"type":"string","description":"Id of the organization the ticket belongs to","example":"00000000-0000-0000-0000-000000000000","uniqueKey":"ticket.org_id","typeLabel":"string"},"subject":{"type":"string","description":"Subject of the ticket","example":"Customer cannot access invoices","uniqueKey":"ticket.subject","typeLabel":"string"},"status":{"type":"string","enum":["open","inprogress","closed","archived"],"description":"Lifecycle status of the ticket: 'open', 'inprogress', 'closed' or 'archived'","example":"open","uniqueKey":"ticket.status","typeLabel":"enum\u003cstring>"},"priority":{"type":"integer","description":"Priority of the ticket: 1 (low), 2 (medium), 3 (high) or 4 (urgent). Tickets with no priority set are reported as 1 here.","example":2,"uniqueKey":"ticket.priority","typeLabel":"integer"},"assignee":{"type":"string","description":"Email of the member the ticket is assigned to. An empty string when unassigned.","example":"user@example.com","uniqueKey":"ticket.assignee","typeLabel":"string"},"assigned_by":{"type":"string","description":"Email of the member who assigned the ticket. An empty string when it has not been assigned.","example":"","uniqueKey":"ticket.assigned_by","typeLabel":"string"},"raised_by":{"type":"string","description":"Who raised the ticket: a member's email, or 'api' when created via the API","example":"api","uniqueKey":"ticket.raised_by","typeLabel":"string"},"due_date":{"type":"string","description":"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.","example":"2026-02-01 00:00:00+00","uniqueKey":"ticket.due_date","typeLabel":"string"},"ticket_labels":{"type":"string","description":"Names of the ticket labels applied to the ticket, joined with \", \". An empty string when the ticket has no labels.","example":"urgent, billing","uniqueKey":"ticket.ticket_labels","typeLabel":"string"},"ticket_custom_properties":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"ticket.ticket_custom_properties.additionalProperties","typeLabel":"string"},"description":"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).","example":{"Workspace":"Example Corp"},"uniqueKey":"ticket.ticket_custom_properties","typeLabel":"object"},"quoted_message_id":{"type":"string","description":"Unique id of the message the ticket was raised from. null when the ticket is not linked to a message.","example":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA","uniqueKey":"ticket.quoted_message_id","typeLabel":"string"},"created_at":{"type":"string","description":"When the ticket was created, as an ISO 8601 timestamp","example":"2026-01-15T09:30:00.000Z","uniqueKey":"ticket.created_at","typeLabel":"string"},"closed_at":{"type":"string","description":"When the ticket was closed, as an ISO 8601 timestamp. null while the ticket is not closed.","example":null,"uniqueKey":"ticket.closed_at","typeLabel":"string"},"closed_by":{"type":"string","description":"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.","example":null,"uniqueKey":"ticket.closed_by","typeLabel":"string"},"closed_message":{"type":"string","description":"Closing message supplied when the ticket was closed. null while the ticket is not closed or when none was given.","example":null,"uniqueKey":"ticket.closed_message","typeLabel":"string"},"first_assigned_at":{"type":"string","description":"When the ticket was first assigned to a member, as an ISO 8601 timestamp. null when it has never been assigned.","example":null,"uniqueKey":"ticket.first_assigned_at","typeLabel":"string"},"is_deleted":{"type":"boolean","description":"Whether the ticket has been deleted","example":false,"uniqueKey":"ticket.is_deleted","typeLabel":"boolean"}},"description":"The ticket itself","uniqueKey":"ticket","typeLabel":"object"},"attached_messages":{"type":"array","items":{"type":"object","description":"Summary of a WhatsApp message referenced by a ticket — the quoted message the ticket was raised from, or a message attached to the ticket.","properties":{"message_id":{"type":"string","description":"Unique id of the message. Like every field of this object, null when the ticket has no linked message.","example":"false_120363000000000000@g.us_AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA","uniqueKey":"attached_messages.items.[INDEX].message_id","typeLabel":"string"},"chat_id":{"type":"string","description":"Chat the message belongs to","example":"120363000000000000@g.us","uniqueKey":"attached_messages.items.[INDEX].chat_id","typeLabel":"string"},"org_phone":{"type":"string","description":"Org phone (WhatsApp account) the message was sent or received on, suffixed with @c.us","example":"911111111111@c.us","uniqueKey":"attached_messages.items.[INDEX].org_phone","typeLabel":"string"},"timestamp":{"type":"string","description":"When the message was sent, as an ISO 8601 timestamp","example":"2026-01-15T09:28:00+00:00","uniqueKey":"attached_messages.items.[INDEX].timestamp","typeLabel":"string"},"body":{"type":"string","description":"Text content of the message. An empty string for media-only messages.","example":"I cannot open my invoices from the portal","uniqueKey":"attached_messages.items.[INDEX].body","typeLabel":"string"},"media_path":{"type":"string","description":"URL of the message attachment. An empty string when the message has no media.","example":"","uniqueKey":"attached_messages.items.[INDEX].media_path","typeLabel":"string"},"sender_phone":{"type":"string","description":"Phone number of the sender, as country code + number without the @c.us suffix","example":"911111111111","uniqueKey":"attached_messages.items.[INDEX].sender_phone","typeLabel":"string"},"sender_name":{"type":"string","description":"Contact name of the sender. An empty string when the sender is not a saved contact.","example":"Rahul Sharma","uniqueKey":"attached_messages.items.[INDEX].sender_name","typeLabel":"string"},"performed_by":{"type":"string","description":"Who sent the message through Periskope: a member's email or 'api'. null for messages received from WhatsApp.","example":null,"uniqueKey":"attached_messages.items.[INDEX].performed_by","typeLabel":"string"}},"uniqueKey":"attached_messages.items.[INDEX]","typeLabel":"object"},"description":"Messages attached to the ticket. Populated only by GET /tickets/{ticket_id} — always an empty array in create and update responses.","uniqueKey":"attached_messages","typeLabel":"object[]"}},"description":"A ticket together with its chat, the message it was raised from and (on GET /tickets/{ticket_id}) the messages attached to it.","uniqueKey":"","typeLabel":"object"},"examples":{"default":{"title":"default","value":{"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}]}}},"exampleType":"examples"}},"exampleType":"examples"},"1e2b0d2b-b1df-4a47-bd05-43caf937a679":{"description":"Invalid, expired or missing API token","content":{"application/json":{"examples":{"error":{"title":"error","value":{"code":"UNAUTHORIZED_ERROR","message":"Invalid bearer auth token","status":401}}},"schema":{"type":"object","properties":{"code":{"type":"string","example":"UNAUTHORIZED_ERROR","uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","example":"Invalid bearer auth token","uniqueKey":"message","typeLabel":"string"},"status":{"type":"integer","example":401,"uniqueKey":"status","typeLabel":"integer"}},"example":{"code":"UNAUTHORIZED_ERROR","message":"Invalid bearer auth token","status":401},"uniqueKey":"","typeLabel":"object"},"exampleType":"examples"}},"exampleType":"examples"},"a2749f15-f02c-43f9-be97-69b8e1a83ccd":{"description":"No ticket matches ticket_id","content":{"application/json":{"examples":{"error":{"title":"error","value":{"code":"NOT_FOUND_ERROR","message":"No ticket matches ticket_id","status":404}}},"schema":{"type":"object","properties":{"code":{"type":"string","example":"NOT_FOUND_ERROR","uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","example":"No ticket matches ticket_id","uniqueKey":"message","typeLabel":"string"},"status":{"type":"integer","example":404,"uniqueKey":"status","typeLabel":"integer"}},"example":{"code":"NOT_FOUND_ERROR","message":"No ticket matches ticket_id","status":404},"uniqueKey":"","typeLabel":"object"},"exampleType":"examples"}},"exampleType":"examples"},"326ae033-32b4-417b-95e5-f2eb791bf68c":{"description":"Request validation failed","content":{"application/json":{"examples":{"error":{"title":"error","value":{"code":"VALIDATION_ERROR","message":"Request validation failed","status":422,"fields":{"body.chat_id":{"message":"chat_id is required"}}}}},"schema":{"type":"object","properties":{"code":{"type":"string","example":"VALIDATION_ERROR","uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","example":"Request validation failed","uniqueKey":"message","typeLabel":"string"},"status":{"type":"integer","example":422,"uniqueKey":"status","typeLabel":"integer"},"fields":{"type":"object","additionalProperties":{"type":"object","properties":{"message":{"type":"string","uniqueKey":"fields.additionalProperties.message","typeLabel":"string"},"value":{"oneOf":[{}],"uniqueKey":"fields.additionalProperties.value","typeLabel":"any"}},"uniqueKey":"fields.additionalProperties","typeLabel":"object"},"example":{"body.chat_id":{"message":"chat_id is required"}},"uniqueKey":"fields","typeLabel":"object"}},"example":{"code":"VALIDATION_ERROR","message":"Request validation failed","status":422,"fields":{"body.chat_id":{"message":"chat_id is required"}}},"uniqueKey":"","typeLabel":"object"},"exampleType":"examples"}},"exampleType":"examples"},"6a900be1-72ce-46be-a1a5-f7930efe3cec":{"description":"Rate limit exceeded","content":{"application/json":{"examples":{"error":{"title":"error","value":{"code":"RATE_LIMIT_ERROR","message":"You can only make 100 requests per second","status":429}}},"schema":{"type":"object","properties":{"code":{"type":"string","example":"RATE_LIMIT_ERROR","uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","example":"You can only make 100 requests per second","uniqueKey":"message","typeLabel":"string"},"status":{"type":"integer","example":429,"uniqueKey":"status","typeLabel":"integer"}},"example":{"code":"RATE_LIMIT_ERROR","message":"You can only make 100 requests per second","status":429},"uniqueKey":"","typeLabel":"object"},"exampleType":"examples"}},"exampleType":"examples"},"657adfc2-20e9-4747-ba06-4efd56efb8b0":{"description":"Internal server error","content":{"application/json":{"examples":{"error":{"title":"error","value":{"code":"UNKNOWN_ERROR","message":"Internal server error","status":500}}},"schema":{"type":"object","properties":{"code":{"type":"string","example":"UNKNOWN_ERROR","uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","example":"Internal server error","uniqueKey":"message","typeLabel":"string"},"status":{"type":"integer","example":500,"uniqueKey":"status","typeLabel":"integer"}},"example":{"code":"UNKNOWN_ERROR","message":"Internal server error","status":500},"uniqueKey":"","typeLabel":"object"},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"2bcec9be-bea0-43dc-aa58-ae68efc387d0":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Your Periskope API token, sent as `Authorization: Bearer \u003ctoken>`. Generate one from the Periskope dashboard under **Settings → API \u0026 Webhooks**. API access requires an active Pro or Enterprise plan.","scopes":[]}}},"servers":{"2ec064a0-e791-41aa-a9fb-19cffabac6c9":{"url":"https://api.periskope.app"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"Your Periskope API token, sent as `Authorization: Bearer \u003ctoken>`. Generate one from the Periskope dashboard under **Settings → API \u0026 Webhooks**. API access requires an active Pro or Enterprise plan.","scopes":[]},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Your Periskope API token, sent as `Authorization: Bearer \u003ctoken>`. Generate one from the Periskope dashboard under **Settings → API \u0026 Webhooks**. API access requires an active Pro or Enterprise plan.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"api-reference/openapi-generated.json"},"subdomain":"bharatkumarramesh","siteName":"Periskope Docs","title":"Update Ticket - Periskope Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-25T16:09:26.381Z","originalFileLocation":"api-reference/tickets/update-ticket.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Updates a ticket — any combination of the body fields, at least one required. labels replaces the entire label set.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Periskope Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/bharatkumarramesh/xEFzGZM_csru_Nms/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/bharatkumarramesh/xEFzGZM_csru_Nms/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/bharatkumarramesh/xEFzGZM_csru_Nms/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/bharatkumarramesh/xEFzGZM_csru_Nms/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/bharatkumarramesh/xEFzGZM_csru_Nms/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/bharatkumarramesh/xEFzGZM_csru_Nms/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/bharatkumarramesh/xEFzGZM_csru_Nms/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/bharatkumarramesh/xEFzGZM_csru_Nms/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/bharatkumarramesh/xEFzGZM_csru_Nms/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Update Ticket - Periskope Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Updates a ticket — any combination of the body fields, at least one required. labels replaces the entire label set.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Periskope Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.periskope.app/api-reference/tickets/update-ticket\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://bharatkumarramesh.mintlify.app/_mintlify/api/og/v2?division=Ticket+APIs\u0026amp;title=Update+Ticket\u0026amp;description=Updates+a+ticket+%E2%80%94+any+combination+of+the+body+fields%2C+at+least+one+required.+labels+replaces+the+entire+label+set.\u0026amp;theme=42ac27e6aa5a1e2c22bc4538\u0026amp;signature=f38216d70b5184a7a60dbcc33a2e992c1fe1dc679a60bf1b58c53997b5312da4\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Update Ticket - Periskope Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Updates a ticket — any combination of the body fields, at least one required. labels replaces the entire label set.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://bharatkumarramesh.mintlify.app/_mintlify/api/og/v2?division=Ticket+APIs\u0026amp;title=Update+Ticket\u0026amp;description=Updates+a+ticket+%E2%80%94+any+combination+of+the+body+fields%2C+at+least+one+required.+labels+replaces+the+entire+label+set.\u0026amp;theme=42ac27e6aa5a1e2c22bc4538\u0026amp;signature=f38216d70b5184a7a60dbcc33a2e992c1fe1dc679a60bf1b58c53997b5312da4\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/bharatkumarramesh/xEFzGZM_csru_Nms/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Periskope Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#15803D\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.periskope.app/api-reference/tickets/update-ticket\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/tickets/update-ticket.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.periskope.app/#organization\",\"name\":\"Periskope Docs\",\"url\":\"https://docs.periskope.app\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/bharatkumarramesh/Sq5VlnE2OgDOCH8s/logo/periskope-logo-full.svg?fit=max\u0026auto=format\u0026n=Sq5VlnE2OgDOCH8s\u0026q=85\u0026s=cace2e822ea7c0cd2a98b9d946baa593\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.periskope.app#website\",\"name\":\"Periskope Docs\",\"url\":\"https://docs.periskope.app\",\"publisher\":{\"@id\":\"https://docs.periskope.app/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.periskope.app/api-reference/tickets/update-ticket#webpage\",\"url\":\"https://docs.periskope.app/api-reference/tickets/update-ticket\",\"name\":\"Update Ticket\",\"description\":\"Updates a ticket — any combination of the body fields, at least one required. labels replaces the entire label set.\",\"dateModified\":\"2026-09-25T16:09:26.381Z\",\"isPartOf\":{\"@id\":\"https://docs.periskope.app#website\"},\"breadcrumb\":{\"@id\":\"https://docs.periskope.app/api-reference/tickets/update-ticket#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.periskope.app/api-reference/tickets/update-ticket#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Ticket APIs\",\"item\":\"https://docs.periskope.app/api-reference/tickets/get-ticket-by-id\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Update Ticket\",\"item\":\"https://docs.periskope.app/api-reference/tickets/update-ticket\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.periskope.app/api-reference/tickets/update-ticket#apireference\",\"headline\":\"Update Ticket\",\"name\":\"Update Ticket\",\"description\":\"Updates a ticket — any combination of the body fields, at least one required. labels replaces the entire label set.\",\"url\":\"https://docs.periskope.app/api-reference/tickets/update-ticket\",\"mainEntityOfPage\":{\"@id\":\"https://docs.periskope.app/api-reference/tickets/update-ticket#webpage\"},\"dateModified\":\"2026-09-25T16:09:26.381Z\",\"publisher\":{\"@id\":\"https://docs.periskope.app/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.periskope.app#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Periskope Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Periskope Docs","nav":{"global":null,"anchors":[{"anchor":"Documentation","icon":"book-open","pages":[{"title":"Documentation","href":"/get-started/introduction"}]},{"anchor":"APIs \u0026 Webhooks","icon":"webhook","groups":[{"group":"API","pages":[{"title":"Introduction","href":"/api-reference/introduction"},{"title":"Authorization","href":"/api-reference/authorization"},{"title":"SDK","href":"/api-reference/sdk"},{"group":"Objects","pages":[{"title":"The Chat Object","href":"/api-reference/objects/the-chat-object"},{"title":"The Chat Notification Object","href":"/api-reference/objects/the-chat-notification-object"},{"title":"The Reaction Object","href":"/api-reference/objects/the-reaction-object"},{"title":"The Message Object","href":"/api-reference/objects/the-message-object"},{"title":"The Contact Object","href":"/api-reference/objects/the-contact-object"},{"title":"The Ticket Info Object","href":"/api-reference/objects/the-ticket-info-object"},{"title":"The Task Object","href":"/api-reference/objects/the-task-object"},{"title":"The Phone Object","href":"/api-reference/objects/the-phone-object"},{"title":"The Note Object","href":"/api-reference/objects/the-note-object"}]},{"title":"WhatsApp Message Ack Status","href":"/api-reference/delivery-status"}]},{"group":"Chat APIs","icon":"comments","pages":[{"title":"Get Chat By ID","openapi":"api-reference/openapi-generated.json GET /v1/chats/{chat_id}","href":"/api-reference/chat/get-chat-by-id"},{"title":"Get Messages in a Chat","openapi":"api-reference/openapi-generated.json GET /v1/chats/{chat_id}/messages","href":"/api-reference/chat/get-messages-in-chat"},{"title":"Get Private Notes in a Chat","openapi":"api-reference/openapi-generated.json GET /v1/chats/{chat_id}/notes","href":"/api-reference/chat/get-private-notes-in-chat"},{"title":"Get Notifications in a Chat","openapi":"api-reference/openapi-generated.json GET /v1/chats/{chat_id}/notifications","href":"/api-reference/chat/get-notifications-in-chat"},{"title":"List All Chats","openapi":"api-reference/openapi-generated.json GET /v1/chats","href":"/api-reference/chat/list-all-chats"},{"title":"List All Messages","openapi":"api-reference/openapi-generated.json GET /v1/chats/messages","href":"/api-reference/chat/list-all-messages"},{"title":"List All Notifications","openapi":"api-reference/openapi-generated.json GET /v1/chats/notifications","href":"/api-reference/chat/list-all-notifications"},{"title":"Update Chat Labels","openapi":"api-reference/openapi-generated.json PATCH /v1/chats/labels","href":"/api-reference/chat/update-chat-labels"},{"title":"Update Chat","openapi":"api-reference/openapi-generated.json PATCH /v1/chats/{chat_id}","href":"/api-reference/chat/update-chat"},{"title":"Mark chat as read","openapi":"api-reference/openapi-generated.json POST /v1/chats/{chat_id}/read","href":"/api-reference/chat/mark-read"},{"title":"Update Chat Access","openapi":"api-reference/openapi-generated.json PATCH /v1/chats/access","href":"/api-reference/chat/override-chat-access"},{"title":"Get Chat Audit Logs","openapi":"api-reference/openapi-generated.json GET /v1/chats/{chat_id}/audit-logs","href":"/api-reference/chat/get-chat-audit-logs"},{"title":"Update Chat AI Settings","openapi":"api-reference/openapi-generated.json PATCH /v1/chats/{chat_id}/ai","href":"/api-reference/chat/update-chat-ai-settings"}]},{"group":"Group Settings APIs","pages":[{"title":"Create Group","openapi":"api-reference/openapi-generated.json POST /v1/chats/create","href":"/api-reference/chat/create-group"},{"title":"Generate a new invite link for a chat","openapi":"api-reference/openapi-generated.json POST /v1/chats/{chat_id}/invite","href":"/api-reference/chat/refresh-invite"},{"title":"Add Participant to Group","openapi":"api-reference/openapi-generated.json POST /v1/chats/{chat_id}/add","href":"/api-reference/chat/add-participant"},{"title":"Remove Participant from Group","openapi":"api-reference/openapi-generated.json POST /v1/chats/{chat_id}/remove","href":"/api-reference/chat/remove-participant"},{"title":"Promote Participant to Admin","openapi":"api-reference/openapi-generated.json POST /v1/chats/{chat_id}/promote","href":"/api-reference/chat/promote-participant-to-admin"},{"title":"Demote Participant to Member","openapi":"api-reference/openapi-generated.json POST /v1/chats/{chat_id}/demote","href":"/api-reference/chat/demote-participant-to-member"},{"title":"Update Group Settings","openapi":"api-reference/openapi-generated.json POST /v1/chats/{chat_id}/settings","href":"/api-reference/chat/update-group-settings"},{"title":"Accept Group Invite","openapi":"api-reference/openapi-generated.json POST /v1/chats/accept-invite","href":"/api-reference/chat/accept-group-invite"},{"title":"Leave Group","openapi":"api-reference/openapi-generated.json POST /v1/chats/{chat_id}/leave","href":"/api-reference/chat/leave-group"}]},{"group":"Message APIs","icon":"comment","pages":[{"title":"Send Message","openapi":"api-reference/openapi-generated.json POST /v1/message/send","href":"/api-reference/message/send-message"},{"title":"Send Sync Message","openapi":"api-reference/openapi-generated.json POST /v1/message/send-sync","href":"/api-reference/message/send-message-sync"},{"title":"Broadcast Message","openapi":"api-reference/openapi-generated.json POST /v1/message/broadcast","href":"/api-reference/message/broadcast-message"},{"title":"Delete a Broadcast","openapi":"api-reference/openapi-generated.json DELETE /v1/message/broadcast/{broadcast_id}","href":"/api-reference/message/delete-broadcast"},{"title":"Delete Message","openapi":"api-reference/openapi-generated.json POST /v1/message/{message_id}/delete","href":"/api-reference/message/delete-message"},{"title":"Edit Message","openapi":"api-reference/openapi-generated.json POST /v1/message/{message_id}/edit","href":"/api-reference/message/edit-message"},{"title":"Forward Message","openapi":"api-reference/openapi-generated.json POST /v1/message/{message_id}/forward","href":"/api-reference/message/forward-message"},{"title":"Get Message","openapi":"api-reference/openapi-generated.json GET /v1/message/{message_id}","href":"/api-reference/message/get-message"},{"title":"React to Message","openapi":"api-reference/openapi-generated.json POST /v1/message/{message_id}/react","href":"/api-reference/message/react-to-message"},{"title":"Pin Message","openapi":"api-reference/openapi-generated.json POST /v1/message/{message_id}/pin","href":"/api-reference/message/pin-message"},{"title":"Get Message Status","openapi":"api-reference/openapi-generated.json GET /v1/message/{unique_id}/status","href":"/api-reference/message/message-status"},{"title":"List All Message Queues","openapi":"api-reference/openapi-generated.json POST /v1/message/queues","href":"/api-reference/message/list-queue-jobs"},{"title":"Get Status of Message Queues","openapi":"api-reference/openapi-generated.json GET /v1/message/queues/health","href":"/api-reference/message/queue-health"},{"title":"Purge Message Queues","openapi":"api-reference/openapi-generated.json POST /v1/message/queues/purge","href":"/api-reference/message/purge-queue-jobs"}]},{"group":"Scheduled Message APIs","pages":[{"title":"List Scheduled Messages","openapi":"api-reference/openapi-generated.json GET /v1/message/scheduled","href":"/api-reference/scheduled-messages/list-scheduled-messages"},{"title":"Schedule a Message","openapi":"api-reference/openapi-generated.json POST /v1/message/scheduled","href":"/api-reference/scheduled-messages/schedule-message"},{"title":"Get Scheduled Message","openapi":"api-reference/openapi-generated.json GET /v1/message/scheduled/{scheduled_id}","href":"/api-reference/scheduled-messages/get-scheduled-message"},{"title":"Update Scheduled Message","openapi":"api-reference/openapi-generated.json PATCH /v1/message/scheduled/{scheduled_id}","href":"/api-reference/scheduled-messages/update-scheduled-message"},{"title":"Delete Scheduled Message","openapi":"api-reference/openapi-generated.json DELETE /v1/message/scheduled/{scheduled_id}","href":"/api-reference/scheduled-messages/delete-scheduled-message"},{"title":"List Scheduled Message Runs","openapi":"api-reference/openapi-generated.json GET /v1/message/scheduled/{scheduled_id}/occurrences","href":"/api-reference/scheduled-messages/list-scheduled-message-occurrences"}]},{"group":"Media APIs","icon":"photo-film","pages":[{"title":"Migrate Media URL","api":"POST https://api.periskope.app/v1/media/migrate-url","href":"/api-reference/media/migrate-url"},{"title":"Migrate Media URLs (Batch)","api":"POST https://api.periskope.app/v1/media/migrate-url/batch","href":"/api-reference/media/migrate-url-batch"}]},{"group":"Contact APIs","icon":"phone","pages":[{"title":"Get Contact By ID","openapi":"api-reference/openapi-generated.json GET /v1/contacts/{contact_id}","href":"/api-reference/contacts/get-contact-by-id"},{"title":"Get Contacts","openapi":"api-reference/openapi-generated.json GET /v1/contacts","href":"/api-reference/contacts/get-contacts"},{"title":"Update Contact Labels","openapi":"api-reference/openapi-generated.json PATCH /v1/contacts/labels","href":"/api-reference/contacts/update-contact-labels"},{"title":"Update Contact","openapi":"api-reference/openapi-generated.json PATCH /v1/contacts/{contact_id}","href":"/api-reference/contacts/update-contact"},{"title":"Create Contact","openapi":"api-reference/openapi-generated.json POST /v1/contacts/create","href":"/api-reference/contacts/create-contact"},{"title":"Check Contact Exists","openapi":"api-reference/openapi-generated.json POST /v1/contacts/check","href":"/api-reference/contacts/check-contact"}]},{"group":"Ticket APIs","icon":"ticket","pages":[{"title":"Get Ticket By ID","openapi":"api-reference/openapi-generated.json GET /v1/tickets/{ticket_id}","href":"/api-reference/tickets/get-ticket-by-id"},{"title":"Get Tickets","openapi":"api-reference/openapi-generated.json GET /v1/tickets","description":"Returns the tickets of the workspace, newest first, excluding deleted tickets.","href":"/api-reference/tickets/get-tickets"},{"title":"Update Ticket","openapi":"api-reference/openapi-generated.json PATCH /v1/tickets/{ticket_id}","href":"/api-reference/tickets/update-ticket"},{"title":"Create Ticket","openapi":"api-reference/openapi-generated.json POST /v1/tickets/create","description":"Creates a ticket on a chat (chat_id and subject required). Only one ticket can be raised per message. Custom property values cannot be set at creation — use the update endpoint after.","href":"/api-reference/tickets/create-ticket"},{"title":"Get Ticket Audit Logs","openapi":"api-reference/openapi-generated.json GET /v1/tickets/{ticket_id}/audit-logs","href":"/api-reference/tickets/get-ticket-audit-logs"}]},{"group":"Custom Property APIs","icon":"list-dropdown","pages":[{"title":"Get All Custom Properties","openapi":"api-reference/openapi-generated.json GET /v1/properties","href":"/api-reference/properties/get-all-custom-properties"},{"title":"Get Custom Property","openapi":"api-reference/openapi-generated.json GET /v1/properties/{property_id}","href":"/api-reference/properties/get-custom-property"},{"title":"Create Custom Property","openapi":"api-reference/openapi-generated.json POST /v1/properties/create","href":"/api-reference/properties/create-custom-property"},{"title":"Update Custom Property","openapi":"api-reference/openapi-generated.json POST /v1/properties/{property_id}","href":"/api-reference/properties/update-custom-property"},{"title":"Update Property Options","openapi":"api-reference/openapi-generated.json POST /v1/properties/{property_id}/options","href":"/api-reference/properties/update-property-options"},{"title":"Delete Custom Properties","openapi":"api-reference/openapi-generated.json DELETE /v1/properties","href":"/api-reference/properties/delete-custom-property"}]},{"group":"Task APIs","icon":"list-check","pages":[{"title":"Get Task By ID","openapi":"api-reference/openapi-generated.json GET /v1/tasks/{task_id}","href":"/api-reference/tasks/get-task-by-id"},{"title":"Get All Tasks","openapi":"api-reference/openapi-generated.json GET /v1/tasks","href":"/api-reference/tasks/get-tasks"},{"title":"Create Task","openapi":"api-reference/openapi-generated.json POST /v1/tasks/create","href":"/api-reference/tasks/create-task"},{"title":"Update Task","openapi":"api-reference/openapi-generated.json PATCH /v1/tasks/{task_id}","href":"/api-reference/tasks/update-task"}]},{"group":"Queue APIs","icon":"list","pages":[{"title":"Fetch Queue Jobs","openapi":"api-reference/openapi-generated.json GET /v1/queue/jobs","href":"/api-reference/queues/fetch-queue-jobs"},{"title":"Get Broadcast Status","openapi":"api-reference/openapi-generated.json GET /v1/queue/broadcast","href":"/api-reference/queues/get-broadcast-status"},{"title":"Get Queue Status","openapi":"api-reference/openapi-generated.json GET /v1/queue","href":"/api-reference/queues/get-queue-status"},{"title":"Purge Queue","openapi":"api-reference/openapi-generated.json DELETE /v1/queue/purge","href":"/api-reference/queues/purge-queue"}]},{"group":"Phone APIs","icon":"phone","pages":[{"title":"Get phone","openapi":"api-reference/openapi-generated.json GET /v1/phones","href":"/api-reference/phones/get-phone"},{"title":"Get All Phones","openapi":"api-reference/openapi-generated.json GET /v1/phones/all","href":"/api-reference/phones/get-all-phones"},{"title":"Get QR","openapi":"api-reference/openapi-generated.json GET /v1/phones/qr","href":"/api-reference/phones/get-qr"},{"title":"Reset Phone","openapi":"api-reference/openapi-generated.json POST /v1/phones/reset","href":"/api-reference/phones/reset-phone"},{"title":"Restart Phone","openapi":"api-reference/openapi-generated.json POST /v1/phones/restart","href":"/api-reference/phones/restart-phone"},{"title":"Resync Phone","openapi":"api-reference/openapi-generated.json POST /v1/phones/resync","href":"/api-reference/phones/resync-phone"},{"title":"Update phone","openapi":"api-reference/openapi-generated.json PATCH /v1/phones/update","href":"/api-reference/phones/update-phone"},{"title":"Create Phone","openapi":"api-reference/openapi-generated.json POST /v1/phones/create","href":"/api-reference/phones/create-phone"},{"title":"Delete Phone","openapi":"api-reference/openapi-generated.json DELETE /v1/phones/delete","href":"/api-reference/phones/delete-phone"}]},{"group":"Notes APIs","icon":"comment","pages":[{"title":"Send Private Notes","openapi":"api-reference/openapi-generated.json POST /v1/notes/create","href":"/api-reference/notes/create-private-notes"},{"title":"Get Private Note","openapi":"api-reference/openapi-generated.json GET /v1/notes/{note_id}","href":"/api-reference/notes/get-private-note"},{"title":"List All Private Notes","openapi":"api-reference/openapi-generated.json GET /v1/notes","href":"/api-reference/notes/list-all-private-notes"}]},{"group":"Reaction APIs","icon":"comment","pages":[{"title":"Get Reactions","openapi":"api-reference/openapi-generated.json GET /v1/reactions","href":"/api-reference/reactions/get-reactions"}]},{"group":"Knowledge Base APIs","icon":"brain","pages":[{"title":"Get All Knowledge Base Items","openapi":"api-reference/openapi-generated.json GET /v1/knowledge-base","href":"/api-reference/knowledge-base/get-all-knowledge-base"},{"title":"Get FAQ by ID","openapi":"api-reference/openapi-generated.json GET /v1/knowledge-base/faq/{context_id}","href":"/api-reference/knowledge-base/get-faq-by-id"},{"title":"Create FAQ","openapi":"api-reference/openapi-generated.json POST /v1/knowledge-base/faq/create","href":"/api-reference/knowledge-base/create-faq"},{"title":"Update FAQ","openapi":"api-reference/openapi-generated.json PATCH /v1/knowledge-base/faq/{context_id}","href":"/api-reference/knowledge-base/update-faq"},{"title":"Delete FAQ","openapi":"api-reference/openapi-generated.json DELETE /v1/knowledge-base/faq/{context_id}","href":"/api-reference/knowledge-base/delete-faq"},{"title":"Get Document by ID","openapi":"api-reference/openapi-generated.json GET /v1/knowledge-base/document/{document_id}","href":"/api-reference/knowledge-base/get-document-by-id"},{"title":"Create Document","openapi":"api-reference/openapi-generated.json POST /v1/knowledge-base/document/create","href":"/api-reference/knowledge-base/create-document"},{"title":"Delete Document","openapi":"api-reference/openapi-generated.json DELETE /v1/knowledge-base/document/{document_id}","href":"/api-reference/knowledge-base/delete-document"}]},{"group":"Member APIs","icon":"user-group","pages":[{"title":"Invite Members","openapi":"api-reference/openapi-generated.json POST /v1/members/invite","href":"/api-reference/members/invite-members"},{"title":"Update Member Access","openapi":"api-reference/openapi-generated.json PATCH /v1/members/access","href":"/api-reference/members/update-member-access"},{"title":"Delete Member","openapi":"api-reference/openapi-generated.json DELETE /v1/members/{email_id}","href":"/api-reference/members/delete-member"}]},{"group":"AI APIs","icon":"robot","pages":[{"title":"Trigger AI Reply","openapi":"api-reference/openapi-generated.json POST /v1/ai/reply","href":"/api-reference/ai/trigger-ai-reply"}]},{"group":"Webhook APIs","icon":"webhook","pages":[{"title":"List Webhooks","openapi":"api-reference/openapi-generated.json GET /v1/webhooks","href":"/api-reference/webhooks/list-webhooks"},{"title":"Create Webhook","openapi":"api-reference/openapi-generated.json POST /v1/webhooks","href":"/api-reference/webhooks/create-webhook"},{"title":"Get Webhook by ID","openapi":"api-reference/openapi-generated.json GET /v1/webhooks/{id}","href":"/api-reference/webhooks/get-webhook-by-id"},{"title":"Update Webhook","openapi":"api-reference/openapi-generated.json PATCH /v1/webhooks/{id}","href":"/api-reference/webhooks/update-webhook"},{"title":"Delete Webhook","openapi":"api-reference/openapi-generated.json DELETE /v1/webhooks/{id}","href":"/api-reference/webhooks/delete-webhook"}]},{"group":"Webhooks","pages":[{"title":"Introduction","href":"/api-reference/webhooks/introduction"},{"title":"chat.created","icon":"comments","href":"/api-reference/webhooks/chat.created"},{"title":"chat.notification.created","icon":"comments","href":"/api-reference/webhooks/chat.notification.created"},{"title":"chat.custom-properties.updated","icon":"comments","href":"/api-reference/webhooks/chat.custom-properties.updated"},{"title":"message.created","icon":"comment","href":"/api-reference/webhooks/message.created"},{"title":"message.updated","icon":"comment","href":"/api-reference/webhooks/message.updated"},{"title":"message.deleted","icon":"comment","href":"/api-reference/webhooks/message.deleted"},{"title":"message.ack.updated","icon":"comment","href":"/api-reference/webhooks/message.ack.updated"},{"title":"message.ticket.attached","icon":"comment","href":"/api-reference/webhooks/message.ticket.attached"},{"title":"message.flagged","icon":"comment","href":"/api-reference/webhooks/message.flagged"},{"title":"message.unflagged","icon":"comment","href":"/api-reference/webhooks/message.unflagged"},{"title":"note.created","icon":"comment","href":"/api-reference/webhooks/note.created"},{"title":"reaction.created","icon":"face-smile","href":"/api-reference/webhooks/reaction.created"},{"title":"reaction.updated","icon":"face-smile","href":"/api-reference/webhooks/reaction.updated"},{"title":"ticket.created","icon":"tag","href":"/api-reference/webhooks/ticket.created"},{"title":"ticket.updated","icon":"tag","href":"/api-reference/webhooks/ticket.updated"},{"title":"ticket.deleted","icon":"tag","href":"/api-reference/webhooks/ticket.deleted"},{"title":"org.phone.updated","icon":"phone","href":"/api-reference/webhooks/org.phone.updated"},{"title":"org.phone.connected","icon":"phone","href":"/api-reference/webhooks/org.phone.connected"},{"title":"org.phone.disconnected","icon":"phone","href":"/api-reference/webhooks/org.phone.disconnected"},{"title":"org.phone.qr","icon":"phone","href":"/api-reference/webhooks/org.phone.qr"}]}]},{"anchor":"Free Tools","icon":"toolbox","href":"https://tools.periskope.app"}]},"title":"Update Ticket - Periskope Docs","buildId":"dpl_2oYXwqkEXirXBPk8wV1FtM5USFWi","deploymentId":"dpl_2oYXwqkEXirXBPk8wV1FtM5USFWi","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-WRhTSUDL.js","utils-ChMov4Kr.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-_REmC2bI.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Bp6nVRCu.js","snippetPresets-DZadmXoU.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CY2WdoTl.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-DwYG-Q4l.js","shallow-BXQIGwv4.js","getApiPlaygroundDisplay-CK5nK5B9.js","CodeSnippet-TH4a2aGW.js","CodeSnippets-DwsQiOFS.js","Page-R3M_BF4L.js","getPastedJson-DD7kUzi_.js","icon-holE3QoJ.js","MethodPill-DUW0T8us.js","DuplicateIcon-CI_p4be-.js","createIcon-BdbRvavb.js","DynamicMarkdown-DN96a4Ur.js","SectionHeading-SCu36A9d.js","axios-vUo_bRtp.js","Markdown-CCeGv-zI.js","clsx-BGBGWFTt.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-Cv_O2fky.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-2C5OB2eV.js"]}