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

# Hızlı Başlangıç

> Beş dakikada Flextell API'ye ilk isteğinizi atın.

Bu rehber, sıfırdan bir OAuth uygulaması oluşturup ilk yetkilendirilmiş API isteğinizi atana kadar sizi yönlendirir. Örneklerde `curl` kullanılmıştır; istediğiniz HTTP istemcisini tercih edebilirsiniz.

## Ön koşullar

* `https://app.flextell.ai` üzerinde bir Flextell hesabı (veya sandbox'ta [`dev.flextell.ai`](https://dev.flextell.ai))
* Bir terminal ve `curl`
* Redirect URI olarak kullanılabilecek bir uygulama URL'i (yerel geliştirme için `http://localhost:3000/callback` yeterlidir)

<Steps>
  <Step title="Bir OAuth uygulaması oluşturun">
    Flextell panelinde bir OAuth uygulaması açın ve `client_id` + `client_secret` değerlerini alın. Bu rehber için `customers:read` scope'u yeterlidir; uygulamanıza yerel geliştirme için `http://localhost:3000/callback` redirect URI'si ekleyin.

    Adım adım detay: [Uygulama Oluşturma](/authentication/create-app).
  </Step>

  <Step title="Kullanıcıyı yetkilendirme akışına yönlendirin">
    Kullanıcıyı Flextell'in yetkilendirme sayfasına gönderin:

    ```
    https://dev.flextell.ai/oauth/authorize
      ?response_type=code
      &client_id=SIZIN_CLIENT_ID
      &redirect_uri=http://localhost:3000/callback
      &scope=customers:read
      &state=RASTGELE_STRING
    ```

    Kullanıcı izin verdiğinde Flextell, belirttiğiniz `redirect_uri`'ye bir `code` ile yönlenir:

    ```
    http://localhost:3000/callback?code=AUTHORIZATION_CODE&state=RASTGELE_STRING
    ```

    <Warning>
      `state` parametresini her zaman gönderin ve dönüşte kontrol edin. CSRF saldırılarına karşı koruma sağlar.
    </Warning>
  </Step>

  <Step title="Authorization code'u access token ile değişin">
    `code`'u aldıktan sonra token endpoint'ine bir `POST` atın:

    ```bash theme={null}
    curl --request POST \
      --url https://dev.flextell.ai/oauth/token \
      --header "Content-Type: application/x-www-form-urlencoded" \
      --data "grant_type=authorization_code" \
      --data "code=AUTHORIZATION_CODE" \
      --data "client_id=SIZIN_CLIENT_ID" \
      --data "client_secret=SIZIN_CLIENT_SECRET" \
      --data "redirect_uri=http://localhost:3000/callback"
    ```

    Başarılı yanıt örneği:

    ```json theme={null}
    {
      "token_type": "Bearer",
      "expires_in": 1296000,
      "access_token": "eyJ0eXAiOiJKV1Q...",
      "refresh_token": "def502004d..."
    }
    ```

    `access_token` 15 gün geçerlidir; `refresh_token` ile yenileyebilirsiniz. Detaylar [Token Yenileme](/authentication/refresh-tokens) sayfasında.

    <Note>
      Scope'larınıza `openid` eklediyseniz yanıta ekstra bir `id_token` (RS256 imzalı JWT) eklenir. SPA veya native mobil uygulama geliştiriyorsanız token değişiminde `client_secret` yerine PKCE `code_verifier`'ı kullanın. Detay: [OpenID Connect](/authentication/openid-connect) ve [PKCE](/authentication/pkce).
    </Note>

    <Tip>
      OIDC uçlarını (authorize, token, userinfo, jwks, end\_session) kod tarafında sabitlemek yerine [discovery URL](/authentication/openid-connect#discovery)'den — `https://dev.flextell.ai/.well-known/openid-configuration` — dinamik çekmenizi öneririz.
    </Tip>
  </Step>

  <Step title="Kullanıcının erişebildiği tenant'ları listeleyin">
    Flextell'de her istek bir **tenant** (klinik) bağlamında çalışır. Kullanıcının erişebildiği tenant'ları token aldıktan hemen sonra sorgulayın:

    ```bash theme={null}
    curl --request GET \
      --url https://dev.flextell.ai/api/v1/account/tenants \
      --header "Authorization: Bearer SIZIN_ACCESS_TOKEN" \
      --header "Accept: application/json"
    ```

    Bu uç `X-Tenant` header'ı gerektirmeyen birkaç uçtan biridir — çünkü kullanıcının hangi tenant'lara erişebildiğini öğrendiğiniz yerdir.
  </Step>

  <Step title="İlk tenant-aware isteğinizi atın">
    Bir tenant ID'si seçin ve onu `X-Tenant` header'ı olarak gönderin:

    ```bash theme={null}
    curl --request GET \
      --url https://dev.flextell.ai/api/v1/customers \
      --header "Authorization: Bearer SIZIN_ACCESS_TOKEN" \
      --header "X-Tenant: SECILEN_TENANT_ID" \
      --header "Accept: application/json"
    ```

    Yanıt olarak müşteri listesini alırsınız. Eğer `X-Tenant` header'ını unutursanız `400`, kullanıcının erişimi olmayan bir tenant ID gönderirseniz `404` dönüsü alırsınız.

    <Check>
      İşte bu kadar! Artık Flextell API'ye konuşuyorsunuz.
    </Check>
  </Step>
</Steps>

## Nereye bakmalı?

<CardGroup cols={2}>
  <Card title="Kimlik Doğrulama" icon="lock" href="/authentication/overview">
    OAuth akışının tüm detayları, refresh ve revoke.
  </Card>

  <Card title="İstek Kuralları" icon="code" href="/requests/headers">
    Her istekte göndermeniz gereken header'lar ve ortak konvansiyonlar.
  </Card>

  <Card title="Multi-Tenancy" icon="building" href="/tenancy/overview">
    Tenant modeli, roller ve izinler.
  </Card>

  <Card title="API Referansı" icon="book" href="/api-reference">
    Tüm endpoint'lerin şeması ve deneme alanı.
  </Card>
</CardGroup>
