---
title: "List Support Tickets"
canonical: https://www.quantconnect.com/docs/v2/cloud-platform/api-reference/support/list-support-tickets
markdown: https://www.quantconnect.com/docs/v2/cloud-platform/api-reference/support/list-support-tickets.md
language: python
source: https://github.com/QuantConnect/Documentation/tree/master/01%20Cloud%20Platform/99%20API%20Reference/16%20Support/03%20List%20Support%20Tickets
modified: 2026-11-14
index: https://www.quantconnect.com/llms.txt
---

# List Support Tickets

[Documentation](https://www.quantconnect.com/docs/v2.md) > [Cloud Platform](https://www.quantconnect.com/docs/v2/cloud-platform.md) > [API Reference](https://www.quantconnect.com/docs/v2/cloud-platform/api-reference.md) > [Support](https://www.quantconnect.com/docs/v2/cloud-platform/api-reference/support.md) > List Support Tickets

> Code examples are shown in Python. Append `?lang=csharp` to this URL for the C# version of this page.

## Introduction

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.

## Request

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 }` |

## Responses

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 |

## Examples

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.

```
from base64 import b64encode
from hashlib import sha256
from time import time
from requests import get, post
BASE_URL = 'https://www.quantconnect.com/api/v2/'

# You need to replace these with your actual credentials.
# You can request your credentials at https://www.quantconnect.com/settings/
# You can find our organization ID at https://www.quantconnect.com/organization/
USER_ID = 0
API_TOKEN = '____'
ORGANIZATION_ID = '____'

def get_headers():
    # Get timestamp
    timestamp = f'{int(time())}'
    time_stamped_token = f'{API_TOKEN}:{timestamp}'.encode('utf-8')

    # Get hased API token
    hashed_token = sha256(time_stamped_token).hexdigest()
    authentication = f'{USER_ID}:{hashed_token}'.encode('utf-8')
    authentication = b64encode(authentication).decode('ascii')

    # Create headers dictionary.
    return {
        'Authorization': f'Basic {authentication}',
        'Timestamp': timestamp
    }

# Authenticate to verify credentials
response = post(f'{BASE_URL}/authenticate', headers = get_headers())
print(response.json())

# --------------------

### 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)
```
