"nice\ngreat"] */ public function order($service, $link, $quantity, array $extra = []) { return $this->request(array_merge([ 'action' => 'add', 'service' => $service, 'link' => $link, 'quantity' => $quantity, ], $extra)); } /** Status of one order. */ public function status($order_id) { return $this->request(['action' => 'status', 'order' => $order_id]); } /** Status of several orders: array of order IDs. */ public function multiStatus(array $order_ids) { return $this->request(['action' => 'status', 'orders' => implode(',', $order_ids)]); } /** Service list with rates, min and max. */ public function services() { return $this->request(['action' => 'services']); } /** Account balance. */ public function balance() { return $this->request(['action' => 'balance']); } /** Cancel one order, or several with an array of order IDs. */ public function cancel($order_ids) { return is_array($order_ids) ? $this->request(['action' => 'cancel', 'orders' => implode(',', $order_ids)]) : $this->request(['action' => 'cancel', 'order' => $order_ids]); } private function request(array $data) { $data['key'] = $this->api_key; $ch = curl_init($this->api_url); curl_setopt_array($ch, [ CURLOPT_POST => true, CURLOPT_POSTFIELDS => http_build_query($data), CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 30, CURLOPT_USERAGENT => 'MediaTakipci-API-Example/1.0', ]); $result = curl_exec($ch); if (curl_errno($ch) !== 0 && empty($result)) { $result = false; } curl_close($ch); return $result === false ? null : json_decode($result); } } // Examples $api = new Api(); $services = $api->services(); // all services $balance = $api->balance(); // your balance $order = $api->order(1, 'https://www.instagram.com/p/XXXXXXXX/', 1000); // returns {"order": 12345} $status = $api->status($order->order ?? 0); // one order $statuses = $api->multiStatus([12345, 12346]); // several orders $cancel = $api->cancel(12345); // cancel request; instant on Cancel enabled services