Quick Start Guide
Panduan cepat menggunakan API H2H QUINELLA – SMM Panel & Digital Services
- Dapatkan API Key: Login → Profil Saya → Copy API Key Anda
- Test Connection: Coba endpoint
/api/profileuntuk memastikan API Key valid - Ambil Daftar Layanan: Gunakan
/api/servicesuntuk melihat semua layanan tersedia - Buat Order: Gunakan
/api/orderdengan service_id yang dipilih - Cek Status: Monitor status order dengan
/api/statusatau/api/orders
Dokumentasi API H2H
API untuk integrasi Host-to-Host (H2H) dengan sistem QUINELLA – SMM Panel & Digital Services
| METODE HTTP | POST / GET (per endpoint) |
| FORMAT RESPONSE | JSON |
| AUTENTIKASI | API Key (1 key only, no secret key) |
| RATE LIMIT | 100 requests per menit per API Key |
| API BASE URL | |
| API KEY |
Silakan Login untuk mendapatkan API Key
|
1. GET PROFILE - Informasi Akun & Saldo
POST
GET
https://www.quinellastore.com/api/profile
Request Parameters
| Parameter | Required | Type | Description |
|---|---|---|---|
api_key | YES | string | API Key Anda dari halaman Profil |
Code Examples
cURL
PHP
JavaScript
Python
# GET Method
curl "https://www.quinellastore.com/api/profile?api_key=YOUR_API_KEY"
# POST Method
curl -X POST "https://www.quinellastore.com/api/profile" \
-H "Content-Type: application/json" \
-d '{"api_key":"YOUR_API_KEY"}'
$api_key]));
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$result = json_decode($response, true);
curl_close($ch);
print_r($result);
?>
// Using Fetch API
const apiKey = 'YOUR_API_KEY';
const url = 'https://www.quinellastore.com/api/profile';
fetch(url, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ api_key: apiKey })
})
.then(res => res.json())
.then(data => console.log(data))
.catch(err => console.error(err));
import requests
import json
api_key = 'YOUR_API_KEY'
url = 'https://www.quinellastore.com/api/profile'
response = requests.post(url, json={'api_key': api_key})
result = response.json()
print(json.dumps(result, indent=2))
Success Response (200 OK)
{
"status": true,
"data": {
"user_id": 1,
"username": "user123",
"email": "user@example.com",
"balance_smm": 500000,
"balance_topup": 300000
}
}
| Field | Description |
|---|---|
| status | true jika berhasil, false jika error |
| data.user_id | ID user di database |
| data.username | Username akun |
| data.email | Email akun |
| data.balance_smm | Saldo untuk produk SMM (dalam Rupiah) |
| data.balance_topup | Saldo untuk produk Top Up (dalam Rupiah) |
Error Response (400/401/500)
{
"status": false,
"data": {
"error_code": "INVALID_API_KEY",
"message": "API Key tidak valid atau akun tidak aktif"
}
}
2. GET SERVICES - Daftar Layanan
POST
GET
https://www.quinellastore.com/api/services
Request Parameters
| Parameter | Required | Description |
|---|---|---|
api_key | YES | API Key Anda |
Example Request
curl "https://www.quinellastore.com/api/services?api_key=YOUR_API_KEY"
Success Response
{
"status": true,
"data": [
{
"service_id": 1,
"category": "Instagram",
"category_id": 1,
"name": "Instagram Followers [Max: 10K]",
"type": "Default",
"product_type": "smm",
"rate": 5000,
"price": 5000,
"min": 100,
"max": 10000,
"description": "Real Instagram followers",
"refill": true,
"provider": "PPSM"
}
]
}
| Field | Description |
|---|---|
| service_id | ID layanan (gunakan untuk order) |
| category | Nama kategori (Instagram, TikTok, dll) |
| name | Nama layanan lengkap |
| type | Tipe: Default, Package, Custom Comments, Comment Likes, SEO |
| product_type | smm atau topup |
| rate | Harga per 1000 (untuk SMM) |
| price | Harga fix (untuk Topup) |
| min | Minimal order |
| max | Maksimal order |
| refill | Garansi refill (true/false) |
3. CREATE ORDER - Buat Pesanan Baru
POST
https://www.quinellastore.com/api/order
Request Parameters
| Parameter | Required | Service Type | Description |
|---|---|---|---|
api_key | YES | All | API Key Anda |
service_id | YES | All | ID layanan dari /api/services |
target | YES | All | Link/Username (SMM) atau JSON (Topup) |
quantity | COND | Default, Comment Likes, SEO | Jumlah order (min-max dari service) |
comments | COND | Custom Comments, SEO | Komentar atau keywords (1 per baris) |
username | COND | Comment Likes | Username pemilik comment |
Service Type Requirements:
- Default: api_key + service_id + target + quantity
- Package: api_key + service_id + target (NO quantity)
- Custom Comments: api_key + service_id + target + comments
- Comment Likes: api_key + service_id + target + quantity + username
- SEO: api_key + service_id + target + quantity + comments (keywords)
Examples
Example 1: SMM Order (Default Type)
curl -X POST "https://www.quinellastore.com/api/order" \
-H "Content-Type: application/json" \
-d '{
"api_key": "YOUR_API_KEY",
"service_id": 1,
"target": "https://instagram.com/p/ABC123/",
"quantity": 1000
}'
Example 2: Top Up Order
curl -X POST "https://www.quinellastore.com/api/order" \
-H "Content-Type: application/json" \
-d '{
"api_key": "YOUR_API_KEY",
"service_id": 45,
"target": "{\"user_id\":\"12345678\",\"zone_id\":\"1234\"}"
}'
Example 3: Custom Comments
curl -X POST "https://www.quinellastore.com/api/order" \
-H "Content-Type: application/json" \
-d '{
"api_key": "YOUR_API_KEY",
"service_id": 10,
"target": "https://instagram.com/p/ABC123/",
"comments": "Amazing!\nLove this!\nGreat post!"
}'
Success Response
{
"status": true,
"data": {
"order_id": 12345,
"charge": 5000,
"start_count": 1500,
"remains": 1000,
"status": "Pending"
}
}
| Field | Description |
|---|---|
| order_id | ID order (simpan untuk cek status) |
| charge | Biaya yang dikenakan (Rupiah) |
| start_count | Jumlah awal (followers/likes/dll sebelum order) |
| remains | Sisa yang harus diproses |
| status | Status order saat ini |
Price Calculation
SMM Products:
Example: rate=5000, quantity=1000 → charge = (5000/1000)*1000 = 5000
Topup Products:
charge = (rate / 1000) * quantityExample: rate=5000, quantity=1000 → charge = (5000/1000)*1000 = 5000
Topup Products:
charge = price (fix price per item)
4. CHECK STATUS
POST
/api/statusParameters
api_key- API Keyorder_id- ID order
curl -X POST "https://www.quinellastore.com/api/status" \
-H "Content-Type: application/json" \
-d '{"api_key":"KEY","order_id":123}'
{
"status": true,
"data": {
"order_id": 123,
"service_name": "IG Followers",
"charge": 5000,
"start_count": 1000,
"remains": 500,
"status": "In progress"
}
}
5. ORDER HISTORY
GET
/api/ordersParameters
api_key- API Keypage- Halaman (optional, default: 1)limit- Per page (optional, max: 100)
curl "https://www.quinellastore.com/api/orders?api_key=KEY&page=1&limit=20"
{
"status": true,
"data": {
"orders": [...],
"pagination": {
"current_page": 1,
"total_pages": 5,
"total_orders": 100
}
}
}
Error Codes
| Code | Meaning |
|---|---|
UNAUTHORIZED | API Key tidak dikirim |
INVALID_API_KEY | API Key tidak valid |
SERVICE_NOT_FOUND | Layanan tidak ditemukan |
INVALID_TARGET | Target wajib diisi |
INVALID_QUANTITY | Quantity di luar min/max |
INSUFFICIENT_BALANCE | Saldo tidak cukup |
ORDER_FAILED | Gagal membuat order |
ORDER_NOT_FOUND | Order tidak ditemukan |
SERVER_ERROR | Error server |
Order Status
| Status | Meaning |
|---|---|
| Pending | Menunggu diproses |
| Processing | Sedang diproses |
| In progress | Sedang berjalan |
| Completed | Selesai |
| Partial | Selesai sebagian |
| Canceled | Dibatalkan |
| Error | Terjadi error |
Best Practices
Security
- Jangan hardcode API Key di frontend
- Simpan API Key di environment variables
- Gunakan HTTPS untuk semua requests
- Regenerate API Key jika terekspose
Performance
- Respect rate limit (100 req/min)
- Implement exponential backoff for retries
- Cache service list (update setiap 1 jam)
- Gunakan batch processing untuk bulk orders
Error Handling
- Selalu cek field
statusdi response - Log semua error untuk debugging
- Handle timeout (set timeout 30s)
- Validate data sebelum kirim request
Monitoring
- Track API response time
- Monitor saldo secara berkala
- Set alert untuk error rate > 5%
- Log semua transaksi untuk audit
Important Notes
- API Key: Dapatkan di halaman Profil Saya. Bisa di-regenerate kapan saja.
- Rate Limit: Maksimal 100 requests per menit per API Key. Excess akan di-reject dengan error 429.
- Timeout: Set timeout minimal 30 detik untuk semua requests.
- Saldo: Pastikan saldo mencukupi sebelum order. Cek dengan endpoint
/api/profile. - Price Calculation: SMM = (rate/1000) * quantity. Topup = price (fix).
- Service Types: Perhatikan parameter yang required untuk setiap tipe service.
- Order Status: Status akan otomatis update saat provider memproses. Cek berkala dengan
/api/status. - Support: Hubungi support jika ada masalah atau pertanyaan via Tiket.