---
title: "Orders — API reference"
description: "Preview (quote) and place orders for any product."
url: https://www.gyrohosting.com/developers/en/api/orders.html
language: en
openapi: https://www.gyrohosting.com/developers/openapi.json
api_version: 2.30.0
---

# Orders

Preview (quote) and place orders for any product.

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


## GET /orders

**List orders** · operationId `coreGetOrders` · scope `Orders/GetOrders` · OpenAPI fragment: https://www.gyrohosting.com/developers/spec/ops/coreGetOrders.json

List orders. Orders of the calling account.

Core WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/musteri-olarak-siparis).


### 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: bekliyor, işlemde, etkin ya da iptal. |

### Responses

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

### Examples

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

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

**Create order** · operationId `coreCreateOrder` · scope `Orders/CreateOrder` · OpenAPI fragment: https://www.gyrohosting.com/developers/spec/ops/coreCreateOrder.json

Create order. Orders of the calling account.

**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/musteri-olarak-siparis).


### Parameters

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

### Request body

| Field | Type | Description |
|---|---|---|
| `terms` (required) | boolean | Şartların kabulü. Doğru gönderilmelidir. |
| `items` (required) | string | items[]Sipariş satırları. Birden yirmiye kadar. |
| `product_id` (required) | integer | Sipariş edilecek ürünün numarası. |
| `cycle` (required) | string | Ödeme döngüsü. Ürünün fiyatlı döngülerinden biri olmalıdır. |
| `quantity` | integer | Adet. Yalnız ürün çoklu alıma izin veriyorsa dikkate alınır. |
| `addons` | object | Seçilen ek hizmetler. Ek hizmet numarasını seçenek numarasına eşler. Ürünün ilk dönemi ücretsiz dahil ettiği ek hizmet gönderilmese de siparişe eklenir. İlk dönem tutarı 0 olur, yenilemeler ek hizmet fiyatından faturalanır ve siparişten çıkarılamaz. |
| `addons_qty` | object | Adetli ek hizmetlerin sayısı. |
| `requirements` | object | Ürünün sorduğu alanların yanıtları. Zorunlu işaretlenen her alan gönderilmelidir. |
| `requirement_files` | object | Dosya isteyen alanların içeriği. Kodlanmış içerik olarak gönderilir; adres kabul edilmez. |
| `metrics` | string | Açılacak ölçümlerin numaraları. |
| `domain` | object | Satırın alan adı ekseni. Seçim, ad, alt alan adı kökü ve lisans alanlarını taşır. |
| `coupons` | string | Kupon kodları. Operatörün kendiliğinden uygulanan kuponları da katılır. |
| `billing_profile_id` | integer | Fatura profilinin numarası. |
| `notes` | string | Sipariş notu. Bin karakterden uzunu kırpılır. |
| `payment` | object | paymentÖdeme kaynağı. Toplam sıfırın üstündeyse zorunludur. |
| `method` | string | Ödeme yolu: hesap bakiyesi ya da kayıtlı kart. |
| `card_id` | integer | Çekilecek kartın numarası. Verilmezse hesabın varsayılan kartı çekilir. |
| `project_id` | integer | Optional project for the new service(s) (0 = default project). Checked before the order: unknown id = 404 `project_not_found` (GyroAPI order endpoints) or 422 `checkout_blocked` with `[project_not_found]` (POST /orders). |

### Responses

- **200**: Success
- **401**: Missing, invalid or revoked key
- **403**: Key lacks the scope, IP not allowed, or feature disabled
- **422**: card_not_chargeable, checkout_blocked, insufficient_balance, no_stored_card, payment_method_restricted, terms_required, verification_required
- **404**: not_found

### Examples

```bash
curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/orders' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"terms": true, "items": "string", "product_id": 1, "cycle": "string", "quantity": 1, "addons": {}, "addons_qty": {}, "requirements": {}, "requirement_files": {}, "metrics": "string", "domain": {}, "coupons": "string", "billing_profile_id": 1, "notes": "string", "payment": {}, "method": "string", "card_id": 1, "project_id": 1}'
```
```bash
gyro order create --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/orders", headers=h, json={"terms": True, "items": "string", "product_id": 1, "cycle": "string", "quantity": 1, "addons": {}, "addons_qty": {}, "requirements": {}, "requirement_files": {}, "metrics": "string", "domain": {}, "coupons": "string", "billing_profile_id": 1, "notes": "string", "payment": {}, "method": "string", "card_id": 1, "project_id": 1}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
```
```js
const res = await fetch("https://www.gyrohosting.com/api/v1/client/orders", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
    "Idempotency-Key": crypto.randomUUID(),
  },
  body: JSON.stringify({"terms": true, "items": "string", "product_id": 1, "cycle": "string", "quantity": 1, "addons": {}, "addons_qty": {}, "requirements": {}, "requirement_files": {}, "metrics": "string", "domain": {}, "coupons": "string", "billing_profile_id": 1, "notes": "string", "payment": {}, "method": "string", "card_id": 1, "project_id": 1}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);
```


## POST /orders/preview

**Preview order** · operationId `corePreviewOrder` · scope `Orders/PreviewOrder` · OpenAPI fragment: https://www.gyrohosting.com/developers/spec/ops/corePreviewOrder.json

Preview order. Orders of the calling account.

Core WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/musteri-olarak-siparis).


### Request body

| Field | Type | Description |
|---|---|---|
| `items` (required) | string | items[]Sipariş satırları. Birden yirmiye kadar; şekli sipariş ucuyla aynıdır. |
| `product_id` (required) | integer | Sipariş edilecek ürünün numarası. |
| `cycle` (required) | string | Ödeme döngüsü. Ürünün fiyatlı döngülerinden biri olmalıdır. |
| `quantity` | integer | Adet. Yalnız ürün çoklu alıma izin veriyorsa dikkate alınır. |
| `addons` | object | Seçilen ek hizmetler. Ek hizmet numarasını seçenek numarasına eşler. Ürünün ilk dönemi ücretsiz dahil ettiği ek hizmet gönderilmese de siparişe eklenir. İlk dönem tutarı 0 olur, yenilemeler ek hizmet fiyatından faturalanır ve siparişten çıkarılamaz. |
| `addons_qty` | object | Adetli ek hizmetlerin sayısı. |
| `requirements` | object | Ürünün sorduğu alanların yanıtları. Zorunlu işaretlenen her alan gönderilmelidir. |
| `requirement_files` | object | Dosya isteyen alanların içeriği. Kodlanmış içerik olarak gönderilir; adres kabul edilmez. |
| `metrics` | string | Açılacak ölçümlerin numaraları. |
| `domain` | object | Satırın alan adı ekseni. Seçim, ad, alt alan adı kökü ve lisans alanlarını taşır. |
| `coupons` | string | Denenecek kupon kodları. |
| `billing_profile_id` | integer | Fatura profilinin numarası. Vergi bağlamını belirler; verilmezse varsayılan profil, hesapta kayıtlı profil yoksa hesabın ülkesi kullanılır. |
| `payment` | object | Ödeme bloğu. Verilirse yöntemin komisyonu toplama eklenir; bakiye yeterliliği burada denetlenmez. |
| `method` | string |  |
| `card_id` | string |  |

### Responses

- **200**: Success
- **401**: Missing, invalid or revoked key
- **403**: Key lacks the scope, IP not allowed, or feature disabled
- **422**: coupon_invalid, cycle_invalid, domain_acquisition_not_here, items_required, product_not_orderable, requirement_missing
- **404**: not_found

### Examples

```bash
curl -s -X POST 'https://www.gyrohosting.com/api/v1/client/orders/preview' \
  -H "Authorization: Bearer $GYRO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"items": "string", "product_id": 1, "cycle": "string", "quantity": 1, "addons": {}, "addons_qty": {}, "requirements": {}, "requirement_files": {}, "metrics": "string", "domain": {}, "coupons": "string", "billing_profile_id": 1, "payment": {}, "method": "string", "card_id": "string"}'
```
```bash
gyro order preview --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/orders/preview", headers=h, json={"items": "string", "product_id": 1, "cycle": "string", "quantity": 1, "addons": {}, "addons_qty": {}, "requirements": {}, "requirement_files": {}, "metrics": "string", "domain": {}, "coupons": "string", "billing_profile_id": 1, "payment": {}, "method": "string", "card_id": "string"}, timeout=60)
r.raise_for_status()
print(r.json()["data"])
```
```js
const res = await fetch("https://www.gyrohosting.com/api/v1/client/orders/preview", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.GYRO_TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"items": "string", "product_id": 1, "cycle": "string", "quantity": 1, "addons": {}, "addons_qty": {}, "requirements": {}, "requirement_files": {}, "metrics": "string", "domain": {}, "coupons": "string", "billing_profile_id": 1, "payment": {}, "method": "string", "card_id": "string"}),
});
const { data, error } = await res.json();
if (!res.ok) throw new Error(`${error.code}: ${error.message}`);
```


## GET /orders/{id}

**Get order (path: {id})** · operationId `coreGetOrder` · scope `Orders/GetOrder` · OpenAPI fragment: https://www.gyrohosting.com/developers/spec/ops/coreGetOrder.json

Get order (path: {id}). Orders of the calling account.

Core WISECP client endpoint (Turkish reference: https://dev.wisecp.com/tr/musteri-olarak-siparis).


### 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/orders/12345' \
  -H "Authorization: Bearer $GYRO_TOKEN"
```
```bash
gyro order get 12345
```
```python
import os, uuid, requests

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