Developers

Merchant REST API

Quiksa verilerinize Client ID ve Client Secret ile erişin. OAuth veya access token yoktur — her istekte kimlik bilgilerini header olarak gönderin.

Giriş

Base URL: https://quiksa.com/api/v1

API, Pro planındaki API & Entegrasyon özelliği ile açılır. Dokümantasyon herkese açıktır; canlı istekler ve kimlik bilgisi yönetimi Pro gerektirir.

Client credentials

Header ile ID + Secret

Scope kontrolü

Kaynak bazlı yetki

120/dk

İstemci başına limit

Kimlik doğrulama

Her istekte aşağıdaki header’ları gönderin:

X-Quiksa-Client-Id: qk_...
X-Quiksa-Client-Secret: qks_...
Accept: application/json

Alternatif olarak Basic auth kullanabilirsiniz: Authorization: Basic base64(client_id:client_secret)

Client Secret yalnızca Ayarlar → API’de oluşturma veya yenileme anında bir kez gösterilir. Secret asla loglanmaz.

Scopes

Her istemciye atanmış scope’lar, hangi endpoint’lere erişileceğini belirler. Eksik scope durumunda 403 ve insufficient_scope döner.

ScopeAçıklama
products:readÜrünleri okuma
products:writeÜrün yazma
categories:readKategori okuma
categories:writeKategori yazma
brands:readMarka okuma
brands:writeMarka yazma
orders:readSipariş okuma
orders:writeSipariş güncelleme
customers:readMüşteri okuma
conversations:readKonuşma okuma

Rate limit

İstemci başına dakikada en fazla 120 istek. Limit aşıldığında 429 ve Retry-After header’ı döner.

Hata formatı

{
  "message": "İnsan okunur açıklama",
  "code": "invalid_credentials",
  "errors": {}
}
  • 401 — eksik/yanlış kimlik bilgisi
  • 403 api_integration_required, insufficient_scope, abonelik kapalı
  • 404 — kaynak yok
  • 422 — doğrulama hatası
  • 429 — rate limit

İlk istek

  1. Pro plana geçin ve Ayarlar → API’den istemci oluşturun.
  2. Client Secret’i güvenli saklayın.
  3. GET /me ile bağlantıyı doğrulayın.

cURL

curl -s "https://quiksa.com/api/v1/me" \
  -H "X-Quiksa-Client-Id: qk_your_client_id" \
  -H "X-Quiksa-Client-Secret: qks_your_client_secret" \
  -H "Accept: application/json"

JavaScript

const response = await fetch("https://quiksa.com/api/v1/me", {
  headers: {
    "X-Quiksa-Client-Id": process.env.QUIKSA_CLIENT_ID,
    "X-Quiksa-Client-Secret": process.env.QUIKSA_CLIENT_SECRET,
    Accept: "application/json",
  },
});
const payload = await response.json();

PHP (Laravel HTTP)

$response = Http::withHeaders([
    'X-Quiksa-Client-Id' => env('QUIKSA_CLIENT_ID'),
    'X-Quiksa-Client-Secret' => env('QUIKSA_CLIENT_SECRET'),
    'Accept' => 'application/json',
])->get('https://quiksa.com/api/v1/me');

$data = $response->json();

Kaynaklar (özet)

  • GET /me — işletme, plan, scope listesi
  • GET/POST /products, GET/PATCH /products/{id}
  • GET/POST /categories, GET/PATCH /categories/{id}
  • GET/POST /brands, GET/PATCH /brands/{id}
  • GET /orders, GET/PATCH /orders/{id}
  • GET /customers, GET /customers/{id}
  • GET /conversations, GET /conversations/{id}

Sayfalama: page, per_page (maks. 100). Makine okunur spesifikasyon: https://quiksa.com/api/v1/openapi.json

v1 kapsamında olmayanlar: mesaj gönderme, AI tetikleme, ödeme oluşturma, dosya upload, outbound webhook’lar.