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

# Kimlik Doğrulama ve Limitler

> API anahtarı kullanımı, uç nokta formatları, hız sınırları ve bağlantı limitleri

## RPC Kimlik Doğrulama

Tüm OrbitFlare RPC istekleri, lisans anahtarınız uç nokta URL'sine sorgu parametresi olarak eklenerek doğrulanır.

```bash theme={null}
curl -X POST "https://mainnet.rpc.orbitflare.com?api_key=YOUR_LICENSE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "getBlockHeight"
  }'
```

<Tip>
  RPC lisans anahtarınız OrbitFlare hizmet aboneliğinizle birlikte verilmektedir. [OrbitFlare Gösterge Paneli](https://orbitflare.com/dashboard)'nin **Lisanslar** bölümünde bulabilirsiniz.
</Tip>

## Müşteri API Kimlik Doğrulaması

[Müşteri API'si](/api-documentation/welcome) farklı bir kimlik doğrulama yöntemi kullanır. API anahtarınızı `X-ORBIT-KEY` HTTP başlığı aracılığıyla iletin:

```bash theme={null}
curl -X GET https://api.orbitflare.com/customer/v2/licenses \
  -H "X-ORBIT-KEY: YOUR_API_KEY"
```

Müşteri API v2, cihaz akışı veya cüzdan imzası kimlik doğrulamasıyla elde edilen Bearer token kimlik doğrulamasını da destekler. Ayrıntılar için [Müşteri API belgelerine](/api-documentation/welcome) bakın.

## RPC Uç Noktaları

OrbitFlare, kullanıcılarınıza veya altyapınıza en yakın bölgeye istek yönlendirebilmeniz için coğrafi olarak dağıtılmış RPC uç noktaları sunar. URL formatı şöyledir:

```
https://{region}.rpc.orbitflare.com?api_key=YOUR_API_KEY
```

`{region}` kısmını aşağıdaki bölge kodlarından biriyle değiştirin.

### Mevcut Bölgeler

<Tabs>
  <Tab title="ABD">
    | Şehir          | Bölge Kodu | Uç Nokta                                              |
    | -------------- | ---------- | ----------------------------------------------------- |
    | Ashburn        | `ash`      | `https://ash.rpc.orbitflare.com?api_key=YOUR_API_KEY` |
    | New York       | `ny`       | `https://ny.rpc.orbitflare.com?api_key=YOUR_API_KEY`  |
    | Los Angeles    | `la`       | `https://la.rpc.orbitflare.com?api_key=YOUR_API_KEY`  |
    | Salt Lake City | `slc`      | `https://slc.rpc.orbitflare.com?api_key=YOUR_API_KEY` |
  </Tab>

  <Tab title="Avrupa">
    | Şehir              | Bölge Kodu | Uç Nokta                                               |
    | ------------------ | ---------- | ------------------------------------------------------ |
    | Amsterdam          | `ams`      | `https://ams.rpc.orbitflare.com?api_key=YOUR_API_KEY`  |
    | Frankfurt          | `fra`      | `https://fra.rpc.orbitflare.com?api_key=YOUR_API_KEY`  |
    | Londra             | `lon`      | `https://lon.rpc.orbitflare.com?api_key=YOUR_API_KEY`  |
    | Dublin             | `dub`      | `https://dub.rpc.orbitflare.com?api_key=YOUR_API_KEY`  |
    | Siauliai, Litvanya | `siau`     | `https://siau.rpc.orbitflare.com?api_key=YOUR_API_KEY` |
  </Tab>

  <Tab title="Asya Pasifik">
    | Şehir    | Bölge Kodu | Uç Nokta                                              |
    | -------- | ---------- | ----------------------------------------------------- |
    | Tokyo    | `tok`      | `https://tok.rpc.orbitflare.com?api_key=YOUR_API_KEY` |
    | Singapur | `sgp`      | `https://sgp.rpc.orbitflare.com?api_key=YOUR_API_KEY` |
  </Tab>
</Tabs>

### Ana Ağ Uç Noktası (Otomatik Yönlendirmeli)

İstekleri belirli bir bölgeye sabitlemek zorunda değilseniz ana ağ uç noktasını kullanın. OrbitFlare her isteği otomatik olarak en yakın mevcut bölgeye yönlendirecektir.

```
https://mainnet.rpc.orbitflare.com?api_key=YOUR_API_KEY
```

<Note>
  Ana ağ uç noktası çoğu kullanım senaryosu için önerilir. Bölge seçimini yönetmenize gerek kalmadan en düşük gecikmeyi sağlar.
</Note>

## WebSocket Uç Noktaları

WebSocket bağlantıları, `wss://` şemasıyla aynı bölge kodlarını kullanır:

```
wss://{region}.rpc.orbitflare.com?api_key=YOUR_API_KEY
```

Otomatik yönlendirmeli WebSocket bağlantıları için:

```
wss://mainnet.rpc.orbitflare.com?api_key=YOUR_API_KEY
```

Kimlik doğrulama aynı `api_key` sorgu parametresiyle gerçekleştirilir.

## Devnet

OrbitFlare geliştirme ve test için özel bir Devnet uç noktası sunar:

```
https://devnet.rpc.orbitflare.com?api_key=YOUR_API_KEY
```

<Warning>
  Devnet uç noktası Solana Devnet'e bağlanır. Üretim iş yükleri için kullanmayın. Devnet tokenlarının parasal değeri yoktur.
</Warning>

## Plana Göre Hız Sınırları

Her plan maksimum **saniyedeki istek sayısını (RPS)** ve **saniyedeki işlem sayısını (TPS)** tanımlar.

| Plan        | Saniyedeki İstek (RPS) | Saniyedeki İşlem (TPS) |
| ----------- | :--------------------: | :--------------------: |
| Ücretsiz    |           10           |            1           |
| Geliştirici |           50           |           10           |
| Büyüme      |           200          |           75           |
| Ölçek       |           400          |           150          |
| Pro         |           600          |           200          |
| Özel        |        Sınırsız        |        Sınırsız        |

<AccordionGroup>
  <Accordion title="Hız sınırımı aşarsam ne olur?">
    Planınızın RPS veya TPS limitini aşan istekler HTTP `429 Too Many Requests` yanıtı alır. Bunları zarif bir şekilde ele almak için istemcinizde üstel geri çekilme uygulayın.
  </Accordion>

  <Accordion title="Aylık kredi veya istek tavanı var mı?">
    Hayır. OrbitFlare aylık kredi sınırı veya istek tavanı uygulamaz. Planınızın saniye başına hız sınırında kaldığınız sürece sınırsız toplam istek gönderebilirsiniz.
  </Accordion>
</AccordionGroup>

<Note>
  OrbitFlare planlarında **kredi sınırı yoktur** -- planınızın saniye başına hız katmanında kaldığınız sürece sınırsız istek yapabilirsiniz. Sürpriz fazla kullanım ücretleri yoktur.
</Note>

## Veri Akışı Bağlantı Limitleri

Bağlantı limitleri RPC hız limiti katmanınızdan bağımsız olarak uygulanır ve tüm akış arayüzlerinde IP adresi başına zorunlu kılınır.

### gRPC (Jetstream / Yellowstone)

| Limit                        | Değer                                       |
| ---------------------------- | ------------------------------------------- |
| IP başına eşzamanlı bağlantı | **50**                                      |
| Bağlantı başına abonelik     | Sınırsız                                    |
| Boşta bağlantı zaman aşımı   | 10 dakika (canlı tutmak için ping kullanın) |

50 bağlantı sınırı, aynı IP adresinden gelen tüm gRPC uç noktaları (Jetstream ve Yellowstone) arasında paylaşılır. Hangi bölgeye bağlandığınızdan bağımsız olarak geçerlidir.

<Note>
  Özel gRPC düğümleri paylaşımlı bağlantı limitine tabi değildir. 50'den fazla eşzamanlı gRPC bağlantısına ihtiyacınız varsa özel gRPC düğümü hakkında ekiple iletişime geçin.
</Note>

**Bağlantıları canlı tutma**

Bulut yük dengeleyiciler ve proxy'ler (Cloudflare dahil) boşta kalan gRPC akışlarını yaklaşık 10 dakika sonra kapatabilir. Bağlantı kesilmesini önlemek için her 30 saniyede bir ping gönderin:

```typescript theme={null}
const pingRequest: SubscribeRequest = {
  ping: { id: 1 },
  accounts: {},
  accountsDataSlice: [],
  transactions: {},
  transactionsStatus: {},
  blocks: {},
  blocksMeta: {},
  slots: {},
  entry: {},
};

setInterval(() => {
  stream.write(pingRequest, (err) => {
    if (err) console.error("Ping failed:", err);
  });
}, 30_000);
```

**Limit aşıldığında ne olur**

IP'niz 50 aktif gRPC bağlantısına sahipken yeni bir bağlantı açmaya çalıştığınızda sunucu gRPC `RESOURCE_EXHAUSTED` durumu döndürür:

```
StatusCode: RESOURCE_EXHAUSTED
Message: connection limit exceeded
```

Yeni bağlantılar açmadan önce kullanılmayan akışları kapatın. `RESOURCE_EXHAUSTED` hatasından sonra yeniden bağlanırken üstel geri çekilme uygulayın.

### WebSocket

| Limit                        | Değer                      |
| ---------------------------- | -------------------------- |
| IP başına eşzamanlı bağlantı | **50**                     |
| Bağlantı başına abonelik     | Plana göre değişir         |
| Boşta bağlantı zaman aşımı   | Mesaj olmaksızın 60 saniye |

WebSocket bağlantıları IP başına aynı 50 eşzamanlı bağlantı limitini kullanır. Herhangi bir mesaj alışverişi olmaksızın 60 saniyeden fazla boşta kalan bağlantılar sunucu tarafından kapatılır.

**Limit aşıldığında ne olur**

Limit ötesinde denenen yeni WebSocket bağlantıları `1008 Policy Violation` kapatma koduyla reddedilir:

```
WebSocket closed: 1008 Policy Violation - connection limit exceeded
```

<AccordionGroup>
  <Accordion title="Bağlantı limitimi artırabilir miyim?">
    50 bağlantı limiti tüm paylaşımlı planlara uygulanır. İş yükünüz daha fazla eşzamanlı akış bağlantısı gerektiriyorsa, bir **Özel gRPC Düğümü** veya **Özel RPC Düğümü** paylaşımlı limiti tamamen kaldırır. Seçenekleri görüşmek için [Discord](https://discord.gg/orbitflare)'da ekiple iletişime geçin.
  </Accordion>

  <Accordion title="Limit bölge başına mı yoksa küresel mi?">
    Limit, tüm bölgeler genelinde IP adresi başına küresel olarak uygulanır. Frankfurt'a 30 ve New York'a 20 bağlantısı olan tek bir IP, 50 bağlantı sınırına ulaşmıştır.
  </Accordion>

  <Accordion title="Yeniden bağlanmayı nasıl ele almalıyım?">
    Bağlantı hatasından sonra yeniden bağlanırken üstel geri çekilme kullanın. 1 saniyelik gecikmeyle başlayın, her başarısız denemede en fazla 30 saniyeye kadar ikiyle çarpın. Bağlantı kotanızı tüketmemek için yeniden bağlanmadan önce akışları her zaman temiz bir şekilde kapatın.
  </Accordion>
</AccordionGroup>
