smm vr

API Documentation

HTTP Method
POST
API URL
https://smmvr.com/api/v2
API Key
Create an account, then generate an API key
Response Format
JSON
Content type
application/x-www-form-urlencoded
Required fields
key + action

Code Examples

Each example requests the service list using a form-encoded POST. Replace YOUR_API_KEY with your key and keep it private.

<?php
$url = 'https://smmvr.com/api/v2';
$body = http_build_query(['key' => 'YOUR_API_KEY', 'action' => 'services']);
$ch = curl_init($url);
curl_setopt_array($ch, [CURLOPT_POST => true, CURLOPT_POSTFIELDS => $body, CURLOPT_RETURNTRANSFER => true]);
$response = curl_exec($ch);
if ($response === false) { throw new RuntimeException(curl_error($ch)); }
curl_close($ch);
print_r(json_decode($response, true));

Service List

action=services · POST fields

ParametersDescription
keyYes. Your personal API key
actionYes. Use exactly: services

Request example

curl -X POST 'https://smmvr.com/api/v2' -d 'key=YOUR_API_KEY' -d 'action=services'

Example Response

[
  { "service": 123, "name": "Followers", "category": "Social", "type": "default", "rate": "0.90", "min": 50, "max": 10000, "refill": true, "cancel": true }
]

Add order

action=add · POST fields

ParametersDescription
serviceYes. Numeric service ID from the service list
linkConditional. Target URL; use username for subscription orders
quantityConditional. Required for quantity-based services; not used for package/subscription orders
commentsOptional. Custom comments, one per line; required count must match quantity for custom-comments services
runsOptional. Drip-feed runs; must be greater than 1 to create a drip-feed order
intervalOptional. Drip-feed interval in minutes; defaults to 60 if omitted
usernameConditional. Required for subscription orders
min_qty / max_qtyConditional. Subscription quantity range
posts / old_posts / delayOptional. Subscription settings, where supported
expiryOptional. Subscription expiry date in DD/MM/YYYY format
answer_numberOptional. Poll answer number, for poll services

PHP example

<?php
$order = $api->order(['service' => 123, 'link' => 'https://example.com/target', 'quantity' => 100]);

Successful response varies by order type. Standard: {order, link, quantity, charge, balance, currency}. Drip-feed and subscription responses include dripfeed or subscription details.

Order status

action=status · POST fields

Use one of order or orders. For several IDs, send a comma-separated list.

ParametersDescription
orderOne. Single numeric order ID
ordersOne. Comma-separated order IDs for multiple status results

PHP example

<?php
$status = $api->status(456);
$many = $api->multiStatus([456, 457]);

Balance

action=balance · POST fields

ParametersDescription
keyYes. Your personal API key
actionYes. Use exactly: balance

PHP example

<?php
$balance = $api->balance();

Refill

action=refill · POST fields

Use one single-ID field or its plural field, not both. Refill is available only for eligible services and within the service’s refill window.

ParametersDescription
orderOne. Single eligible order ID
ordersOne. Comma-separated order IDs

PHP example

<?php
$refill = $api->refill(456);
$many = $api->multiRefill([456, 457]);

Refill status

action=refill_status · POST fields

Use one single-ID field or its plural field, not both. Refill is available only for eligible services and within the service’s refill window.

ParametersDescription
refillOne. Single refill request ID
refillsOne. Comma-separated refill request IDs

PHP example

<?php
$status = $api->refillStatus(12);
$many = $api->multiRefillStatus([12, 13]);

Cancel orders

action=cancel · POST fields

A cancellation request is not confirmation that provider work has stopped. The result reports whether the request was accepted; completed or ineligible orders cannot be canceled.

ParametersDescription
ordersYes. Comma-separated numeric order IDs

PHP example

<?php
$result = $api->cancel([456, 457]);

Responses and errors

Successful responses are JSON. Errors may include an invalid key (401), suspended account (403), unknown action (400), or an order validation error. Check the response before retrying so you do not create duplicate orders.

Service IDs and order IDs are numeric public IDs. Order status includes the current status, charge, start count, remaining quantity, and currency.

Protect your API key

Keep the key on your server, such as in an environment variable or secrets manager. Do not put it in a URL, frontend JavaScript, public repository, or screenshot. If exposed, generate a replacement from Account; the old key stops working.

The documentation is public; account balances, orders, refills, and cancellation requests still require a valid API key.

PHP example file

Open the PHP client example as plain text. Add your own API key on your server before using it.