---
title: "Siparişler — API başvurusu"
description: "Her ürün için teklif ve sipariş."
url: https://www.gyrohosting.com/developers/tr/api/orders.html
language: tr
openapi: https://www.gyrohosting.com/developers/openapi.json
api_version: 2.30.0
---

# Siparişler

Her ürün için teklif ve sipariş.

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


## GET /orders

**Siparişleri Listeleme** · operationId `coreGetOrders` · scope `Orders/GetOrders` · OpenAPI fragment: https://www.gyrohosting.com/developers/spec/ops/coreGetOrders.json

Hesabın siparişlerini en yeniden başlayarak döndürür. — anahtarın sahibi


### Parametreler

| Alan | in | Tür | Açıklama |
|---|---|---|---|
| `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. |

### Yanıtlar

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

### Örnekler

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

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

**Para harcar / fatura oluşturur.** Para kuralları (AK-40): gövdede `"confirm": true`, `Idempotency-Key` başlığı, yalnız bakiye (kayıtlı kart yok), hesap başına günlük ücretli işlem sınırı (varsayılan 50, hesap/bayi bazında değiştirilebilir, 00:00 TR'de sıfırlanır). Siparişi verir ve aynı çağrıda tahsil eder. — bakiye ya da kayıtlı kart


### Parametreler

| Alan | in | Tür | Açıklama |
|---|---|---|---|
| `Idempotency-Key` (zorunlu) | header | string |  |

### İstek gövdesi

| Alan | Tür | Açıklama |
|---|---|---|
| `terms` (zorunlu) | boolean | Şartların kabulü. Doğru gönderilmelidir. |
| `items` (zorunlu) | string | items[]Sipariş satırları. Birden yirmiye kadar. |
| `product_id` (zorunlu) | integer | Sipariş edilecek ürünün numarası. |
| `cycle` (zorunlu) | 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). |

### Yanıtlar

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

### Örnekler

```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    # tüm seçenekler
```
```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

**Siparişi Fiyatlandırma** · operationId `corePreviewOrder` · scope `Orders/PreviewOrder` · OpenAPI fragment: https://www.gyrohosting.com/developers/spec/ops/corePreviewOrder.json

Sipariş gövdesini fiyatlandırır ve tek satır bile yazmaz. — hiçbir şey yazılmaz


### İstek gövdesi

| Alan | Tür | Açıklama |
|---|---|---|
| `items` (zorunlu) | string | items[]Sipariş satırları. Birden yirmiye kadar; şekli sipariş ucuyla aynıdır. |
| `product_id` (zorunlu) | integer | Sipariş edilecek ürünün numarası. |
| `cycle` (zorunlu) | 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 |  |

### Yanıtlar

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

### Örnekler

```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    # tüm seçenekler
```
```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}

**Sipariş Detayını Okuma** · operationId `coreGetOrder` · scope `Orders/GetOrder` · OpenAPI fragment: https://www.gyrohosting.com/developers/spec/ops/coreGetOrder.json

Siparişin satırlarını, doğan hizmetlerini ve faturasını döndürür. — anahtarın sahibi


### Parametreler

| Alan | in | Tür | Açıklama |
|---|---|---|---|
| `id` (zorunlu) | path | integer |  |

### Yanıtlar

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

### Örnekler

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