← Onaymatik Fiyatlar →

API Dokümantasyonu

Kendi sitenizden veya uygulamanızdan otomatik sanal numara alın, doğrulama kodunu çekin, kod gelmezse iptal edip bakiyenize iade alın. REST, JSON, tek başlıkla kimlik doğrulama.

API anahtarı nasıl alınır?
Anahtarlar talep üzerine verilir. Destek üzerinden yazın; hesabınıza bağlı bir anahtar oluşturulup size iletilir. Anahtar hesabınızın bakiyesini kullanır.

Kimlik doğrulama

Her istekte X-API-Key başlığını gönderin:

X-API-Key: a1b2c3d4e5f60718293a4b5c6d7e8f90

Alternatif olarak Authorization: Bearer a1b2c3d4e5f6... da kabul edilir.

Anahtarınızı gizli tutun. Anahtar sizin bakiyenizden harcama yapabilir. Tarayıcıda çalışan koda (JavaScript) koymayın — yalnızca kendi sunucunuzda kullanın. Sızdığını düşünüyorsanız hemen bize yazın, anında iptal edip yenisini veririz.

Temel adres

https://onaymatik.org/api/v1

Uçlar

GET/api/v1/ping

Bağlantı testi. Anahtar gerekmez.

curl https://onaymatik.org/api/v1/ping
GET/api/v1/balance

Hesap bakiyeniz.

{"ok":true,"data":{"balance":250.75,"currency":"TRY","email":"siz@ornek.com"}}
GET/api/v1/services

Servis kataloğu: her servisin fiyatı, stoğu ve ülke kırılımı. Sipariş verirken buradaki id ve ülke id değerlerini kullanın.

GET/api/v1/countries

Ülke listesi.

POST/api/v1/order

Numara satın alır. Tutar anında bakiyenizden düşer.

AlanTipAçıklama
serviceIdstring/services içindeki id
countryIdstring/countries içindeki id
curl -X POST https://onaymatik.org/api/v1/order \
  -H "X-API-Key: a1b2c3d4e5f6..." \
  -H "Content-Type: application/json" \
  -d '{"serviceId":"s1_wa","countryId":"tr"}'

Yanıt:

{
  "order": {
    "id": "ord_a1b2c3",
    "service": "WhatsApp",
    "country": "Türkiye",
    "number": "905xxxxxxxxx",
    "code": "",
    "status": "bekliyor",
    "price": 12.5,
    "createdAt": "2026-09-13T10:00:00.000Z"
  },
  "balance": 238.25
}
GET/api/v1/order/{id}

Tek siparişin güncel durumu. Kodu buradan alırsınız. Kod geldiğinde code alanı dolar ve status tamamlandı olur.

curl https://onaymatik.org/api/v1/order/ord_a1b2c3 \
  -H "X-API-Key: a1b2c3d4e5f6..."
GET/api/v1/orders

Son siparişleriniz (en fazla 20) ve güncel bakiye.

POST/api/v1/order/{id}/cancel

Kod gelmediyse siparişi iptal eder ve tutar otomatik olarak bakiyenize iade edilir.

İki kural: numara alındıktan sonra iptal için 2 dakika beklemeniz gerekir; ve kod geldiyse iptal edilemez (hizmet ifa edilmiş sayılır).

Tipik akış

1. POST /api/v1/order          → numarayı al, order.id'yi sakla
2. GET  /api/v1/order/{id}     → 3-5 saniyede bir sor, code doldu mu?
3a. Kod geldi                  → işin bitti
3b. 2 dk geçti, kod yok        → POST /api/v1/order/{id}/cancel → iade

PHP örneği

<?php
$ANAHTAR = 'a1b2c3d4e5f6...';
$TABAN   = 'https://onaymatik.org/api/v1';

function cagir($yol, $govde = null) {
    global $ANAHTAR, $TABAN;
    $ch = curl_init($TABAN . $yol);
    curl_setopt_array($ch, [
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HTTPHEADER => ['X-API-Key: ' . $ANAHTAR, 'Content-Type: application/json'],
    ]);
    if ($govde !== null) curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($govde));
    $y = curl_exec($ch); curl_close($ch);
    return json_decode($y, true);
}

$s = cagir('/order', ['serviceId' => 's1_wa', 'countryId' => 'tr']);
$id = $s['order']['id'];

for ($i = 0; $i < 40; $i++) {          // ~2 dakika boyunca yokla
    sleep(3);
    $d = cagir('/order/' . $id);
    if (!empty($d['data']['code'])) { echo "KOD: " . $d['data']['code']; exit; }
}
cagir('/order/' . $id . '/cancel', []);  // kod gelmedi → iade
echo "Kod gelmedi, iade edildi.";

Hata kodları

HTTPAnlamı
401Anahtar yok, geçersiz ya da iptal edilmiş
402Yetersiz bakiye
403Hesap askıya alınmış
404Servis, ülke ya da sipariş bulunamadı
409Stok yok ya da fiyat değişti — tekrar deneyin
425İptal için henüz erken (2 dk dolmadı)
429Çok fazla istek (dakikada 120) ya da önceki alım sürüyor
503Site bakımda

Hata yanıtları her zaman bir error alanı içerir.

Kısıtlı anahtarlar

Size verilen anahtar belirli bir servis ve/veya ülkeyle sınırlandırılmış olabilir. Örneğin yalnızca Türkiye WhatsApp numarası alabilen bir anahtar gibi.

Anahtarınızın neyle sınırlı olduğunu görmek için /services ve /countries uçlarını çağırın — kısıtlıysa bu uçlar yalnızca izinli olanı döndürür. İzin dışında bir sipariş denerseniz 403 alırsınız:

{
  "ok": false,
  "error": "Bu anahtar yalnızca \"WhatsApp\" servisinden numara alabilir (serviceId: s1_wa).",
  "code": "SERVICE_NOT_ALLOWED"
}

Kısıt kodları: SERVICE_NOT_ALLOWED, COUNTRY_NOT_ALLOWED. Sınırınızın değişmesini istiyorsanız bize yazın.

Sınırlar