RESTful API ile kendi platformunuzda ReqHit altyapısını kullanarak hit botu hizmeti satın. Tüm endpoint'ler JSON formatında yanıt döner.
https://api.reqhit.com/v1
Bearer Token (JWT)
JSON (UTF-8)
Header'da belirtilir
Tüm API istekleri Authorization header'ı ile Bearer token gerektirir. Token almak için API anahtarınız ve gizli anahtarınız ile /auth/token endpoint'ini kullanın.
# Her istekte header olarak gönderin:
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
Content-Type: application/json
X-Request-ID: uuid-v4 (opsiyonel, idempotency için)
Güvenlik Uyarısı
API anahtarlarınızı asla client-side kodda (JavaScript, mobil uygulama) kullanmayın. Tüm API çağrıları sunucu tarafından yapılmalıdır. Anahtarlarınız ele geçirilirse derhal bayilik panelinizden yenileyin.
Kritik işlemler (sipariş oluşturma, iptal) için ek güvenlik katmanı olarak HMAC-SHA256 imzalama zorunludur.
// Node.js örneği
const
crypto = require('crypto');
const timestamp = Date.now().toString();
const body = JSON.stringify(requestBody);
const message = timestamp + '.' + body;
const signature = crypto
.createHmac('sha256', apiSecret)
.update(message)
.digest('hex');
// Header'lara ekleyin:
X-Signature: {signature}
X-Timestamp: {timestamp}
/api/v1/auth/tokenAPI anahtarı ile erişim token'ı al
| Parametre | Tip | Zorunlu | Açıklama |
|---|---|---|---|
| api_key | string | Evet | Bayilik panelinden alınan API anahtarı |
| api_secret | string | Evet | Bayilik panelinden alınan gizli anahtar |
{
"api_key": "rh_live_abc123def456",
"api_secret": "sk_live_789xyz..."
}{
"access_token": "eyJhbGciOiJIUzI1NiIs...",
"token_type": "Bearer",
"expires_in": 3600,
"scope": "orders:read orders:write stats:read"
}/api/v1/auth/refreshErişim token'ını yenile
| Parametre | Tip | Zorunlu | Açıklama |
|---|---|---|---|
| refresh_token | string | Evet | Önceki token yanıtından alınan yenileme token'ı |
{
"refresh_token": "rt_abc123..."
}{
"access_token": "eyJhbGciOiJIUzI1NiIs...",
"expires_in": 3600
}/api/v1/ordersYeni hit siparişi oluştur
| Parametre | Tip | Zorunlu | Açıklama |
|---|---|---|---|
| target_url | string | Evet | Hit gönderilecek hedef URL (HTTPS zorunlu) |
| plan | string | Evet | Paket: starter, professional, enterprise |
| hits_per_minute | integer | Hayır | Dakikada gönderilecek hit sayısı (varsayılan: paket limiti) |
| duration_hours | integer | Hayır | Süre (saat). Varsayılan: 168 (1 hafta) |
| proxy_country | string | Hayır | ISO 3166-1 alpha-2 ülke kodu. Varsayılan: rastgele |
| user_agent_type | string | Hayır | desktop, mobile, mixed (varsayılan: mixed) |
| cookie_enabled | boolean | Hayır | Cookie simülasyonu. Varsayılan: true |
| referer_urls | string[] | Hayır | Referrer URL listesi (maks. 10) |
| schedule.start_time | ISO 8601 | Hayır | Zamanlanmış başlangıç |
| callback_url | string | Hayır | Durum değişikliklerinde webhook URL |
{
"target_url": "https://example.com",
"plan": "professional",
"hits_per_minute": 500,
"duration_hours": 168,
"proxy_country": "TR",
"user_agent_type": "mixed",
"cookie_enabled": true,
"referer_urls": [
"https://google.com",
"https://yandex.com"
],
"schedule": {
"start_time": "2026-03-01T10:00:00Z",
"timezone": "Europe/Istanbul"
},
"callback_url": "https://yoursite.com/webhook/reqhit"
}{
"id": "ord_7f3a8b2c1d4e",
"status": "pending",
"target_url": "https://example.com",
"plan": "professional",
"hits_per_minute": 500,
"hits_total": 0,
"hits_delivered": 0,
"duration_hours": 168,
"proxy_country": "TR",
"created_at": "2026-03-01T09:30:00Z",
"starts_at": "2026-03-01T10:00:00Z",
"expires_at": "2026-03-08T10:00:00Z",
"estimated_cost_usdt": 349.00
}/api/v1/ordersTüm siparişleri listele
| Parametre | Tip | Zorunlu | Açıklama |
|---|---|---|---|
| status | string | Hayır | Filtre: pending, active, completed, cancelled |
| page | integer | Hayır | Sayfa numarası (varsayılan: 1) |
| per_page | integer | Hayır | Sayfa başına kayıt (maks: 100) |
{
"orders": [
{
"id": "ord_7f3a8b2c1d4e",
"status": "active",
"target_url": "https://example.com",
"plan": "professional",
"hits_delivered": 145230,
"hits_total": 500000,
"created_at": "2026-03-01T09:30:00Z",
"expires_at": "2026-03-08T10:00:00Z"
}
],
"total": 1,
"page": 1,
"per_page": 20
}/api/v1/orders/{id}Sipariş detayını getir
| Parametre | Tip | Zorunlu | Açıklama |
|---|---|---|---|
| id | string | Evet | Sipariş ID (path parametresi) |
{
"id": "ord_7f3a8b2c1d4e",
"status": "active",
"target_url": "https://example.com",
"plan": "professional",
"hits_per_minute": 500,
"hits_delivered": 145230,
"hits_total": 500000,
"success_rate": 99.7,
"unique_ips_used": 12847,
"proxy_country": "TR",
"user_agent_type": "mixed",
"cookie_enabled": true,
"created_at": "2026-03-01T09:30:00Z",
"starts_at": "2026-03-01T10:00:00Z",
"expires_at": "2026-03-08T10:00:00Z",
"last_hit_at": "2026-03-02T14:22:31Z"
}/api/v1/orders/{id}/startHit gönderimini başlat
| Parametre | Tip | Zorunlu | Açıklama |
|---|---|---|---|
| id | string | Evet | Sipariş ID |
{
"id": "ord_7f3a8b2c1d4e",
"status": "active",
"message": "Hit delivery started successfully",
"started_at": "2026-03-01T10:00:00Z"
}/api/v1/orders/{id}/stopHit gönderimini durdur
| Parametre | Tip | Zorunlu | Açıklama |
|---|---|---|---|
| id | string | Evet | Sipariş ID |
{
"id": "ord_7f3a8b2c1d4e",
"status": "paused",
"message": "Hit delivery paused",
"paused_at": "2026-03-02T15:00:00Z",
"hits_delivered_so_far": 145230
}/api/v1/orders/{id}Siparişi iptal et
| Parametre | Tip | Zorunlu | Açıklama |
|---|---|---|---|
| id | string | Evet | Sipariş ID |
{
"id": "ord_7f3a8b2c1d4e",
"status": "cancelled",
"message": "Order cancelled. Unused credits refunded.",
"refund_usdt": 125.50
}/api/v1/orders/{id}/statsGerçek zamanlı sipariş istatistikleri
| Parametre | Tip | Zorunlu | Açıklama |
|---|---|---|---|
| id | string | Evet | Sipariş ID |
| period | string | Hayır | realtime, hourly, daily (varsayılan: realtime) |
{
"order_id": "ord_7f3a8b2c1d4e",
"period": "realtime",
"hits_last_minute": 487,
"hits_last_hour": 28420,
"hits_last_24h": 145230,
"success_rate": 99.7,
"avg_response_time_ms": 234,
"unique_ips": 12847,
"top_countries": [
{ "country": "TR", "hits": 89000, "percentage": 61.3 },
{ "country": "DE", "hits": 28000, "percentage": 19.3 },
{ "country": "US", "hits": 28230, "percentage": 19.4 }
],
"user_agent_distribution": {
"desktop": 62.4,
"mobile": 31.2,
"tablet": 6.4
},
"hourly_hits": [
{ "hour": "2026-03-02T13:00:00Z", "hits": 29100 },
{ "hour": "2026-03-02T14:00:00Z", "hits": 28420 }
]
}/api/v1/reports/dailyGünlük özet rapor
| Parametre | Tip | Zorunlu | Açıklama |
|---|---|---|---|
| date | string | Hayır | YYYY-MM-DD formatında tarih. Varsayılan: bugün |
{
"date": "2026-03-02",
"total_hits": 1245000,
"total_orders": 12,
"active_orders": 8,
"total_spend_usdt": 2450.00,
"avg_success_rate": 99.4,
"top_targets": [
{ "url": "https://example.com", "hits": 450000 }
]
}/api/v1/reports/usageKullanım detay raporu
| Parametre | Tip | Zorunlu | Açıklama |
|---|---|---|---|
| from | string | Hayır | Başlangıç tarihi (YYYY-MM-DD) |
| to | string | Hayır | Bitiş tarihi (YYYY-MM-DD) |
{
"period": { "from": "2026-02-01", "to": "2026-02-28" },
"total_hits": 15400000,
"total_orders": 45,
"total_spend_usdt": 12500.00,
"daily_breakdown": [
{ "date": "2026-02-01", "hits": 520000, "spend_usdt": 420.00 }
]
}/api/v1/balanceBakiye ve kredi sorgula
{
"balance_usdt": 1250.00,
"credits_remaining": 5000000,
"tier": "gold",
"commission_rate": 0.40,
"next_tier": "platinum",
"next_tier_threshold_usdt": 20000,
"current_month_revenue_usdt": 8500.00
}/api/v1/proxiesKullanılabilir proxy listesi
| Parametre | Tip | Zorunlu | Açıklama |
|---|---|---|---|
| country | string | Hayır | Ülke kodu filtresi |
| type | string | Hayır | residential, isp, datacenter |
{
"total_proxies": 50000,
"countries": [
{ "code": "TR", "name": "Turkey", "count": 8500, "type": ["residential", "isp"] },
{ "code": "US", "name": "United States", "count": 12000, "type": ["residential", "datacenter"] },
{ "code": "DE", "name": "Germany", "count": 5200, "type": ["residential", "isp"] }
],
"types": {
"residential": 35000,
"isp": 10000,
"datacenter": 5000
}
}/api/v1/webhooksWebhook URL tanımla
| Parametre | Tip | Zorunlu | Açıklama |
|---|---|---|---|
| url | string | Evet | Webhook alıcı URL (HTTPS zorunlu) |
| events | string[] | Evet | Dinlenecek event türleri |
| secret | string | Hayır | Webhook imza doğrulama anahtarı |
{
"url": "https://yoursite.com/webhook/reqhit",
"events": ["order.started", "order.completed", "order.failed", "hits.milestone"],
"secret": "whsec_your_signing_secret"
}{
"id": "wh_abc123",
"url": "https://yoursite.com/webhook/reqhit",
"events": ["order.started", "order.completed", "order.failed", "hits.milestone"],
"status": "active",
"created_at": "2026-03-01T10:00:00Z"
}/api/v1/webhooksTanımlı webhook'ları listele
{
"webhooks": [
{
"id": "wh_abc123",
"url": "https://yoursite.com/webhook/reqhit",
"events": ["order.started", "order.completed"],
"status": "active",
"last_triggered_at": "2026-03-02T14:22:31Z",
"success_rate": 100
}
]
}/api/v1/webhooks/{id}Webhook sil
| Parametre | Tip | Zorunlu | Açıklama |
|---|---|---|---|
| id | string | Evet | Webhook ID |
{ "message": "Webhook deleted successfully" }Webhook'lar HTTP POST ile gönderilir. 3 başarısız denemeden sonra devre dışı bırakılır.
| Event | Açıklama |
|---|---|
| order.created | Sipariş oluşturulduğunda |
| order.started | Hit gönderimi başladığında |
| order.paused | Hit gönderimi duraklatıldığında |
| order.completed | Sipariş tamamlandığında |
| order.failed | Sipariş başarısız olduğunda |
| order.cancelled | Sipariş iptal edildiğinde |
| hits.milestone | Hit sayısı %25, %50, %75, %100'e ulaştığında |
| balance.low | Bakiye belirli bir eşiğin altına düştüğünde |
{
"event": "order.completed",
"timestamp": "2026-03-08T10:00:00Z",
"data": {
"order_id": "ord_7f3a8b2c1d4e",
"status": "completed",
"hits_delivered": 500000,
"success_rate": 99.7
},
"signature": "sha256=a1b2c3d4e5f6..."
}Tüm hatalar standart HTTP durum kodları ve JSON hata mesajı ile döner.
| Kod | Durum | Açıklama |
|---|---|---|
| 400 | Bad Request | İstek parametreleri geçersiz veya eksik |
| 401 | Unauthorized | Geçersiz veya süresi dolmuş token |
| 403 | Forbidden | Bu kaynağa erişim yetkiniz yok |
| 404 | Not Found | İstenen kaynak bulunamadı |
| 409 | Conflict | Çakışma — sipariş zaten aktif/iptal edilmiş |
| 422 | Unprocessable Entity | Geçersiz URL formatı veya desteklenmeyen parametre |
| 429 | Too Many Requests | Rate limit aşıldı. Retry-After header'ını kontrol edin |
| 500 | Internal Server Error | Sunucu hatası. Tekrar deneyin veya destek ile iletişime geçin |
| 503 | Service Unavailable | Bakım modu. Genellikle birkaç dakika sürer |
{
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "Rate limit aşıldı. 60 saniye sonra tekrar deneyin.",
"retry_after": 60
},
"request_id": "req_abc123"
}Her yanıtta rate limit bilgisi header olarak döner:
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 95
X-RateLimit-Reset: 1709312400 (Unix timestamp)
Retry-After: 30 (sadece 429 yanıtlarında)
# 1. Token al
curl -X POST https://api.reqhit.com/v1/auth/token \
-H "Content-Type: application/json" \
-d '{"api_key":"rh_live_xxx","api_secret":"sk_live_xxx"}'
# 2. Sipariş oluştur
curl -X POST https://api.reqhit.com/v1/orders \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"target_url":"https://example.com","plan":"professional"}'
# 3. İstatistikleri kontrol et
curl https://api.reqhit.com/v1/orders/ord_xxx/stats \
-H "Authorization: Bearer YOUR_TOKEN"
Bayilik başvurunuz onaylandıktan sonra API anahtarlarınız ve sandbox ortamı hazırlanır.