> ## Documentation Index
> Fetch the complete documentation index at: https://docs.livingsecurity.com/llms.txt
> Use this file to discover all available pages before exploring further.

# API Hızlı Başlangıç

> Developer Hub'da bir hizmet hesabı ve API anahtarı oluşturun, Basic kimlik doğrulaması ile kimlik doğrulaması yapın ve Living Security Public API'ye ilk isteğinizi gönderin.

Developer Hub'da bir hizmet hesabı ve bir API anahtarı oluşturun, ardından ilk
isteğinizi gönderin. Bu hızlı başlangıç kılavuzu API anahtarı ile kimlik doğrulamayı kullanır; bir
OAuth istemcisine ihtiyacınız yoktur. Entegrasyonunuz kısa ömürlü OAuth erişim belirteçleri gerektiriyorsa [Kimlik Doğrulama](/tr/developers/v1/authentication) sayfasına bakın.

## Ön koşullar

* Living Security Kontrol Paneli'ne yönetici erişimi.
* **Ayarlar → Entegrasyonlar ve Geliştiriciler →
  Developer Hub** altında görünen Developer Hub.

## Kimlik bilgilerini oluşturma

<Steps>
  <Step title="Hizmet hesabı oluşturun">
    Developer Hub'da **Service accounts** sekmesini açın ve bir hesap
    oluşturun. Hesaba açıklayıcı bir ad verin (örneğin `reporting-pipeline`) ve
    anahtarlarının kullanabileceği izinleri tanımlayın — bu kılavuz için `organization:read`
    yeterlidir.

    Hesabın izinleri, bu hesap altında oluşturulan her anahtar için üst sınırdır:
    bir anahtar, hizmet hesabının izin verdiğinden fazlasını asla yapamaz.
  </Step>

  <Step title="API anahtarı oluşturun">
    Hizmet hesabının ayrıntı sayfasını açın ve bir anahtar oluşturun. Bu anahtar için gereken
    izinleri (hesabın izinlerinin bir alt kümesi) ve bir son kullanma süresi seçin —
    30, 90 veya 365 gün ya da özel bir süre. Son kullanma süresi
    zorunludur.

    Anahtarın gizli değeri `lsk_live_` ile başlar ve **yalnızca bir kez** gösterilir. Hemen bir gizli anahtar yöneticisine
    kopyalayın; daha sonra tekrar alınamaz.

    <Warning>
      API anahtarı gizli değerlerini asla sürüm kontrolüne eklemeyin veya istemci tarafı
      koda gömmeyin. Gizli değere sahip olan herkes, anahtarın izinleriyle işlem yapabilir.
    </Warning>
  </Step>

  <Step title="Bölgenizi seçin">
    Kuruluşun veri yerleşimine uygun bölgesel `/v1` ana bilgisayarını çağırın.
    Anahtarlar yalnızca bu ana bilgisayarda kimlik doğrular.

    | Bölge | Temel URL |
    | - | - |
    | US | `https://api.us-east-1.livingsecurity.ai/v1` |
    | EU | `https://api.eu-west-1.livingsecurity.ai/v1` |

    Hangi ana bilgisayarı kullanacağınızdan emin değilseniz [Bölgeler](/tr/developers/v1/regions) sayfasına bakın. Diğer bölgeye gönderilen geçerli bir anahtar `unauthorized` hatasıyla başarısız olur. Ana bilgisayarı değiştirmek için aşağıdaki örnekte bulunan
    bölge açılır menüsünü kullanın.
  </Step>

  <Step title="İlk isteğinizi gönderin">
    `LIVING_SECURITY_API_KEY` değerini gizli anahtar yöneticinizden, isteği yapan sürecin ortamına yükleyin.
    Aşağıdaki örnekler bu değeri kaynak koda gizli değer gömmeden okur. Python için önce
    `requests` paketini yükleyin.

    API'yi, gizli değeri HTTP Basic kimlik doğrulamasının parola veya kullanıcı adı
    alanında kullanarak çağırın — ikisi de çalışır; bu nedenle her iki alanın da doldurulmasını gerektiren istemciler
    (Power BI'ın Web bağlayıcısı gibi) diğer alana `apikey` gibi bir yer tutucu girebilir.

    <CodeGroup>
      ```bash cURL theme={null}
      curl --fail-with-body --connect-timeout 5 --max-time 30 \
        https://api.eu-west-1.livingsecurity.ai/v1/organization \
        -u "apikey:${LIVING_SECURITY_API_KEY:?Set LIVING_SECURITY_API_KEY}" \
        -H "Living-Security-Version: 2026-07-01"
      ```

      ```bash cURL (key as username) theme={null}
      curl --fail-with-body --connect-timeout 5 --max-time 30 \
        https://api.eu-west-1.livingsecurity.ai/v1/organization \
        -u "${LIVING_SECURITY_API_KEY:?Set LIVING_SECURITY_API_KEY}:" \
        -H "Living-Security-Version: 2026-07-01"
      ```

      ```python Python theme={null}
      import os
      import requests

      BASE = "https://api.eu-west-1.livingsecurity.ai/v1"

      response = requests.get(
          f"{BASE}/organization",
          auth=("apikey", os.environ["LIVING_SECURITY_API_KEY"]),
          headers={"Living-Security-Version": "2026-07-01"},
          timeout=(5, 30),
          allow_redirects=False,
      )
      response.raise_for_status()
      if response.status_code != 200:
          raise RuntimeError("Unexpected response; check your regional API URL")
      print(response.json())
      ```
    </CodeGroup>

    Başarılı bir yanıt kuruluşunuzu döndürür:

    ```json Response theme={null}
    {
      "id": "1e2f3a4b-5c6d-4e7f-8a9b-0c1d2e3f4a5b",
      "object": "organization",
      "name": "Example Corp",
      "region": "eu",
      "plan": "enterprise",
      "subscription_status": "active",
      "created_at": "2024-03-12T18:04:11.000Z"
    }
    ```

    <Check>
      Bu yanıtı alırsanız kimlik bilgileriniz çalışıyordur. İstek ayrıca kısa süre içinde
      Developer Hub'ın **Request logs** sekmesinde görünür.
    </Check>
  </Step>
</Steps>

<Tip>
  Aynı gizli değerle Bearer kimlik doğrulaması (`Authorization: Bearer
    lsk_live_...`) da çalışır. Basic kimlik doğrulaması, yalnızca
  kullanıcı adı/parola kullanan araçların — Power BI'ın Web bağlayıcısı gibi — bağlanabilmesi için vardır.
</Tip>

## Kimlik doğrulama nasıl çalışır

* **Kimlik bilgisi kuruluşu belirler.** `/v1` istekleri kiracı seçici taşımaz:
  kuruluş yol segmenti ve kuruluş üst bilgisi yoktur.
  `x-organization-id` üst bilgisi göndermek `invalid_request` ile reddedilir.
  Ana bilgisayar yine de kuruluşun bölgesiyle eşleşmelidir. Bkz.
  [Bölgeler](/tr/developers/v1/regions).
* **İzinler işlem bazında kontrol edilir.** Her `/v1` işlemi adlandırılmış bir
  izin gerektirir (örneğin `GET /v1/organization` için
  `organization:read` gerekir). İzni olmayan bir anahtar, `insufficient_permission` koduyla
  `403` alır.
* **Anahtarların süresi dolar ve kesinti olmadan yenilenebilir.** Çakışma
  penceresiyle anahtar yenileme için [API anahtarları](/tr/developers/developer-hub/api-keys) sayfasına bakın.

## Hata yanıtlarını okuma

Her `/v1` hatası, kararlı bir makine koduyla birlikte `application/problem+json`
biçimindedir ([RFC 9457](https://www.rfc-editor.org/rfc/rfc9457)). Örneğin, kimlik bilgisi eksik veya bilinmeyen bir istek şu yanıtı döndürür:

```json 401 Unauthorized theme={null}
{
  "type": "https://docs.livingsecurity.com/developers/v1/errors/unauthorized",
  "title": "Unauthorized",
  "status": 401,
  "detail": "No valid API credential was provided.",
  "code": "unauthorized",
  "request_id": "req_...",
  "doc_url": "https://docs.livingsecurity.com/developers/v1/errors/unauthorized",
  "retryable": false
}
```

İşlem akışınızı `code` değerine göre dallandırın, asla `detail` değerine göre değil. Çözüm
adımları için `doc_url` bağlantısını izleyin ve destekle iletişime geçerken `request_id` değerini ekleyin — bu değer
`Request-Id` yanıt üst bilgisi ve Developer Hub istek günlükleriyle eşleşir. Kodların tam
listesi [hata başvurusunda](/tr/developers/v1/errors/overview) yer alır.

## Sözleşme sürümleri

Her yanıt, isteği karşılayan sözleşme sürümünü `Living-Security-Version` üst bilgisinde,
ilişkilendirme için kullanılan `Request-Id` üst bilgisiyle birlikte döndürür.

Bir isteği, yayımlanmış bir sözleşme sürümüne tarih belirterek sabitleyebilirsiniz:

<CodeGroup>
  ```bash cURL theme={null}
  curl --fail-with-body --connect-timeout 5 --max-time 30 \
    https://api.eu-west-1.livingsecurity.ai/v1/organization \
    -u "apikey:${LIVING_SECURITY_API_KEY:?Set LIVING_SECURITY_API_KEY}" \
    -H "Living-Security-Version: 2026-07-01"
  ```
</CodeGroup>

Sürüm şu sırayla belirlenir: varsa istek üst bilgisi, yoksa hizmet hesabının sabitlenmiş varsayılanı, o da yoksa yayımlanmış en son sürüm.
Yayımlanmamış (veya sonlandırma tarihi geçmiş) bir sürüm istemek,
`unsupported_version` koduyla `400` döndürür. Yayımlanmış sürümler ve değişiklikleri
[API değişiklik günlüğünde](/tr/developers/v1/changelog) listelenir.

## İlk isteğinizde sorun giderme

| Sonuç | Sonraki adım |
| - | - |
| `401 unauthorized` | Gizli değeri, son kullanma tarihini ve kuruluşun bölgesini kontrol edin. Geçerli bir kimlik bilgisiyle başka ana bilgisayarları denemeyin. |
| `403 insufficient_permission` | `organization:read` iznini hem hizmet hesabına hem de anahtarına verin. |
| `400 unsupported_version` | [Değişiklik günlüğünden](/tr/developers/v1/changelog) yayımlanmış bir sürüm seçin. |
| `429 rate_limited` | `Retry-After` süresini bekleyin; [sınırlı yeniden deneme örneğini](/tr/developers/v1/rate-limits) izleyin. |
| Ağ zaman aşımı | Bağlantıyı kontrol edin ve bu okuma isteğini uygulamanızın yeniden deneme bütçesi dahilinde tekrarlayın. |

Diğer hatalar için yanıttaki `doc_url` bağlantısını izleyin. `Request-Id` değerini destek için saklayın;
bir destek talebine asla Authorization üst bilgisini veya API anahtarınızı eklemeyin.

## Sonraki adımlar

<CardGroup cols={2}>
  <Card title="Bölgeler" href="/tr/developers/v1/regions">
    Kuruluş için US veya EU `/v1` ana bilgisayarını seçin.
  </Card>

  <Card title="Sayfalama" href="/tr/developers/v1/pagination">
    Listelerde `page_token` ve liste zarfı ile gezinin.
  </Card>

  <Card title="Hız sınırları" href="/tr/developers/v1/rate-limits">
    İstek bütçelerini anlayın ve `429` yanıtlarını yönetin.
  </Card>

  <Card title="Hata başvurusu" href="/tr/developers/v1/errors/overview">
    Tüm hata kodları, HTTP durumları ve nasıl çözüleceği.
  </Card>

  <Card title="Developer Hub" href="/tr/developers/developer-hub/overview">
    Hizmet hesaplarını, API anahtarlarını ve istek günlüklerini yönetin.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.