---
title: "Services (core) — API reference"
description: "Core service endpoints: renew, cancel, auto-renew, add-ons, metrics, SSO, password."
url: https://www.gyrohosting.com/developers/en/api/services-core.html
language: en
openapi: https://www.gyrohosting.com/developers/openapi.json
api_version: 2.30.0
---

# Services (core)

Core service endpoints: renew, cancel, auto-renew, add-ons, metrics, SSO, password.

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


## GET /services

**List services** · operationId `coreGetServices` · scope `Services/GetServices` · OpenAPI fragment: https://www.gyrohosting.com/developers/spec/ops/coreGetServices.json

List services. Service of the calling account (any product line).

Core WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/sahip-olunan-hizmetler).


### 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. Rozet gruplarını alır: bekleyen hem kurulumdakini hem işlemdekini kapsar, iptal ise tamamlananı da içerir. |
| `type` | query | string | Ürün türü süzgeci. |
| `search` | query | string | Hizmet adında ve bağlı alan adında arar. |

### Responses

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

### Examples

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

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/services", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
```
```js
const res = await fetch("https://www.gyrohosting.com/api/v1/client/services", {
  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 /services/{id}

**Get service (path: {id})** · operationId `coreGetService` · scope `Services/GetService` · OpenAPI fragment: https://www.gyrohosting.com/developers/spec/ops/coreGetService.json

Get service (path: {id}). Service of the calling account (any product line).

Core WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/sahip-olunan-hizmetler).


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

### Examples

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

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/services/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/services/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}`);
```


## PATCH /services/{id}

**Update service (path: {id})** · operationId `coreUpdateService` · scope `Services/UpdateService` · OpenAPI fragment: https://www.gyrohosting.com/developers/spec/ops/coreUpdateService.json

Update service (path: {id}). Service of the calling account (any product line).

Core WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/sahip-olunan-hizmetler).


### Parameters

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

### Request body

| Field | Type | Description |
|---|---|---|
| `auto_renew` | boolean | Hizmet bazlı otomatik yenileme. Hesap geneli otomatik ödeme açıkken değiştirilemez. |
| `billing_profile_id` | integer | Fatura profilinin numarası. Sıfır hesabın varsayılanına döner. |

### Responses

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

### Examples

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

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


## POST /services/{id}/renew

**Renew service (path: {id})** · operationId `coreRenewService` · scope `Services/RenewService` · OpenAPI fragment: https://www.gyrohosting.com/developers/spec/ops/coreRenewService.json

Renew service (path: {id}). Service of the calling account (any product line).

**Spends money / creates an invoice.** Money rules apply (AK-40): `"confirm": true` in the body, an `Idempotency-Key` header, account balance only (no stored card), daily limit of paid API operations per account (default 50, operator can override per account/reseller, resets 00:00 Europe/Istanbul); violations answer 422 with `[confirm_required]`, `[idempotency_key_required]`, `[balance_only]` or `[daily_limit]` in the message. 

Core WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/sahip-olunan-hizmetler).


### Parameters

| Field | in | Type | Description |
|---|---|---|---|
| `id` (required) | path | integer |  |
| `Idempotency-Key` (required) | header | string |  |

### Request body

| Field | Type | Description |
|---|---|---|
| `cycle` | string | Yenileme döngüsü. Hizmet detayındaki döngü listesinden seçilir; verilmezse mevcut döngü kullanılır. |

### 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_invoiced, cycle_invalid, not_renewable, renew_blocked_subscription, renew_disabled

### Examples

```bash
curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/services/12345/renew' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"cycle": "string"}'
```
```bash
gyro service renew 12345 --help    # all flags
```
```python
import os, uuid, requests

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


## GET /services/{id}/invoices

**List service invoices (path: {id})** · operationId `coreGetServiceInvoices` · scope `Services/GetServiceInvoices` · OpenAPI fragment: https://www.gyrohosting.com/developers/spec/ops/coreGetServiceInvoices.json

List service invoices (path: {id}). Service of the calling account (any product line).

Core WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/sahip-olunan-hizmetler).


### Parameters

| Field | in | Type | Description |
|---|---|---|---|
| `id` (required) | path | integer |  |
| `limit` | query | integer | En çok satır. En çok 100. |
| `page` | query | integer |  |

### Responses

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

### Examples

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

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/services/12345/invoices", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
```
```js
const res = await fetch("https://www.gyrohosting.com/api/v1/client/services/12345/invoices", {
  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 /services/{id}/addons

**List service addons (path: {id})** · operationId `coreGetServiceAddons` · scope `Services/GetServiceAddons` · OpenAPI fragment: https://www.gyrohosting.com/developers/spec/ops/coreGetServiceAddons.json

List service addons (path: {id}). Service of the calling account (any product line).

Core WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/sahip-olunan-hizmetler).


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

### Examples

```bash
curl -s 'https://www.gyrohosting.com/api/v1/client/services/12345/addons' \
  -H "Authorization: Bearer $GYRO_TOKEN"
```
```bash
gyro core service addon list 12345
```
```python
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/services/12345/addons", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
```
```js
const res = await fetch("https://www.gyrohosting.com/api/v1/client/services/12345/addons", {
  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 /services/{id}/cancellation

**Create cancellation (path: {id})** · operationId `coreCreateCancellation` · scope `Services/CreateCancellation` · OpenAPI fragment: https://www.gyrohosting.com/developers/spec/ops/coreCreateCancellation.json

Create cancellation (path: {id}). Service of the calling account (any product line).

Core WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/sahip-olunan-hizmetler).


### Parameters

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

### Request body

| Field | Type | Description |
|---|---|---|
| `urgency` (required) | string | Ne zaman iptal edilsin: hemen ya da dönem sonunda. |
| `reason` (required) | string | Gerekçe. Beş değerden biri: gerek kalmadı, pahalı, başka yere geçiliyor, özellik eksik ya da diğer. |
| `reason_detail` | string | Serbest açıklama. Gerekçe diğer ise zorunludur. |
| `note` | string | Operatöre not. |

### Responses

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

### Examples

```bash
curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/services/12345/cancellation' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"urgency": "string", "reason": "string", "reason_detail": "string", "note": "string"}'
```
```bash
gyro service cancellation create 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/services/12345/cancellation", headers=h, json={"urgency": "string", "reason": "string", "reason_detail": "string", "note": "string"}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
```
```js
const res = await fetch("https://www.gyrohosting.com/api/v1/client/services/12345/cancellation", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"urgency": "string", "reason": "string", "reason_detail": "string", "note": "string"}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);
```


## DELETE /services/{id}/cancellation

**Revoke cancellation (path: {id})** · operationId `coreRevokeCancellation` · scope `Services/RevokeCancellation` · OpenAPI fragment: https://www.gyrohosting.com/developers/spec/ops/coreRevokeCancellation.json

Revoke cancellation (path: {id}). Service of the calling account (any product line).

Core WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/sahip-olunan-hizmetler).


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

### Examples

```bash
curl -s -X DELETE 'https://www.gyrohosting.com/api/v1/client/services/12345/cancellation' \
  -H "Authorization: Bearer $GYRO_TOKEN"
```
```bash
gyro service cancellation delete 12345
```
```python
import os, uuid, requests

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


## GET /services/{id}/metrics

**Get service metrics (path: {id})** · operationId `coreGetServiceMetrics` · scope `Services/GetServiceMetrics` · OpenAPI fragment: https://www.gyrohosting.com/developers/spec/ops/coreGetServiceMetrics.json

Get service metrics (path: {id}). Service of the calling account (any product line).

Core WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/sahip-olunan-hizmetler).


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

### Examples

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

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/services/12345/metrics", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
```
```js
const res = await fetch("https://www.gyrohosting.com/api/v1/client/services/12345/metrics", {
  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 /services/{id}/metrics/billing

**List service metric billing (path: {id})** · operationId `coreGetServiceMetricBilling` · scope `Services/GetServiceMetricBilling` · OpenAPI fragment: https://www.gyrohosting.com/developers/spec/ops/coreGetServiceMetricBilling.json

List service metric billing (path: {id}). Service of the calling account (any product line).

Core WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/sahip-olunan-hizmetler).


### Parameters

| Field | in | Type | Description |
|---|---|---|---|
| `id` (required) | path | integer |  |
| `page` | query | integer | Kaçıncı sayfa. |
| `limit` | query | integer | Sayfa başına satır. En çok 100. |
| `metric` | query | string | Tek bir ölçüme daraltır. |

### Responses

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

### Examples

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

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/services/12345/metrics/billing", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
```
```js
const res = await fetch("https://www.gyrohosting.com/api/v1/client/services/12345/metrics/billing", {
  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}`);
```


## PATCH /services/{id}/metrics/{key}

**Update service metric (path: {id}, {key})** · operationId `coreUpdateServiceMetric` · scope `Services/UpdateServiceMetric` · OpenAPI fragment: https://www.gyrohosting.com/developers/spec/ops/coreUpdateServiceMetric.json

Update service metric (path: {id}, {key}). Service of the calling account (any product line).

Core WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/sahip-olunan-hizmetler).


### Parameters

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

### Request body

| Field | Type | Description |
|---|---|---|
| `enabled` (required) | boolean | İstenen durum. |

### Responses

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

### Examples

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

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


## GET /services/{id}/dashboard

**Get service dashboard (path: {id})** · operationId `coreGetServiceDashboard` · scope `Services/GetServiceDashboard` · OpenAPI fragment: https://www.gyrohosting.com/developers/spec/ops/coreGetServiceDashboard.json

Get service dashboard (path: {id}). Service of the calling account (any product line).

Core WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/hizmetin-icine-erisim).


### 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**: module_unavailable, not_actionable

### Examples

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

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/services/12345/dashboard", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
```
```js
const res = await fetch("https://www.gyrohosting.com/api/v1/client/services/12345/dashboard", {
  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 /services/{id}/tools

**Get service tools (path: {id})** · operationId `coreGetServiceTools` · scope `Services/GetServiceTools` · OpenAPI fragment: https://www.gyrohosting.com/developers/spec/ops/coreGetServiceTools.json

Get service tools (path: {id}). Service of the calling account (any product line).

Core WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/hizmetin-icine-erisim).


### 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**: tools_not_supported

### Examples

```bash
curl -s 'https://www.gyrohosting.com/api/v1/client/services/12345/tools' \
  -H "Authorization: Bearer $GYRO_TOKEN"
```
```bash
gyro core service tool list 12345
```
```python
import os, uuid, requests

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/services/12345/tools", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
```
```js
const res = await fetch("https://www.gyrohosting.com/api/v1/client/services/12345/tools", {
  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 /services/{id}/tools/{tool}

**Get service tool data (path: {id}, {tool})** · operationId `coreGetServiceToolData` · scope `Services/GetServiceToolData` · OpenAPI fragment: https://www.gyrohosting.com/developers/spec/ops/coreGetServiceToolData.json

Get service tool data (path: {id}, {tool}). Service of the calling account (any product line).

Core WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/hizmetin-icine-erisim).


### Parameters

| Field | in | Type | Description |
|---|---|---|---|
| `id` (required) | path | integer |  |
| `tool` (required) | path | string |  |
| `action` | query | string | Okuma eylemi. Verilmezse aracın varsayılan listesi alınır. |

### Responses

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

### Examples

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

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.get("https://www.gyrohosting.com/api/v1/client/services/12345/tools/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/services/12345/tools/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}`);
```


## POST /services/{id}/tools/{tool}/{action}

**Run service tool action (path: {id}, {tool}, {action})** · operationId `coreRunServiceToolAction` · scope `Services/RunServiceToolAction` · OpenAPI fragment: https://www.gyrohosting.com/developers/spec/ops/coreRunServiceToolAction.json

Run service tool action (path: {id}, {tool}, {action}). Service of the calling account (any product line).

Core WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/hizmetin-icine-erisim).


### Parameters

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

### Request body

| Field | Type | Description |
|---|---|---|
| `current_path` | string |  |
| `file` | string |  |
| `name` | string |  |
| `new_name` | string |  |
| `items` | string |  |

### Responses

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

### Examples

```bash
curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/services/12345/tools/1/reboot' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"current_path": "string", "file": "string", "name": "string", "new_name": "string", "items": "string"}'
```
```bash
gyro core service tool run 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/services/12345/tools/1/reboot", headers=h, json={"current_path": "string", "file": "string", "name": "string", "new_name": "string", "items": "string"}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
```
```js
const res = await fetch("https://www.gyrohosting.com/api/v1/client/services/12345/tools/1/reboot", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"current_path": "string", "file": "string", "name": "string", "new_name": "string", "items": "string"}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);
```


## POST /services/{id}/module-method

**Use service module method (path: {id})** · operationId `coreUseServiceModuleMethod` · scope `Services/UseServiceModuleMethod` · OpenAPI fragment: https://www.gyrohosting.com/developers/spec/ops/coreUseServiceModuleMethod.json

Use service module method (path: {id}). Service of the calling account (any product line).

Core WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/hizmetin-icine-erisim).


### Parameters

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

### Request body

| Field | Type | Description |
|---|---|---|
| `method` (required) | string | Çalıştırılacak metot. Panel özetindeki metot listesinden alınır. |

### Responses

- **200**: Success
- **401**: Missing, invalid or revoked key
- **403**: Key lacks the scope, IP not allowed, or feature disabled
- **404**: not_found
- **422**: invalid_method, method_required, module_unavailable, tool_rejected
- **500**: module_method_failed

### Examples

```bash
curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/services/12345/module-method' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"method": "string"}'
```
```bash
gyro service module-method 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/services/12345/module-method", headers=h, json={"method": "string"}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
```
```js
const res = await fetch("https://www.gyrohosting.com/api/v1/client/services/12345/module-method", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"method": "string"}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);
```


## POST /services/{id}/sso

**Get service sso (path: {id})** · operationId `coreGetServiceSso` · scope `Services/GetServiceSso` · OpenAPI fragment: https://www.gyrohosting.com/developers/spec/ops/coreGetServiceSso.json

Get service sso (path: {id}). Service of the calling account (any product line).

Core WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/hizmetin-icine-erisim).


### 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**: sso_not_supported, tool_rejected
- **500**: sso_failed

### Examples

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

h = {"Authorization": "Bearer " + os.environ["GYRO_TOKEN"]}
r = requests.post("https://www.gyrohosting.com/api/v1/client/services/12345/sso", headers=h, timeout=60)
r.raise_for_status()
print(r.json()["data"])
```
```js
const res = await fetch("https://www.gyrohosting.com/api/v1/client/services/12345/sso", {
  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 /services/{id}/password

**Change service password (path: {id})** · operationId `coreChangeServicePassword` · scope `Services/ChangeServicePassword` · OpenAPI fragment: https://www.gyrohosting.com/developers/spec/ops/coreChangeServicePassword.json

Change service password (path: {id}). Service of the calling account (any product line).

Core WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/hizmetin-icine-erisim).


### Parameters

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

### Request body

| Field | Type | Description |
|---|---|---|
| `password` (required) | string | Yeni panel parolası. Operatörün asgari uzunluğunu karşılamalıdır. |

### Responses

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

### Examples

```bash
curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/services/12345/password' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"password": "string"}'
```
```bash
gyro service password 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/services/12345/password", headers=h, json={"password": "string"}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
```
```js
const res = await fetch("https://www.gyrohosting.com/api/v1/client/services/12345/password", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"password": "string"}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);
```
