# Netgsm SMS API

> Bu API ile SMS gönderebilir, iletim raporlarını takip edebilir ve size gelen SMS'leri okuyabilirsiniz.

- **Sürüm:** 3.0
- **Canlı ortam:** `https://ext-api.netgsm.com.tr/sms/v3`
- **OpenAPI tanımı:** https://api-docs.netgsm.com.tr/openapi/sms-v3.yaml
- **HTML sayfası:** https://api-docs.netgsm.com.tr/netgsm-sms-api/

Bu API ile SMS gönderebilir, iletim raporlarını takip edebilir ve size gelen SMS'leri
okuyabilirsiniz.

## Kimlik doğrulama

Her isteğe `Authorization: Bearer <token>` başlığını eklemelisiniz. Token'ı Netgsm
Authorization API'nin `POST https://ext-api.netgsm.com.tr/auth/v3/token` ucundan, kullanıcı adınız ve şifrenizle alırsınız.
SMS API için token alırken `scope` olarak `sms` göndermelisiniz:

```json
{
  "username": "312XXXXXXX",
  "password": "XXXXXXX",
  "scope": "sms"
}
```

Token her şeyden önce kontrol edilir; token yoksa ya da geçersizse istek ne olursa olsun
`401` döner.

## İstek ve yanıt biçimi

- Gövdeler JSON'dur: `Content-Type: application/json`.
- Gövdeyi sıkıştırmadan göndermelisiniz (`Content-Encoding` yalnızca `identity` olabilir).
- Bir istek gövdesi en fazla 500 MB olabilir.
- Yanıtlarda tüm alanlar her zaman bulunur; değeri olmayan bir alan `null` olarak gönderilir.
  Tek istisna hata yanıtındaki `rejectedItems` ve `rejectedItemsTruncated` alanlarıdır; bunlar
  yalnızca `NO_DELIVERABLE_MESSAGES` hatasında bulunur.
- Tarih ve saatler saat dilimiyle birlikte ISO-8601 biçimindedir, örneğin
  `2026-09-10T09:00:00+03:00`.

## Hatalar

Hatalar her zaman aynı `ApiError` yapısıyla döner. Destek ekibine yazarken yanıttaki
`requestId` değerini paylaşmanız, isteğinizi kayıtlarda hızlıca bulmamızı sağlar.

Her uç noktada karşılaşabileceğiniz genel hatalar:

| Durum | Kod | Ne zaman |
|---|---|---|
| 401 | `UNAUTHENTICATED` | Token yok veya geçersiz. |
| 404 | `NOT_FOUND` | Adres yok. |
| 405 | `INVALID_REQUEST` | Adres bu metodu desteklemiyor. Desteklenen metotlar `Allow` başlığındadır. |
| 406 | — | `Accept` başlığı JSON'u kabul etmiyor. Bu yanıtın gövdesi yoktur. |
| 413 | `INVALID_REQUEST` | Gövde 500 MB'ı aşıyor. |
| 415 | `INVALID_REQUEST` | Gövde JSON değil ya da sıkıştırılmış. |
| 503 | `SERVICE_UNAVAILABLE` | Servis isteği şu anda kabul edemiyor; isteği biraz sonra tekrar gönderebilirsiniz. |

## Kimlik doğrulama şemaları

- `bearer` (HTTP bearer): Bearer erişim token'ı. Herhangi bir gövde okunmadan önce kontrol edilir.

## Uç noktalar

### Gönderim

SMS gönderme, rehber gruplarına ve OTP gönderme, mesaj uzunluğu hesaplama ve zamanlanmış görevleri iptal etme.

- [`POST /cancel` Zamanlanmış gönderimi iptal etme](https://api-docs.netgsm.com.tr/cancel-job.md): Hesabınızın henüz gönderilmemiş bir görevini geri çeker.
- [`POST /length` SMS uzunluğunu hesaplama](https://api-docs.netgsm.com.tr/measure-length.md): Bir metnin kaç parça tuttuğu ve sınıra ne kadar uzak olduğu; send uç noktasının saydığı şekilde birebir sayılır.
- [`POST /send/otp` OTP SMS gönderme](https://api-docs.netgsm.com.tr/send-otp.md): Tek bir alıcıya OTP (tek kullanımlık şifre) SMS'i gönderir.
- [`POST /send` SMS gönderme](https://api-docs.netgsm.com.tr/send-sms.md): Bir ya da daha fazla alıcıya SMS gönderen bir görev oluşturur.
- [`POST /directory/send` Rehbere SMS gönderme](https://api-docs.netgsm.com.tr/send-to-directory.md): Rehberdeki kişi gruplarına, istekte verilen kişilere ya da her ikisine tek bir metinle gönderimi kuyruğa alır.

### Raporlar ve gelen kutusu

İletim raporları, görev istatistikleri ve hesabınıza gelen SMS'ler.

- [`GET /inbox` Gelen SMS'leri listeleme](https://api-docs.netgsm.com.tr/read-inbox.md): Kimliği doğrulanmış hesabın gelen kutusu, isteğe bağlı olarak bir aralıkla sınırlanır.
- [`GET /report` İletim raporlarını sorgulama](https://api-docs.netgsm.com.tr/read-reports.md): Kimliği doğrulanmış hesabın iletim raporlarından bir sayfa.
- [`GET /stats` Gönderim istatistiklerini sorgulama](https://api-docs.netgsm.com.tr/read-stats.md): Kimliği doğrulanmış hesabın bir görevi için, gönderildiği ay üzerinden toplanmış, her farklı sonuç başına bir satır.

### Gönderici adları

Hesabınıza kayıtlı gönderici başlıkları ve varsayılan başlık.

- [`PUT /senders/default` Varsayılan gönderici başlığını değiştirme](https://api-docs.netgsm.com.tr/change-default-sender.md): Kayıtlı bir başlığı varsayılan yapar.
- [`GET /senders` Gönderici başlıklarını listeleme](https://api-docs.netgsm.com.tr/list-senders.md): Kimliği doğrulanmış hesaba kayıtlı gönderici başlıkları.
- [`GET /senders/default` Varsayılan gönderici başlığını öğrenme](https://api-docs.netgsm.com.tr/read-default-sender.md): Hesabın varsayılan gönderici başlığı, anlık olarak okunur; bu yüzden bir değişiklik hemen görünür.

### Template

Template ile SMS gönderme ve kullanabileceğiniz kayıtlı ve herkese açık template'leri listeleme.

- [`GET /templates` Template'leri listeleme](https://api-docs.netgsm.com.tr/list-templates.md): Hesabın POST /send/template ile kullanabileceği template'leri, en yenisi önce, sayfa sayfa listeler: hesabın kendi template'leri ve herkese açık template'ler.
- [`POST /send/template` Template ile SMS gönderme](https://api-docs.netgsm.com.tr/send-from-template.md): Kayıtlı template'leri verilen parametrelerle doldurup gönderen bir görev oluşturur.

### Kara liste

Hesabınızın kara listesindeki numaralar.

- [`GET /blacklist` Kara listeyi öğrenme](https://api-docs.netgsm.com.tr/read-blacklist.md): Hesabın kara listesindeki numaraları döndürür.

### Webhook'lar

İletim raporlarının ve gelen SMS'lerin sizin adresinize gönderilmesi.

- [`DELETE /webhooks/inbox` Gelen SMS webhook'unu silme](https://api-docs.netgsm.com.tr/delete-inbox-webhook.md): Gelen SMS webhook'unu silme
- [`DELETE /webhooks/report` İletim raporu webhook'unu silme](https://api-docs.netgsm.com.tr/delete-report-webhook.md): İletim raporu webhook'unu silme
- [`POST /webhooks/inbox` Gelen SMS webhook'u kaydetme](https://api-docs.netgsm.com.tr/register-inbox-webhook.md): Hesaba gelen SMS'lerin gönderileceği adres.
- [`POST /webhooks/report` İletim raporu webhook'u kaydetme](https://api-docs.netgsm.com.tr/register-report-webhook.md): Hesabın iletim raporlarının gönderileceği adres.

### Hesap

Hesabın kalan paketleri, kampanyaları ve kredi bakiyesi.

- [`GET /balance` Bakiye sorgulama](https://api-docs.netgsm.com.tr/get-balance.md): Hesabın kalan paketlerini, kampanyalarını ve kredi bakiyesini döner.
