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

# Hızlı Başlangıç: ilk SMS, çağrı veya e-postanızı gönderin

> API veya bir SDK kullanarak, her dilde kopyala-yapıştır kod parçacıklarıyla, Orbit üzerinden ilk SMS, sesli çağrı veya e-postanızı beş dakikadan kısa sürede gönderin.

# Hızlı Başlangıç

## Adım 1: Hesap Oluşturun

[orbit.devotel.io/signup](https://orbit.devotel.io/signup) adresinden kaydolun. Kontrol paneli sizi otomatik olarak bölge tercihinize uygun URL'ye yönlendirir. Kredi kartı gerekmez — bir sonraki adımda sandbox'ın kilidini açmak için e-postanızı doğrulamanız yeterlidir.

## Adım 2: Sandbox API Anahtarı Alın

**Settings > API Keys** bölümüne gidin, yeni bir anahtar oluşturun ve modunu **Test** olarak ayarlayın. Sandbox anahtarları `dv_test_sk_` önekiyle başlar, KYC veya onay adımı olmadan hemen çalışır ve maliyeti **\$0**'dır — her sandbox gönderimi kendi bünyemizde simüle edilir ve asla gerçek bir operatöre ulaşmaz veya Stripe'a dokunmaz. Anahtarı yalnızca sunucu tarafında saklayın.

(Canlı anahtarlar `dv_live_sk_` önekiyle başlar ve gerçek trafiği faturalandırır — üretim numaralarına hazır olduğunuzda [Adım 5: Canlıya Geçiş](#step-5-go-live) bölümüne bakın.)

## Adım 3: İlk Mesajınızı Gönderin (Sandbox)

Aynı `/messages/<channel>` uç nokta yapısı SMS, WhatsApp, Email, RCS, Viber ve diğer mesajlaşma kanallarında çalışır — önce entegre edeceğiniz kanalı seçin. Ses ayrıdır: çağrıları `POST /voice/calls` ile gerçekleştirin (aşağıdaki Voice örneğine bakın). Aşağıda `$ORBIT_API_KEY` olarak Adım 2'deki `dv_test_sk_` anahtarınızı kullanın — gönderim ücretsiz ve anında olur, canlı trafik riski yoktur.

### cURL

```bash theme={null}
curl -X POST https://api.orbit.devotel.io/api/v1/messages/sms \
  -H "X-API-Key: $ORBIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+14155552671",
    "from": "+14155551234",
    "body": "Hello from Orbit!"
  }'
```

```bash theme={null}
curl -X POST https://api.orbit.devotel.io/api/v1/messages/whatsapp \
  -H "X-API-Key: $ORBIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+14155552671",
    "type": "template",
    "template": {
      "name": "hello_world",
      "language": { "code": "en" }
    }
  }'
```

```bash theme={null}
curl -X POST https://api.orbit.devotel.io/api/v1/messages/email \
  -H "X-API-Key: $ORBIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "user@example.com",
    "from": "hello@yourdomain.com",
    "subject": "Welcome",
    "html": "<h1>Welcome to Acme</h1>"
  }'
```

### Node.js SDK

`@devotel-orbit/node` bu üç curl çağrısını tipli metotlarla değiştirir — tam referans için [Node.js SDK](/sdks/node) sayfasına bakın.

```typescript theme={null}
import { Orbit } from '@devotel-orbit/node';

const orbit = new Orbit({
  apiKey: process.env.ORBIT_API_KEY!,
});

// SMS
await orbit.messages.send({
  channel: 'sms',
  to: '+14155552671',
  body: 'Hello from Orbit!',
});

// WhatsApp template
await orbit.messages.sendWhatsApp({
  to: '+14155552671',
  type: 'template',
  template: {
    name: 'hello_world',
    language: { code: 'en' },
  },
});

// Email
await orbit.messages.sendEmail({
  to: 'user@example.com',
  from: 'hello@yourdomain.com',
  subject: 'Welcome',
  html: '<h1>Welcome to Acme</h1>',
});
```

### Python SDK

```bash theme={null}
# Not yet on PyPI — install from the workspace package:
#   pip install ./packages/sdk-python
export ORBIT_API_KEY=dv_test_sk_your_key_here
```

```python theme={null}
from orbit_sdk import OrbitClient, OrbitError

client = OrbitClient.from_env()

try:
    result = client.messages.send_sms(
        to="+14155552671",
        body="Hello from Orbit!",
    )
    print("queued:", result["data"]["id"])
except OrbitError as exc:
    print("send failed:", exc.code, exc.message)
```

<Note>
  Python SDK çekirdek kapsamlı ve yayımlanmamıştır — SMS, WhatsApp ve e-posta gönderimleri bugün çalışır; daha derin yüzeyler (ses kayıtları, konferanslar, IVR, dialer) kasıtlı olarak kapsam dışıdır. Bunlar için yukarıdaki Node SDK'yı kullanın veya REST API'yi doğrudan düşük seviyeli `client.request(method, path, ...)` kaçış yoluyla çağırın — [Dile göre SDK kapsamı](/sdks#python-core-scope-not-full-parity) bölümüne bakın.
</Note>

### Go SDK

```bash theme={null}
# Not yet on a public module proxy — go get the workspace module path:
#   go get github.com/devotel/orbit-go
export ORBIT_API_KEY=dv_test_sk_your_key_here
```

```go theme={null}
// go.mod: require github.com/devotel/orbit-go (module path, not yet on a public proxy)
package main

import (
	"context"
	"fmt"
	"os"
	"time"

	"github.com/devotel/orbit-go/orbit"
)

func main() {
	client, err := orbit.NewClient(os.Getenv("ORBIT_API_KEY"))
	if err != nil {
		panic(err)
	}

	ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
	defer cancel()

	resp, err := client.Messages().SendSMS(ctx, orbit.SendSMSInput{
		To:   "+14155552671",
		Body: "Hello from Orbit!",
	})
	if err != nil {
		panic(err)
	}
	fmt.Println("queued:", resp.Data.ID)
}
```

<Note>
  Go SDK çekirdek kapsamlı ve yayımlanmamıştır — `client.Messages()` + `client.Voice()` bugün çalışır; ses konferansları/IVR/dialer/kayıtlar kapsam dışıdır. Bunlar için Node SDK'yı veya düşük seviyeli `client.Request(ctx, method, path, ...)` kaçış yolunu kullanın — [Dile göre SDK kapsamı](/sdks#go-core-scope-not-full-parity) bölümüne bakın.
</Note>

### Ruby SDK

```bash theme={null}
# Not yet on RubyGems — add the workspace path to your Gemfile:
#   gem "orbit_sdk", path: "packages/sdk-ruby"
export ORBIT_API_KEY=dv_test_sk_your_key_here
```

```ruby theme={null}
require "orbit_sdk"

client = OrbitSdk::Client.from_env
begin
  result = client.messages.send_sms(
    to: "+14155552671",
    body: "Hello from Orbit!",
  )
  puts "queued: #{result.dig("data", "id")}"
rescue OrbitSdk::OrbitError => e
  warn "send failed: #{e.code} — #{e.message}"
end
```

<Note>
  Ruby SDK çekirdek kapsamlı ve yayımlanmamıştır — `client.messages` + `client.voice` gönderimleri bugün çalışır; kayıtlar/transkriptler/konferanslar/IVR/dialer kapsam dışıdır. Bunlar için Node SDK'yı veya düşük seviyeli `client.request(method, path, **opts)` kaçış yolunu kullanın — [Dile göre SDK kapsamı](/sdks#ruby-core-scope-not-full-parity) bölümüne bakın.
</Note>

### PHP SDK

```bash theme={null}
# Not yet on Packagist — vendor the SDK from the monorepo or call the
# REST API directly. Setup lives on the PHP SDK page:
#   https://orbit.devotel.io/sdks/php
export ORBIT_API_KEY=dv_test_sk_your_key_here
```

```php theme={null}
<?php
use Devotel\Orbit\Errors\OrbitError;
use Devotel\Orbit\OrbitClient;

try {
    $client = OrbitClient::fromEnv();
    $result = $client->messages->sendSms(
        to: '+14155552671',
        body: 'Hello from Orbit!',
    );
    printf("queued: %s\n", $result['data']['id'] ?? '?');
} catch (OrbitError $e) {
    fwrite(STDERR, "send failed: {$e->errorCode} — {$e->getMessage()}\n");
}
```

<Note>
  PHP SDK çekirdek kapsamlı ve yayımlanmamıştır — `$client->messages` + `$client->voice` gönderimleri bugün çalışır; konferanslar, IVR, dialer, SIP trunk'lar ve kayıtlar kapsam dışıdır. Bunlar için Node SDK'yı veya düşük seviyeli `OrbitClient::request(method: ..., path: ..., ...)` kaçış yolunu kullanın — [Dile göre SDK kapsamı](/sdks#php-core-scope-not-full-parity) bölümüne bakın.
</Note>

### Java SDK

```bash theme={null}
# Not yet on Maven Central — build + depend on the workspace module:
#   mvn -f packages/sdk-java/pom.xml install
export ORBIT_API_KEY=dv_test_sk_your_key_here
```

```java theme={null}
import io.devotel.orbit.OrbitClient;
import io.devotel.orbit.errors.OrbitError;

import java.util.Map;

OrbitClient client = OrbitClient.fromEnv();
try {
    Map<String, Object> result = client.messages.sendSms(
        "+14155552671",
        "Hello from Orbit!"
    );
    System.out.println("queued: " + result.get("data"));
} catch (OrbitError e) {
    System.err.println("send failed: " + e.getCode() + " — " + e.getMessage());
}
```

<Note>
  Java SDK çekirdek kapsamlı ve yayımlanmamıştır — `client.messages` + `client.voice` gönderimleri bugün çalışır; kayıtlar/transkriptler/konferanslar/IVR/dialer ve WhatsApp şablon bileşenleri kapsam dışıdır. Bunlar için Node SDK'yı veya düşük seviyeli `client.request(method, path, ...)` kaçış yolunu kullanın — [Dile göre SDK kapsamı](/sdks#java-core-scope-not-full-parity) bölümüne bakın.
</Note>

### C# SDK

```bash theme={null}
# Not yet on NuGet — add the workspace project reference:
#   dotnet add reference packages/sdk-csharp
export ORBIT_API_KEY=dv_test_sk_your_key_here
```

```csharp theme={null}
// xmlns/pep: the .NET client ships as Orbit.Sdk in the monorepo.
using Orbit.Sdk;
using Orbit.Sdk.Errors;

try
{
    var client = OrbitClient.FromEnv();
    var result = await client.Messages.SendSmsAsync(
        "+14155552671",
        "Hello from Orbit!"
    );
    if (result.TryGetProperty("data", out var data) &&
        data.TryGetProperty("id", out var id))
        Console.WriteLine($"queued: {id.GetString()}");
}
catch (OrbitError e)
{
    Console.Error.WriteLine($"send failed: {e.Code} — {e.Message}");
}
```

<Note>
  .NET SDK çekirdek kapsamlı ve yayımlanmamıştır — `client.Messages` + `client.Voice` gönderimleri bugün çalışır; kayıtlar/transkriptler/konferanslar/IVR/dialer kapsam dışıdır. Bunlar için Node SDK'yı veya düşük seviyeli `client.RequestAsync(method, path, ...)` kaçış yolunu kullanın — [Dile göre SDK kapsamı](/sdks#net-core-scope-not-full-parity) bölümüne bakın.
</Note>

### Voice

#### cURL

`POST /voice/calls` ile bir çağrı başlatın:

```bash theme={null}
curl -X POST https://api.orbit.devotel.io/api/v1/voice/calls \
  -H "X-API-Key: $ORBIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+14155552671",
    "from": "+14155551234",
    "agent_id": "agt_support_bot"
  }'
```

#### Node.js SDK

```typescript theme={null}
const call = await orbit.voice.calls.create({
  to: '+14155552671',
  from: '+14155551234',
  agent_id: 'agt_support_bot',
});
```

<Note>
  Diğer altı SDK (Python, Go, Ruby, PHP, Java, C#) `POST /voice/calls` uç noktasını çekirdek kapsamları dahilinde destekler — yukarıdaki dile özgü bölümlere bakın. Ses kayıtları, transkriptler, konferanslar, IVR ve dialer bu SDK'lar için kapsam dışıdır; Node SDK'yı veya REST API'yi doğrudan her dilin düşük seviyeli `request(...)` kaçış yoluyla kullanın — [Dile göre SDK kapsamı](/sdks) bölümüne bakın.
</Note>

> Ses ile sıfırdan mı başlıyorsunuz? Özel [Voice Quickstart](/voice/quickstart) kılavuzunu izleyin — bir numara tedarik etmeyi, bir aracıyı sistem istemiyle yapılandırmayı, tarayıcı mikrofonuyla test etmeyi ve SSE olay aboneliğini kapsar; tümü 5 dakikadan kısa sürer.

> `$ORBIT_API_KEY` değerini Adım 2'deki anahtarla değiştirin (veya kabuğunuzda dışa aktarın). Anahtarınızı doğrudan paylaşılan kod parçacıklarına yapıştırmayın.

## Adım 4: Yanıtı Kontrol Edin

```json theme={null}
{
  "data": {
    "id": "msg_abc123",
    "status": "queued",
    "channel": "sms"
  },
  "meta": {
    "request_id": "req_xyz789",
    "timestamp": "2026-03-08T00:00:00Z"
  }
}
```

Tebrikler — Orbit ile ilk mesajınızı ücretsiz olarak 5 dakikadan kısa sürede gönderdiniz. Bir sandbox gönderimi, `delivered`/`failed` durumuna yükseltilmek yerine dürüst `test_sent` durumunu korur — isteğe bağlı olarak belirli bir teslimat raporu sonucu (delivered, undelivered, expired ve 7 diğer) tetiklemek için, eşleşen son rakamına sahip bir alıcı numarasına gönderin; [Sandbox Magic Numbers](/sandbox/magic-numbers) sayfasına bakın. Sırada bir teslimat webhook'u bağlayın: [Webhooks](/webhooks/overview) sayfasına bakın.

## Adım 5: Canlıya Geçiş

Sandbox trafiği asla gerçek bir operatöre ulaşmadığından, entegrasyonunuzu oluşturmanın ve test etmenin en hızlı yoludur — ancak canlıya geçmek iki şey daha gerektirir:

1. **KYC doğrulaması.** İşletme belgelerinizi **Settings > KYC** altında gönderin. Bir yönetici kuruluşunuzu onayladığında canlı gönderimin kilidi açılır — ancak Orbit kullandıkça öde modeliyle çalışır ve otomatik deneme kredisi yoktur, bu nedenle **Settings > Billing** altından bakiye ekleyene kadar canlı bakiyeniz **\$0** kalır. SMS (ABD veya uluslararası), WhatsApp ve ses, gönderilebilmeleri için onaylı KYC ve finanse edilmiş bakiye gerektirir.
2. **ABD SMS için 10DLC kaydı.** ABD numaralarına canlı trafik üzerinden SMS göndermek ayrıca 10DLC marka + kampanya kaydı gerektirir — KYC'nin üzerine eklenen ve onun yerine geçmeyen bir uyumluluk adımı. [Sender ID Registration](/compliance/sender-id-registration) sayfasına bakın.

KYC onaylandıktan sonra, **Settings > API Keys** altında bir canlı anahtar (`dv_live_sk_` öneki) oluşturun ve yukarıda kullandığınız `dv_test_sk_` anahtarıyla değiştirin — istek yapısı değişmez.
