diff --git a/01 Cloud Platform/04 Organizations/05 Support/02 Features.php b/01 Cloud Platform/04 Organizations/05 Support/02 Features.php index 8a91af7f7e..6d64f632df 100644 --- a/01 Cloud Platform/04 Organizations/05 Support/02 Features.php +++ b/01 Cloud Platform/04 Organizations/05 Support/02 Features.php @@ -2,6 +2,7 @@

Bug Reports

The Lean trading engine is under constant development, so you may occasionally experience bugs when using it. If you think you have found a bug, share a simple backtest with us that reproduces the issue. You can contact us either through email, Discord, or the forum. We will review your submission. If we confirm you've found a bug, we will create a GitHub Issue to have it resolved. Subscribe to the GitHub Issue to track our progress in fixing the bug.

+

If you find an issue in historical data, we recommend you report it on the Data Issues page of the dataset portal.

@@ -16,21 +17,21 @@ - - - - + + + +
Bug Reportsgreen checkgreen checkgreen checkgreen checkSupported✓Supported✓Supported✓Supported✓
-

AI Support

-

Mia is an AI assistant we trained on hundreds of algorithms and thousands of documentation pages to provide contextual assistance for most issues you may encounter when developing a strategy.

+

Email Support

+

Our support ticket system enables you to privately email with our Support Team. We address support tickets in a first-in, first-out order, but we give priority to tickets opened by members with higher support seats.

- + @@ -39,23 +40,23 @@ - - - - - + + + + +
FeatureFeature Community Bronze Silver
Premium AI Support-green checkgreen checkgreen checkEmail Support Not supportedSupported✓Supported✓Supported✓
-

For more information on this feature, see AI Assistance.

+

For information on quotas and response time, see Ticket Quotas.

-

Email Support

-

Our support ticket system enables you to privately email with our Support Team. We address support tickets in a first-in, first-out order, but we give priority to tickets opened by members with higher support seats.

+

API Support

+

You can access Email Support through the REST API. With the API, you can open, list, read, reply to, and close support tickets. For more information, see the Support endpoints in the API Reference.

- + @@ -64,15 +65,14 @@ - - - - - + + + + +
FeatureFeature Community Bronze Silver
Email Support -green checkgreen checkgreen checkAPI SupportNot supportedSupported✓Supported✓Supported✓
-

For information on quotas and response time, see Ticket Quotas.

IP Protection

If you attach a backtest or live trading deployment when you open a support ticket, the intellectual property of your project is protected. We have a restricted subset of the Support Team who can access private support tickets. Using paid support plans ensures only a limited subset of the QuantConnect team can access the algorithms you attach to support tickets. These team members are carefully selected, have been at QuantConnect for at least 2 years, and have passed a background check. In contrast, if you share a backtest or live trading deployment to the forum for assistance, your project becomes part of the public domain.

@@ -80,7 +80,7 @@ - + @@ -90,23 +90,14 @@ - - - - + + + +
FeatureFeature Community Bronze Silver
IP Protection-green checkgreen checkgreen checkNot supportedSupported✓Supported✓Supported✓
-

Live Trading Debugging

@@ -125,10 +116,10 @@ Live Trading Debugging - - - green check - green check - green check + Not supported + Supported✓ + Supported✓ + Supported✓ @@ -140,7 +131,7 @@ - + @@ -150,10 +141,10 @@ - - - - + + + +
FeatureFeature Community Bronze Silver
Algorithm Design Suggestions--green checkgreen checkNot supportedNot supportedSupported✓Supported✓
@@ -164,7 +155,7 @@ - + @@ -174,10 +165,10 @@ - - - - + + + +
FeatureFeature Community Bronze Silver
Private Chatroom---green checkNot supportedNot supportedNot supportedSupported✓
@@ -189,7 +180,7 @@ - + @@ -199,10 +190,10 @@ - - - - + + + +
FeatureFeature Community Bronze Silver
Phone Call Consultations---green checkNot supportedNot supportedNot supportedSupported✓
@@ -213,7 +204,7 @@ - + @@ -222,11 +213,11 @@ - - - - - + + + + +
FeatureFeature Community Bronze Silver
Private Chatroom---green checkLocal DevelopmentNot supportedNot supportedNot supportedSupported✓
@@ -237,7 +228,7 @@ - + @@ -247,66 +238,66 @@ - - - - + + + + - - - - - + + + + + - - - - - + + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + +
FeatureFeature Community Bronze Silver
Bug Reportsgreen checkgreen checkgreen checkgreen checkSupported✓Supported✓Supported✓Supported✓
AI Supportgreen checkgreen checkgreen checkgreen checkEmail SupportNot supportedSupported✓Supported✓Supported✓
Email Support-green checkgreen checkgreen checkAPI SupportNot supportedSupported✓Supported✓Supported✓
IP Protection-green checkgreen checkgreen checkNot supportedSupported✓Supported✓Supported✓
Live Trading Debugging-green checkgreen checkgreen checkNot supportedSupported✓Supported✓Supported✓
Algorithm Design Suggestions--green checkgreen checkNot supportedNot supportedSupported✓Supported✓
Private Chatroom---green checkNot supportedNot supportedNot supportedSupported✓
Phone Call Consultations---green checkNot supportedNot supportedNot supportedSupported✓
Local Development---green checkNot supportedNot supportedNot supportedSupported✓
diff --git a/01 Cloud Platform/99 API Reference/00.json b/01 Cloud Platform/99 API Reference/00.json index bfb0ced664..2649737361 100644 --- a/01 Cloud Platform/99 API Reference/00.json +++ b/01 Cloud Platform/99 API Reference/00.json @@ -19,6 +19,7 @@ "12" : "Read account information", "13" : "Read LEAN engine version", "15" : "Report and list data issues", + "16" : "Open, comment on, and read support tickets", "99" : "Examples of using the API with Jupyter Notebooks" } } diff --git a/01 Cloud Platform/99 API Reference/16 Support/01 Create Support Ticket/01 Introduction.html b/01 Cloud Platform/99 API Reference/16 Support/01 Create Support Ticket/01 Introduction.html new file mode 100644 index 0000000000..c735ca6657 --- /dev/null +++ b/01 Cloud Platform/99 API Reference/16 Support/01 Create Support Ticket/01 Introduction.html @@ -0,0 +1,5 @@ + + +

+Open a new support ticket or comment on an existing ticket. +

diff --git a/01 Cloud Platform/99 API Reference/16 Support/01 Create Support Ticket/02 Description.html b/01 Cloud Platform/99 API Reference/16 Support/01 Create Support Ticket/02 Description.html new file mode 100644 index 0000000000..c17c5cda37 --- /dev/null +++ b/01 Cloud Platform/99 API Reference/16 Support/01 Create Support Ticket/02 Description.html @@ -0,0 +1,5 @@ + + +

+To open a new ticket, provide the subject and message properties. Each new ticket uses one ticket from the quota of your support seat. To update an existing ticket with a comment, provide the hash of the ticket and the message. A comment on a closed ticket opens the ticket again, unless you set close to true. You can attach a project, backtest, live deployment, or AI conversation only when you open a new ticket. When you attach any of them, you give the QuantConnect Support Staff permission to view your project and all its libraries. When you comment on a ticket, the endpoint ignores these properties. You must have a support seat in the organization to use this endpoint. +

diff --git a/01 Cloud Platform/99 API Reference/16 Support/01 Create Support Ticket/03 Request.html b/01 Cloud Platform/99 API Reference/16 Support/01 Create Support Ticket/03 Request.html new file mode 100644 index 0000000000..4dedd27df9 --- /dev/null +++ b/01 Cloud Platform/99 API Reference/16 Support/01 Create Support Ticket/03 Request.html @@ -0,0 +1,56 @@ + +

+The organization, the ticket to comment on or the subject of a new ticket, and the message. The /organizations/support/tickets/create API accepts requests in the following format: +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CreateSupportTicketRequest Model - Request body to open a support ticket or comment on a ticket.
organizationId string
required
example: 5cad178b20a1d52567b534553413b691

Id of the organization.
subject string
example: Live algorithm stopped after a brokerage disconnection

Subject of the new ticket. Required to open a new ticket.
message string
required
example: My live algorithm stopped at 10:32 ET after the brokerage disconnected.

HTML body of the message.
hash string
Id of the ticket to comment on. To open a new ticket, omit this property.
close boolean
If true, close the ticket after you add the comment. Requires hash.
projectId integer
Optional. Id of one of your projects to attach to the new ticket. To get your project Ids, use the /projects/read endpoint.
backtestId string
Optional. Id of a backtest of the attached project to attach to the new ticket. Requires projectId. To get the backtest Ids of a project, use the /backtests/list endpoint.
deployId string
Optional. Id of a stopped live deployment of the attached project to attach to the new ticket. Requires projectId. To get the deployment Ids of a project, use the /live/list endpoint.
agentDeploymentId string
Optional. Id of an AI conversation of the attached project to attach to the new ticket. Requires projectId. To get the conversation Ids of a project, use the /agents/deployments/list endpoint.
Example +
+{
+  "organizationId": "5cad178b20a1d52567b534553413b691",
+  "subject": "Live algorithm stopped after a brokerage disconnection",
+  "message": "My live algorithm stopped at 10:32 ET after the brokerage disconnected.",
+  "hash": "string",
+  "close": true,
+  "projectId": 0,
+  "backtestId": "string",
+  "deployId": "string",
+  "agentDeploymentId": "string"
+}
+
+
\ No newline at end of file diff --git a/01 Cloud Platform/99 API Reference/16 Support/01 Create Support Ticket/04 Responses.html b/01 Cloud Platform/99 API Reference/16 Support/01 Create Support Ticket/04 Responses.html new file mode 100644 index 0000000000..7a99c9821e --- /dev/null +++ b/01 Cloud Platform/99 API Reference/16 Support/01 Create Support Ticket/04 Responses.html @@ -0,0 +1,46 @@ + + +

+The /organizations/support/tickets/create API provides a response in the following format: +

+

200 Success

+ + + + + + + + + + + + + + + + + + + +
CreateSupportTicketResponse Model - Response from opening a support ticket or commenting on a ticket.
hash string
Id of the ticket.
success boolean
Indicate if the API request was successful.
errors string Array
List of errors with the API call.
Example +
+{
+  "hash": "string",
+  "success": true,
+  "errors": [
+    "string"
+  ]
+}
+
+

401 Authentication Error

+ + + + + + + + + +
UnauthorizedError Model - Unauthorized response from the API. Key is missing, invalid, or timestamp is too old for hash.
www_authenticate string
Header
diff --git a/01 Cloud Platform/99 API Reference/16 Support/01 Create Support Ticket/99 Examples.php b/01 Cloud Platform/99 API Reference/16 Support/01 Create Support Ticket/99 Examples.php new file mode 100644 index 0000000000..f7195589a1 --- /dev/null +++ b/01 Cloud Platform/99 API Reference/16 Support/01 Create Support Ticket/99 Examples.php @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/01 Cloud Platform/99 API Reference/16 Support/02 List Support Tickets/01 Introduction.html b/01 Cloud Platform/99 API Reference/16 Support/02 List Support Tickets/01 Introduction.html new file mode 100644 index 0000000000..a3b08512dc --- /dev/null +++ b/01 Cloud Platform/99 API Reference/16 Support/02 List Support Tickets/01 Introduction.html @@ -0,0 +1,5 @@ + + +

+List the support tickets of an organization. +

diff --git a/01 Cloud Platform/99 API Reference/16 Support/02 List Support Tickets/02 Description.html b/01 Cloud Platform/99 API Reference/16 Support/02 List Support Tickets/02 Description.html new file mode 100644 index 0000000000..cbfe42e627 --- /dev/null +++ b/01 Cloud Platform/99 API Reference/16 Support/02 List Support Tickets/02 Description.html @@ -0,0 +1,5 @@ + + +

+The response contains all the open tickets and one page of 10 closed tickets. Use the closedPage property to select the page of closed tickets and the totalClosed property of the response to get the number of closed tickets. +

diff --git a/01 Cloud Platform/99 API Reference/16 Support/02 List Support Tickets/03 Request.html b/01 Cloud Platform/99 API Reference/16 Support/02 List Support Tickets/03 Request.html new file mode 100644 index 0000000000..937002054e --- /dev/null +++ b/01 Cloud Platform/99 API Reference/16 Support/02 List Support Tickets/03 Request.html @@ -0,0 +1,28 @@ + +

+The organization and the page of closed tickets to list. The /organizations/support/tickets/list API accepts requests in the following format: +

+ + + + + + + + + + + + + + + + +
ListSupportTicketsRequest Model - Request body to list the support tickets of an organization.
organizationId string
required
example: 5cad178b20a1d52567b534553413b691

Id of the organization.
closedPage integer
example: 0

Index of the page of closed tickets to return, starting at 0. Each page contains 10 tickets. The default value is 0.
Example +
+{
+  "organizationId": "5cad178b20a1d52567b534553413b691",
+  "closedPage": 0
+}
+
+
\ No newline at end of file diff --git a/01 Cloud Platform/99 API Reference/16 Support/02 List Support Tickets/04 Responses.html b/01 Cloud Platform/99 API Reference/16 Support/02 List Support Tickets/04 Responses.html new file mode 100644 index 0000000000..267e0e7d3d --- /dev/null +++ b/01 Cloud Platform/99 API Reference/16 Support/02 List Support Tickets/04 Responses.html @@ -0,0 +1,248 @@ + + +

+The /organizations/support/tickets/list API provides a response in the following format: +

+

200 Success

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SupportTicketListResponse Model - Response from listing the support tickets of an organization.
open SupportTicket Array
Open tickets of the organization.
closed SupportTicket Array
Closed tickets in the requested page.
closedPage integer
Index of the page of closed tickets in the response.
totalClosed integer
Number of closed tickets of the organization.
allowance integer
Number of tickets your support seat lets you open in a 1-month rolling window.
remaining integer
Number of new tickets you can open now. The value is the allowance minus the tickets you opened in the last month, including closed tickets.
success boolean
Indicate if the API request was successful.
errors string Array
List of errors with the API call.
Example +
+{
+  "open": [
+    {
+      "hash": "string",
+      "title": "string",
+      "status": "Open",
+      "time": "September 29, 2026 - 18:00",
+      "timeUnix": 0,
+      "data": {
+        "external_id": "215476157330380",
+        "ticket_hash": "string",
+        "status": "open",
+        "subject": "string",
+        "created_time": "2026-09-29 18:00:38",
+        "updated_time": "2026-09-29 18:01:28",
+        "project_id": 0,
+        "backtest_id": "string",
+        "live_deploy_id": "string"
+      },
+      "profiles": [
+        {
+          "name": "string",
+          "profile": "string"
+        }
+      ]
+    }
+  ],
+  "closed": [
+    {
+      "hash": "string",
+      "title": "string",
+      "status": "Open",
+      "time": "September 29, 2026 - 18:00",
+      "timeUnix": 0,
+      "data": {
+        "external_id": "215476157330380",
+        "ticket_hash": "string",
+        "status": "open",
+        "subject": "string",
+        "created_time": "2026-09-29 18:00:38",
+        "updated_time": "2026-09-29 18:01:28",
+        "project_id": 0,
+        "backtest_id": "string",
+        "live_deploy_id": "string"
+      },
+      "profiles": [
+        {
+          "name": "string",
+          "profile": "string"
+        }
+      ]
+    }
+  ],
+  "closedPage": 0,
+  "totalClosed": 0,
+  "allowance": 0,
+  "remaining": 0,
+  "success": true,
+  "errors": [
+    "string"
+  ]
+}
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SupportTicket Model - A support ticket of an organization.
hash string
Id of the ticket.
title string
Subject of the ticket.
status string Enum
Status of the ticket. Options : ['Open', 'Closed']
time string
example: September 29, 2026 - 18:00

Time of the last update of the ticket.
timeUnix integer
Unix timestamp of the last update of the ticket.
data SupportTicketData object
Details of a support ticket.
profiles SupportTicketMember Array
Members who took part in the ticket.
Example +
+{
+  "hash": "string",
+  "title": "string",
+  "status": "Open",
+  "time": "September 29, 2026 - 18:00",
+  "timeUnix": 0,
+  "data": {
+    "external_id": "215476157330380",
+    "ticket_hash": "string",
+    "status": "open",
+    "subject": "string",
+    "created_time": "2026-09-29 18:00:38",
+    "updated_time": "2026-09-29 18:01:28",
+    "project_id": 0,
+    "backtest_id": "string",
+    "live_deploy_id": "string"
+  },
+  "profiles": [
+    {
+      "name": "string",
+      "profile": "string"
+    }
+  ]
+}
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SupportTicketData Model - Details of a support ticket.
external_id string
example: 215476157330380

Id of the ticket in the QuantConnect support system. Mention this Id when you contact our Support Team about the ticket.
ticket_hash string
Id of the ticket in the API. The value is the same as the hash of the ticket.
status string Enum
Status of the ticket. Options : ['open', 'closed']
subject string
Subject of the ticket.
created_time string
example: 2026-09-29 18:00:38

Time the ticket was opened, in YYYY-MM-DD HH:MM:SS format.
updated_time string
example: 2026-09-29 18:01:28

Time of the last update of the ticket, in YYYY-MM-DD HH:MM:SS format.
project_id integer
Id of the project attached to the ticket.
backtest_id string
Id of the backtest attached to the ticket.
live_deploy_id string
Id of the live deployment attached to the ticket.
Example +
+{
+  "external_id": "215476157330380",
+  "ticket_hash": "string",
+  "status": "open",
+  "subject": "string",
+  "created_time": "2026-09-29 18:00:38",
+  "updated_time": "2026-09-29 18:01:28",
+  "project_id": 0,
+  "backtest_id": "string",
+  "live_deploy_id": "string"
+}
+
+
+ + + + + + + + + + + + + + + +
SupportTicketMember Model - A member who took part in a support ticket.
name string
Name of the member.
profile string
URL of the profile image of the member.
Example +
+{
+  "name": "string",
+  "profile": "string"
+}
+
+

401 Authentication Error

+ + + + + + + + + +
UnauthorizedError Model - Unauthorized response from the API. Key is missing, invalid, or timestamp is too old for hash.
www_authenticate string
Header
diff --git a/01 Cloud Platform/99 API Reference/16 Support/02 List Support Tickets/99 Examples.php b/01 Cloud Platform/99 API Reference/16 Support/02 List Support Tickets/99 Examples.php new file mode 100644 index 0000000000..f7195589a1 --- /dev/null +++ b/01 Cloud Platform/99 API Reference/16 Support/02 List Support Tickets/99 Examples.php @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/01 Cloud Platform/99 API Reference/16 Support/03 Read Support Ticket/01 Introduction.html b/01 Cloud Platform/99 API Reference/16 Support/03 Read Support Ticket/01 Introduction.html new file mode 100644 index 0000000000..f4aac7a483 --- /dev/null +++ b/01 Cloud Platform/99 API Reference/16 Support/03 Read Support Ticket/01 Introduction.html @@ -0,0 +1,5 @@ + + +

+Read the messages of a support ticket. +

diff --git a/01 Cloud Platform/99 API Reference/16 Support/03 Read Support Ticket/02 Description.html b/01 Cloud Platform/99 API Reference/16 Support/03 Read Support Ticket/02 Description.html new file mode 100644 index 0000000000..cbed491e58 --- /dev/null +++ b/01 Cloud Platform/99 API Reference/16 Support/03 Read Support Ticket/02 Description.html @@ -0,0 +1,5 @@ + + +

+To get the hash of your tickets, use the /organizations/support/tickets/list endpoint. +

diff --git a/01 Cloud Platform/99 API Reference/16 Support/03 Read Support Ticket/03 Request.html b/01 Cloud Platform/99 API Reference/16 Support/03 Read Support Ticket/03 Request.html new file mode 100644 index 0000000000..4fff7f501b --- /dev/null +++ b/01 Cloud Platform/99 API Reference/16 Support/03 Read Support Ticket/03 Request.html @@ -0,0 +1,28 @@ + +

+The organization and the ticket to read. The /organizations/support/tickets/read API accepts requests in the following format: +

+ + + + + + + + + + + + + + + + +
ReadSupportTicketRequest Model - Request body to read a support ticket.
organizationId string
required
example: 5cad178b20a1d52567b534553413b691

Id of the organization.
hash string
required

Id of the ticket.
Example +
+{
+  "organizationId": "5cad178b20a1d52567b534553413b691",
+  "hash": "string"
+}
+
+
\ No newline at end of file diff --git a/01 Cloud Platform/99 API Reference/16 Support/03 Read Support Ticket/04 Responses.html b/01 Cloud Platform/99 API Reference/16 Support/03 Read Support Ticket/04 Responses.html new file mode 100644 index 0000000000..f152e0722f --- /dev/null +++ b/01 Cloud Platform/99 API Reference/16 Support/03 Read Support Ticket/04 Responses.html @@ -0,0 +1,89 @@ + + +

+The /organizations/support/tickets/read API provides a response in the following format: +

+

200 Success

+ + + + + + + + + + + + + + + + + + + +
SupportTicketMessagesResponse Model - Response from reading a support ticket.
messages SupportTicketMessage Array
Messages of the ticket.
success boolean
Indicate if the API request was successful.
errors string Array
List of errors with the API call.
Example +
+{
+  "messages": [
+    {
+      "message": "string",
+      "name": "string",
+      "profile": "string",
+      "time": "September 29, 2026 - 18:00",
+      "myself": true
+    }
+  ],
+  "success": true,
+  "errors": [
+    "string"
+  ]
+}
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
SupportTicketMessage Model - A message in a support ticket.
message string
HTML body of the message.
name string
Name of the author.
profile string
URL of the profile image of the author.
time string
example: September 29, 2026 - 18:00

Time the message was sent.
myself boolean
True if you wrote the message.
Example +
+{
+  "message": "string",
+  "name": "string",
+  "profile": "string",
+  "time": "September 29, 2026 - 18:00",
+  "myself": true
+}
+
+

401 Authentication Error

+ + + + + + + + + +
UnauthorizedError Model - Unauthorized response from the API. Key is missing, invalid, or timestamp is too old for hash.
www_authenticate string
Header
diff --git a/01 Cloud Platform/99 API Reference/16 Support/03 Read Support Ticket/99 Examples.php b/01 Cloud Platform/99 API Reference/16 Support/03 Read Support Ticket/99 Examples.php new file mode 100644 index 0000000000..f7195589a1 --- /dev/null +++ b/01 Cloud Platform/99 API Reference/16 Support/03 Read Support Ticket/99 Examples.php @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/QuantConnect-Platform-2.0.0.yaml b/QuantConnect-Platform-2.0.0.yaml index 43f73a5e5a..6ead106a65 100644 --- a/QuantConnect-Platform-2.0.0.yaml +++ b/QuantConnect-Platform-2.0.0.yaml @@ -2119,6 +2119,84 @@ paths: "401": $ref: '#/components/responses/UnauthorizedErrorResponse' operationId: listDataIssues + /organizations/support/tickets/create: + post: + tags: + - 01 Cloud Platform + - 99 API Reference + - 16 Support + - 01 Create Support Ticket + summary: Open a new support ticket or comment on an existing ticket. + description: To open a new ticket, provide the subject and message properties. Each new ticket uses one ticket from the quota of your support seat. To update an existing ticket with a comment, provide the hash of the ticket and the message. A comment on a closed ticket opens the ticket again, unless you set close to true. You can attach a project, backtest, live deployment, or AI conversation only when you open a new ticket. When you attach any of them, you give the QuantConnect Support Staff permission to view your project and all its libraries. When you comment on a ticket, the endpoint ignores these properties. You must have a support seat in the organization to use this endpoint. + requestBody: + description: The organization, the ticket to comment on or the subject of a new ticket, and the message. + content: + application/json: + schema: + $ref: '#/components/schemas/CreateSupportTicketRequest' + required: true + responses: + "200": + description: The Id of the ticket. + content: + application/json: + schema: + $ref: '#/components/schemas/CreateSupportTicketResponse' + "401": + $ref: '#/components/responses/UnauthorizedErrorResponse' + operationId: createSupportTicket + /organizations/support/tickets/list: + post: + tags: + - 01 Cloud Platform + - 99 API Reference + - 16 Support + - 02 List Support Tickets + summary: List the support tickets of an organization. + description: The response contains all the open tickets and one page of 10 closed tickets. Use the closedPage property to select the page of closed tickets and the totalClosed property of the response to get the number of closed tickets. + requestBody: + description: The organization and the page of closed tickets to list. + content: + application/json: + schema: + $ref: '#/components/schemas/ListSupportTicketsRequest' + required: true + responses: + "200": + description: The support tickets of the organization and the ticket quota. + content: + application/json: + schema: + $ref: '#/components/schemas/SupportTicketListResponse' + "401": + $ref: '#/components/responses/UnauthorizedErrorResponse' + operationId: listSupportTickets + /organizations/support/tickets/read: + post: + tags: + - 01 Cloud Platform + - 99 API Reference + - 16 Support + - 03 Read Support Ticket + summary: Read the messages of a support ticket. + description: To get the hash of your tickets, use the /organizations/support/tickets/list endpoint. + requestBody: + description: The organization and the ticket to read. + content: + application/json: + schema: + $ref: '#/components/schemas/ReadSupportTicketRequest' + required: true + responses: + "200": + description: The messages of the support ticket. + content: + application/json: + schema: + $ref: '#/components/schemas/SupportTicketMessagesResponse' + "401": + $ref: '#/components/responses/UnauthorizedErrorResponse' + operationId: readSupportTicket components: @@ -9198,6 +9276,237 @@ components: type: string description: URL of the profile image of the member who reported the issue. description: An issue reported on the Data Issues page. + CreateSupportTicketRequest: + type: object + required: + - organizationId + - message + properties: + organizationId: + type: string + description: Id of the organization. + examples: + - 5cad178b20a1d52567b534553413b691 + subject: + type: string + description: Subject of the new ticket. Required to open a new ticket. + example: Live algorithm stopped after a brokerage disconnection + message: + type: string + description: HTML body of the message. + example: My live algorithm stopped at 10:32 ET after the brokerage disconnected. + hash: + type: string + description: Id of the ticket to comment on. To open a new ticket, omit this property. + close: + type: boolean + description: If true, close the ticket after you add the comment. Requires hash. + projectId: + type: integer + description: Optional. Id of one of your projects to attach to the new ticket. To get your project Ids, use the /projects/read endpoint. + backtestId: + type: string + description: Optional. Id of a backtest of the attached project to attach to the new ticket. Requires projectId. To get the backtest Ids of a project, use the /backtests/list endpoint. + deployId: + type: string + description: Optional. Id of a stopped live deployment of the attached project to attach to the new ticket. Requires projectId. To get the deployment Ids of a project, use the /live/list endpoint. + agentDeploymentId: + type: string + description: Optional. Id of an AI conversation of the attached project to attach to the new ticket. Requires projectId. To get the conversation Ids of a project, use the /agents/deployments/list endpoint. + description: Request body to open a support ticket or comment on a ticket. + CreateSupportTicketResponse: + type: object + properties: + hash: + type: string + description: Id of the ticket. + success: + type: boolean + description: Indicate if the API request was successful. + errors: + type: array + description: List of errors with the API call. + items: + type: string + description: Response from opening a support ticket or commenting on a ticket. + ListSupportTicketsRequest: + type: object + required: + - organizationId + properties: + organizationId: + type: string + description: Id of the organization. + examples: + - 5cad178b20a1d52567b534553413b691 + closedPage: + type: integer + description: Index of the page of closed tickets to return, starting at 0. Each page contains 10 tickets. The default value is 0. + example: 0 + description: Request body to list the support tickets of an organization. + SupportTicketListResponse: + type: object + properties: + open: + type: array + description: Open tickets of the organization. + items: + $ref: '#/components/schemas/SupportTicket' + closed: + type: array + description: Closed tickets in the requested page. + items: + $ref: '#/components/schemas/SupportTicket' + closedPage: + type: integer + description: Index of the page of closed tickets in the response. + totalClosed: + type: integer + description: Number of closed tickets of the organization. + allowance: + type: integer + description: Number of tickets your support seat lets you open in a 1-month rolling window. + remaining: + type: integer + description: Number of new tickets you can open now. The value is the allowance minus the tickets you opened in the last month, including closed tickets. + success: + type: boolean + description: Indicate if the API request was successful. + errors: + type: array + description: List of errors with the API call. + items: + type: string + description: Response from listing the support tickets of an organization. + SupportTicket: + type: object + properties: + hash: + type: string + description: Id of the ticket. + title: + type: string + description: Subject of the ticket. + status: + type: string + description: Status of the ticket. + enum: + - Open + - Closed + time: + type: string + description: Time of the last update of the ticket. + example: September 29, 2026 - 18:00 + timeUnix: + type: integer + description: Unix timestamp of the last update of the ticket. + data: + $ref: '#/components/schemas/SupportTicketData' + profiles: + type: array + description: Members who took part in the ticket. + items: + $ref: '#/components/schemas/SupportTicketMember' + description: A support ticket of an organization. + SupportTicketData: + type: object + properties: + external_id: + type: string + description: Id of the ticket in the QuantConnect support system. Mention this Id when you contact our Support Team about the ticket. + example: "215476157330380" + ticket_hash: + type: string + description: Id of the ticket in the API. The value is the same as the hash of the ticket. + status: + type: string + description: Status of the ticket. + enum: + - open + - closed + subject: + type: string + description: Subject of the ticket. + created_time: + type: string + description: Time the ticket was opened, in YYYY-MM-DD HH:MM:SS format. + example: "2026-09-29 18:00:38" + updated_time: + type: string + description: Time of the last update of the ticket, in YYYY-MM-DD HH:MM:SS format. + example: "2026-09-29 18:01:28" + project_id: + type: integer + description: Id of the project attached to the ticket. + backtest_id: + type: string + description: Id of the backtest attached to the ticket. + live_deploy_id: + type: string + description: Id of the live deployment attached to the ticket. + description: Details of a support ticket. + SupportTicketMember: + type: object + properties: + name: + type: string + description: Name of the member. + profile: + type: string + description: URL of the profile image of the member. + description: A member who took part in a support ticket. + ReadSupportTicketRequest: + type: object + required: + - organizationId + - hash + properties: + organizationId: + type: string + description: Id of the organization. + examples: + - 5cad178b20a1d52567b534553413b691 + hash: + type: string + description: Id of the ticket. + description: Request body to read a support ticket. + SupportTicketMessagesResponse: + type: object + properties: + messages: + type: array + description: Messages of the ticket. + items: + $ref: '#/components/schemas/SupportTicketMessage' + success: + type: boolean + description: Indicate if the API request was successful. + errors: + type: array + description: List of errors with the API call. + items: + type: string + description: Response from reading a support ticket. + SupportTicketMessage: + type: object + properties: + message: + type: string + description: HTML body of the message. + name: + type: string + description: Name of the author. + profile: + type: string + description: URL of the profile image of the author. + time: + type: string + description: Time the message was sent. + example: September 29, 2026 - 18:00 + myself: + type: boolean + description: True if you wrote the message. + description: A message in a support ticket. responses: BacktestResponse: description: Backtest read response packet. diff --git a/Resources/qc-api/examples/support.php b/Resources/qc-api/examples/support.php new file mode 100644 index 0000000000..88ca436fde --- /dev/null +++ b/Resources/qc-api/examples/support.php @@ -0,0 +1,78 @@ +

The following example demonstrates checking the ticket quota of your support seat, listing the support tickets of your organization, reading the messages of an open ticket, and opening a new ticket with an attached project, backtest, live deployment, and AI conversation through the cloud API.

+ +
+

+
+### Check Ticket Quota
+# Send a POST request to the /organizations/support/tickets/list endpoint to get the ticket quota and the tickets
+response = post(f'{BASE_URL}/organizations/support/tickets/list', headers=get_headers(), json={
+    "organizationId": ORGANIZATION_ID,
+    "closedPage": 0  # Page of 10 closed tickets, starting at 0
+})
+# Parse the JSON response into python managable dict
+result = response.json()
+# Print the number of new tickets you can open. Every ticket you opened in the last month counts, even if it's closed
+remaining = result['remaining'] if result['success'] else 0
+print(f"Remaining tickets: {remaining} of {result.get('allowance')}")
+
+### List Support Tickets
+# The same response contains the open tickets and the requested page of closed tickets
+open_tickets = result.get('open', [])
+for ticket in open_tickets:
+    print(ticket['data']['external_id'], ticket['status'], ticket['title'])
+
+### Read Support Ticket
+if open_tickets:
+    # Send a POST request to the /organizations/support/tickets/read endpoint to read the first open ticket
+    response = post(f'{BASE_URL}/organizations/support/tickets/read', headers=get_headers(), json={
+        "organizationId": ORGANIZATION_ID,
+        "hash": open_tickets[0]['hash']
+    })
+    # Parse the JSON response into python managable dict
+    result = response.json()
+    # Check if the request was successful and print the messages
+    if result['success']:
+        for message in result['messages']:
+            print(message['time'], message['name'], message['message'])
+
+### Create Support Ticket (only when the quota has tickets left)
+if remaining > 0:
+    # Send a POST request to the /organizations/support/tickets/create endpoint to open a new ticket
+    # Each new ticket uses one ticket from the quota of your support seat
+    response = post(f'{BASE_URL}/organizations/support/tickets/create', headers=get_headers(), json={
+        "organizationId": ORGANIZATION_ID,
+        "subject": "Backtest orders don't fill at the expected price",
+        "message": "<p>The market orders in the attached backtest fill at the previous close.</p>",
+        "projectId": 12345678,             # Optional. Gives the Support Team permission to view the project
+        "backtestId": "1c991c7eec8a7bd3b4bfc7e18a376fa6",  # Optional. Backtest of the attached project
+        "deployId": "L-141106d80de1da9a9f85ea07c06bf7b6",  # Optional. Stopped live deployment of the attached project
+        "agentDeploymentId": "A-3306e3e787f321efadf5c4392861d68d"  # Optional. AI conversation of the attached project
+    })
+    # Parse the JSON response into python managable dict
+    result = response.json()
+    # Keep the hash of the new ticket to find it and comment on it
+    ticket_hash = result['hash']
+
+    ### Get the Id of the New Support Ticket
+    # Send a POST request to the /organizations/support/tickets/list endpoint to find the new ticket
+    response = post(f'{BASE_URL}/organizations/support/tickets/list', headers=get_headers(), json={
+        "organizationId": ORGANIZATION_ID
+    })
+    # Parse the JSON response into python managable dict
+    result = response.json()
+    # Print the Id to mention when you contact our Support Team about the ticket
+    ticket = next(t for t in result['open'] if t['hash'] == ticket_hash)
+    print(f"Ticket Id: {ticket['data']['external_id']}")
+
+    ### Comment on Support Ticket
+    # Send a POST request to the /organizations/support/tickets/create endpoint with the hash to comment on the ticket
+    response = post(f'{BASE_URL}/organizations/support/tickets/create', headers=get_headers(), json={
+        "organizationId": ORGANIZATION_ID,
+        "hash": ticket_hash,
+        "message": "<p>The issue is resolved. Thank you.</p>",
+        "close": True  # Close the ticket after you add the comment
+    })
+    # Parse the JSON response into python managable dict
+    result = response.json()
+    print(result)
+