---
title: "Support tickets — API reference"
description: "Departments, open, reply, close, reopen, rate, attachments."
url: https://www.gyrohosting.com/developers/en/api/support-tickets.html
language: en
openapi: https://www.gyrohosting.com/developers/openapi.json
api_version: 2.30.0
---

# Support tickets

Departments, open, reply, close, reopen, rate, attachments.

Base URL: `https://www.gyrohosting.com/api/v1/client` · OpenAPI: https://www.gyrohosting.com/developers/openapi.json


## GET /tickets/departments

**List ticket departments** · operationId `coreGetTicketDepartments` · scope `Tickets/GetTicketDepartments` · OpenAPI fragment: https://www.gyrohosting.com/developers/spec/ops/coreGetTicketDepartments.json

List ticket departments. Support ticket of the calling account.

Core WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/destek-isteme).


### Responses

- **200**: Success
- **401**: Missing, invalid or revoked key
- **403**: Key lacks the scope, IP not allowed, or feature disabled
- **422**: ticket_system_disabled

### Examples

```bash
curl -s 'https://www.gyrohosting.com/api/v1/client/tickets/departments' \
  -H "Authorization: Bearer $GYRO_TOKEN"
```
```bash
gyro ticket department list
```
```python
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/tickets/departments", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
```
```js
const res = await fetch("https://www.gyrohosting.com/api/v1/client/tickets/departments", {
  method: "GET",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
  },
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);
```


## GET /tickets/access-groups

**List ticket access groups** · operationId `coreGetTicketAccessGroups` · scope `Tickets/GetTicketAccessGroups` · OpenAPI fragment: https://www.gyrohosting.com/developers/spec/ops/coreGetTicketAccessGroups.json

List ticket access groups. Support ticket of the calling account.

Core WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/destek-isteme).


### Responses

- **200**: Success
- **401**: Missing, invalid or revoked key
- **403**: Key lacks the scope, IP not allowed, or feature disabled
- **422**: ticket_system_disabled

### Examples

```bash
curl -s 'https://www.gyrohosting.com/api/v1/client/tickets/access-groups' \
  -H "Authorization: Bearer $GYRO_TOKEN"
```
```bash
gyro ticket access-group list
```
```python
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/tickets/access-groups", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
```
```js
const res = await fetch("https://www.gyrohosting.com/api/v1/client/tickets/access-groups", {
  method: "GET",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
  },
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);
```


## GET /tickets

**List tickets** · operationId `coreGetTickets` · scope `Tickets/GetTickets` · OpenAPI fragment: https://www.gyrohosting.com/developers/spec/ops/coreGetTickets.json

List tickets. Support ticket of the calling account.

Core WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/destek-isteme).


### Parameters

| Field | in | Type | Description |
|---|---|---|---|
| `page` | query | integer | Kaçıncı sayfa. |
| `limit` | query | integer | Sayfa başına satır. En çok 100. |
| `status` | query | string | Durum süzgeci. Müşteriye gösterilen durum sözlüğünü kabul eder. |
| `department` | query | integer | Departman süzgeci. |
| `search` | query | string | Konu, referans ve departman adında arar. |

### Responses

- **200**: Success
- **401**: Missing, invalid or revoked key
- **403**: Key lacks the scope, IP not allowed, or feature disabled
- **422**: status_invalid, ticket_system_disabled

### Examples

```bash
curl -s 'https://www.gyrohosting.com/api/v1/client/tickets' \
  -H "Authorization: Bearer $GYRO_TOKEN"
```
```bash
gyro ticket list
```
```python
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/tickets", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
```
```js
const res = await fetch("https://www.gyrohosting.com/api/v1/client/tickets", {
  method: "GET",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
  },
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);
```


## POST /tickets

**Create ticket** · operationId `coreCreateTicket` · scope `Tickets/CreateTicket` · OpenAPI fragment: https://www.gyrohosting.com/developers/spec/ops/coreCreateTicket.json

Create ticket. Support ticket of the calling account.

Core WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/destek-isteme).

**Limit increase**: account limits (GET /cloud/account/limits) are raised through a ticket: department_id 3, subject `Limit increase: <limit_key>`, message with the requested number and what you are building. CLI: `gyro ticket create --department-id 3 --subject ... --message ...`.


### Request body

| Field | Type | Description |
|---|---|---|
| `department_id` (required) | integer | Departmanın numarası. |
| `subject` (required) | string | Konu. |
| `message` (required) | string | Açılış mesajı. En az beş karakter; düz metindir ve işaretleme ayıklanır. |
| `priority` | integer | Öncelik. Verilmezse orta alınır. |
| `service_id` | integer | Talebi bir hizmete bağlar. |
| `custom_fields` | object | Departman alanlarının yanıtları. Alan numarasını değere eşler; kutu tipli alanlar dizi alır. |
| `credentials` | string | Erişim bilgileri. Her satır bir grup numarası ve alan haritası taşır; mesaja şifreli işlenir. |
| `attachments` | array<any> | Ekler. Kodlanmış içerik olarak gönderilir; adres reddedilir. |
| `encrypt_message` | boolean | Mesaj gövdesi şifreli saklansın mı. |

### Responses

- **200**: Success
- **401**: Missing, invalid or revoked key
- **403**: Key lacks the scope, IP not allowed, or feature disabled
- **404**: not_found
- **422**: access_group_invalid, attachment_invalid, credential_field_required, custom_field_required, department_invalid, message_too_short, subject_required, ticket_rejected, ticket_system_disabled

### Examples

```bash
curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/tickets' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"department_id": 1, "subject": "string", "message": "string", "priority": 1, "service_id": 1, "custom_fields": {}, "credentials": "string", "attachments": [null], "encrypt_message": true}'
```
```bash
gyro ticket create --help    # all flags
```
```python
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/tickets", headers=h, json={"department_id": 1, "subject": "string", "message": "string", "priority": 1, "service_id": 1, "custom_fields": {}, "credentials": "string", "attachments": [None], "encrypt_message": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
```
```js
const res = await fetch("https://www.gyrohosting.com/api/v1/client/tickets", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"department_id": 1, "subject": "string", "message": "string", "priority": 1, "service_id": 1, "custom_fields": {}, "credentials": "string", "attachments": [null], "encrypt_message": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);
```


## GET /tickets/{id}

**Get ticket (path: {id})** · operationId `coreGetTicket` · scope `Tickets/GetTicket` · OpenAPI fragment: https://www.gyrohosting.com/developers/spec/ops/coreGetTicket.json

Get ticket (path: {id}). Support ticket of the calling account.

Core WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/destek-isteme).


### Parameters

| Field | in | Type | Description |
|---|---|---|---|
| `id` (required) | path | integer |  |

### Responses

- **200**: Success
- **401**: Missing, invalid or revoked key
- **403**: Key lacks the scope, IP not allowed, or feature disabled
- **404**: not_found
- **422**: ticket_system_disabled

### Examples

```bash
curl -s 'https://www.gyrohosting.com/api/v1/client/tickets/12345' \
  -H "Authorization: Bearer $GYRO_TOKEN"
```
```bash
gyro ticket get 12345
```
```python
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/tickets/12345", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
```
```js
const res = await fetch("https://www.gyrohosting.com/api/v1/client/tickets/12345", {
  method: "GET",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
  },
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);
```


## POST /tickets/{id}/reply

**Reply ticket (path: {id})** · operationId `coreReplyTicket` · scope `Tickets/ReplyTicket` · OpenAPI fragment: https://www.gyrohosting.com/developers/spec/ops/coreReplyTicket.json

Reply ticket (path: {id}). Support ticket of the calling account.

Core WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/destek-isteme).


### Parameters

| Field | in | Type | Description |
|---|---|---|---|
| `id` (required) | path | integer |  |

### Request body

| Field | Type | Description |
|---|---|---|
| `message` (required) | string | Yanıt metni. En az beş karakter. |
| `credentials` | string | Erişim bilgileri. |
| `attachments` | array<any> | Ekler. |
| `encrypt_message` | boolean | Gövde şifreli saklansın mı. |

### Responses

- **200**: Success
- **401**: Missing, invalid or revoked key
- **403**: Key lacks the scope, IP not allowed, or feature disabled
- **404**: not_found
- **422**: access_group_invalid, attachment_invalid, message_too_short, reply_rejected, ticket_not_open, ticket_system_disabled

### Examples

```bash
curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/tickets/12345/reply' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"message": "string", "credentials": "string", "attachments": [null], "encrypt_message": true}'
```
```bash
gyro ticket reply 12345 --help    # all flags
```
```python
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/tickets/12345/reply", headers=h, json={"message": "string", "credentials": "string", "attachments": [None], "encrypt_message": True}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
```
```js
const res = await fetch("https://www.gyrohosting.com/api/v1/client/tickets/12345/reply", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"message": "string", "credentials": "string", "attachments": [null], "encrypt_message": true}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);
```


## POST /tickets/{id}/close

**Close ticket (path: {id})** · operationId `coreCloseTicket` · scope `Tickets/CloseTicket` · OpenAPI fragment: https://www.gyrohosting.com/developers/spec/ops/coreCloseTicket.json

Close ticket (path: {id}). Support ticket of the calling account.

Core WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/destek-isteme).


### Parameters

| Field | in | Type | Description |
|---|---|---|---|
| `id` (required) | path | integer |  |

### Request body

| Field | Type | Description |
|---|---|---|
| `rating` | integer | Kapatırken verilen puan. Yalnız talep henüz puansızken işlenir. |

### Responses

- **200**: Success
- **401**: Missing, invalid or revoked key
- **403**: Key lacks the scope, IP not allowed, or feature disabled
- **404**: not_found
- **422**: ticket_system_disabled

### Examples

```bash
curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/tickets/12345/close' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"rating": 1}'
```
```bash
gyro ticket close 12345 --help    # all flags
```
```python
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/tickets/12345/close", headers=h, json={"rating": 1}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
```
```js
const res = await fetch("https://www.gyrohosting.com/api/v1/client/tickets/12345/close", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"rating": 1}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);
```


## POST /tickets/{id}/reopen

**Reopen ticket (path: {id})** · operationId `coreReopenTicket` · scope `Tickets/ReopenTicket` · OpenAPI fragment: https://www.gyrohosting.com/developers/spec/ops/coreReopenTicket.json

Reopen ticket (path: {id}). Support ticket of the calling account.

Core WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/destek-isteme).


### Parameters

| Field | in | Type | Description |
|---|---|---|---|
| `id` (required) | path | integer |  |

### Responses

- **200**: Success
- **401**: Missing, invalid or revoked key
- **403**: Key lacks the scope, IP not allowed, or feature disabled
- **404**: not_found
- **422**: ticket_locked, ticket_system_disabled

### Examples

```bash
curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/tickets/12345/reopen' \
  -H "Authorization: Bearer $GYRO_TOKEN"
```
```bash
gyro ticket reopen 12345
```
```python
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/tickets/12345/reopen", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
```
```js
const res = await fetch("https://www.gyrohosting.com/api/v1/client/tickets/12345/reopen", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
  },
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);
```


## POST /tickets/{id}/rating

**Rate ticket (path: {id})** · operationId `coreRateTicket` · scope `Tickets/RateTicket` · OpenAPI fragment: https://www.gyrohosting.com/developers/spec/ops/coreRateTicket.json

Rate ticket (path: {id}). Support ticket of the calling account.

Core WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/destek-isteme).


### Parameters

| Field | in | Type | Description |
|---|---|---|---|
| `id` (required) | path | integer |  |

### Request body

| Field | Type | Description |
|---|---|---|
| `rating` (required) | integer | Verilen puan. Birden beşe. |

### Responses

- **200**: Success
- **401**: Missing, invalid or revoked key
- **403**: Key lacks the scope, IP not allowed, or feature disabled
- **404**: not_found
- **422**: already_rated, rating_invalid, ticket_system_disabled

### Examples

```bash
curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/tickets/12345/rating' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"rating": 1}'
```
```bash
gyro ticket rating 12345 --help    # all flags
```
```python
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/tickets/12345/rating", headers=h, json={"rating": 1}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
```
```js
const res = await fetch("https://www.gyrohosting.com/api/v1/client/tickets/12345/rating", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"rating": 1}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);
```


## POST /tickets/{id}/replies/{rid}/rating

**Rate ticket reply (path: {id}, {rid})** · operationId `coreRateTicketReply` · scope `Tickets/RateTicketReply` · OpenAPI fragment: https://www.gyrohosting.com/developers/spec/ops/coreRateTicketReply.json

Rate ticket reply (path: {id}, {rid}). Support ticket of the calling account.

Core WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/destek-isteme).


### Parameters

| Field | in | Type | Description |
|---|---|---|---|
| `id` (required) | path | integer |  |
| `rid` (required) | path | integer |  |

### Request body

| Field | Type | Description |
|---|---|---|
| `rating` (required) | integer | Verilen puan. Birden beşe. |

### Responses

- **200**: Success
- **401**: Missing, invalid or revoked key
- **403**: Key lacks the scope, IP not allowed, or feature disabled
- **404**: not_found
- **422**: already_rated, rating_invalid, ticket_system_disabled

### Examples

```bash
curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/tickets/12345/replies/1/rating' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"rating": 1}'
```
```bash
gyro ticket reply rating 12345 --help    # all flags
```
```python
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/tickets/12345/replies/1/rating", headers=h, json={"rating": 1}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
```
```js
const res = await fetch("https://www.gyrohosting.com/api/v1/client/tickets/12345/replies/1/rating", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"rating": 1}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);
```


## GET /tickets/{id}/attachments/{aid}

**Get ticket attachment (path: {id}, {aid})** · operationId `coreGetTicketAttachment` · scope `Tickets/GetTicketAttachment` · OpenAPI fragment: https://www.gyrohosting.com/developers/spec/ops/coreGetTicketAttachment.json

Get ticket attachment (path: {id}, {aid}). Support ticket of the calling account.

Core WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/destek-isteme).


### Parameters

| Field | in | Type | Description |
|---|---|---|---|
| `id` (required) | path | integer |  |
| `aid` (required) | path | integer |  |

### Responses

- **200**: Success
- **401**: Missing, invalid or revoked key
- **403**: Key lacks the scope, IP not allowed, or feature disabled
- **404**: not_found
- **422**: ticket_system_disabled

### Examples

```bash
curl -s 'https://www.gyrohosting.com/api/v1/client/tickets/12345/attachments/1' \
  -H "Authorization: Bearer $GYRO_TOKEN"
```
```bash
gyro ticket attachment get 12345
```
```python
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/tickets/12345/attachments/1", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
```
```js
const res = await fetch("https://www.gyrohosting.com/api/v1/client/tickets/12345/attachments/1", {
  method: "GET",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
  },
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);
```
