Pangolin Product Manual

A VPN is an essential component of IT security, whether you’re just starting a business or are already up and running. Most business interactions and transactions happen online and VPN

Welcome to Pangolin’s products and solutions. We are committed to providing better dynamic data transmission solutions and technology platforms.

Our newly upgraded products further improve system flexibility and scalability, and avoid problems such as single point of failure caused by relying on a certain technology node. Our innovative architecture allows customers to deploy more flexibly, while ensuring network data transmission performance and bandwidth utilization While maximizing, the privacy of data content is ensured.

Please read this manual in detail to successfully complete system deployment and use, and make full use of Pangolin’s excellent performance. Let’s start.

Notes on calling the Service API

  • Service provides 3 HTTP API request (commonly used) release (not commonly used) services
  • All API calls need to provide a token parameter. The token is provided by our company and is the base64 encoding of ‘user:password’
  • Regarding the IP address of the Service, it is referred to as x.x.x.x below. If it is a Service provided by us, it will be provided by our company. If the Service is deployed by the customer, it should be remembered by the customer (if the customer deploys multiple services, just need to Just remember the IP of one of them)

2 List of Service interfaces and calling methods, all returned data are in JSON format:

InterfaceIllustrateParameter /Is RequiredCall example
/servicesGet all available ServicesToken[value: user’s token]/ Requiredhttp://x.x.x.x:2002/services?token=xxxx;
/resourcesGet a list of available countriesToken[value: user’s token]/ Requiredhttp://x.x.x.x:2002/resources?token=xxxx;
/requestAllocating line resources will select certain lines on all services belonging to the customer.Token[value: user’s token]/ required, number[value: the number of ports to be applied for]/ not required, the default is 1, expire[value: the use time of the line]/ not required, the default value is 10 , the unit is minutes, region[value: the code of the country where you want to apply for resources]/not required, the default is unknown, resources will be randomly allocatedhttp://x.x.x.x:2002/request?token=xxxxx&number=3&expire=10&region=155;
/releaseTo release the line resources held by the user, we will limit the maximum value of the lines held by a single user. When the number of lines of the user exceeds the maximum value, they can apply for lines again. This interface can release all the lines held by the userToken [value: user’s token] / Requiredhttp://x.x.x.x:2002/release?token=xxxx;

Typical usage steps and code data examples are as follows (the following interfaces are all GET methods unless otherwise specified), and the complete demo is in the tools/demo/python/sample directory:

  1. Client obtains all available Service addresses. If a single client deploys multiple Services, a list of all available Services will be returned.
Request : http://x.x.x.x:2002/services?token=xxxxx
Response:
{
    "message": "success",
    "services": [
        {
            "public": "X.XX.XX.XX:2003"
        },
        {
            "public": "X.X.XX.XXX:2003"
        }
    ]
}
说明
message: Used to return an error message
services: A list of services, where each element represents a service
public: The public network address of the service
  1. Client obtains the available area and area code
Request : http://127.0.0.1:2002/resources?token=xxxxxxxxxxx
{
    "Message": "success",
    "resources": [
        { "country": "Iraq", "code": "368" },
        { "country": "India", "code": "356" },
        { "country": "Egypt", "code": "818" },
        { "country": "Turkey", "code": "792" },
        { "country": "Spain", "code": "724" },
        { "country": "Oman", "code": "512" },
        { "country": "South Africa", "code": "710" }
	]
}
说明
message: Used to return an error message
resources: Currently available countries and their codes
  1. Client calls request interface to any Service
Request : http://x.x.x.x:2002/request?token=xxxxx&number=5&expire=10&region=368
Response:
{
    "resources": [
        {
            "resource": "X.X.XX.XXX:2009"
        },
        {
            "resource": "X.X.XX.XXX:2008"
        },
        {
            "resource": "X.X.XX.XXX:2007"
        },
        {
            "resource": "X.X.XX.XXX:2006"
        },
        {
            "resource": "X.X.XX.XXX:2005"
        }
    ],
    "message": "success"
}

Illustrate
message: Used to return an error message
resource: Applied line address
  1. Client (user program or browser) sets proxy for regular HTTP(S) data communication
  2. Users can use the resource obtained in the previous step to set up a proxy in the browser or their own program, and then perform regular network access. For example, curl -x http://X.X.X.X:2009 -U : https://ifconfig.me
  3. If the number of lines held by the user has reached the upper limit and can no longer apply, release resources and apply again
Request : http://x.x.x.x:2002/release?token=xxxx
Response:
{
    "message": "success"
}
Illustrate:
message: Error Message

About the proxy data forwarding permission of the resource port:

  • All HTTP(S) request headers must contain the request header Proxy-Authorization: Basic for authentication

FAQ

  • What will happen if the /release interface is not called to release resources?
  • Answer: If the release interface is not called, the service considers that the line resource has been occupied until it expires. If the number of lines exceeds the limit (for example, 1000 lines are held at the same time), no new lines can be allocated, which will cause a decrease in resource utilization. The available bandwidth and the total amount of effective data are reduced. Therefore, it is recommended to call normally after use to release resources.
  • What should I do if some line resources become unavailable during use?
  • Because Pangolin’s line resources are allocated dynamically, this is a normal situation that may occur. Once this situation is found, you can call the /request interface to reacquire and optimize the available lines.
  • Why does the call to the /request interface fail or does not apply for enough lines?
  • There are two situations. 1. The call fails. Generally, there is no line to allocate at the backend. 2. The number of lines held by the user is close to or exceeds the limit. At this time, the /release interface needs to be called

Our solution

Scrape API

Protect your web crawler against blocked requests, proxy failure, IP leak, browser crash and CAPTCHAs!

Data API

Data API: Directly obtain data from any Amazon webpage without parsing.

Data Pilot

With Data Pilot, easily access cross-page, endto-end data, solving data fragmentation andcomplexity, empowering quick, informedbusiness decisions.

Follow Us

Weekly Tutorial

Sign up for our Newsletter

Sign up now to embark on your Amazon data journey, and we will provide you with the most accurate and efficient data collection solutions.

Scroll to Top
This website uses cookies to ensure you get the best experience.
pangolinfo LOGO

联系我们,您的问题,我们随时倾听

无论您在使用 Pangolin 产品的过程中遇到任何问题,或有任何需求与建议,我们都在这里为您提供支持。请填写以下信息,我们的团队将尽快与您联系,确保您获得最佳的产品体验。
pangolinfo LOGO

Talk to our team

If you encounter any issues while using Pangolin products, please fill out the following information, and our team will contact you as soon as possible to ensure you have the best product experience.