Developers
Integrate the Via Hype reseller API with your SMM panel. Request access in your dashboard, accept the reseller terms and wait for approval. Then create a key; it is shown once.
Resell SMM / request access · OpenAPI specification
Endpoint
POST https://viahype.store/api/v2
Send application/x-www-form-urlencoded or application/json. Every request needs key and action. Keep keys on your server. Never send end-customer names, emails, phone numbers or tax IDs.
Services are named in English. Rate is the price per 1,000 in your account currency (BRL or USD). The API uses reseller pricing, lower than website pricing. Orders keep the price charged at creation. The final charge is rounded up to cents, with a minimum of one cent. Services needing extra fields beyond link, quantity and comments are available only on the website.
Default limits: 120 requests and 20 add attempts per minute per key, plus 30 orders per rolling 10 minutes per account (website and API together). Limits may be adjusted per reseller. HTTP 429 includes Retry-After: 60; wait before retrying. Never retry add after a timeout without checking your dashboard: it may already have created an order.
Errors use {"error":"..."} with HTTP 200. Invalid or blocked keys return 401, rate limits return 429. A multi-status request returns an error per invalid or unowned ID. Order IDs are opaque strings; store them unchanged.
Use refill with one order ID after completion or partial delivery, within the option's refill period counted from completion. One request per 24 hours and none while another is in progress. Use refill_status with the returned refill ID. Requests are subject to review. The services refill flag indicates API availability. The contasReais boolean reflects the service source’s declaration of real accounts. Otherwise, contact support. Cancellation is unavailable through the reseller API. Undelivered amounts return to prepaid balance.
Actions
| Action | Fields | Response |
|---|---|---|
| services | — | Array: service, name, type, category, rate, min, max, refill, cancel, contasReais |
| add | service, link, quantity; comments for Custom Comments (one line per comment; quantity must match) | {order} |
| status | order OR orders (1–100 comma-separated IDs) | {charge, start_count, status, remains, currency} OR map by ID |
| balance | — | {balance, currency} |
| refill | order | {refill} |
| refill_status | refill | {status} |
| cancel | — | {error} — contact support for refill |
Order statuses
| Status | Meaning |
|---|---|
| Pending | Awaiting processing or send confirmation |
| In progress | Delivery in progress |
| Completed | Delivery completed |
| Partial | Partially delivered; missing part refunded |
| Canceled | Canceled or failed; amount refunded |
Examples
curl
curl -X POST 'https://viahype.store/api/v2' \
--data-urlencode 'key=YOUR_API_KEY' \
--data-urlencode 'action=services'
curl -X POST 'https://viahype.store/api/v2' \
-H 'Content-Type: application/json' \
-d '{"key":"YOUR_API_KEY","action":"add","service":3158,"link":"https://instagram.com/yourprofile","quantity":100}'PHP
<?php
function api(array $fields): array {
$ch = curl_init('https://viahype.store/api/v2');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => http_build_query(['key' => getenv('VIA_HYPE_API_KEY')] + $fields),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 20,
]);
$body = curl_exec($ch);
$http = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($body === false) throw new RuntimeException('Transport error; check orders before retrying add');
$data = json_decode($body, true, 512, JSON_THROW_ON_ERROR);
if ($http === 401 || $http === 429 || isset($data['error']))
throw new RuntimeException($data['error'] ?? 'API error');
return $data;
}
$services = api(['action' => 'services']);
$balance = api(['action' => 'balance']);
$status = api(['action' => 'status', 'orders' => 'ORDER_ID_1,ORDER_ID_2']);