# REST API

> Solk CRM'in JSON API'si — mobil uygulamanın kullandığı uçların aynısı, aynı yetki kuralları ve aynı iş kurallarıyla.

Solk REST API'si kurulumunuzdaki firmaları, kişileri, fırsatları, aksiyonları, takvimi, fuar leadlerini ve e-posta yazışmalarını okumanızı ve değiştirmenizi sağlar. Solk'un iOS / Android uygulaması da bu API'yi kullanır; bu yüzden uçlar gerçek bir satışçının ekranlarına göre şekillenmiştir: bir istekte bir ekranın ihtiyaç duyduğu her şey gelir.

## Temeller

| | |
|---|---|
| Taban adres | `https://<firma>.solk.app/api/v1` |
| Biçim | JSON (`Content-Type: application/json`); çoğu yazma ucu form gövdesi de kabul eder |
| Kimlik | `Authorization: Bearer <belirteç>` — [API anahtarı, OAuth ya da mobil oturum](/rest-api/authentication) |
| Karakter seti | UTF-8; Türkçe karakterler olduğu gibi döner |
| Tarih | `YYYY-MM-DD`; tarih-saat `YYYY-MM-DDTHH:MM:SS` (kurulumun yerel saati) |
| Hız sınırı | Belirteç başına dakikada 300 istek — [Hız sınırları](/rest-api/rate-limits) |
| Tanım | [`/openapi.json`](/openapi.json) (OpenAPI 3.1) |

## Yanıt zarfı

Her yanıt bir JSON nesnesidir ve `ok` alanı taşır:

```json
{ "ok": true, "customer": { "id": 31, "name": "Kuzey Plastik Sanayi", "…": "…" } }
```

Hata yanıtlarında HTTP durum kodu, makinece okunur `error` kodu ve kullanıcıya gösterilebilecek Türkçe `message` gelir; bazı hatalar ek alan taşır (`similar`, `gate_problems`…):

```json
{ "ok": false, "error": "gate", "message": "Viable'a geçmek için: BANT kriterleri 4/4 sağlanmalı …", "gate_problems": ["…"] }
```

Tüm kodlar: [Hatalar](/rest-api/errors).

## Kaynaklar

:::cards
- [Kimlik doğrulama](/rest-api/auth/me) key | Kim olduğunuz, açık modüller, kurulum sabitleri.
- [Çalışma alanı](/rest-api/workspace/today) layout | Bugün, pano, arama, bildirimler.
- [Firmalar](/rest-api/companies/list) building | Listele, getir, oluştur, güncelle, ertele.
- [Kişiler](/rest-api/people/list) user | Firmalardaki muhataplar.
- [Fırsatlar](/rest-api/deals/list) target | Aşama, BANT, adımlar, canlandırma.
- [Görüşmeler](/rest-api/activities/log) phone | Telefon ve ziyaret kaydı (Hızlı Giriş).
- [Aksiyonlar ve görevler](/rest-api/actions/list) check | Tamamla, ertele, zincirle.
- [Takvim](/rest-api/calendar/list) calendar | Toplantılar ve türetilen girişler.
- [Fuarlar ve leadler](/rest-api/fairs/list) flag | Stant kayıtları.
- [E-posta](/rest-api/email/threads-list) mail | Yazışmalar, bağlama, gönderim.
- [Sor](/rest-api/ask/ask) spark | CRM verisine doğal dille soru.
- [SCIM 2.0](/rest-api/scim) shield | Kullanıcı yönetimi.
:::

## Sürümleme

API yolu `/api/v1` sabittir. Yeni alanlar ve uçlar **eklenerek** gelir; mevcut alanlar kaldırılmaz ve anlamları değişmez. İstemciniz tanımadığı alanları yok saymalıdır. Kırıcı bir değişiklik gerektiğinde yeni bir yol (`/api/v2`) açılır ve önceden [sürüm notlarında](/changelog) duyurulur.

## Yazma uçlarında yöntemler

Güncelleme uçları `PATCH`, `PUT` ve `POST`'u aynı şekilde kabul eder (eski HTTP istemcileri ve mobil uygulama için). Güncellemeler **kısmidir**: yalnız gönderdiğiniz alanlar değişir (tek istisna: [fuar leadi](/rest-api/fairs/leads-update) `company` gönderildiğinde tüm form alanlarını yeniden yazar). Bir metin alanını temizlemek için boş metin (`""`) gönderin; `null` gönderilen alan yok sayılır (değişmez).

Boolean alanlar JSON `true` / `false` olarak gönderilir. Form gövdesinde (`application/x-www-form-urlencoded`) doğru için `1` gönderin, yanlış için alanı boş gönderin.