MENU navbar-image

Introduction

This documentation aims to provide all the information you need to work with our API.

Base URL

https://api.papaproxy.net

Authenticating requests

This API is authenticated by sending an Authorization header in the form "Basic {credentials}". The value of {credentials} should be your email and your password, joined with a colon (|), and then base64-encoded.

All authenticated endpoints are marked with a requires authentication badge in the documentation below.

You can retrieve your token by visiting your dashboard and clicking Generate API token.

Endpoints

GET clients list.

requires authentication

Example request:
curl --request GET \
    --get "https://api.papaproxy.net/api/clients" \
    --header "Authorization: Basic {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.papaproxy.net/api/clients"
);

const headers = {
    "Authorization": "Basic {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://api.papaproxy.net/api/clients',
    [
        'headers' => [
            'Authorization' => 'Basic {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://api.papaproxy.net/api/clients'
headers = {
  'Authorization': 'Basic {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):


[{
"id": numeric (client ID),
"email": string (email),
}] or empty array
 

Example response (401):


Unauthenticated
 

Example response (400):


Invalid Authorization header
 

Example response (400):


Invalid credentials format
 

Request      

GET api/clients

GET service stats by Service ID. Only for PPR.

requires authentication

Example request:
curl --request GET \
    --get "https://api.papaproxy.net/api/stats/123" \
    --header "Authorization: Basic {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.papaproxy.net/api/stats/123"
);

const headers = {
    "Authorization": "Basic {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://api.papaproxy.net/api/stats/123',
    [
        'headers' => [
            'Authorization' => 'Basic {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://api.papaproxy.net/api/stats/123'
headers = {
  'Authorization': 'Basic {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):


[{
"date": string (date YYYY-MM-DD),
"rate": numeric (count of requests|used traffic in MB),
}] or empty array
 

Example response (422):


{
    "error": "Unprocessable Entity "
}
 

Example response (401):


Unauthenticated
 

Example response (400):


Invalid Authorization header
 

Example response (400):


Invalid credentials format
 

Request      

GET api/stats/{id}

URL Parameters

id  string  

Service ID.

GET service rate by Service ID. Only for PPR.

requires authentication

Example request:
curl --request GET \
    --get "https://api.papaproxy.net/api/rate/123" \
    --header "Authorization: Basic {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.papaproxy.net/api/rate/123"
);

const headers = {
    "Authorization": "Basic {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://api.papaproxy.net/api/rate/123',
    [
        'headers' => [
            'Authorization' => 'Basic {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://api.papaproxy.net/api/rate/123'
headers = {
  'Authorization': 'Basic {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):


[{
"limit": numeric (limit of requests|used traffic in MB),
"rate": numeric (count of requests|used traffic in MB),
}] or empty array
 

Example response (422):


{
    "error": "Unprocessable Entity "
}
 

Example response (401):


Unauthenticated
 

Example response (400):


Invalid Authorization header
 

Example response (400):


Invalid credentials format
 

Request      

GET api/rate/{id}

URL Parameters

id  string  

Service ID.

GET product by Product ID.

requires authentication

Example request:
curl --request GET \
    --get "https://api.papaproxy.net/api/product/12" \
    --header "Authorization: Basic {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.papaproxy.net/api/product/12"
);

const headers = {
    "Authorization": "Basic {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://api.papaproxy.net/api/product/12',
    [
        'headers' => [
            'Authorization' => 'Basic {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://api.papaproxy.net/api/product/12'
headers = {
  'Authorization': 'Basic {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):


{
"productId": numeric (product ID),
"price": numeric (product price in USD),
"groupId": numeric (product group ID),
"groupName": string (group name),
"created_at": string (product date creation YYYY-MM-DD),
"product_hidden": boolean (product hidden or not),
"group_hidden": boolean (group hidden or not),
"product_type": string (fpr - static proxy  or ppr - rotating proxy),
"ip_count": numeric (IP count for fpr only),
"update_time": string (update time YYYY-MM-DD HH:MM:SS for fpr only),
"geo": array (geo list for fpr only),
}
 

Example response (422):


{
    "error": "Unprocessable Entity "
}
 

Example response (422):


{
    "error": "Unprocessable Entity or product ID not found"
}
 

Example response (401):


Unauthenticated
 

Example response (400):


Invalid Authorization header
 

Example response (400):


Invalid credentials format
 

Request      

GET api/product/{pid}

URL Parameters

pid  string  

Product ID.

POST add new service

requires authentication

Example request:
curl --request POST \
    "https://api.papaproxy.net/api/product/12" \
    --header "Authorization: Basic {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"clientid\": 1,
    \"setip\": \"12.34.56.78\"
}"
const url = new URL(
    "https://api.papaproxy.net/api/product/12"
);

const headers = {
    "Authorization": "Basic {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "clientid": 1,
    "setip": "12.34.56.78"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.papaproxy.net/api/product/12',
    [
        'headers' => [
            'Authorization' => 'Basic {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'clientid' => 1,
            'setip' => '12.34.56.78',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://api.papaproxy.net/api/product/12'
payload = {
    "clientid": 1,
    "setip": "12.34.56.78"
}
headers = {
  'Authorization': 'Basic {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (200):


{
'serviceId': numeric,
'orderId': numeric,
'invoiceId': numeric,
'amount': numeric,
"ip": string,
}
 

Example response (422):


{
    "error": "Unprocessable Entity or product ID not found"
}
 

Example response (422):


{
    "error": "Unprocessed entity or not enough funds to order"
}
 

Example response (422):


{
    "error": "Unprocessable Entity. Incorrect posted data"
}
 

Example response (422):


{
    "error": "Unprocessable Entity. ClientID not found"
}
 

Example response (401):


Unauthenticated
 

Example response (400):


Invalid Authorization header
 

Example response (400):


Invalid credentials format
 

Request      

POST api/product/{pid}

URL Parameters

pid  string  

Product ID.

Body Parameters

clientid  integer  

Client ID.

setip  string optional  

IP address for bind. For FPR only.

GET products list.

requires authentication

Example request:
curl --request GET \
    --get "https://api.papaproxy.net/api/products" \
    --header "Authorization: Basic {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.papaproxy.net/api/products"
);

const headers = {
    "Authorization": "Basic {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://api.papaproxy.net/api/products',
    [
        'headers' => [
            'Authorization' => 'Basic {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://api.papaproxy.net/api/products'
headers = {
  'Authorization': 'Basic {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):


[{
"productId": numeric (product ID),
"productName": string (product name),
"price": numeric (product price in USD),
"groupId": numeric (product group ID),
"groupName": string (group name),
"created_at": string (product date creation YYYY-MM-DD),
}] or empty array
 

Example response (401):


Unauthenticated
 

Example response (400):


Invalid Authorization header
 

Example response (400):


Invalid credentials format
 

Request      

GET api/products

GET products list order by field.

requires authentication

Example request:
curl --request GET \
    --get "https://api.papaproxy.net/api/products/orderby/productId" \
    --header "Authorization: Basic {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.papaproxy.net/api/products/orderby/productId"
);

const headers = {
    "Authorization": "Basic {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://api.papaproxy.net/api/products/orderby/productId',
    [
        'headers' => [
            'Authorization' => 'Basic {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://api.papaproxy.net/api/products/orderby/productId'
headers = {
  'Authorization': 'Basic {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):


[{
"productId": numeric (product ID),
"productName": string (product name),
"price": numeric (product price in USD),
"groupId": numeric (product group ID),
"groupName": string (group name),
"created_at": string (product date creation YYYY-MM-DD),
}] or empty array
 

Example response (401):


Unauthenticated
 

Example response (400):


Invalid Authorization header
 

Example response (400):


Invalid credentials format
 

Request      

GET api/products/orderby/{field}

URL Parameters

field  string  

Field name for order by: productId or productName or price or groupId or groupName or created_at .

GET network status errors proxy servers list by Service ID.

requires authentication

Example request:
curl --request GET \
    --get "https://api.papaproxy.net/api/networkstatus/errors/123" \
    --header "Authorization: Basic {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.papaproxy.net/api/networkstatus/errors/123"
);

const headers = {
    "Authorization": "Basic {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://api.papaproxy.net/api/networkstatus/errors/123',
    [
        'headers' => [
            'Authorization' => 'Basic {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://api.papaproxy.net/api/networkstatus/errors/123'
headers = {
  'Authorization': 'Basic {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):


array (IP address list) or empty array
 

Example response (422):


{
    "error": "Unprocessable Entity "
}
 

Example response (401):


Unauthenticated
 

Example response (400):


Invalid Authorization header
 

Example response (400):


Invalid credentials format
 

Example response (400):


{
    "error": "Unprocessable Entity. ClientID not found"
}
 

Request      

GET api/networkstatus/errors/{id}

URL Parameters

id  string  

Service ID.

GET network status inactive proxy servers list by Service ID.

requires authentication

Example request:
curl --request GET \
    --get "https://api.papaproxy.net/api/networkstatus/inactive/123" \
    --header "Authorization: Basic {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.papaproxy.net/api/networkstatus/inactive/123"
);

const headers = {
    "Authorization": "Basic {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://api.papaproxy.net/api/networkstatus/inactive/123',
    [
        'headers' => [
            'Authorization' => 'Basic {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://api.papaproxy.net/api/networkstatus/inactive/123'
headers = {
  'Authorization': 'Basic {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):


array (IP address list) or empty array
 

Example response (422):


{
    "error": "Unprocessable Entity "
}
 

Example response (401):


Unauthenticated
 

Example response (400):


Invalid Authorization header
 

Example response (400):


Invalid credentials format
 

Example response (400):


{
    "error": "Unprocessable Entity. ClientID not found"
}
 

Request      

GET api/networkstatus/inactive/{id}

URL Parameters

id  string  

Service ID.

GET billing credit.

requires authentication

Example request:
curl --request GET \
    --get "https://api.papaproxy.net/api/billing/credit" \
    --header "Authorization: Basic {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.papaproxy.net/api/billing/credit"
);

const headers = {
    "Authorization": "Basic {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://api.papaproxy.net/api/billing/credit',
    [
        'headers' => [
            'Authorization' => 'Basic {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://api.papaproxy.net/api/billing/credit'
headers = {
  'Authorization': 'Basic {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):


{
"credit": numeric (credit in USD),
}
 

Example response (401):


Unauthenticated
 

Example response (400):


Invalid Authorization header
 

Example response (400):


Invalid credentials format
 

Request      

GET api/billing/credit

GET billing invoices list.

requires authentication

Example request:
curl --request GET \
    --get "https://api.papaproxy.net/api/billing/invoices" \
    --header "Authorization: Basic {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.papaproxy.net/api/billing/invoices"
);

const headers = {
    "Authorization": "Basic {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://api.papaproxy.net/api/billing/invoices',
    [
        'headers' => [
            'Authorization' => 'Basic {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://api.papaproxy.net/api/billing/invoices'
headers = {
  'Authorization': 'Basic {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):


[{
"id": numeric (invoice ID),
"description": string (invoice description),
"status": string (Unpaid|Paid|Cancelled|Refunded|Collections|Payment Pending|Pending),
"created_at": string (invoice date creation YYYY-MM-DD),
"amount": numeric (invoice amount in USD),
"date_refunded": string (invoice date refunded YYYY-MM-DD),
"date_paid": string (invoice date paid YYYY-MM-DD),
"paymentmethod": string (payment method),
"serviceid": numeric (service ID),
}] or empty array
 

Example response (401):


Unauthenticated
 

Example response (400):


Invalid Authorization header
 

Example response (400):


Invalid credentials format
 

Request      

GET api/billing/invoices

GET billing invoice by Invoice ID.

requires authentication

Example request:
curl --request GET \
    --get "https://api.papaproxy.net/api/billing/invoice/sit" \
    --header "Authorization: Basic {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.papaproxy.net/api/billing/invoice/sit"
);

const headers = {
    "Authorization": "Basic {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://api.papaproxy.net/api/billing/invoice/sit',
    [
        'headers' => [
            'Authorization' => 'Basic {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://api.papaproxy.net/api/billing/invoice/sit'
headers = {
  'Authorization': 'Basic {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):


[{
"id": numeric (invoice ID),
"description": string (invoice description),
"status": string (Unpaid|Paid|Cancelled|Refunded|Collections|Payment Pending|Pending),
"created_at": string (invoice date creation YYYY-MM-DD),
"amount": numeric (invoice amount in USD),
"date_refunded": string (invoice date refunded YYYY-MM-DD),
"date_paid": string (invoice date paid YYYY-MM-DD),
"paymentmethod": string (payment method),
"serviceid": numeric (service ID),
}] or empty array
 

Example response (401):


Unauthenticated
 

Example response (400):


Invalid Authorization header
 

Example response (400):


Invalid credentials format
 

Request      

GET api/billing/invoice/{id}

URL Parameters

id  string  

The ID of the invoice.

GET service by Service ID.

requires authentication

Example request:
curl --request GET \
    --get "https://api.papaproxy.net/api/service/libero" \
    --header "Authorization: Basic {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.papaproxy.net/api/service/libero"
);

const headers = {
    "Authorization": "Basic {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://api.papaproxy.net/api/service/libero',
    [
        'headers' => [
            'Authorization' => 'Basic {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://api.papaproxy.net/api/service/libero'
headers = {
  'Authorization': 'Basic {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):


{
 "service_id": numeric (service ID),
 "orderid": numeric (order ID),
 "product_name": string (product name),
 "regdate": string (date YYYY-MM-DD),",
 "nextduedate": string (date YYYY-MM-DD),
 "status": string (Active|Pending|Suspended|Terminated|Cancelled|Fraud),
 "billingcycle": string (Free|Monthly|Quarterly|Semi-Annually|Annually|Biennially|Triennially),
 "username": string (username),
 "password": string (password),
 "bindedip": string (binded IP address 111.222.233.144 for fpr only),
 "product_type": string (fpr - static proxy  or ppr - rotating proxy),
 "ip_count": numeric (IP count for fpr only),
 "price": numeric (price in USD),
}
 

Example response (401):


Unauthenticated
 

Example response (400):


Invalid Authorization header
 

Example response (400):


Invalid credentials format
 

Request      

GET api/service/{id}

URL Parameters

id  string  

The ID of the service.

GET user services list.

requires authentication

Example request:
curl --request GET \
    --get "https://api.papaproxy.net/api/services" \
    --header "Authorization: Basic {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.papaproxy.net/api/services"
);

const headers = {
    "Authorization": "Basic {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://api.papaproxy.net/api/services',
    [
        'headers' => [
            'Authorization' => 'Basic {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://api.papaproxy.net/api/services'
headers = {
  'Authorization': 'Basic {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):


[{
"service_id": numeric,
"product_name": string (product name),
"nextduedate": string (date),
"orderid": numeric,
"status": string (Active|Pending|Suspended|Terminated|Cancelled|Fraud),
}]
 

Example response (401):


Unauthenticated
 

Example response (400):


Invalid Authorization header
 

Example response (400):


Invalid credentials format
 

Request      

GET api/services

PUT update service by Service ID.

requires authentication

Example request:
curl --request PUT \
    "https://api.papaproxy.net/api/service/commodi" \
    --header "Authorization: Basic {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"setip\": \"12.34.56.78\",
    \"update_list\": \"true\",
    \"password\": \"cGFzc3dvcmQ=\"
}"
const url = new URL(
    "https://api.papaproxy.net/api/service/commodi"
);

const headers = {
    "Authorization": "Basic {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "setip": "12.34.56.78",
    "update_list": "true",
    "password": "cGFzc3dvcmQ="
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->put(
    'https://api.papaproxy.net/api/service/commodi',
    [
        'headers' => [
            'Authorization' => 'Basic {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'setip' => '12.34.56.78',
            'update_list' => 'true',
            'password' => 'cGFzc3dvcmQ=',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://api.papaproxy.net/api/service/commodi'
payload = {
    "setip": "12.34.56.78",
    "update_list": "true",
    "password": "cGFzc3dvcmQ="
}
headers = {
  'Authorization': 'Basic {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('PUT', url, headers=headers, json=payload)
response.json()

Example response (200):


{
    "setip": {
        "success": "IP address updated successfully"
    },
    "update_list": {
        "success": "IP list updated successfully"
    },
    "password": {
        "success": "Password updated successfully"
    }
}
 

Example response (422):


{
    "error": "Unprocessable Entity "
}
 

Example response (422):


{
    "error": "Unprocessable Entity. Incorrect posted data"
}
 

Example response (429):


{
    "error": "Too Many Attempts (updateList). Next update possible: YYYY-MM-DD HH:MM:SS"
}
 

Example response (422):


{
    "error": "Unprocessable Entity. Invalid IPv4 format"
}
 

Example response (422):


{
    "error": "Unprocessable Entity. IP already binded"
}
 

Example response (422):


{
    "error": "Unprocessable Entity. Invalid IPv4 format"
}
 

Example response (401):


Unauthenticated
 

Example response (400):


Invalid Authorization header
 

Example response (400):


Invalid credentials format
 

Example response (400):


{
    "error": "Unprocessable Entity. ClientID not found"
}
 

Request      

PUT api/service/{id}

URL Parameters

id  string  

The ID of the service.

Body Parameters

setip  string optional  

IP address for bind.

update_list  string optional  

Update IP list.

password  string optional  

New password base64 encoded.

GET IP list by Service ID.

requires authentication

Example request:
curl --request GET \
    --get "https://api.papaproxy.net/api/iplist/http-ip/csv/123" \
    --header "Authorization: Basic {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api.papaproxy.net/api/iplist/http-ip/csv/123"
);

const headers = {
    "Authorization": "Basic {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://api.papaproxy.net/api/iplist/http-ip/csv/123',
    [
        'headers' => [
            'Authorization' => 'Basic {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://api.papaproxy.net/api/iplist/http-ip/csv/123'
headers = {
  'Authorization': 'Basic {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):


ip list in selected format
 

Example response (422):


{
    "error": "Unprocessable Entity "
}
 

Example response (401):


Unauthenticated
 

Example response (400):


Invalid Authorization header
 

Example response (400):


Invalid credentials format
 

Request      

GET api/iplist/{typel}/{formatl}/{id}

URL Parameters

typel  string  

IP list type http-ip or socks-ip or http-auth or ppr-http or ppr-socks.

formatl  string  

IP list format csv or txt or json.

id  string  

Service ID.