Uygulamanıza görüntülü ve sesli görüşme ekleyin
Web, Flutter, Android ve iOS uygulamalarınıza güvenli gerçek zamanlı iletişim özelliklerini iki HTTP isteği ve açık kaynak istemcilerle dakikalar içinde ekleyin.
- Ücretsiz paket: ayda 2.000 katılımcı-dakika, kredi kartı istemez
- API, medya ve kayıtlar İstanbul'daki sunucumuzda
- Açık kaynak istemcilerle çalışır; kapalı SDK'ya bağımlılık yok
Üç adımda ilk görüşmeniz
Medya sunucusu, ölçekleme ve kayıt altyapısı bizde; siz yalnızca odayı açıp token üretirsiniz.
Hesabınızı açın
Ücretsiz kayıt olun, panelden projenizi oluşturun ve kayıt politikasını seçin.
API anahtarınızı üretin
Anahtar yalnızca bir kez gösterilir ve sadece sunucunuzda saklanır.
Oda açıp token üretin
İki HTTP isteği: odayı açın, katılımcı için token alın. İstemci token ile bağlanır.
Adım adım anlatım ve tüm uç noktalar için API dokümantasyonuna bakabilirsiniz.
Tanıdığınız araçlarla, tanıdık şekilde
Token'ı sunucunuzda üretin, istemcide yalnızca token kullanın. API secret tarayıcıya hiç inmez.
# 1) Odayı KENDİ sunucunuzdan açın — gizli anahtar yalnızca sunucuda durur.
curl -X POST "https://connect.idn.com.tr/api/v1/rooms" \
-H "X-API-Key: $IDN_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: siparis-4711-gorusme" \
-d '{
"name": "Müşteri görüşmesi",
"externalRoomId": "siparis-4711",
"maxParticipants": 10,
"recordingEnabled": true,
"autoCloseMinutes": 30
}'
# 2) Katılımcı için kısa ömürlü token üretin.
curl -X POST "https://connect.idn.com.tr/api/v1/rooms/$ROOM_ID/join-token" \
-H "X-API-Key: $IDN_KEY" \
-H "Content-Type: application/json" \
-d '{
"participantId": "user-123",
"displayName": "Ahmet Yılmaz",
"role": "host",
"expiresIn": 3600
}'
# → { "success": true,
# "data": { "token": "eyJhbGciOi…", "wsUrl": "wss://rtc.idn.com.tr", "expiresAt": "…" },
# "error": null, "traceId": "00-…" }
// Token'ı kendi sunucunuzdan alın: X-API-Key tarayıcıya hiç inmez.
const { data } = await fetch('/api/gorusme-token', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ siparisNo: 'siparis-4711' })
}).then(r => r.json());
// npm i livekit-client
import { Room } from 'livekit-client';
const room = new Room({ adaptiveStream: true, dynacast: true });
await room.connect(data.wsUrl, data.token);
await room.localParticipant.enableCameraAndMicrophone();
// npm i @livekit/components-react @livekit/components-styles
import { LiveKitRoom, VideoConference } from '@livekit/components-react';
import '@livekit/components-styles';
export default function DestekGorusmesi({ token, wsUrl }) {
return (
<LiveKitRoom token={token} serverUrl={wsUrl} connect video audio>
{/* Kamera, mikrofon, ekran paylaşımı ve katılımcı listesi hazır gelir. */}
<VideoConference />
</LiveKitRoom>
);
}
// Program.cs — gizli anahtar yalnızca sunucuda tutulur.
builder.Services.AddHttpClient("idn", client =>
{
client.BaseAddress = new Uri("https://connect.idn.com.tr/api/v1/");
client.DefaultRequestHeaders.Add("X-API-Key", builder.Configuration["Idn:ApiKey"]);
});
// Görüşme başlatan kendi uç noktanız
app.MapPost("/api/gorusme-token", async (
GorusmeIstegi istek, IHttpClientFactory fabrika, CancellationToken ct) =>
{
var client = fabrika.CreateClient("idn");
var odaYanit = await client.PostAsJsonAsync("rooms", new
{
name = istek.Baslik,
externalRoomId = istek.SiparisNo,
maxParticipants = 10
}, ct);
var oda = await odaYanit.Content.ReadFromJsonAsync<Zarf<OdaVerisi>>(ct);
var tokenYanit = await client.PostAsJsonAsync($"rooms/{oda!.Data.Id}/join-token", new
{
participantId = istek.KullaniciId,
displayName = istek.AdSoyad,
role = "host",
expiresIn = 3600
}, ct);
var token = await tokenYanit.Content.ReadFromJsonAsync<Zarf<TokenVerisi>>(ct);
// Tarayıcıya yalnızca kısa ömürlü token ve ws adresi gider.
return Results.Ok(new { token!.Data.Token, token.Data.WsUrl });
});
public sealed record Zarf<T>(bool Success, T Data, ZarfHata? Error, string TraceId);
public sealed record ZarfHata(string Code, string Message);
public sealed record OdaVerisi(Guid Id, string Name, string Status);
public sealed record TokenVerisi(string Token, string WsUrl, DateTimeOffset ExpiresAt);
// Her olay HMAC-SHA256 ile imzalanır: HMAC(secret, "{timestamp}.{gövde}")
const crypto = require('crypto');
function imzaDogrula(govde, imzaBasligi, zamanDamgasi, secret) {
// 1) Tekrar saldırısı penceresi — eski istekler tekrar oynatılabilir.
if (Math.abs(Math.floor(Date.now() / 1000) - Number(zamanDamgasi)) > 300) return false;
const beklenen = crypto
.createHmac('sha256', secret)
.update(`${zamanDamgasi}.${govde}`)
.digest('hex');
const gelen = imzaBasligi.split(',').find(p => p.startsWith('v1='))?.slice(3);
if (!gelen) return false;
return crypto.timingSafeEqual(Buffer.from(beklenen), Buffer.from(gelen));
}
// 2) Teslimat en az bir kez garantilidir:
// X-IDN-Event-Id ile tekilleştirin, aynı olayı iki kez işlemeyin.
X-IDN-Signature: t=1789337515,v1=3f2b9c…
X-IDN-Timestamp: 1789337515
X-IDN-Event-Id: 01a09cd4-1f2e-7a11-9c33-2b6b4a9d0e77
X-IDN-Event-Type: room_started
{
"id": "01a09cd4-1f2e-7a11-9c33-2b6b4a9d0e77",
"type": "room_started",
"createdAt": "2026-09-14T11:02:31.4210000+00:00",
"data": { "roomId": "…", "externalRoomId": "siparis-4711", "name": "Müşteri görüşmesi" }
}
# Gönderilen olaylar:
room_started · room_finished · participant_joined · participant_left
track_published · track_unpublished · recording_started · recording_finished
participant_connection_lost
Örnekler yayındaki API'nin kendisine aittir; anahtarınızı koyup çalıştırabilirsiniz.
Tüm uç noktalar, şemalar ve hata kodları için
API referansına bakın —
her yanıt success / data / error / traceId zarfıyla döner.
Görüşmenin tamamı, tek altyapıda
Odadan katılımcıya, kayıttan webhook'a kadar üretimde ihtiyaç duyacağınız parçalar hazır.
Görüntülü görüşme
Bire bir ve çoklu katılımcılı odalar; uyarlanabilir bit hızı ile zayıf bağlantıda bile akıcı görüntü.
Sesli görüşme
Yalnızca ses gereken senaryolarda düşük bant genişliği; gürültü bastırma ve yankı engelleme.
Ekran paylaşımı
Tüm ekran, pencere veya sekme paylaşımı; sunum modunda ayrı kalite profili.
Katılımcı yönetimi
Sunucu tarafından katılımcı çıkarma, izin ve rol atama; anlık katılımcı listesi.
Oda yönetimi
Oda oluşturma, kapasite ve süre limiti, boş odanın otomatik kapanması, yeniden bağlanma.
Webhook
Oda ve katılımcı olayları HMAC imzalı webhook ile sisteminize düşer; tekrar denemeli teslimat.
Görüşme kaydı
Sunucu tarafında kayıt, imzalı indirme adresi ve proje bazında saklama süresi.
Kullanım raporu
Proje ve tarih kırılımında katılımcı-dakika, kayıt ve depolama tüketimi.
API anahtarı yönetimi
Proje bazında anahtar üretme, izin kapsamı, iptal ve 60 dakika geçiş süreli rotasyon.
Ekip ve roller
Firma hesabına ekip arkadaşı davet edin; rol bazlı yetki ve denetim kaydı.
Türkçe ve İngilizce
API hata mesajları ve panel iki dilli; dil isteğin Accept-Language başlığına göre seçilir.
Güvenli token sistemi
Kısa ömürlü katılım token'ı sunucunuzda üretilir; API anahtarı tarayıcıya hiç inmez.
Görüşme ihtiyacı olan her ürün
Sektörünüze özel arayüzü siz kurarsınız; altyapı aynı kalır.
Sağlık ve klinik görüşmeleri
Hasta-hekim görüşmesi, ön değerlendirme ve kontrol randevuları; kayıt ve saklama politikası yapılandırılabilir.
Online eğitim
Canlı ders, etüt ve sınav gözetimi; ekran paylaşımı ve ders kaydı.
Video destek
Destek talebinden tek tıkla görüntülü görüşmeye geçiş; görüşme kaydı talebe iliştirilir.
Teknik servis
Sahadaki teknisyenle uzaktan görüntülü destek; arıza anının kaydı.
Tanışma uygulamaları
Eşleşen kullanıcılar telefon numarası paylaşmadan görüntülü tanışır; süreli görüşme, şikayet ve kayıt akışı sizin uygulamanızda kalır.
Online mülakat
Aday görüşmeleri, panel mülakat ve değerlendirme notları.
Danışmanlık
Hukuk, finans ve psikolojik danışmanlık görüşmeleri; randevu sistemine entegre.
SaaS uygulamaları
Kendi ürününüze görüşme özelliğini ekleyin; arayüz sizin olduğu için müşteriniz IDN'i görmez.
Kapalı bir SDK'ya bağımlı kalmayın
Kendi SDK'mızı yazıp sizi ona kilitlemiyoruz. Ürettiğimiz katılım token'ı ve wsUrl,
yaygın kullanılan açık kaynak LiveKit istemcileriyle uyumludur — yarın altyapınızı
taşımak isterseniz uygulama kodunuz elinizde kalır.
Sunucu tarafında kütüphane kurmanız gerekmez: oda açma ve token üretimi düz HTTP çağrısıdır, HTTP isteği atabilen her dil yeterlidir.
Arayüzü sıfırdan yazmak zorunda değilsiniz
React tarafında @livekit/components-react ile hazır görüşme bileşenlerini
tek satırda yerleştirirsiniz: kamera, mikrofon, cihaz seçimi, ekran paylaşımı ve katılımcı
listesi gelir. Arayüz sizin uygulamanızda çalıştığı için görüşme ekranında IDN markası görünmez.
- Kamera, mikrofon ve cihaz seçimi
- Ekran paylaşımı ve tam ekran
- Izgara düzeni ve katılımcı listesi
- Kendi renkleriniz, kendi alan adınız
- Kendi arayüzünüzü yazmak isterseniz de aynı token yeterli
Kod yazmadan denemek isterseniz: panelde bir oda açıp Görüşmeler → Katıl ile hazır görüşme ekranımızdan test görüşmesi yapabilirsiniz.
Görüşme verisi, hassas veridir
Altyapı tarafındaki önlemler; hukuki değerlendirme kullanım senaryonuza göre yapılır.
Kısa ömürlü token
Katılım token'ının süresini siz belirlersiniz; sızsa bile kısa sürede geçersizleşir.
API anahtarı yönetimi
Proje bazında anahtar, izin kapsamı, iptal ve rotasyon; anahtar bir kez gösterilir, veritabanında yalnızca özeti tutulur.
Webhook imzası
Her webhook isteği HMAC-SHA256 ile imzalanır; gövde ve zaman damgası birlikte doğrulanır.
Kiracı izolasyonu
Projeler ve odalar kiracı sınırında ayrışır; izolasyon veritabanı katmanında zorlanır ve testlerle doğrulanır.
Şifreli iletişim
Medya ve sinyalleşme trafiği şifreli taşınır (DTLS-SRTP).
İmzalı kayıt adresleri
Kayıtlar herkese açık adresten servis edilmez; süreli ve imzalı bağlantı ile indirilir.
Denetim kaydı
Anahtar üretimi, oda açma ve kayıt indirme gibi işlemler iz bırakır; hassas değerler yazılmaz.
Saklama politikası
Kayıtların ne kadar saklanacağı proje bazında belirlenir, süre sonunda otomatik silinir.
Görüşme ve kayıt verileri kişisel veri içerir. Aydınlatma, gereken hallerde açık rıza, saklama süresi ve erişim yetkileri veri sorumlusu sıfatıyla sizin tarafınızdan yapılandırılır. KVKK uyumluluğu kullanım senaryosuna ve veri işleme yapılandırmasına göre değerlendirilmelidir; altyapı sağlayıcısı olarak mutlak hukuki garanti verilmez.
Yurt dışı sağlayıcıda olmayanlar
API, veritabanı, medya sunucusu ve kayıtlar İstanbul'daki sunucumuzda; medya trafiği yurt dışına çıkmaz.
API referansı ve hata mesajları Türkçe; İngilizce sürüm aynı üründe hazır, dil başlıkla seçilir.
Entegrasyon sorularınıza saat farkı olmadan, kendi dilinizde yanıt.
Kur riski yok; bütçenizi TL üzerinden planlar, e-faturanızı TL keser.
İstemci tarafında açık kaynak LiveKit kütüphaneleri kullanılır; kapalı bir SDK'ya kilitlenmezsiniz.
Türkiye'deki yazılım firmaları için özel koşullar ve teknik ortaklık.
Kullandığınız kadar, TL üzerinden
Görüşme katılımcı-dakika, saklanan kayıtlar GB/ay olarak ölçülür. Ücretsiz paketle başlayın, ihtiyaç büyüdükçe yükseltin.
Başlangıç
Küçük ekipler ve ilk entegrasyon için.
- Görüşme / ay2.000 katılımcı-dk
- Kayıt depolama5 GB
- Görüşme kaydıYok
- Proje3
- Eşzamanlı oda5
- Oda başına katılımcı20
- Aşım (katılımcı-dk)0,35 ₺
- Kredi kartı istemez
- Tüm API uç noktaları
- Webhook ve olay akışı
- Türkçe dokümantasyon
Geliştirici
Üretime çıkan uygulamalar için.
- Görüşme / ay20.000 katılımcı-dk
- Kayıt depolama50 GB
- Görüşme kaydıDahil
- Proje10
- Eşzamanlı oda50
- Oda başına katılımcı100
- Aşım (katılımcı-dk)0,28 ₺
- Görüşme kaydı dahil
- İmzalı kayıt indirme
- Ekip ve çoklu proje
- E-posta desteği
Profesyonel
Yoğun kullanım ve yüksek eşzamanlılık için.
- Görüşme / ay100.000 katılımcı-dk
- Kayıt depolama250 GB
- Görüşme kaydıDahil
- Proje50
- Eşzamanlı oda250
- Oda başına katılımcı300
- Aşım (katılımcı-dk)0,22 ₺
- Görüşme kaydı dahil
- Yüksek eşzamanlılık
- Kullanım ve maliyet raporu
- Öncelikli teknik destek
Kurumsal
Özel SLA, ayrılmış kapasite ve kurulum desteği.
- Görüşme / ayÖzel
- Kayıt depolamaÖzel
- Görüşme kaydıDahil
- Proje500
- Eşzamanlı oda2.000
- Oda başına katılımcı500
- Ayrılmış kapasite
- Sözleşmeli SLA
- Kurulum ve entegrasyon desteği
- Özel saklama süresi
Fiyatlara KDV dahil değildir. Kullanım örneği: 4 kişilik 10 dakikalık görüşme = 40 katılımcı-dakika.
Aşım birim fiyatı pakete göre değişir, her kartta yazılıdır.
Her pakette: tüm API uç noktaları, webhook'lar, geliştirici paneli, kullanım ekranı, Türkçe dokümantasyon ve panel üzerinden destek talebi.
Ödemeniz onaylandığı anda hesabınız açılır ve paket tanımlanır; panelde kendi kendine paket değiştirme yoktur.
Erken yenilemede kalan süreniz yanmaz, yeni dönem üstüne eklenir.
Sık sorulan sorular
IDN Connect nedir?
Web ve mobil uygulamalarınıza görüntülü görüşme, sesli görüşme, ekran paylaşımı ve görüşme kaydı özelliklerini API ile eklemenizi sağlayan gerçek zamanlı iletişim altyapısıdır. Medya sunucusunu, ölçeklendirmeyi, kayıt ve depolama altyapısını biz yönetiriz; siz kendi arayüzünüzü bağlarsınız.
Hemen deneyebilir miyim? Kredi kartı gerekiyor mu?
Evet, hemen deneyebilirsiniz; kredi kartı gerekmez. connect.idn.com.tr adresinden ücretsiz hesap açtığınızda Başlangıç paketi tanımlanır: ayda 2.000 katılımcı-dakika, 3 proje ve 5 GB depolama. Panelden projenizi açıp API anahtarınızı üretmeniz yeterlidir.
API ile nasıl görüşme başlatırım?
Kendi sunucunuzdan API anahtarınızla önce odayı açarsınız (POST /api/v1/rooms), ardından her katılımcı için kısa ömürlü bir katılım token'ı üretirsiniz (POST /api/v1/rooms/{id}/join-token). Yanıtta dönen token ve wsUrl ile istemci odaya bağlanır. API anahtarı hiçbir zaman tarayıcıya veya mobil uygulamaya konulmaz.
Hangi SDK'ları kullanacağım? Size bağımlı kalır mıyım?
Kendi kapalı SDK'mızı dayatmıyoruz. Ürettiğimiz katılım token'ı ve wsUrl, açık kaynak LiveKit istemcileriyle uyumludur: tarayıcıda livekit-client, React'te @livekit/components-react, mobilde livekit_client (Flutter), livekit-android ve LiveKit Swift SDK. Sunucu tarafında ayrı bir kütüphane gerekmez; HTTP isteği atabilen her dil yeterlidir.
Görüşme kaydı alabilir miyim?
Evet. Kayıt sunucu tarafında başlatılır (POST /rooms/{id}/recordings/start), tamamlandığında recording_finished webhook'u gelir ve dosya imzalı, süreli bir bağlantıyla indirilir. Kayıt Geliştirici paketinden itibaren dahildir. Saklama süresi proje bazında belirlenir ve süre dolduğunda kayıtlar otomatik silinir. Kayıt alınan senaryolarda katılımcıların bilgilendirilmesi ve gereken hallerde açık rıza alınması sizin sorumluluğunuzdadır.
Veriler Türkiye'de mi tutuluyor?
Evet. API, PostgreSQL veritabanı, medya sunucusu ve kayıt depolaması İstanbul'daki sunucumuzda çalışır; görüşme medyası doğrudan bu sunucuya gider. Veri modeli çok bölgeli olarak kurgulanmıştır, şu anda yalnızca TR bölgesi aktiftir; yeni bölge talebiniz varsa kurumsal görüşmede planlayabiliriz.
Görüşmeye üyeliksiz katılım mümkün mü?
Evet. Katılımcının IDN Connect'te hesabı olması gerekmez; sunucunuz o kişi için kısa ömürlü bir katılım token'ı üretir ve bağlantıyı siz paylaşırsınız. Token'ın süresi ve izinleri (yayınlayabilir mi, yalnızca izleyebilir mi) sizin belirlediğiniz sınırlar içindedir.
API anahtarını frontend'de kullanabilir miyim?
Hayır. Gizli anahtar oda açabilir ve token üretebilir; tarayıcıya veya mobil uygulama paketine gömülürse hesabınızın tamamı risk altına girer. İstemciye yalnızca kısa ömürlü katılım token'ı gönderilir. Anahtarı 60 dakika geçiş süresiyle rotasyona sokabilir, gerektiğinde anında iptal edebilirsiniz.
Kullanım nasıl hesaplanır?
Görüşme kullanımı katılımcı-dakika üzerinden ölçülür: 4 kişilik 10 dakikalık bir görüşme 40 katılımcı-dakikadır. Kayıtların kapladığı alan GB/ay olarak hesaplanır. Paket kotası aşılırsa paketinizin aşım birim fiyatı uygulanır; güncel tüketiminizi panelde Kullanım ekranından takip edersiniz.
Paketimi nasıl yükseltirim?
Ödeme idn.com.tr üzerinden alınır: fiyat tablosundaki paketin "Satın Alın" düğmesiyle kartla ödersiniz, ödemeniz onaylandığı anda paket hesabınıza tanımlanır ve yeni limitler hemen geçerli olur. Hesabınız yoksa aynı akışta açılır ve giriş bilgileriniz e-posta ile gelir. Panelde kendi kendine paket değiştirme yoktur; tahsilat platform dışında alındığı için yükseltme ödemeye bağlıdır.
Aboneliğim nasıl yenileniyor? Kartım otomatik çekilir mi?
Hayır, kartınızı saklayıp otomatik çekmiyoruz. Dönem bitişine 15, 7 ve 1 gün kala hatırlatma gönderiyoruz; e-postadaki tek tıklık bağlantıdan ödemeyi yaptığınızda dönem uzar. Süresi dolmadan yenilerseniz kalan süreniz yanmaz, yeni dönem üstüne eklenir.
KVKK açısından nelere dikkat etmeliyim?
Görüşme ve kayıt verisi kişisel veri içerir; aydınlatma yükümlülüğü, gerekli hallerde açık rıza, saklama süresi ve erişim yetkileri sizin veri sorumlusu sıfatınızla yapılandırılır. Altyapı tarafında Türkiye'de barındırma, kısa ömürlü token, kiracı izolasyonu, imzalı kayıt adresleri, denetim kaydı ve saklama politikası sunuyoruz; talep hâlinde veri işleyen sözleşmesi imzalanır. KVKK uyumluluğu kullanım senaryonuza ve veri işleme yapılandırmanıza göre değerlendirilmelidir; mutlak bir hukuki garanti verilmez.
Teknik destek alabilir miyim?
Evet, destek Türkçe verilir. Panel içindeki destek ekranından talep açabilirsiniz; hata yanıtlarında dönen traceId'yi iletirseniz ilgili isteğin izini doğrudan bulabiliyoruz. Geliştirici pakette e-posta, Profesyonel pakette öncelikli, Kurumsal pakette sözleşmeli SLA kapsamında destek sağlanır.
İlk görüntülü görüşmenizi birlikte başlatalım
Denemek için beklemenize gerek yok: ücretsiz hesap açıp bugün entegrasyona başlayabilirsiniz. Bu form ücretli pakete geçiş, kurumsal teklif ve entegrasyon desteği talepleri içindir.
- Senaryonuza uygun paket ve maliyet çıkarımı
- Entegrasyonda doğrudan teknik ekiple çalışma
- Kurumsal ihtiyaçlarda SLA ve veri işleyen sözleşmesi
Başvuru formu
Kullanım senaryonuzu kısaca anlatın; size uygun paketi ve aylık maliyeti birlikte netleştirelim.
