API
Conecte seu painel ou sistema e automatize seus pedidos.
Erros
{"error": "Invalid API key"}
{"error": "Incorrect request"}
{"error": "Incorrect service ID"}
{"error": "Not enough funds on balance"}
{"error": "Incorrect order ID"}
Exemplo em PHP
Classe pronta para copiar: já vem com o endereço da API deste painel. É só colocar sua chave.
Exemplo em PHPservices Lista de serviços
| Parâmetro | Descrição |
|---|---|
key | Sua chave da API |
action | services |
Exemplo de resposta
[
{
"service": 1,
"name": "Instagram Followers",
"type": "Default",
"category": "Instagram",
"rate": "4.80",
"min": "100",
"max": "10000",
"dripfeed": false,
"refill": true,
"cancel": true
}
]
add Novo pedido
| Parâmetro | Descrição |
|---|---|
key | Sua chave da API |
action | add |
service | ID do serviço |
link | Link do perfil ou da publicação |
quantity | Quantidade |
runs | Repetições (opcional, drip-feed) |
interval | Intervalo em minutos (opcional, drip-feed) |
service | ID do serviço |
link | Link do perfil ou da publicação |
service | ID do serviço |
link | Link do perfil ou da publicação |
comments | Comentários, um por linha (serviços de comentários) |
service | ID do serviço |
link | Link do perfil ou da publicação |
quantity | Quantidade |
usernames | Lista de usernames, um por linha |
service | ID do serviço |
link | Link do perfil ou da publicação |
quantity | Quantidade |
usernames | Lista de usernames, um por linha |
hashtags | Lista de hashtags, uma por linha |
service | ID do serviço |
link | Link do perfil ou da publicação |
usernames | Lista de usernames, um por linha |
service | ID do serviço |
link | Link do perfil ou da publicação |
quantity | Quantidade |
hashtag | Hashtag de onde tirar os usernames |
service | ID do serviço |
link | Link do perfil ou da publicação |
quantity | Quantidade |
username | Link do perfil de onde tirar os seguidores |
service | ID do serviço |
link | Link do perfil ou da publicação |
quantity | Quantidade |
media | Link da publicação de onde tirar as curtidas |
service | ID do serviço |
username | Username (perfil) |
min | Quantidade mínima por post |
max | Quantidade máxima por post |
posts | (opcional) Limite de posts novos. Sem ele, vale para todos os posts futuros |
old_posts | (opcional) Quantos posts já publicados também recebem |
delay | Atraso em minutos: 0, 5, 10, 15, 20, 30, 40, 50, 60, 90, 120, 150, 180, 210, 240, 270, 300, 360, 420, 480, 540, 600 |
expiry | (opcional) Data de validade, formato d/m/Y |
Exemplo de resposta
{
"order": 23501
}
status Status do pedido
| Parâmetro | Descrição |
|---|---|
key | Sua chave da API |
action | status |
order | ID do pedido |
Exemplo de resposta
{
"charge": "0.27819",
"start_count": "3572",
"status": "Partial",
"remains": "157",
"currency": "R$"
}
status Status de vários pedidos
| Parâmetro | Descrição |
|---|---|
key | Sua chave da API |
action | status |
orders | IDs dos pedidos, separados por vírgula (até 100) |
Exemplo de resposta
{
"1": {
"charge": "0.27819",
"start_count": "3572",
"status": "Partial",
"remains": "157",
"currency": "R$"
},
"10": {
"error": "Incorrect order ID"
}
}
refill Pedir reposição
| Parâmetro | Descrição |
|---|---|
key | Sua chave da API |
action | refill |
order | ID do pedido |
Exemplo de resposta
{
"refill": "1"
}
refill Reposição de vários pedidos
| Parâmetro | Descrição |
|---|---|
key | Sua chave da API |
action | refill |
orders | IDs dos pedidos, separados por vírgula (até 100) |
Exemplo de resposta
[
{
"order": 1,
"refill": 1
},
{
"order": 3,
"refill": {
"error": "Incorrect order ID"
}
}
]
refill_status Status da reposição
| Parâmetro | Descrição |
|---|---|
key | Sua chave da API |
action | refill_status |
refill | ID da reposição |
Exemplo de resposta
{
"status": "Completed"
}
refill_status Status de várias reposições
| Parâmetro | Descrição |
|---|---|
key | Sua chave da API |
action | refill_status |
refills | IDs das reposições, separados por vírgula (até 100) |
Exemplo de resposta
[
{
"refill": 1,
"status": "Completed"
},
{
"refill": 2,
"status": "Rejected"
},
{
"refill": 3,
"status": {
"error": "Refill not found"
}
}
]
cancel Cancelar pedidos
| Parâmetro | Descrição |
|---|---|
key | Sua chave da API |
action | cancel |
orders | IDs dos pedidos, separados por vírgula (até 100) |
Exemplo de resposta
[
{
"order": 9,
"cancel": {
"error": "Incorrect order ID"
}
},
{
"order": 2,
"cancel": 1
}
]
balance Saldo
| Parâmetro | Descrição |
|---|---|
key | Sua chave da API |
action | balance |
Exemplo de resposta
{
"balance": "100.84292",
"currency": "R$"
}
Exemplo em PHP
<?php
class Api
{
/** API URL */
public $api_url = 'https://sheepsmm.com/api/v2';
/** Your API key */
public $api_key = '';
/** Add order */
public function order($data)
{
$post = array_merge(['key' => $this->api_key, 'action' => 'add'], $data);
return json_decode((string)$this->connect($post));
}
/** Get order status */
public function status($order_id)
{
return json_decode($this->connect(['key' => $this->api_key, 'action' => 'status', 'order' => $order_id]));
}
/** Get orders status */
public function multiStatus($order_ids)
{
return json_decode($this->connect(['key' => $this->api_key, 'action' => 'status', 'orders' => implode(",", (array)$order_ids)]));
}
/** Get services */
public function services()
{
return json_decode($this->connect(['key' => $this->api_key, 'action' => 'services']));
}
/** Refill order */
public function refill(int $orderId)
{
return json_decode($this->connect(['key' => $this->api_key, 'action' => 'refill', 'order' => $orderId]));
}
/** Refill orders */
public function multiRefill(array $orderIds)
{
return json_decode($this->connect(['key' => $this->api_key, 'action' => 'refill', 'orders' => implode(',', $orderIds)]), true);
}
/** Get refill status */
public function refillStatus(int $refillId)
{
return json_decode($this->connect(['key' => $this->api_key, 'action' => 'refill_status', 'refill' => $refillId]));
}
/** Get refill statuses */
public function multiRefillStatus(array $refillIds)
{
return json_decode($this->connect(['key' => $this->api_key, 'action' => 'refill_status', 'refills' => implode(',', $refillIds)]), true);
}
/** Cancel orders */
public function cancel(array $orderIds)
{
return json_decode($this->connect(['key' => $this->api_key, 'action' => 'cancel', 'orders' => implode(',', $orderIds)]), true);
}
/** Get balance */
public function balance()
{
return json_decode($this->connect(['key' => $this->api_key, 'action' => 'balance']));
}
private function connect($post)
{
$ch = curl_init($this->api_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));
$result = curl_exec($ch);
if (curl_errno($ch) != 0 && empty($result)) {
$result = false;
}
curl_close($ch);
return $result;
}
}
// Examples
$api = new Api();
$services = $api->services(); # all services
$balance = $api->balance(); # balance
$order = $api->order(['service' => 1, 'link' => 'http://example.com/test', 'quantity' => 100]); # Default
$order = $api->order(['service' => 1, 'link' => 'http://example.com/test', 'quantity' => 100, 'runs' => 10, 'interval' => 60]); # Drip-feed
$order = $api->order(['service' => 1, 'link' => 'http://example.com/test', 'comments' => "good pic\ngreat photo"]); # Custom Comments
$order = $api->order(['service' => 1, 'link' => 'http://example.com/test']); # Package
$order = $api->order(['service' => 1, 'username' => 'username', 'min' => 100, 'max' => 110, 'delay' => 30, 'expiry' => '11/11/2030']); # Subscriptions
$status = $api->status($order->order); # status, charge, remains, start count, currency
$statuses = $api->multiStatus([1, 2, 3]);
$refill = (array) $api->multiRefill([1, 2]);
$refillIds = array_column($refill, 'refill');
if ($refillIds) {
$refillStatuses = $api->multiRefillStatus($refillIds);
}