Node.js
import { PeriskopeApi } from '@periskope/periskope-client';
const client = new PeriskopeApi({
authToken: 'YOUR_API_KEY',
});
async function createTicket() {
const response = await client.ticket.create({
chat_id: '120363392071406466@g.us',
quoted_message_id: 'false_120363176874912345@g.us_3A23F157E7D477DD1234_919971866123@c.us',
subject: 'A simple subject'
});
console.log(response);
}
createTicket();curl -X POST \
https://api.periskope.app/v1/tickets/create \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"chat_id": "120363392071406466@g.us"
"subject": "A simple subject"
}'{
"attached_messages": [],
"chat": {
"chat_id": "919537851844@c.us",
"chat_image": "https://storage.googleapis.com/periskope-images/2997dd64-89bf-48d3-9a22-b314fca017e5%2F919537851844%40c.us.jpg?timestamp=1737689973340",
"chat_labels": "label1, label2",
"chat_name": "BK Local1",
"chat_type": "user",
"created_at": "2025-01-18T14:51:03+00:00",
"custom_properties": {
"Custom Property 1": "hello"
},
"group_description": null,
"invite_link": null,
"is_muted": false,
"members": {
"918527184400@c.us": {
"chat_id": "919537851844@c.us",
"contact_color": "#B4876E",
"contact_id": "918527184400@c.us",
"contact_image": "https://storage.googleapis.com/periskope-images/2997dd64-89bf-48d3-9a22-b314fca017e5%2F918527184400%40c.us.jpg?timestamp=1737690126280",
"contact_labels": "",
"contact_name": "Support",
"is_admin": true,
"is_internal": true,
"is_super_admin": true,
"org_id": "2997dd64-89bf-48d3-9a22-b314fca017e5",
"org_phone": "918527184400@c.us"
},
"919537851844@c.us": {
"chat_id": "919537851844@c.us",
"contact_color": "#B4876E",
"contact_id": "919537851844@c.us",
"contact_image": "https://storage.googleapis.com/periskope-images/2997dd64-89bf-48d3-9a22-b314fca017e5%2F919537851844%40c.us.jpg?timestamp=1737689973340",
"contact_labels": "label1, label2",
"contact_name": "BK Local1",
"is_admin": true,
"is_internal": false,
"is_super_admin": true,
"org_id": "2997dd64-89bf-48d3-9a22-b314fca017e5",
"org_phone": "918527184400@c.us"
}
},
"org_id": "2997dd64-89bf-48d3-9a22-b314fca017e5",
"org_phone": "918527184400@c.us"
},
"message": {
"body": "You have been invited to join Test New 1039\n\nhttps://chat.whatsapp.com/invite/CGiTdfn1dUM8J67GEx1lyx\n\nIf you cannot click the link, please respond to this message, and the link will become active",
"chat_id": "919537851844@c.us",
"media_path": "",
"message_id": "true_919537851844@c.us_3EB0ABB7C973860FC19EBE05FD934141CCEC2D8B",
"org_phone": "918527184400@c.us",
"performed_by": null,
"sender_name": "Support",
"sender_phone": "918527184400",
"timestamp": "2025-01-24T05:11:08+00:00"
},
"ticket": {
"assigned_by": "",
"assignee": "",
"created_at": "2025-01-26T13:46:21.670006+00:00",
"due_date": "",
"is_deleted": false,
"org_id": "2997dd64-89bf-48d3-9a22-b314fca017e5",
"priority": 2,
"quoted_message_id": "3EB0ABB7C973860FC19EBE05FD934141CCEC2D8B",
"raised_by": null,
"status": "open",
"subject": "A simple subject",
"ticket_custom_properties": {},
"ticket_id": "BKT-001",
"ticket_labels": ""
}
}Ticket APIs
Create Ticket
This endpoint creates a new Ticket.
Node.js
import { PeriskopeApi } from '@periskope/periskope-client';
const client = new PeriskopeApi({
authToken: 'YOUR_API_KEY',
});
async function createTicket() {
const response = await client.ticket.create({
chat_id: '120363392071406466@g.us',
quoted_message_id: 'false_120363176874912345@g.us_3A23F157E7D477DD1234_919971866123@c.us',
subject: 'A simple subject'
});
console.log(response);
}
createTicket();curl -X POST \
https://api.periskope.app/v1/tickets/create \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"chat_id": "120363392071406466@g.us"
"subject": "A simple subject"
}'{
"attached_messages": [],
"chat": {
"chat_id": "919537851844@c.us",
"chat_image": "https://storage.googleapis.com/periskope-images/2997dd64-89bf-48d3-9a22-b314fca017e5%2F919537851844%40c.us.jpg?timestamp=1737689973340",
"chat_labels": "label1, label2",
"chat_name": "BK Local1",
"chat_type": "user",
"created_at": "2025-01-18T14:51:03+00:00",
"custom_properties": {
"Custom Property 1": "hello"
},
"group_description": null,
"invite_link": null,
"is_muted": false,
"members": {
"918527184400@c.us": {
"chat_id": "919537851844@c.us",
"contact_color": "#B4876E",
"contact_id": "918527184400@c.us",
"contact_image": "https://storage.googleapis.com/periskope-images/2997dd64-89bf-48d3-9a22-b314fca017e5%2F918527184400%40c.us.jpg?timestamp=1737690126280",
"contact_labels": "",
"contact_name": "Support",
"is_admin": true,
"is_internal": true,
"is_super_admin": true,
"org_id": "2997dd64-89bf-48d3-9a22-b314fca017e5",
"org_phone": "918527184400@c.us"
},
"919537851844@c.us": {
"chat_id": "919537851844@c.us",
"contact_color": "#B4876E",
"contact_id": "919537851844@c.us",
"contact_image": "https://storage.googleapis.com/periskope-images/2997dd64-89bf-48d3-9a22-b314fca017e5%2F919537851844%40c.us.jpg?timestamp=1737689973340",
"contact_labels": "label1, label2",
"contact_name": "BK Local1",
"is_admin": true,
"is_internal": false,
"is_super_admin": true,
"org_id": "2997dd64-89bf-48d3-9a22-b314fca017e5",
"org_phone": "918527184400@c.us"
}
},
"org_id": "2997dd64-89bf-48d3-9a22-b314fca017e5",
"org_phone": "918527184400@c.us"
},
"message": {
"body": "You have been invited to join Test New 1039\n\nhttps://chat.whatsapp.com/invite/CGiTdfn1dUM8J67GEx1lyx\n\nIf you cannot click the link, please respond to this message, and the link will become active",
"chat_id": "919537851844@c.us",
"media_path": "",
"message_id": "true_919537851844@c.us_3EB0ABB7C973860FC19EBE05FD934141CCEC2D8B",
"org_phone": "918527184400@c.us",
"performed_by": null,
"sender_name": "Support",
"sender_phone": "918527184400",
"timestamp": "2025-01-24T05:11:08+00:00"
},
"ticket": {
"assigned_by": "",
"assignee": "",
"created_at": "2025-01-26T13:46:21.670006+00:00",
"due_date": "",
"is_deleted": false,
"org_id": "2997dd64-89bf-48d3-9a22-b314fca017e5",
"priority": 2,
"quoted_message_id": "3EB0ABB7C973860FC19EBE05FD934141CCEC2D8B",
"raised_by": null,
"status": "open",
"subject": "A simple subject",
"ticket_custom_properties": {},
"ticket_id": "BKT-001",
"ticket_labels": ""
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
Please provide the number of the phone you want to call with this API in the header. The number must be in country code + number format without any characters or spaces, e.g. 919876543210; Alternatively, provide the phone_id (phone-xxxxxxxxxxxx) in the header
Example:
"{{orgPhone}}"
Body
application/json
- The unique id of the chat
- For individual chats, this would be the country_code + number (e.g., 918527184400), followed by @c.us
- For groups, this would end with @g.us
Example:
"919537851844@c.us"
- Updates the subject of the ticket
Example:
"New subject 1"
- A comma-separated list of labels to be assigned to the contacts. All labels are case-insensitive.
- If any label currently does not exist, it will be created
- Note: This replaces all the current labels of the contact
Example:
"Test, Demo"
- Update the assignee of the ticket. Must be an email of a user in the organization
Example:
"bharat@periskope.app"
- The quoted message id for the ticket
Example:
"3EB0ABB7C973860FC19EBE05FD934141CCEC2D8B"
- Updates the due date of the ticket.
- Must be a string that can be parsed to a date
Example:
"2025-04-20"
- Updates the priority of the ticket.
- Only accepts the following values - 1,2,3,4
- 1 = Low
- 2 = Medium
- 3 = High
- 4 = Urgent
Example:
"2"
- Updates the status of the ticket.
- Only accepts the following values - open, inprogress, closed, archived
Example:
"closed"
Response
200 - application/json
200 OK
The response is a ticket object. Refer to the ticket object here
Was this page helpful?