REST API · OpenAPI 3.1

API Tier1.shop

Servisinizi veya AI ajanınızı bağlayın: kayıtlar, ücretler, siparişler, linkler ve ödeme durumu tek bir API üzerinden. Müşteri verilerine yalnızca iptal edilebilir anahtarları aracılığıyla erişilebilir.

API Temel URL
https://tier1.shop/wp-json/tier1-api/v1

Başlangıç

Hesap zaten mevcut

Anahtar oluştur

Aç «API ve Bağlantılar» panelinizde veya şuradan e-posta yoluyla bir anahtar oluşturma bağlantısı isteyin: POST /api-key-requests.

Yeni Müşteri

E-postayı onayla

Aracı şurayı çağırır POST /registration-intents. Adresinizi onaylamak için e-postadaki bağlantıya tıklayın; hesap ve anahtar ancak o zaman oluşturulur. Telegram daha sonra eklenebilir.

İlk sipariş — beş adım

  1. Bir plan seçin.GET /catalog/tariffs ve GET /balances güncel fiyatları ve uygunluğu gösterecektir.
  2. Detayları onaylaÖdeme işlemini oluşturmadan önce miktar, URL'ler, anchor metinleri ve para birimi konusunda temsilciyle anlaşın.
  3. Ödeme bağlantısını al.POST /checkout-intents tek seferlik bir URL döndürecektir; ödeme yalnızca web sitesi üzerinden işlenir.
  4. Ödemeyi doğrulayın.GET /checkout-intents/{id} durumu ve WooCommerce sipariş numarasını gösterecektir.
  5. Linkleri aç.GET /orders/by-wc/{id} dahili siparişleri bulacaktır; placement_progress yürütme durumunu gösterecektir.
Önemli: e-postadaki satın alma numarası ile hesap sipariş kimliği farklı değerlerdir. E-posta numarası için şunları kullanın /orders/by-wc/{id}, dahili kimlik için şunu kullanın /orders/{id}.

Yetkilendirme

Anahtarı HTTPS başlığında iletin. URL'ye, genel istemlere veya günlüklere eklemeyin. Anahtar hesap üzerinden iptal edilebilir; tam metni yalnızca oluşturma sırasında gösterilir.

Authorization: Bearer t1c_sk_YOUR_KEY
Temel izinler (kapsamlar)8
profile:readProfil ve Bağlantı Durumu
balance:readHizmet ve Cüzdan Bakiyeleri
orders:readSiparişleri Görüntüle
links:readBağlantıları Görüntüle
catalog:readKataloglar ve Ücretler
orders:writeSiparişleri Toplu Doldur ve Gönder
links:writeURL'ler, Anchor'lar, Çevreleyen Metin ve Gönderim
checkout:createGüvenli Ödeme Bağlantıları Oluştur

Anahtar, ajanın cüzdandan doğrudan bakiye düşmesine izin vermez. Mutasyon istekleri için rastgele bir Idempotency-Key 8–128 karakter gereklidir. Yanıt kaybolursa, aynı anahtarla aynı isteği tekrarlayın; yeni bir işlem için yenisini oluşturun.

API Metotları

Metotlar şu şekilde organize edilmiştir: 9 grupları. Parametreler ve yanıt örneği için gerekli olanı açın; tam makine sözleşmesi şuradadır: OpenAPI JSON.

20 yöntemleri

Keşif 2

GET/capabilitiesAPI yetenekleri ve güncel bağlantı linkleri.
Erişim: HayırScope: —

Yanıt Örneği

{
    "name": "Tier1.shop API",
    "api_enabled": true,
    "public_registration": true
}
GET/openapi.jsonTam OpenAPI 3.1 spesifikasyonu.
Erişim: HayırScope: —

Yanıt Örneği

{
    "openapi": "3.1.0",
    "info": {
        "title": "Tier1.shop Client API"
    }
}

Kayıt ol 3

POST/registration-intentsZorunlu e-posta onayı ile yeni bir müşteri için kaydı başlatın.
Erişim: HayırScope: —

JSON İste

{
    "email": "client@example.com",
    "telegram_username": "@client",
    "locale": "ru",
    "issue_api_key": true
}

Yanıt Örneği

{
    "accepted": true,
    "request_id": "…",
    "status_token": "…",
    "status": "pending_email",
    "expires_in": 86400
}
GET/registration-intents/{id}?status_token={token}Belirli bir kaydın durumunu kontrol edin.
Erişim: Status tokenScope: —

Yanıt Örneği

{
    "status": "pending_email|email_verified|expired",
    "email_verified": false,
    "telegram_status": "not_requested|pending_bot_message|verified"
}
POST/api-key-requestsMevcut bir hesap için tek seferlik anahtar oluşturma bağlantısı talep edin.
Erişim: HayırScope: —

JSON İste

{
    "email": "client@example.com",
    "name": "Мой агент"
}

Yanıt Örneği

{
    "accepted": true,
    "next_action": "…"
}

Hesap 2

GET/profileProfil, e-posta onayı ve tüm Telegram kanalları.
Erişim: BearerScope: profile:read

Yanıt Örneği

{
    "account": {
        "email": "client@example.com",
        "email_verified": true,
        "telegram_username": "@client",
        "telegram_usernames": [
            "@client",
            "@manager"
        ]
    }
}
GET/balances?geo=allRUB/$ cüzdanları ve kullanılmayan RU/uluslararası servisler.
Erişim: BearerScope: balance:read

Yanıt Örneği

{
    "wallets": {
        "rub": {
            "currency": "RUB",
            "amount_minor": 0
        },
        "usd": {
            "currency": "USD",
            "amount_minor": 0
        }
    },
    "service_balances": []
}

Siparişler 3

GET/orders?geo=all&page=1&per_page=20Hesap siparişlerinin sayfalanmış listesi. per_page 50 ile sınırlıdır: next_page üzerinden devam edin.
Erişim: BearerScope: orders:read

Yanıt Örneği

{
    "orders": [
        {
            "cabinet_order_id": 123,
            "wc_order_id": 456,
            "placement_progress": {
                "completed": 2,
                "total": 3,
                "fully_placed": false
            }
        }
    ],
    "page": 1,
    "per_page": 20,
    "has_more": false,
    "next_page": null
}
GET/orders/{id}WooCommerce e-posta numarasına göre değil, cabinet_order_id'ye göre tek bir sipariş ve bağlantılar.
Erişim: BearerScope: orders:read

Yanıt Örneği

{
    "order": {
        "cabinet_order_id": 123,
        "wc_order_id": 456,
        "geo": "ru"
    },
    "links": []
}
GET/orders/by-wc/{id}Müşterinin WooCommerce numarasına göre tüm dahili siparişler ve linkler.
Erişim: BearerScope: orders:read

Yanıt Örneği

{
    "wc_order_id": 456,
    "count": 2,
    "orders": [
        {
            "order": {
                "cabinet_order_id": 123
            },
            "links": []
        }
    ]
}

Bağlantılar 1

GET/links?geo=all&page=1&per_page=20Geo, durum ve link_type filtreli bağlantılar; next_page üzerinden devam edin.
Erişim: BearerScope: links:read

Yanıt Örneği

{
    "links": [],
    "page": 1,
    "per_page": 20,
    "total": 0,
    "has_more": false,
    "next_page": null
}

Katalog 2

GET/catalog/tariffs?geo=ruGüncel ürünler, fiyatlar, para birimleri ve kesin slot bileşimi.
Erişim: BearerScope: catalog:read

Yanıt Örneği

{
    "geo": "ru",
    "currency": "RUB",
    "tariffs": [
        {
            "product_id": 3708,
            "name": "…",
            "price": {
                "amount_minor": 200000
            }
        }
    ]
}
GET/catalog/burzh-igamingAnonimleştirilmiş iGaming bağışçı siteleri, metrikler, fiyat ve mevcut slotlar.
Erişim: BearerScope: catalog:read

Yanıt Örneği

{
    "donors": [],
    "count": 0,
    "price": {
        "currency": "USD",
        "amount_minor": 9400
    }
}

Taslaklar 3

PATCH/links/{id}Linki işleme göndermeden URL, anchor metni, çevreleyen metin veya zamanlamayı değiştirin.
Erişim: Bearer + Idempotency-KeyScope: links:write

JSON İste

{
    "url": "https://example.com/page",
    "anchor": "пример",
    "context_text": "Окружающий текст с анкором пример.",
    "scheduled_at": "2026-09-01T09:00:00Z"
}

Yanıt Örneği

{
    "link": {
        "id": 456,
        "status": "awaiting_confirmation"
    }
}
PUT/links/{id}Değiştirilebilir alanların kısmi bir setini gönderen müşteriler için PATCH takma adı.
Erişim: Bearer + Idempotency-KeyScope: links:write

JSON İste

{
    "anchor": "новый анкор"
}

Yanıt Örneği

{
    "link": {
        "id": 456,
        "status": "awaiting_confirmation"
    }
}
POST/orders/{id}/bulk-updateSipariş satırlarını üretime göndermeden toplu doldur.
Erişim: Bearer + Idempotency-KeyScope: orders:write

JSON İste

{
    "links": [
        {
            "url": "https://example.com/a",
            "anchor": "ключ"
        },
        {
            "url": "https://example.com/b",
            "anchor": "другой ключ"
        }
    ]
}

Yanıt Örneği

{
    "updated": 2,
    "errors": []
}

Gönder 2

POST/links/{id}/submitMüşteri onayından sonra üretime bir adet hazır bağlantı gönder.
Erişim: Bearer + Idempotency-KeyScope: links:write

JSON İste

[]

Yanıt Örneği

{
    "link": {
        "id": 456,
        "status": "in_progress"
    }
}
POST/orders/{id}/submit-allMüşteri onayından sonra hazır olan tüm sipariş satırlarını gönder.
Erişim: Bearer + Idempotency-KeyScope: orders:write

JSON İste

[]

Yanıt Örneği

{
    "submitted": 2,
    "skipped": 0
}

Ödeme 2

POST/checkout-intentsStandart ödeme sayfasına güvenli, tek seferlik bir bağlantı oluşturun; herhangi bir ücret tahsil edilmez.
Erişim: Bearer + Idempotency-KeyScope: checkout:create

JSON İste

{
    "geo": "ru",
    "items": [
        {
            "product_id": 3708,
            "quantity": 1
        }
    ],
    "links": [
        {
            "type": "yearly",
            "url": "https://example.com/page",
            "anchor": "пример"
        }
    ]
}

Yanıt Örneği

{
    "intent_id": "32-символьный ID",
    "checkout_url": "https://tier1.shop/?t1c_agent_checkout=…",
    "expires_at": "…",
    "summary": {
        "currency": "RUB",
        "total_minor": 200000
    },
    "payment_preview": {
        "wallet_available_minor": 0,
        "nominal_wallet_gap_minor": 200000,
        "final_amount_at_checkout": true
    }
}
GET/checkout-intents/{id}Tek seferlik bağlantıyı tekrar açmadan, intent_id üzerinden hesapta ödeme ve sipariş görünümünü kontrol edin.
Erişim: BearerScope: checkout:create

Yanıt Örneği

{
    "intent_id": "…",
    "state": "paid",
    "wc_order_id": 456,
    "cabinet_order_ids": [
        123
    ],
    "fulfilment_pending": false
}

İstek başarısız olursa

400 / 422Parametreleri düzeltin. Aynı geçersiz isteği tekrarlamayın.
401 / 403Anahtarı ve izinlerini kontrol edin; gerekirse yenisini oluşturun.
404Numarayı ve kimlik türünü kontrol edin. Üçüncü taraf siparişleri açıklanmaz.
409Sipariş durumunu güncelleyin veya yeni bir işlem için yeni bir anahtar kullanın.
429 / 5xxLütfen bekleyin ve tekrar deneyin. Değiştirici bir istek için aynı Idempotency-Key ve JSON'u koruyun.

Listeler sayfa başına maksimum 50 satır döndürür. Eğer has_more=true, şuraya gidin next_page. API'deki ön tutar, ödeme sayfasındaki nihai tutarın ve mevcut ödeme yöntemlerinin yerini tutmaz.

REST API yerine MCP mi gerekiyor?

Aynı iptal edilebilir anahtar, HTTP başlıkları ile MCP istemcisi için de çalışır. Uygulama destekliyorsa OAuth üzerinden de bağlanabilirsiniz.

MCP Talimatlarını aç