CM

CozumMerkezi API

v1

CozumMerkezi REST API

API reference for widget integration, operator operations, and webhook configuration.

Base URL: https://cozummerkezi.net/api/v1

Authentication

Widget API — API Key

Header: X-API-Key: CM_XXXXXXXXXXXX

Operator API — Bearer Token (Sanctum)

Header: Authorization: Bearer {token}

Auth

POST /auth/login
POST /auth/logout

Widget API

POST /widget/init
POST /widget/chat/start
POST /widget/chat/message
GET /widget/chat/messages
POST /widget/chat/end
POST /widget/chat/rate
POST /widget/ticket/create
GET /widget/ticket/list
GET /widget/ticket/{id}
POST /widget/ticket/{id}/reply
POST /widget/upload
GET /widget/kb/search
GET /widget/kb/categories
GET /widget/kb/article/{slug}
GET /widget/campaigns

Operator API

GET /operator/dashboard
GET /operator/chats
GET /operator/chat/{id}/messages
POST /operator/chat/{id}/message
POST /operator/chat/{id}/transfer
POST /operator/chat/{id}/close
POST /operator/chat/{id}/accept
GET /operator/tickets
POST /operator/ticket/{id}/reply
PUT /operator/ticket/{id}/status
POST /operator/status
GET /operator/canned-responses

Multi-Tenant API (v1.7.0+)

GET /operator/tenants
PUT /operator/tenants/sira
PUT /operator/tenants/{musteriId}/sessize

Context API

POST /context/customer-info
POST /context/page-info
POST /context/error-log
POST /context/screenshot

Webhook Events

EVENT yeni_chat
EVENT yeni_ticket
EVENT chat_kapandi
EVENT ticket_cozuldu
EVENT memnuniyet_puan
EVENT operator_cevrimdisi

Example Usage

// Widget baslat
curl -X POST https://cozummerkezi.net/api/v1/widget/init \
  -H "X-API-Key: CM_DEMO_2026" \
  -H "Content-Type: application/json" \
  -d '{"ziyaretci_id": "abc123"}'

// Operator giris (sifre alani: "sifre")
curl -X POST https://cozummerkezi.net/api/v1/auth/login \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{"email": "[email protected]", "sifre": "sifre123"}'

// Response (v1.7.0+ — multi-tenant: musteriler[] array)
{
  "basarili": true,
  "data": {
    "token": "13|ABC...",
    "token_tipi": "Bearer",
    "operator": {
      "id": 7,
      "email": "[email protected]",
      "musteri_id": 2,              // backward-compat birincil proje
      "musteriler": [                // operatorun uye oldugu tum projeler
        {
          "id": 2,
          "firma_adi": "PratikEsnaf.Com",
          "logo_url": "/storage/tenants/2/logo.png",
          "renk_primary": "#FF6B35",
          "sira": 0,
          "sessize_alindi": false,
          "rol": "senior",
          "max_chat_per_tenant": null
        },
        { "id": 1, "firma_adi": "CozumMerkezi Demo", "sira": 1, ... }
      ]
    }
  }
}

// Tenant listesi (oturum boyunca refresh)
curl -H "Authorization: Bearer $TOKEN" \
  https://cozummerkezi.net/api/v1/operator/tenants

// Sekme sirasi guncelle (surukle-birak)
curl -X PUT -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"order":[2,1]}' \
  https://cozummerkezi.net/api/v1/operator/tenants/sira

// Proje sekmesini sessize al
curl -X PUT -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"sessize":true}' \
  https://cozummerkezi.net/api/v1/operator/tenants/2/sessize

// Webhook payload ornegi
{
  "olay": "yeni_chat",
  "zaman": "2026-04-12T14:30:00+03:00",
  "veri": {
    "oturum_id": 42,
    "musteri_id": 2,                 // v1.7.0+ multi-tenant
    "ziyaretci_adi": "Ahmet Yilmaz",
    "kanal": "web"
  }
}
v1.7.0 Multi-Tenant: Bir operatorun birden cok musteriye (proje) bagli olmasi desteklenir. Login response'unda data.operator.musteriler[] array'i oturumun tum projelerini listeler. Eski v1.6.x clientlar musteri_id tekil alanini okumaya devam eder (backward-compat). /operator/chats artik operatorun tum projelerinden birlesik kuyruk dondurur; her oturum kaydinda musteri_id alani vardir.

© 2026 CozumMerkezi.net — Alle Rechte vorbehalten.