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

# API tanıtımı

> Flowella REST API v1 için ilk çağrınızdan önce ihtiyacınız olan her şey: kimlik doğrulama, temel URL, hata kodları, sayfalandırma, oran sınırları ve idempotency anahtarları.

Flowella REST API, programlı olarak WhatsApp mesajları göndermenizi, kişileri ve devre dışı bırakmaları yönetmenizi, şablonları listelemenizi ve toplu olarak göndermenizi ve analizleri çekmenizi sağlar. Bu sayfa, bir uç noktayı çağırmadan önce bilmeniz gereken her şeyi kapsar.

Tam uç nokta referansı **API referansı** kenar çubuğunda bulunur ([OpenAPI spec](/api-reference/openapi.json)'dan otomatik olarak oluşturulur).

## Temel URL

```
https://app.flowella.io
```

Tüm v1 uç noktaları `/api/v1` altındadır.

## Kimlik Doğrulama

Her istek, `Authorization` başlığında bir API anahtarına ihtiyaç duyar:

```http theme={null}
Authorization: Bearer flo_xxxxxxxxxxxxxxxxxxxxxxxx
```

Anahtarlar kuruluş kapsamlıdır - tek bir Flowella kuruluşu üzerinde hareket ederler ve bu kuruluştaki bir Yöneticinin izinlerini devralırlar.

<Warning>
  Anahtarlara parola gibi davranın. Onları asla kaynak kontrolüne işlemeyin, asla sohbete veya paylaşılan belgelere yapıştırmayın ve takım arkadaşları kuruluştan ayrıldığında onları döndürün. Döndürme adımları için [Ayarlar → API anahtarları](/tr/settings/api-keys) bölümüne bakın.
</Warning>

### Anahtar oluşturma

API anahtarlarını yönetmek için **Owner** veya **Admin** rolüne ihtiyacınız vardır.

1. Flowella uygulamasında **Ayarlar → API anahtarları** bölümüne gidin.
2. Anahtar oluştur\*\* seçeneğine tıklayın ve ona akılda kalıcı bir isim verin.
3. Anahtarı bir kez kopyalayın - yalnızca oluşturma sırasında gösterilir.

Anahtarlara parola gibi davranın: asla kaynak kontrolüne işlemeyin, asla sohbete yapıştırmayın ve ekip arkadaşları kuruluştan ayrıldığında anahtarları rotasyona tabi tutun.

### Bir anahtarın doğrulanması

Bir anahtarın geçerli olduğunu doğrulamak için ping uç noktasına basın:

<CodeGroup>
  ```bash cURL theme={null}
  curl https://app.flowella.io/api/v1/ping \
    -H "Authorization: Bearer flo_xxxxxxxxxxxxxxxxxxxxxxxx"
  ```

  ```js Node.js theme={null}
  await fetch("https://app.flowella.io/api/v1/ping", {
    headers: { Authorization: `Bearer ${process.env.FLOWELLA_API_KEY}` },
  });
  ```

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

  requests.get(
      "https://app.flowella.io/api/v1/ping",
      headers={"Authorization": f"Bearer {os.environ['FLOWELLA_API_KEY']}"},
  )
  ```
</CodeGroup>

`200 OK` ile `{ "ok": true, "organizationId": "…" }` kimliğinizin doğrulandığı anlamına gelir.

## Hatalar

Tüm hatalar tutarlı bir zarf içinde geri gelir:

```json theme={null}
{
  "error": {
    "code": "UNAUTHORIZED",
    "message": "Invalid API key"
  }
}
```

| HTTP durumu | Ne zaman göreceksiniz                                                                |
| ----------- | ------------------------------------------------------------------------------------ |
| `400`       | Doğrulama başarısız oldu, hatalı biçimlendirilmiş gövde veya yukarı akış Meta reddi  |
| `401`       | Eksik veya geçersiz API anahtarı                                                     |
| `402`       | Ödeme gerekli - aboneliğiniz eylemi kapsamıyor                                       |
| `403`       | Yasak - örneğin, devre dışı bırakılmış bir kişiye gönderiliyor veya Meta bağlı değil |
| `404`       | İstenen kanal veya kaynak mevcut değil                                               |
| `429`       | Hız sınırlı - yavaşla                                                                |

`error.code` alanı sabittir ve programlı olarak açılması güvenlidir. `error.message` insan tarafından okunabilir ve değişebilir.

## Oran sınırları

API anahtarları kuruluş başına oranla sınırlıdır. Sınırı aşarsanız `RATE_LIMITED` kodlu bir `429` ve `Too many requests` mesajı alırsınız. Geri çekilin ve üstel gecikmeyle yeniden deneyin.

Büyük toplu gönderimler yapıyorsanız, `throttlePerHour` parametresiyle birlikte **`POST /api/v1/templates/send`** seçeneğini tercih edin - Flowella sunucu tarafında gaz kelebeği uygular, böylece istekleri kendiniz hızlandırmanız gerekmez.

## Sayfalandırma

Liste uç noktaları (`/conversations`, `/contacts`, `/templates`) **imleç sayfalama** kullanır:

* `limit` (1-100, varsayılan 25) ve isteğe bağlı bir `cursor` iletin.
* Yanıt, `items` ve daha fazla sonuç olduğunda bir `nextCursor` içerir.
* Bir sonraki sayfayı almak için `nextCursor`'yi `cursor` parametresi olarak geri iletin.
* `nextCursor` kayıp olduğunda, sonuna ulaştınız demektir.

```bash theme={null}
curl "https://app.flowella.io/api/v1/conversations?limit=50" \
  -H "Authorization: Bearer flo_xxxxxxxxxxxxxxxxxxxxxxxx"
```

## Tarih ve saat

Tüm zaman damgaları UTC'de ISO 8601 dizeleridir (örneğin `2025-01-15T14:30:00.000Z`). API'nin tarihleri kabul ettiği durumlarda, hem yalnızca tarih (`2025-01-15`) hem de tam ISO 8601 sunucu tarafında zorlanır.

## Telefon numaraları

Telefon numaralarını mümkünse **E.164** biçiminde (`+15551234567`) iletin. Flowella yaygın varyasyonları sunucu tarafında normalleştirecektir, ancak E.164 en güvenlisidir.

## Kanallar

Birçok uç nokta bir `whatsappChannelId` kabul eder. Kuruluşunuzun tek bir kanalı varsa ve siz bunu atlarsanız, Flowella varsayılan kanalınızı kullanır. Birden fazla kanalınız varsa, yanlış göndericiden göndermekten kaçınmak için kimliği açıkça iletin.

Tam URL modeli ve kanal değiştirme için, [Çoklu kanal](/tr/essentials/multi-channel) bölümüne bakın.

## OpenAPI spec

Makine tarafından okunabilir spesifikasyon şu adreste bulunmaktadır:

```
/api-reference/openapi.json
```

Postman, Insomnia veya tercih ettiğiniz kod oluşturucuya bırakın.

<Tip>
  Bir entegrasyon mu oluşturuyorsunuz? Durum için yoklama yapmak yerine olaylara tepki vermek için bu sayfayı [Webhooks](/tr/api-reference/webhooks) ile eşleştirin.
</Tip>
