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

# Örnekleri Yönetme

> WhatsApp örneklerini tam yaşam döngüsü boyunca oluşturun, bağlayın ve yönetin.

# \u00d6rnekleri Y\u00f6netme

Bir **\u00f6rnek** (instance), Wappfy'ye ba\u011fl\u0131 tek bir WhatsApp numaras\u0131n\u0131 temsil eder. Her \u00f6rnek bir ya\u015fam d\u00f6ng\u00fcs\u00fcnden ge\u00e7er: olu\u015fturma, ba\u011flanma, QR tarama, kullan\u0131m ve nihayetinde ba\u011flant\u0131y\u0131 kesme veya silme.

## \u00d6rnek T\u00fcrleri

Wappfy iki sa\u011flay\u0131c\u0131y\u0131 destekler:

| T\u00fcr    | A\u00e7\u0131klama                                                                                                                                               |
| ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `waha`      | WAHA Plus \u00fczerinden kendi sunucunuzda bar\u0131nd\u0131r\u0131lan WhatsApp Web API. Gruplar, etiketler ve ki\u015filer dahil tam \u00f6zellik deste\u011fi. |
| `cloud_api` | Meta'n\u0131n resmi WhatsApp Business Cloud API'si. Meta Business hesab\u0131 gerektirir.                                                                        |

## \u00d6rnek Durum De\u011ferleri

Ya\u015fam d\u00f6ng\u00fcs\u00fc boyunca bir \u00f6rnek \u015fu durumlar aras\u0131nda ge\u00e7i\u015f yapar:

| Durum          | A\u00e7\u0131klama                                                                                           |
| -------------- | ------------------------------------------------------------------------------------------------------------ |
| `created`      | \u00d6rnek kayd\u0131 mevcut ancak hen\u00fcz ba\u015flat\u0131lmad\u0131.                                   |
| `starting`     | \u00d6rnek ba\u015flat\u0131l\u0131yor ve WhatsApp oturumu ba\u015flat\u0131l\u0131yor.                      |
| `scan_qr`      | \u00d6rnek, telefonunuzla QR kodu taraman\u0131z\u0131 bekliyor.                                             |
| `connected`    | WhatsApp oturumu aktif ve mesaj g\u00f6ndermeye/almaya haz\u0131r.                                           |
| `disconnected` | Oturum durduruldu veya ba\u011flant\u0131 kesildi. Yeniden ba\u011flanabilir.                                |
| `failed`       | \u00d6rnek, ba\u015flatma veya ba\u011flanma s\u0131ras\u0131nda bir hatayla kar\u015f\u0131la\u015ft\u0131. |

## Ya\u015fam D\u00f6ng\u00fcs\u00fcne Genel Bak\u0131\u015f

```mermaid theme={null}
graph LR
    A[created] --> B[starting]
    B --> C[scan_qr]
    C --> D[connected]
    D --> E[disconnected]
    E --> B
    B --> F[failed]
    F --> B
```

***

## \u00d6rnek Olu\u015fturma

Hesab\u0131n\u0131za ba\u011fl\u0131 yeni bir WhatsApp \u00f6rne\u011fi olu\u015fturun.

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST https://api.wappfy.io/api/instances \
    -H "X-Api-Key: YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "name": "My WhatsApp",
      "type": "waha"
    }'
  ```

  ```javascript Node.js theme={null}
  const response = await fetch("https://api.wappfy.io/api/instances", {
    method: "POST",
    headers: {
      "X-Api-Key": "YOUR_API_KEY",
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      name: "My WhatsApp",
      type: "waha",
    }),
  });

  const instance = await response.json();
  console.log(instance.data.id); // use this ID for all subsequent calls
  ```
</CodeGroup>

**Yan\u0131t:**

```json theme={null}
{
  "data": {
    "id": "inst_abc123",
    "name": "My WhatsApp",
    "type": "waha",
    "status": "created",
    "created_at": "2026-02-10T12:00:00Z"
  }
}
```

***

## \u00d6rne\u011fi Ba\u011flama

WhatsApp oturumunu ba\u015flat\u0131n. \u00d6rnek \u00f6nce `starting` durumuna, ard\u0131ndan `scan_qr` durumuna ge\u00e7ecektir.

```bash theme={null}
curl -X POST https://api.wappfy.io/api/instances/inst_abc123/connect \
  -H "X-Api-Key: YOUR_API_KEY"
```

**Yan\u0131t:**

```json theme={null}
{
  "data": {
    "id": "inst_abc123",
    "status": "starting"
  }
}
```

***

## QR Kodu Alma

\u00d6rnek `scan_qr` durumuna ula\u015ft\u0131\u011f\u0131nda, telefonunuzla taramak i\u00e7in QR kodu al\u0131n.

<CodeGroup>
  ```bash cURL theme={null}
  curl https://api.wappfy.io/api/instances/inst_abc123/qr \
    -H "X-Api-Key: YOUR_API_KEY"
  ```

  ```javascript Node.js theme={null}
  const response = await fetch(
    "https://api.wappfy.io/api/instances/inst_abc123/qr",
    {
      headers: { "X-Api-Key": "YOUR_API_KEY" },
    }
  );

  const { data } = await response.json();
  // data.qr contains a base64-encoded QR code image
  ```
</CodeGroup>

**Yan\u0131t:**

```json theme={null}
{
  "data": {
    "qr": "data:image/png;base64,iVBORw0KGgo..."
  }
}
```

<Note>
  QR kod yakla\u015f\u0131k 60 saniye sonra ge\u00e7erlili\u011fini yitirir. Taramadan \u00f6nce s\u00fcresi dolarsa, yeni bir kod almak i\u00e7in ucu noktay\u0131 tekrar \u00e7a\u011f\u0131r\u0131n.
</Note>

QR kod g\u00f6rselini a\u00e7\u0131n ve telefonunuzdan **WhatsApp > Ba\u011fl\u0131 Cihazlar > Bir Cihaz Ba\u011fla** ile taray\u0131n. Tarad\u0131ktan sonra \u00f6rne\u011fin durumu `connected` olarak de\u011fi\u015fecektir.

***

## \u00d6rnek Durumunu Kontrol Etme

\u00d6rne\u011fin ne zaman haz\u0131r olaca\u011f\u0131n\u0131 \u00f6\u011frenmek i\u00e7in durum ucu noktas\u0131n\u0131 sorgulayabilirsiniz.

```bash theme={null}
curl https://api.wappfy.io/api/instances/inst_abc123/status \
  -H "X-Api-Key: YOUR_API_KEY"
```

**Yan\u0131t:**

```json theme={null}
{
  "data": {
    "id": "inst_abc123",
    "status": "connected",
    "phone_number": "5511999998888"
  }
}
```

<Tip>
  S\u00fcrekli sorgulamak yerine, ger\u00e7ek zamanl\u0131 bildirim almak i\u00e7in `instance.connected` ve `instance.qr` olaylar\u0131 i\u00e7in bir [webhook](/tr/guides/webhooks) olu\u015fturun.
</Tip>

***

## T\u00fcm \u00d6rnekleri Listeleme

Hesab\u0131n\u0131zdaki t\u00fcm \u00f6rnekleri al\u0131n.

```bash theme={null}
curl https://api.wappfy.io/api/instances \
  -H "X-Api-Key: YOUR_API_KEY"
```

**Yan\u0131t:**

```json theme={null}
{
  "data": [
    {
      "id": "inst_abc123",
      "name": "My WhatsApp",
      "type": "waha",
      "status": "connected"
    },
    {
      "id": "inst_def456",
      "name": "Support Line",
      "type": "waha",
      "status": "disconnected"
    }
  ]
}
```

***

## \u00d6rne\u011fin Ba\u011flant\u0131s\u0131n\u0131 Kesme

\u00d6rne\u011fi silmeden WhatsApp oturumunu durdurun. Daha sonra yeniden ba\u011flanabilirsiniz.

```bash theme={null}
curl -X POST https://api.wappfy.io/api/instances/inst_abc123/disconnect \
  -H "X-Api-Key: YOUR_API_KEY"
```

***

## \u00d6rne\u011fi Yeniden Ba\u015flatma

WhatsApp oturumunu yeniden ba\u015flat\u0131n. \u00d6rnek `failed` durumundaysa veya beklenmedik \u015fekilde davran\u0131yorsa kullan\u0131\u015fl\u0131d\u0131r.

```bash theme={null}
curl -X POST https://api.wappfy.io/api/instances/inst_abc123/restart \
  -H "X-Api-Key: YOUR_API_KEY"
```

<Note>
  Yeniden ba\u015flatma, ba\u011fl\u0131 WhatsApp oturumunu korur. QR kodu tekrar taraman\u0131z gerekmez.
</Note>

***

## \u00d6rnekten \u00c7\u0131k\u0131\u015f Yapma

WhatsApp'tan tamamen \u00e7\u0131k\u0131\u015f yap\u0131n. Bu i\u015flem telefonu oturumdan ay\u0131r\u0131r. Yeniden ba\u011flanmak i\u00e7in QR kodu tekrar taraman\u0131z gerekecektir.

```bash theme={null}
curl -X POST https://api.wappfy.io/api/instances/inst_abc123/logout \
  -H "X-Api-Key: YOUR_API_KEY"
```

<Warning>
  \u00c7\u0131k\u0131\u015f, WhatsApp ba\u011flant\u0131s\u0131n\u0131 tamamen kald\u0131r\u0131r. Ba\u011flant\u0131y\u0131 kesmeden farkl\u0131 olarak, bu \u00f6rne\u011fi tekrar kullanmak i\u00e7in yeni bir QR kodu **taramal\u0131s\u0131n\u0131z**.
</Warning>

***

## \u00d6rne\u011fi Silme

Bir \u00f6rne\u011fi ve t\u00fcm ili\u015fkili verilerini kal\u0131c\u0131 olarak silin.

```bash theme={null}
curl -X DELETE https://api.wappfy.io/api/instances/inst_abc123 \
  -H "X-Api-Key: YOUR_API_KEY"
```

<Warning>
  Bu i\u015flem geri al\u0131namaz. Bu \u00f6rnekle ili\u015fkili t\u00fcm mesajlar, webhook'lar ve yap\u0131land\u0131rma kal\u0131c\u0131 olarak silinecektir.
</Warning>

***

## Tam Ya\u015fam D\u00f6ng\u00fcs\u00fc \u00d6rne\u011fi

A\u015fa\u011f\u0131da bir \u00f6rnek olu\u015fturan, ba\u011flayan ve QR kodu sorgulayan eksiksiz bir \u00f6rnek verilmi\u015ftir:

```bash theme={null}
# 1. \u00d6rne\u011fi olu\u015fturun
INSTANCE=$(curl -s -X POST https://api.wappfy.io/api/instances \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "Production", "type": "waha"}')

INSTANCE_ID=$(echo $INSTANCE | jq -r '.data.id')
echo "Created instance: $INSTANCE_ID"

# 2. \u00d6rne\u011fi ba\u011flay\u0131n
curl -s -X POST "https://api.wappfy.io/api/instances/$INSTANCE_ID/connect" \
  -H "X-Api-Key: YOUR_API_KEY"

# 3. Biraz bekleyin, ard\u0131ndan QR kodu al\u0131n
sleep 3
QR=$(curl -s "https://api.wappfy.io/api/instances/$INSTANCE_ID/qr" \
  -H "X-Api-Key: YOUR_API_KEY")

echo $QR | jq -r '.data.qr' > qr-code.png
echo "QR code saved to qr-code.png — scan it with your phone"

# 4. Ba\u011fl\u0131 durumunu bekleyin
while true; do
  STATUS=$(curl -s "https://api.wappfy.io/api/instances/$INSTANCE_ID/status" \
    -H "X-Api-Key: YOUR_API_KEY" | jq -r '.data.status')
  echo "Status: $STATUS"
  if [ "$STATUS" = "connected" ]; then
    echo "Instance is connected and ready!"
    break
  fi
  sleep 2
done
```

***

## Hata Y\u00f6netimi

| Durum Kodu | A\u00e7\u0131klama                                                                                                                    |
| ---------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| `404`      | \u00d6rnek bulunamad\u0131 veya hesab\u0131n\u0131za ait de\u011fil.                                                                  |
| `409`      | \u00d6rnek zaten istenen durumda (orn. zaten ba\u011fl\u0131).                                                                        |
| `422`      | Ge\u00e7ersiz istek g\u00f6vdesi (orn. eksik `name` veya ge\u00e7ersiz `type`).                                                       |
| `429`      | H\u0131z s\u0131n\u0131r\u0131 a\u015f\u0131ld\u0131. [H\u0131z S\u0131n\u0131rlar\u0131](/tr/rate-limits) sayfas\u0131na bak\u0131n. |
