I signed up but I have not received an email confirmation from Luminati. What should I do?

Contact sales@luminati.io and we will get back to you as soon as possible.

I’m not being blocked by my target websites. Why should I still use Luminati?

Your block rate is not a reliable indicator of accessibility and accuracy of information. There are commercially available tools that help retailers and brands figure out that automated systems are attempting to access their site. In these cases, retailers will grant access but provide misleading information. With Luminati, you will receive the same data that a private user gets.

How does Luminati differ from TOR?

Compared with TOR, Luminati has a different model of service: While TOR has around 20K IPs, which are all marked and identified, Luminati's peer to peer (P2P) network has over 39 million residential IPs that are not identified as Proxies/Tor. Our architecture, which has an inbuilt IP rotation management layer, allows you to use our P2P network to send your HTTP / HTTPS requests via millions of IPs in every country and every city worldwide. With the right architecture on your side, you can achieve a failure rate of less than 1% (that is, you will almost never be blocked or cloaked).

Luminati residential peers

How do consumers join the Luminati network of peers?

Many applications (such as game applications), require their users to view a video advertisement at certain intervals, so that the game developer can generate revenues. This creates a particularly bad user experience, as it interferes with the experience of the application, wastes around 20MB of cellular data for the ad, and depletes the users’ battery.
Luminati offers an attractive alternative.
When these application vendors integrate the Luminati SDK, their users are offered the alternative to not watch these video ads in return for opting in to the Luminati network. Luminati only uses their device as a node on the network when it is not in use (so never interferes with the users’ experience), when the device is plugged in to power or charged, and always prefers WiFi over cellular data.
For every user that opts in to the Luminati network, Luminati pays a monthly fee to the application vendor, who passes that value on to the user by not displaying ads (or by not charging a premium for extra features in some cases).
That provides a much better user experience to the users, and thus the application vendor also enjoys a higher adoption rate of his/her product.
Users choose (opt in) to be a part of the Luminati network, and may opt out at any time. Luminati ensures that its application partners are fully compliant with this ‘opt in’ user flow.
View more on our SDK page.

How does Luminati protect the end users’ resources?

Luminati’s patented idle monitor technology ensures that an end user's device is used under strict limitations so that battery power, bandwidth and data plan are preserved. These limitations consist of a monitor that restricts the usage of the device if being used by the end user, a minimum battery level threshold, a preference for use only when charging, a maximum daily allowed bandwidth usage per device and weekly maximum usage.

IP Network types

Luminati has four types of IP networks: Data-Center, Static Residential, Residential, and Mobile.

  • Data Center: offers a machine generated IP it is the most cost-effective and is commonly used for mass crawling of non-sophisticated target websites. Constructs of 400k unique IPs.
  • Static Residential Network: offers real residential IPs provided directly through ISP's. These IPs are most suitable for use cases that require permanent, non-rotating IPs, or for whoever needs a small amount of residential IPs.
  • Residential Network: provides a real, rotating, user IP, used for access to sophisticated target websites when you need to crawl, see and be seen as a real user. Constructs of 39+ million unique IPs.
  • Mobile Network: connects through a real, rotating, mobile connection of 3G/4G, used for targeting highly sophisticated websites and collecting mobile specific web data. constructs of 3+ million unique IPs
Create a Zone in the Luminati control panel, and define with IP type you want to use.

Data center IP types

Shared IPs
Shared IPs are ips that can be used by one or more customers.
We have 2 pricing tiers for data center shared IPs:

  • Pay per usage - connects you to a pool of 20,000 IPs that consist of a fixed allocated range of IPs from every country available.
    These IPs can be continuously rotated within the pool of 20k as needed (specific countries can be chosen in chrome, the LPM or through API)
    You will be charged only for the usage.
  • Pay per IP - purchase individual IPs for your use (with unlimited BW or cost per gb) in the country of your choosing. You will be charged per IP and usage.

Exclusive IPs
Purchase an IP that only you use to access a target site. the allocated IPs are dedicated for your use only
This IP type is more lucrative and you can control the allocation of the IPs based on the following options:

  • Choose Target Domains as the target website you are accessing which provides dedicated IPs not used by any other customers on those domains.
    You can choose multiple specific domains you are working with or all domains.
  • Cooling period - a guaranteed amount of time the IP has not been used for the specified target site.

Residential IP types

Shared IPs
connecting you to our entire network of 39+ million IPs. you can rotate between different countries, cities and ASNs by using the Proxy Manager, Extension or the raw API.
The cost is per GB used, according to your monthly plan.

Exclusive IP
Gives you the option to have a group of residential IPs (see more about gIP) which ensure only you can use this gIP on a certain target domain.
Choose the number of gIPs to allocate (each gIP holds 3-30 residential IPs) in a certain country on specific domains.
The cost will be a calculation of amount of gIPs, usage and number of domains.

Static Residential IP types

Shared IPs
Shared IPs are ips that can be used by one or more customers.
Purchase individual IPs for your use in the country of your choosing. You will be charged per IP and usage.

Exclusive IPs
Purchase an IP that only you use to access a target site. the allocated IPs are dedicated for your use only
This IP type is more lucrative and you can control the allocation of the IPs based on the following options:

  • Choose Target Domains as the target website you are accessing which provides dedicated IPs not used by any other customers on those domains.
    You can choose multiple specific domains you are working with or all domains.
  • Cooling period - a guaranteed amount of time the IP has not been used for the specified target site.

Mobile IP types

Shared IPs
connecting you to our entire network of 3+ million IPs. you can rotate between different countries, cities and ASNs by using the Proxy Manager, Extension or the raw API.
The cost is per GB used, according to your monthly plan.

Exclusive IPs
Give you the option to have a group of mobile IPs (see more about gIP) which ensure only you can use this gIP per a certain target domain.
Choose the number of gIPs to allocate (each gIP holds 3-30 residential IPs) in a certain country on specific domains.
The cost will be a calculation of amount of gIPs, bandwidth usage and number of domains.

What's the difference between Data-Center Vs Residential proxies?

  • Data-Center
    A data-center is an organization that offers large amounts of IPs with consecutive numbers, that are stored on the data-center's servers.
    • Pros: Data center IPs are more affordable than residential IPs. They are also called “static IPs” because they are always available and can hold a long session without the risk of becoming unavailable before the goal is achieved.
    • Cons: There are thousands of data centers worldwide. They are listed and their IPs can be identified as not real users, which makes them more easy to recognize and block. Some websites would display misleading information when they spot a connection attempt from a data center IP.

    Learn more about data center IPs.

  • Residential IPs
    The IPs of real end users’ devices.
    • Pros: When used correctly, residential IPs are nearly impossible to identify as proxy, as they are the real IPs of end users. Using Luminati’s Residential network allows unlimited concurrent connections and huge flexibility since it consists of over 39 million IPs located in every country in the world.
    • Cons: A Residential IP can become unavailable and be replaced during a session, since it’s a device of a real person that may use it or turn it off - Luminati takes extra measures to ensure the satisfaction and comfort of its network peers.
    Learn more about residential IPs.
  • Bottom line
    Try using data center IPs first and the more expensive alternative of residential IPs as a fallback option, that way you can reduce the costs of your operation and still get great success rate. Use Luminati Proxy Manager’s rules to easily create automated fallback in the “Waterfall” method to get best results at lowest costs. Use Luminati’s gIPs to get the pluses of Residential IPs while avoiding the minuses.

Network size

You can find the pool size of our Datacenter, Residential and Mobile networks in the architecture page.
Choose the network and country you are interested in the Input box and view the results in the Output box.

What is a gIP

A gIP is a group of exclusive residential IPs.

Each gIP contains between 3-30 IPs.

All the IPs within a gIP are from the same country ASN and city (depending on the network you are using).

Using gIPs ensures that nobody else uses the same IPs with the same target sites as you do.

Luminati blocks several domains if you don't use gIPs. Contact your account manager for details.

Find out more about how to download a list of your gIPs

What is IP allocation?

IP allocation is the act of allocating IPs of some kind to one of your zones.
For example when creating a new data-center zone and choosing 100 as the number of IPs you want, you are actually asking to allocate 100 datacenter IPs to your new zone.

IP allocation is applicable for Data-center IPs or Residential and Mobile gIPs.

Find out how to allocate IPs and how to download a list of your IP/gIP.

What is the waterfall

The Luminati Waterfall is a method to make successful requests by automatically passing them from the data-center network to the residential network and then to the mobile network. It improves success rate while lowering costs. Read more about it on the Luminati Waterfall page.

Can I assess how many IPs are available in a specific country?

Yes, you can assess the number of IPs available per country through this interactive diagram.
First, select the country from the drop-down menu. The number of available IPs in that country appears below.

Is communication between relays encrypted?

Yes. For requests to the super proxy you can use either HTTP or HTTPS. The communication protocol is encrypted by using a proprietary algorithm.

How HTTPS requests are calculated?

Since HTTPS requests are encrypted, we don't see the data inside the request. in order to measure number of requests more accurately, we count switches between sending data to receiving data while skipping protocol related switches.

What is Super Proxy?

Luminati's load balancing servers, that manage the traffic between you (our customer) and the data center / residential network / mobile device.

What is IPv4 format

IPv4 is a format in which many IP addresses are written that is used to connect devices to the Internet. It consists of four numbers between 1 and 255, separated by periods. Proxy services with data-center IPs often give out lists of IP addresses in this format to their customers.

How to use IPv4 format with Luminati proxies?

Because Luminati’s IP addresses are constantly changing or rotating, there is no list of IPs in IPv4 format like there might be when using data-center IPs. To ensure that the IPs are in the correct form, make sure to change your proxy settings to the corresponding port number of the IP address you want. Your device’s IP address will now be in IPv4 format.

What is an ASN (Autonomous System Number)?

An AS (Autonomous System) is a group of IP networks operated by one or more network operator(s) that has an external routing policy. ASN is the unique global identifier (a number) that is associated with every AS.

Why is Luminati faster than other proxy solutions?

Luminati has an inbuilt smart IP rotation management layer. Each request you make goes to one of our super proxies -- load balancing servers -- that then provide you with the IP address that is most likely to be available at the requested location.
That way Luminati proxy allows you to send an unlimited number of concurrent sessions, and has an extremely high success rate too. To speed up Luminati, it is advisable to initiate as many concurrent sessions as required. With the right architecture, you can outperform any other solution.

What is the impact on speed due to additional hops?

While using the Luminati Proxy means an additional hop (ie. 3 hops) per request, it also means having the ability to run unlimited concurrent sessions with an exceptionally high success rate, which nullifies the effect of the additional hop.

What is the maximal rate (hits per minute) at which requests can be sent through the network?

  • Residential network - no limitations. We have customers who send more than 20 million requests per day.
  • Data center network - we have rate limit of 500 req/sec per IP.
    If you send in a higher rate to a specific Data center IP your requests will be returned with an error message:CODE 429: TUN_ERR: Too many requests per IP
    In order to solve the issue lower the rate of your requests or buy more ips to distribute the load of your crawler across more Data Center IPs.

Accepted usage

How does Luminati ensure the legitimate use of its proxy network?

Only companies that pass Luminati’s strict KYC (Know Your Customer) process successfully may use the Luminati network.
These include the top retailers, ad networks and travel agencies in the world.
Prospects who wish to use Luminati’s Residential network fill a “Residential activation” form, in which they identify themselves by providing personal details (email, phone number, address, social profile, payment method and more) and sign an agreement in which they confirm that all their activity is legal.
After their details are checked and verified manually, they may be approved.
IN addition, Luminati’s systems and personnel continuously monitor the customer's activity to ensure that the usage is compliant with the agreement.

Is crawling an acceptable use case?

We allow you to use our service, provided you are using it for legal and legitimate uses and in compliance with our license agreement. It is up to you to make sure that the way you use the service complies with the laws applicable in your country.

Is crawling a particular site legal?

The use of a crawler to extract data from a website may be done legally in relevant business relations. Under certain circumstances and in some specific jurisdictions, crawling may be in conflict with applicable regulation or in violation of the particular terms of service of the crawled site. Therefore, prior to engaging in crawling activities of any sort, you should consult with a lawyer authorized to provide legal advice in your particular area, and carefully read the applicable terms of service.

What is reselling and is it allowed with Luminati?

Reselling means providing Luminati services or products as a paid solution to a third party which is not a Luminati customer.
Luminati does not offer nor allow any form of reselling for any of its products or services. Any kind of such reselling will be perceived as a breach of Luminati terms of use.

What is the accepted usage of unlimited bandwidth in our data center network?

Luminati reserves the right to periodically review the usage levels of unlimited bandwidth datacenter IPs allocated to customers; this is to ensure that the level of traffic per IP is not being overused.
In cases where excessive usage of unlimited bandwidth is detected, Luminati has the right to limit future bandwidth usage of the unlimited bandwidth or apply additional charges.

Getting started

How do I start using Luminati's residential network?

We work hard to keep our network and our customers safe and strive to prevent abuse on the Luminati network. Therefore, prior to using Luminati's residential IP network, a Luminati representative will ask you to go through a short "KYC" (Know Your Customer) process. The KYC process may include a quick intro video call and some verification of your company or personal information. Request access to Luminati's residential network here.
Watch now - How to start using the Luminati Proxy Manager

How do I start using Luminati's data-center network?

To start using Luminati's data-center network, click here. Our data-center network is self-serve and does not require any preliminary process.

How do I start using Luminati's mobile network?

To start using Luminati's mobile network, contact sales@luminati.io. Learn more about mobile IPs here.

Residential free trial

In order to test the Residential network, before committing to a monthly price plan, we will allow a free trial so you can test and be sure that your business needs are being fully accomplished using our services.

Free trial options

    We offer 2 types of free trial for the residential network, based on your account status:
  • Company - If you are signing on behalf of a company, you are eligible for a completely free 7 days trial upon verification of company registration and ownership
  • Non-Company - If you are signing as a freelancer or as an independent owner you will be eligible for a 3 days money back guarantee. In case you decide that the service is not suitable for your needs, you will be granted 3 days to claim back your used balance.


  • all trials are subject to a successful on-boarding process
  • The free trial is offered for those who sign for a monthly plan of $500 or more of the 'rotating' residential network (not static residential)

How can I set up a free trial account to test the Luminati residential IP network?

  • You will first need to Signup and activate your Luminati account.
  • After you verified your email address and have access to your account, fill the residential on-boarding form and your account manager will contact you to continue the process.
    it usually takes few hours to approve your Residential IPs access.
  • If you are not looking to use residential proxies and need Data center proxies you do not need to fill up the onboarding form.
    You can simply add funds to your account in the billing page and create Data Center zone.

My trial ended. what's next?

After your trial has ended, the system will disable your residential zones to prevent any unwanted charges in your account.
You should take the following steps in order to continue using the Residential proxies:

  • Make sure you have a valid Payment method
  • Add funds to your account. You need to ensure you have enough balance to top up your monthly plan.
  • Enable back your residential zones

Will I be billed automatically once my trial ends?

No you will not.
Regardless of having payment method set in your account or not, once the residential trial is over your account will be assigned with a 'Starter' residential plan of $500 (see pricing plans). This new pricing plan will be disabled and will not take effect unless you manually decide to enable it by activating your residential zones.
You will not be charged by the system automatically.

What's a Zone?

A “Zone” is Luminati’s name for the specific set of parameters you have chosen to use for a set of proxy requests. When you join the Luminati network, you will automatically be assigned our standard configurations. You are free to customize those configurations according to your needs at any time.
When customizing your features, Luminati requires you to setup a “Zone” in which you may save and reuse a set of specific configurations and permissions for a project. You can set up as many Zones as you wish and each Zone may have its own specific configurations that you can use or change at any time.
Examples for some of the Zone's settings to choose between:

  • Network (Data center / Static Residential / Residential / Mobile)
  • Exclusivity (Shared IPs / Dedicated host / Exclusive IPs)
  • Residential permissions (Country / City / ASN / gIP)

Watch how to create a proxy Zone video

How to limit zones by domain?

In order to make sure you are using your proxies only on the websites you need, you can limit each zone to a specific domain.
Also, you can block specific domains you don't want to target from each zone.
Limiting zone to a specific domain:

  • Go to zones page
  • Click on the zone you want to limit
  • Under 'Settings' section click the edit icon next to "Target domains"
  • Select "Allow only domains from list"
  • Enter the domains you want to target
  • Save

Block zone for specific domains:

  • Go to zones page
  • Click on the zone you want to block
  • Under 'Settings' section click the edit icon next to "Target domains"
  • Select "Block domains from list"
  • Enter the domains you want to block
  • Save

How Can I estimate the cost of my account before signing?

Check out Usage and Price calculator. It is built to help you estimate the costs based on traffic (KB) you are currently running and number of desired IPs.

Can I add new IPs to an existing data-center zone?

Yes. When adding more DC IPs to your DC zone, the new IPs will be added on top the old IPs.

Can I get a list of all the DC IPs in a specific zone?

Yes. Go to your data center zone settings and click on 'Download IPs list'. This will output a text file containing all your IPs in the format of IP:PORT:USERNAME:PASSWORD see image below:

Where can I find my credentials (IP/port/username/password)?

Credentials for raw API

  • Username and password: Your username and password for raw API requests can be found in the Zones page. Click the name of the desired zone, and then in the window that popped up click the "settings" tab. You will find your credentials here. Notice that your credentials might be different for each zone.
  • The full credentials for raw API (IP:PORT:USERNAME:PASSWORD) will be incorporated in the request string like this:zproxy.lum-superproxy.io:22225:USERNAME:PASSWORD
  • You can use our request builder to help you with creating full API requests

Credentials for Luminati Proxy Manager (LPM)

  • IP - an IPv4 address to access proxy through. If LPM is installed locally the IP address for credentials will always be: LPM is installed on a remote server/machine use the IP of that server/machine
  • Port - the port number you want to use from the LPM ports you created (i.e. 24000).
  • When integrating LPM to a software which requires inputting IP:PORT:USERNAME:PASSWORD - USERNAME and PASSWORD should be left null.

How can I activate my account?

Contact sales@luminati.io and we will activate your account.

How can I setup a production account?

Choose between our plans. After you have chosen a plan, send an email to sales@luminati.io with the plan you have chosen and we will get back to you as soon as possible.

How do I install Luminati Chrome extension?

Luminati Chrome extension is available in the Chrome web store.

Whitelist IPs

For security reasons the IP address of every machine that runs Luminati has to be added to the whitelist of every zone you will use.

How can I whitelist IPs inside the Luminati control panel?

  1. Enter the 'Zones' page in your Luminati control panel: https://luminati.io/cp/zones
  2. Click the specific zone's name, then in the window click on the settings tab.
  3. Click "Change" next to the Whitelist IPs.
  4. Click "Add" to add IPs to the whitelist. You are allowed to add IPs, ranges, subnets or netmasks.

Can I configure the Whitelist to include ANY IP?

Click "Add" to add IPs to whitelist and type 'Any'. Note that choosing 'Any IP' will weaken the security measures used to protect your account.

How can I whitelist IPs using an API?

You can whitelist your IP using this API:
curl -k -X POST --data "email={USER_EMAIL}&password={USER_PASSWORD}&customer={CUSTOMER_NAME}&zone={ZONE}&ip={IP}" https://luminati.io/api/whitelist/add

Is it possible to get more granular usage statistics?

There are several options to get more granular data:

  • Download a CSV file by clicking the 'Advanced' button on the top right corner of the chart, then choose CSV
  • Change the time span in the chart:
  • Change type of data to show in graph:NOTE: https requests might not be 100% accurate since we don't see the data in it. see How we count https requests

How to Add users to the account?

  • Go to "My settings" page
  • Click on the "+" button (Top left corner)
  • Add the user's details in the modal
  • Click "Submit"

After you successfully added the user he will receive an email to set a password in order to login to the account.

How to Add users to the invoice mailing list?

  • Go to "My setting" page, under "Company details" section
  • Click on the "+" button (On the right)
  • Add the recipient email
  • Click "Save" to add the recipient
  • Click "Save" to confirm the email

Once you successfully added the users they will start receiving the monthly invoices.

What is the dashboard Timezone?

The dashboard Timezone is UTC.

Suspending/reactivating my account

How do I delete my Luminati account?

To deactivate your account temporarily or permanently, click "Settings" on the sidebar and then in the top right corner of the page click the "Suspend account" button.

Programmatic account management

Suspend and reactivate your account programmatically by using one of the following commands:
Suspend account
curl -X PUT "https://luminati.io/api/set_status?customer=CUSTOMER&status=suspend_manual" -u "username:password"Reactivate account
curl -X PUT "https://luminati.io/api/set_status?customer=CUSTOMER&status=active" -u "username:password"


What is IP leak and how to solve it?

IP leak means your real IP is being revealed by the target site even though you are using proxy to mask your request.
Various 3rd party programs cause your actual IP to be leaked when using Luminati through a browser:

  • WebRTC
  • Flash
  • Java
  • JavaScript
  • ActiveX

To ensure this does not happen, make sure to turn these off to be 100% anonymous.

How do I reset my account password?

You can reset your account password through the password recovery page.
Note that this link will also appear after an unsuccessful login attempt.

What information should I send to Luminati when I report an issue?

To report an issue, provide us with:

  • Code snippets
  • The platform you are using
  • Your programming language
  • Logs and HTTP dumps if available (we request that you remove your trade secrets, including URLs and any other internal information from your code, dumps, and any other information you provide to Luminati)

Email this information together with your issue to: support@luminati.io

How do I handle a 502 error message (Bad Gateway - super proxies are refusing connections)?

Our API can be configured to request a new IP when you encounter a 502 error message:

How do I handle a 407 error message (Proxy authentication required)?

Encountering a 407 error message means that the client must first authenticate itself with the proxy. Resolving this issue requires adding the requested IPs, which are now refused connection, to the whitelist. For details, see Configure Whitelist IPs. If the issue persists, contact support@luminati.io.

I need help with solving a technical issue

In case you have an issue that you attempted and failed to resolve, and it has been made clear by a Luminati representative that the problem does not originate in Luminati, you may ask your account manager for a Developer Review.
A Developer Review is a process in which one of Luminati's developers investigates and resolves the issue at hand for you, the customer.
This service is provided in selected cases according to Luminati's consideration, and costs $1,000 USD.


  • Luminati is not obligating itself to provide a Developer Review, and may refuse to provide the service in some cases
  • In case it is found during the Developer Review that the issue at hand did originate in Luminati, you will not be charged for the service


How can I contact Luminati's support?

  • Email: support@luminati.io
  • Skype: luminati.io
  • More contact methods
  • Availability and response time

    The support team is available 24/7.

    It usually takes us less than 10 minutes to answer a support request.

    Who answers my support requests?

    An organic team that's comprised of our actual developers who build Luminati's products, and business managers who master the ins and outs of our service.

    Open a support ticket

    Can't find an answer to your question in the FAQ?
    Open a support ticket and our team of experts will address your issue personally

    Reporting vulnerability

    We appreciate any contribution that help us keep our users safe. Vulnerability can be reported to support@luminati.io. We will provide a modest bounty for a qualified and unknown vulnerability report.

    Luminati Proxy Manager

    What is Luminati Proxy Manager?

    An advanced open-source (See project on GitHub) proxy manager to help you speed up development time with built-in data gathering features.
    The proxy manager is a forwarding HTTP/HTTPS proxy on your side, to accelerate / compress / rotate / distribute / manage / monitor / report / log / debug traffic to your proxies around the world.
    With Luminati Proxy Manager you can drive all Luminati's different networks.

    Why should I use the Luminati proxy manager?

    LPM does common tasks of scraping, saving your engineers the need to write this code from scratch.
    Save engineering cost on:

    • Auto-retry on fetched failures
    • Creating rules for automated rotation of IPs
    • Automatic blacklisting of IPs when getting bad results
    • Limiting the amount of requests sent per hour to achieve max scraping rate without getting blocked
    • Admin UI for monitoring and creating multiple proxies with different configurations
    • Enabling the routing of SOCKS5 requests
    • Optimizing speed by maintaining multiple concurrent connections
    • Listing IPs based on their performance for future reuse

    Optimize proxy costs by:

    • Controlling which requests go to the proxy provider and which bypass the proxy to reduce costs
    • Routing requests to residential / data-center / mobile IP networks to get the most cost-effective blend

    Debug code faster with:

    • Fine grained logging
    • SSL decryption, allowing to debugging SSL requests
    • HAR viewer for all your requests
    • Complete request history
    • Success rate measurement, based on user-defined triggers

    Using the Luminati proxy manager will reduce development costs and efforts from your side - If there is anything you find missing in our proxy manager we will gladly investigate and add as a feature

    Watch Luminati Webinar: How to start using the Luminati Proxy Manager

    Install Luminati Proxy Manager

    What are the options to install the Proxy manager?

    Luminati Proxy Manager is an open source project developed by Luminati.
    To install the Proxy Manager on Windows, simply download the Installer file.
    To install it on Linux/MacOS, and for more installation options, visit the Proxy manager website.

    How to install the Docker Proxy Manager image?

    • Install Docker $ sudo apt-get install docker.io
    • Install Docker Luminati Proxy Manager image $ sudo docker pull luminati/luminati-proxy
    • Check that Luminati Proxy Manager version is correct $ sudo docker run luminati/luminati-proxy luminati --version
    • Run the Luminati Proxy Manager $ sudo docker run luminati/luminati-proxy luminati
    • Docker to uses the host network --net=host
      • In order to open a only the required ports for the Proxy Manager$ sudo docker run -v ~/luminati_proxy_manager:/lpm -p -p -p luminati/luminati-proxy luminati --www_whitelist_ips --config /lpm/config.json

    How to install and use the Proxy Manager on a remote server?

    • Log in as 'root' to the remote server
    • Install Nodejs
      Once you have finished the installation, run node -v and npm -v to see the nodejs and npm versions that been installed.
      Install NPM if missing.
    • While on 'root' within the remote server, install the Proxy Manager (using these options) and run it.
    • Set up the server to accept remote connections (see instructions here)
    • Configure the ports you require on your remote Proxy Manager
    • Send requests to the configured ports from your local machine by using [remote_server_IP]:[port_number]
      curl example: curl --proxy "http://example.com"

    If you use Docker to manage your server deployment you can use our Docker image.

    How to set up the Proxy Manager as a system service?

    • Log in as 'root' to the remote server (running Ubuntu)
    • Create a service file in /etc/systemd/system/lpm.service:
      [Unit] Description=Luminati proxy manager Wants=network-online.target After=network-online.target [Service] Type=simple Restart=always RestartSec=1 Environment=NODE_ENV=production ExecStart=/usr/local/bin/luminati User=ubuntu StandardOutput=null StandardError=null [Install] WantedBy=multi-user.target
    • Reload service files: $ systemctl daemon-reload
    • Start LPM service: $ systemctl start lpm
    • Check status: $ systemctl status lpm.service
    • You have completed setting up LPM as a service. You can now control your new service: $ service lpm stop/start/restart

    How to manage multiple configurations on multiple servers?

    If you are using linux server you can take a configuration file that is already working on one machine and copy it to the rest of your servers using the following command:
    $ scp [file_name].json root@[Remote_server]:/root/.luminati.json

    How to config the LPM on Alibaba servers?

    If the LPM is running on your server but you can’t access it from another device. You’re trying to open the LPM GUI and see an error is: ERR_CONNECTION_TIMED_OUT.
    This means that you have not completed the external connections’ configuration.

    • Go to your Alibaba Cloud Management Panel, select your server and then click ’Security Groups’ tab under ’Network and Security’.
    • If there are no groups, create a new one.
    • Now we have to add rules to the server's security group - under ’Actions’ (to the right) click ’Add Rules’.

    On the page that opens, you will see all the rules related to IPv4 / IPv6 access.
    Now we need to open several ports to connect external devices to LPM.
    Click the button to add a security group rule. In the open form, you need to choose:

    • Rule direction: Ingress
    • Action: allow
    • Protocol Type: Customized TCP
    • Port range: 22999
    • Priority: 1
    • Authorization type: IPv4 address segment access
    • Authorized object: (The IP of your device)
    Example screenshot

    Click the OK button.
    Now you can open your browser and go to: "[Server IP]:22999"

    Can I get an LPM server?

    Our LPM is easy to install and maintain on your local/cloud server, but you may prefer to have Luminati host it for you. By shifting to Luminati's hosting service you do not need to worry about installing or monitoring. Luminati's 24/7 team is here to intervene, if needed.
    The cost is $200-$500 depending on the server size. If you are interested, please contact sales@luminati.io

    Integrate the Proxy Manager to your phone

    Android settings

    1. The Android and the machine using the Proxy Manager need to share the same WiFi connection
    2. The Proxy Manager port must whitelist the IP of the Android machine
    3. Go to the WiFi network configuration -> advanced -> manual proxy:
     - Proxy host: The IPV4 address of the machine with the Proxy Manager ($ipconfig / for mac: $ifconfig)
     - Port: 24000 (or other port you create)

    iPhone (iOS) proxy settings

    1. The iPhone and the machine using the Proxy Manager need to share the same WiFi connection
    2. Whitelist the iPhone IPv4 in the Proxy Manager under ‘General’
      To find IPv4 follow these instructions:
      • Go to wifi settings.
      • tap on the blue “i” icon next to your network’s name.
      • See your IP address.
    3. Open the Settings app and go to WiFi
    4. Tap the name of the WiFi network you’re connected to
    5. Scroll to the bottom and you will find a section for HTTP Proxy. This is set to 'off' by default. Set it 'Manual' for manually configuring the proxy settings
    6. In the server slot enter the IPv4 address of the server where the Proxy Manager is installed
    7. In the port slot enter 24000 (or other port you create)

    How can I transition from the API to the Proxy Manager?

    Transitioning from the API to the Proxy Manager is easy.

    By default, the Proxy Manager supports a drop-in proxy on port 22225 which is configured to behave in exactly the same way as our super proxies do via this port.

    The easiest way to transition from the API to the Proxy Manager is as follows:

    1. Download and install the Proxy Manager from our Github page
    2. Run the Proxy Manager on a machine your code can access
    3. In your code, change the url from where you currently send requests to luminati (zproxy.lum-superproxy.io) to the local machine where your Proxy Manager runs on (usually
    4. Send your requests the same way you did use the API to

    A more advanced way to integrate the Proxy Manager in your code is by configuring new proxies with your desired configuration through the proxy manager UI ( and by sending HTTP requests to the specified port.

    In this case, you do not need to send the additional user parameter. For example, if you set a new proxy on port 24001 with a long session IP preset, you would send HTTP requests to without additional parameters, unless you want to send custom headers with the request.

    Note: you can choose to disable the drop-in port (22225) by specifying the command line argument --no-dropin.

    Can I use the Proxy Manager through API?

    Yes. The Proxy Manager has fully working API you can use in order to create ports, change configurations, presets, proxy status and more. you can find documentation of the API endpoints here: API documentation

    How to process specific data from target site

    It is possible to collect specific content from your target site using a rule which will return a response as a json object according to your set up. To create a 'Process data' rule, follow these steps:

    • Go to the "Rules" tab
    • For "Trigger" select "URL"
    • Type the target website (e.g example.com)
    • For "Action" select "Process data"
    • For "Processing rule" type the Json (e.g., {"key": "$('#ID').text()"})
    To watch an example of the steps above - Click Here
    The response will look like this:

    Can I access Luminati Proxy Manager from multiple machines?

    Yes. The Proxy manager can be installed on your machine and be accessible from outside to send requests and to make adjustments to the Proxy configurations.
    Note that you will need to take the following security steps to make sure the Proxy Manager is allowed to be used only by trusted sources.
    In addition, you might need to allow access on your server's firewall in order to accept connections from different ports that are configured on the Proxy Manager.
    See below instructions how to allow ports on your machine:

    • Windows
    • Linux / MacOS
      • Check if firewall is enabled: sudo ufw status
      • If firewall is active, open any port you are planning to use (24000 in this example): sudo ufw allow 24000
      • On your router: follow router specific instructions to forward port 24000 to your local IP address
    • CentOS
      • Open any port you are planning to use (24000 in this example):sudo firewall-cmd --zone="public" --add-port=24000/tcp --permanent
      • Reload firewall settings: sudo firewall-cmd --reload

    If you want to access Luminati Proxy Manager UI (the dashboard), port 22999 should be open as well.

    Can I run multiple instances of Luminati Proxy Manager on the same machine?

    Yes, here's how to do it in Windows CMD:

    • Make sure LPM is not currently running
    • Run the 1st LPM instance:
      • Open CMD
      • Copy this snippet: luminati --no-dropin --port 24000 --customer [CUSTOMER_ID] --zone [ZONE_NAME] --password [ZONE_PWD] --no-configand paste it in CMD
      • Update the fields [CUSTOMER_ID] [ZONE_NAME] [ZONE_PWD] and run the snippet
      • The 1st LPM instance is running, visit this address to use the LPM UI:
    • Run the 2nd LPM instance:
      • Open another CMD instance
      • Copy this snippet: luminati --no-dropin --port 24001 --customer [CUSTOMER_ID] --zone [ZONE_NAME] --password [ZONE_PWD] --no-config --dir ~/luminati_proxy_manager2 --www 2899 --ws 2898 and paste it in the new CMD window
      • Update the fields [CUSTOMER_ID] [ZONE_NAME] [ZONE_PWD] and run the snippet
      • The 2nd LPM instance is running, visit this address to use the LPM UI:
    Note that the ports of the first and second instances have to be different for this to work, that's why we used ports 24000 and 24001 here.

    How to get IPs from specific locations?

    To get IPs from a specific location, follow these steps:

    • Click on the port that you want to use location-specific IPs
    • Go to "Targeting" tab
    • Select the country you need from the country drop down list
    • Select the state you need from the state drop down list
    • Select the city you need from the city drop down list
    NOTE: In order to select State and City you need to have the proper permissions in your Zone.

    How to use IPs from many countries without creating many ports?

    Use a port with the country set to “Any”. When sending the curl requests, set the desired country for each of your requests using a country parameter. If you want to send a request via an IP in Brazil, for example, your request will look like this:
    curl -x lum-country-br:1234abcd@ http://lumtest.com/myip.json
    The request's structure is:
    curl -x lum-country-[country-iso-code]:[zone-password]@[IP]:[port] [destination-URL]

    Running multiple browser profiles with different proxy settings

    In the 'Overview' tab you can generate chromium browser for every port by clicking on the 'Chrome' icon next to the port number (see image below).
    The browser will pop up on the screen and will be automatically configured according to the proxy settings of this port.
    Open multiple browsers for each port to have unique and clean profile for each proxy port.
    See image below as example:

    Controlling your IP session

    The Proxy Manager has many ways for controlling sessions and manage the stability of the IPs used in the port.
    Set up the rules which will define how the IP will rotate according to your business needs.

    Can I hold residential IP for long period of time on a single session?

    Yes. Choose Long session preset on the port 'Presets' drop down and it will automatically configure your port to constantly ping the IP to keep it alive.
    Note that Your use of a residential/mobile IP on the Luminati network can be assured only as long as the peer's device is idle, connected to an outlet and on Wifi.

    Create a pool of long session IPs

    Use 'Long availability' pool which allows you to pool together residential IPs that hold long sessions.
    The port will use the IP in the pool which is available for the longest period of time which will increase the chances of being available for long.
    The larger the pool is, the higher the chances you will have an ip that can remain steady for longer period of time.
    Each ip in the pool will be continuously pinged to keep it alive which will consume bandwidth.
    Note this is only for Residential/Mobile zones.
    How to set up (image attached):

    • Choose the ‘custom’ preset configuration
    • Go to the ‘IP control’ tab
    • For ‘Pool Type’ select ‘Long Availability’
    • Choose the Pool size you require (recommended 5)
    Note that Your use of a residential/mobile IP on the Luminati network can be assured only as long as the peer's device is idle, connected to an outlet and on Wifi.

    Controlling sessions consistency with session header

    You can control your sessions using the LPM by sending x-lpm-session header.

  • Add the header with any random session ID "x-lpm-session: random_session"
  • When using the same session the Proxy Manager will try to connect with the same exit node (peer/IP)
  • When you change the session value the Proxy manager will connect with a different exit node (new peer/IP)
  • To keep a given session alive you must send a request no more than every 60 seconds
  • Here is an example: curl --proxy -H "x-lpm-session: rand123" http://lumtest.com/myip

    Can I automatically break the session before the residential IP is changed?

    Yes. you can choose 'Session termination' feature under 'IP control' in your Proxy manager admin panel to make sure the session will not continue if the current residential IP becomes unavailable.
    This feature will stop the session, ensuring your ip will not switch on the current session until you decide to take further action.

    How to obtain Super Proxies

    • Go to "Request speed" tab
    • Navigate to "Super Proxy's location" and select the location of the Super Proxy you need

    Choosing the super proxy's specific location will route all requests in the specified port through specific geo targeted super-proxy server.
    Using this helps you control the routing architecture of your requests and achieve better response time and performance.
    Note that this does not restrict the IPs chosen country but will simply improve performances by using Super Proxies which have shorter round trips relative to your current location.

    How can I make all requests to be sent from specific Super Proxy server?

    Use a specific super proxy for your requests as follows:

  • Run this command in your command prompt/terminal:nslookup zproxy.lum-superproxy.io
  • In the response you will get a set of IPs of the 3 fastest super proxies available. Use this command several times to build a database of super proxy IPs
  • When running the Proxy Manager in your command prompt/terminal add the --proxy flag followed with the super proxy IP you want to use. Here is an example: luminati --proxy 111.222.333.444
  • All requests you make now will use the super proxy you chose
  • Can I use the Luminati Proxy Manager with other proxy providers?

    Yes. Luminati Proxy Manager supports external proxies from other vendors. Connecting external proxies will allow you to optimize and manage all of your proxies in one place.

    Note that only HTTP connections are supported from external providers.

    How to setup external proxies?

    • Login to your proxy manager
    • Create new port
    • Select 'External' proxy
    • Add your proxies in ['username:password@IP:port'] format
    • Click 'Save' and you will have the external proxies available as one of the proxy manager's ports

    See example below:

    How to emulate real browser using curl request?

    Real browser emulation when sending requests through code is crucial for getting a successful response from the target site.
    In order to achieve that you should do the following steps:

    • Open Chrome browser
    • Open developer tools using Ctrl + Shift + I
    • Navigate to Network tab
    • Run your target URL in address bar
    • Right click the first request on the Network tab to open the context menu
    • Click 'Copy as cURL', and the full request with real browser headers will be copied to your clipboard
    • Use this request to emulate real browser

    How to measure successful requests?

    Requests that are returned with http status code 200, 300 or 404 are considered successful by default. In case you want to customize the rule to determine a successful request you can contact your success manager and he will configure that for you.
    The Proxy Manager calculates success rate as the number of successful requests out of the total requests and you can view your success ratio performance breakdown by "Port" and as "Overall" ratio.
    View your success rate (available from version 1.65.923) as shown in the example below.

    Custom headers

    Why should I use custom headers?

    Custom headers are mainly meant to make the request more specific. You should use it in cases when you need to mimic a human user behavior or pass custom parameters with your requests that are needed by the target site.
    Sending requests without headers can make it easier for the target site to mark the IP as proxy and can make your request get detectable by the target site and eventually reduce your request's success rate.

    How can I add headers to my LPM ports?

    You can either use the 'random user agent' preset and/or add your own headers through the 'Headers' tab in your port settings.
    Once headers added on your port, all the requests made through this port will be sent with the added headers in the request payload.
    You can find specific User-Agents in this User-Agent database.

    See below example on how to set it up in LPM:

    Refresh IPs

    Why to refresh IPs?

    Using the same IP for a long period of time makes it easier for the target website to mark the IP as proxy and can make your request get detectable by the target website. Refreshing your IPs will result in allocation of new IPs from Luminati instead of your existing ones in your pool allowing you to gain control over your pool and reach higher success rates.

    How can I refresh the IP using LPM admin panel?

    The link tester is a tool that shows the exact path of redirections (hops) your link will go through until it reaches the final destination URL.
    Simply insert any link and see a clear path of redirections in addition to a visual snapshot of the final target site.

    • Go to our LPM API setup
    • Click Try it out and fill the form
    • Click Execute
    • Copy the command you need (for the browser/code)
    • Run the command (browser/code)


    Long single session (IP)

    All requests share the same long session (IP). For connecting a browser to Luminati, maintaining the same IP for as long as possible.

    Watch now: How to set a long single session

    Session (IP) per machine

    Each requesting machine will have its own session (IP). For connecting several computers to a single Luminati Proxy Manager, each of them having its own single session (IP).

    Watch now: How to set a session IP per machine

    Round robin

    Round-robin pool of pre-established sessions (IPs). For spreading requests across large number of IPs. Tweak pool_size, max_requests & proxy_count to optimize performance

    Watch now: How to set a round-robin preset

    High performance

    Each request will be sent through multiple super proxies in order to gain better speed and to have a high success rate.
    Note: This preset will increase the bandwidth you use.

    Watch now: How to set an high performance preset

    Random User-Agent and cookie headers

    This preset will have the the same settings as "Sequential session" and in addition will rotate User-Agent and cookies on each request.

    Watch now: How to set a random user-agent

    Collecting only the information you need

    The Proxy Manager Online Shopping preset creates for you a port with all the necessary settings in order to collect only the relevant information you need and easily create product database info from the target site.
    The default settings with Online Shopping preset is for a product page that will return: title, price and product feature list.
    See example below:

    Watch now: How to set an online shopping preset

    The Online Shopping preset provide you with adjustable scraping modules. This means that you can set the response to fit your needs for each target site.
    You can find and set the modules in the "Rules" tab.
    Using the Online Shopping preset will ensure that you almost never be blocked on shopping sites.
    Example of request using product page URL including user-agent and cookie:curl --proxy "https://www.example.com/ASICS-Gel-Venture-Running-Black-Phantom/dp/B01N8PMBK9/ref=sr_1_3?s=fashion-mens-intl-ship&ie=UTF8&qid=1546755903&sr=1-3" -H "user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36" -H "cookie: session-id=146-8737485-9609151; session-id-time=2082787201l; ubid-main=130-06566-85313; x-wl-uid=1NA3QKNi3wfjNmXChAdgRGG7UKmcVow7hXYVwReXDvoLtZNKqen0THE0=; session-token=rffNUqxqqvEsRFrmPCK+u+SIlhyhH1YQrqRtRH8hNP6NX9Lflb+ISesFGyJ5Bd4jqCFXzXCT1x0Sfjhs/ldnme4C6goC+rErfaS11rrKdf/mYO3AEQaCkACSZqDUeriEo5UPcXrZtxi+hToVfcXIO4JwuCrH4qvONQAPrgE5J3CHPfyAMO/yAuh5MPyFEIL0MfGHYbhN3; skin=noskin; csm-hit=tb:3TVET6PFYJG42+s-X9THVXYX92M^|157698941^&t:15495102^&adb:adblk_no" --compressed -v -k


    • Collect the right header:
      In the browser console (i.e F12), go to Network tab and select the item named display.html and copy the Request header (e.g. POST) details such as user-agent and cookie.
    • Online shopping preset not working:
      Make sure you are targeting a product page (URL is containing /dp/) and Regex is true.
    • Using the same data-center IP or range multiple times with no change will flag the IP and the range

    How to use rules, triggers and actions?

    A rule is a pair of Trigger and Action. The Proxy Manager will scan the HTML response on every request and if the trigger rule you select is 'true' the action will be executed automatically. An example of a rule setup can be shown below:

    Watch now: How to set a Proxy Manager rules

    Increase speed of your requests using fast IP rule

    If you need to maintain certain speed performance on your requests, this rule can help you achieve it.
    Setting up this rule will allow you to use IPs that are faster than others to increase the speed of your requests.

    In the example below you will see the following setup:

  • Rule type 'Maximum request time' with value of 1000 milliseconds
  • Action type 'Save IP to fast pool' and the 'Fast pool size' set to 10

  • What will happen with this rule?
    Once request time (the time to load your request start to finish) is up to 1000 milliseconds the IP (session) used for this request will be inserted into the pool. IPs will be added until pool size is reached (in our example once we have stacked 10 fast IPs).
    NOTE: Each IP in the pool will be pinged every 45 seconds in order to keep it connected (this operation consumes bandwidth).
    Once the pool size is filled with the desired amount of fast IPs, any future requests will be made using the IPs from the pool. Since those are proven to be fast, your request speed performance will improve.

    See image of the rule setup in the LPM:

    Get a list of banned IPs

    Rules section can also be used to ban IPs which will trigger rules you set. This can be done in a similar to the Fast IPs pool.
    To get the list of IPs you choose to ban you can use the following API string:{port_number}

    Unblock error codes

    Error code responds can trigger an IP refresh or try with new IP using the Proxy Manager Rules with the following steps:

    • Add a new rule at Luminati Proxy Manager, rules tab
    • Select 'Status code' as the rule type
    • Trigger the rule by selecting the relevant status code to scan (i.e 501, 402, 301, etc)
    • Select the desired outcome such as 'Refresh IP' or 'Try with new IP'

    Watch video: unblock error codes

    Get notified by email when a rule is triggered

    The proxy manager offers an option to activate an email notification for each rule you create:
    When the rule will be triggered you will get an email notifying that a rule was triggered and will describe exactly what rule and in which port.

    Does Luminati Proxy Manager support multiple proxies?

    Yes. Luminati Proxy Manager supports multiple proxies.
    You can configure multiple proxies from Luminati Proxy Manager UI and from the command line.

    • From the Luminati Proxy Manager UI click the 'Add a proxy' button at the Proxies page and configure the new proxy
    • From the command line you need to provide a config file that will configure the different proxies with their different targeting settings.
      [ {"port":24000, "country":"us"}, {"port":24001, "country":"hk"} ]
      It is also possible to configure each proxy in its own JSON file, and pass Luminati proxy multiple config files in the command line

    How to multiply ports

    • Go to "General" tab
    • Add the number of ports you want to multiply in the "Multiply proxy port" input.

    Once you set the number of multiplied ports you need the proxy manager will generate the sequential ports identical to the port you configured.
    This is a very powerful feature when you need to create many ports with the same settings but only set it once.

    Multiply ports per gIP

    • Go to "General" tab
    • Select "Yes" from the "Multiply proxy port per gIP" drop-down list
    • Select the gIPs from the gIPs list
    • Click "OK"

    Once you set the number of multiplied ports per gIP you need, the proxy manager will generate sequential ports with only one gIP per port from the list you choose.

    Multiply ports per DC IP

    • Go to "General" tab
    • Select "Yes" from the "Multiply proxy port per IP" drop-down list
    • Select the IPs from the IPs list
    • Click "OK"

    Once you set the number of multiplied ports per IP you need, the proxy manager will generate sequential ports withonly one IP per port from the list you choose.

    How to enable logging?

    Logging can be controlled from "Debugging" section.

    • Go to "Debugging" section
    • From "Log level" Choose the logging level you need

    The Proxy Manager has the following logging levels:

    1. none
    2. error (default)
    3. warn
    4. info
    5. debug
    6. silly

    Can the Proxy Manager save request/response history?

    Yes, by enabling the '--history' flag. When history mode is enabled, both request and response headers will be saved to a local database. They can later be accessed under the "Proxies" section. The history option can also track HTTPS, by enabling the '--ssl' flag. For additional details, see the Luminati Proxy Manager GitHub page.
    This can also be done through the Proxy Manager dashboard by enabling Log request history and Enable SSL sniffing under the General settings section.

    How can I view the request/response history database?

    The requests history is stored in a sqlite3 DB which can be examined using the sqlite3 command-line tool. You can provide the argument--database_history [filename]in order to specify where the history should be stored.

    The requests history is stored in a table called 'request' within the database. You can examine the table definition like this:

    $ sqlite3 history.db sqlite> .schema request CREATE TABLE request(port INTEGER , url TEXT , method TEXT , request_headers undefined , request_body undefined , response_headers undefined , status_code INTEGER , status_message TEXT , timestamp INTEGER , elapsed INTEGER , response_time INTEGER , node_latency INTEGER , proxy_peer TEXT , country TEXT , timeline undefined , super_proxy undefined , username undefined , content_size INTEGER , context TEXT );

    You can then run sql statements against the 'request' table either inside the sqlite3 REPL environment or directly from the command line. For example, to get the first ten requests with the proxy port, request URL, and timestamp:

    $ sqlite3 history.db "SELECT port, url, timestamp FROM request LIMIT 10" 24000|http://lumtest.com/myip.json|1488984785367 24000|http://lumtest.com/myip.json|1488984785367 24000|http://lumtest.com/myip.json|1488984785364 24000|http://ipinfo.io/|1488984785358 24000|http://ipinfo.io/|1488984795009

    You can look at the table schema above to see exactly which columns are available. The output format of the results and many other things can be controlled by options to the sqlite3 command.
    Request/Response history can also be viewed through the Proxy Manager dashboard by clicking the history icon for each port.

    Log viewer

    Improve success rate with the Log viewer

    The Log viewer presents real time HAR (HTTP Archive) log files generated from your requests that are sent through the Proxy manager.
    HAR (HTTP Archive) files contain a log of HTTP/S requests and responses, headers, body content and they are excellent for debugging HTTP/S requests.
    Using the Log viewer can help you debug your requests and easily improve your success rate by removing/fixing unwanted results.
    NOTE: In order to view logs of HTTPS requests you must enable 'ssl analyzing' and install Luminati ssl certificate. In addition, logs are running through port 22998 so you will need to allow this port on your local machine in case it is blocked.

    How to limit the amount of logs saved

    Saving logs is a great way to debug issues when they appear but for some request there is no need to save logs.
    Therefore, you can set a limit on the amount of requests you want to save logs for.

    • Click on the "General settings" icon →
    • Select "Yes" from the "Enable recent stats" drop-down list
    • Select from "Enable logs for" the number of requests/megabytes you want to save

    Trust Luminati SSL Certificates

    Some features require the proxy manager to have access to https traffic. This can be done by enabling the SSL analyzing feture on the LPM port you are working with and adding the Luminati Certificate Autority (CA) as a trusted CA.

    How does it work?

    Behind the hood LPM will create a secure encypted https connection with the target site, decrypt the traffic to log requests and run rules based on your settings and then pass the repsonse back to your client in an encypted https connection with a certifcate signed by our CA certificate.

    How do I add the Luminati certifacte as a trusted CA?

    Download the certificate and install it as described below in your preferred browser.
    If you use your own code you will have to add our certifacate as a trusted CA for self signed certificates. It is also possible to ingore SSL exceptions from your code for testing or if you use a HTTPS connection to our super proxy.

    Firefox browser

    • Type in the address bar: about:preferences#advanced
    • Go to Certificates tab and click View Certificates.
    • Go to Authorities tab and click Import.
    • Select the certificate file you have downloaded.
    • Make sure that "Trust this CA to identify websites" is checked and click OK.
    • Click OK and go to an SSL-protected website to check that everything is working as expected.

    Chrome browser

    • Download the certificate file
    • Go to the browser setting page and selectManage certificates
    • Click Import and Next
    • Click Browse and select the certificate you just downloaded, and click Next
    • Select Place all certificates in the following store and click Browse
    • Select Trusted Root Certification Authorities, click OK and then Next
    • Click Finish. "The import was successful message" should appear.

    Other browsers under Linux

    • Copy the downloaded certificate file ca.crt to the /usr/local/share/ca-certificates/ folder.
    • Run sudo update-ca-certificates. The output of the command should state that 1 certificate was added.
    • Go to an SSL-protected website to check that everything is working as expected.

    Other browsers under Mac OS

    • Double click the downloaded certificate file.
    • Select "X509 Anchors" from the Keychain drop-down list.
    • Click OK and enter your credentials when asked.
    • Click OK and go to an SSL-protected website to check that everything is working as expected.


    • Open up Safari
    • Navigate to this page and download the certificate using this link, but first read the following two items.
    • Click Install and provide your pass-code
    • Click Install in the top right corner and then Done
    • You can now go to an SSL-protected website in any browser installed in your system to check that everything is working as expected.


    • Download the following certificate and save it on your phone.
    • On your phone, look for the certificate through 'My files'.
    • Enter you password and press next.
    • Choose a name, preferably something you will recognize like Luminati.
    • Under 'Used for', choose 'VPN and apps' and click OK.
    • You can now go to an SSL-protected website in any browser installed in your system to check that everything is working as expected.

    What server do I need to run LPM?

    You can run LPM anywhere: on Linux, Windows, Mac or in a Docker instance. Because the amount of RAM, Bandwidth (BW) and disk space used varies based on your usage we recommend starting with a small simple server and scaling up horizontally or vertically to suit your needs.

    To start off we recommend using a server from Digital Ocean (because of their bandwidth policy) see specs below.

    Digital Ocean server specs:

    • 2GB RAM
    • 1 CPU
    • Ubuntu 16 LTS

    How to use parallel LPM instances for high performance

    When you don't want to overload one LPM with to many requests you can create several instances of the LPM on different servers.
    The best way to do so is by following the next steps:

    • Install the LPM locally and set all of the ports as needed
    • Save the config file
    • Install the LPM on the servers you want to use
    • Import the config file to the luminati_proxy_manager directory in the servers
    • Split your traffic between the servers
    request 1 -> [first server IP]:24000
    request 2 -> [second server IP]:24000

    Using the LPM with this method will make sure you are not overloading one LPM instance and it will help you keep the same configuration across all instances.
    This means you can send requests from same port with the same country at the same time on each instance.

    Do I need to take any specific security measures when using Luminati Proxy Manager?

    It is important to ensure that Luminati Proxy Manager is only accessible when working either in environments that are strictly under your control or via a secured connection such as VPN. In addition, if installed on a remote server, it is best to:

    Block unwanted sources from using the Proxy Manager's ports

    Whitelist IPs on all your ports inside the Proxy Manager to ensure usage on those ports is only from allowed and wanted sources. While this feature is enabled, only the listed IPs will be allowed to send requests through the port with this configuration. Using this feature will ensure the bandwidth you pay for is consumed only by trusted sources.
    See example below how to add whitelist IPs for specific port:

    Block unwanted users from editing the Proxy Manager settings

    Whitelist admin access to ensure only authorized IPs can perform changes to your LPM settings. This will block the admin page and the LPM's API when it is accessed from outside the server (where the LPM is hosted) from IPs which are not whitelisted.
    See example below how to easily add IPs to whitelist in General Settings:
    See example below, how to add whitelisted IPs to access the admin UI directly from the config file:

    Authentication using token

    If you are using multiple crawlers with changing ips to send requests to remote Proxy Manager server you will need to generate a token to use for authentication on the Proxy Manager:

    • Run Luminati process from inside the server
    • From the Proxy Manager's server run in terminal/command line:
      curl -X GET "" -H "accept: application/json"
    • You should be seeing the token response:
      "token":"TOKEN STRING"
    After generating a token you have two options: either use the token to whitlist the new IP once when the crawler server is set up or include the token in the proxy auth of each request:
    To make requests use the token in the proxy auth use username "token" and the acual token as the password, for example:
    • curl -x token:TOKEN_STRING@ http://lumtest.com/myip.json
    To whitelist your new server IP so you don't need to send it in proxy auth:
    • Copy the token from LPM server to new crawler server
    • Make this request from your new server:
      curl [REMOTE_SERVER_IP]:22999/api/add_wip -X POST -H "Content-Type: application/json" -H "Authorization:[TOKEN_STRING]" -d '{"ip":"[CRAWLER_IP]"}'
    • Your crawler ip is now whitelisted on the Proxy Manager
    • NOTE: this will not give access to the Proxy Manager's admin panel but only to send requests through the ports

    Integrating the Proxy manager with third party apps

    The proxy manager is an Open-Source project that can be installed in various environments and used as proxy server in any application.
    Below are few examples for which LPM can be used as the proxy server inside third party applications.
    Most of the third party apps require ip:port:username:password format. When you integrate the Proxy manager with any third party app there is no need in username and password and it is ok to leave username:password empty as each port in the Proxy Manager keeps the credentials of the used zone in it.
    Example for port 24000:IP:PORT:USERNAME:PASSWORD →[empty]:[empty]

    Integrate the LPM with Multilogin app

    1. Install the proxy manager and run it
    2. Create your desired port/s in the proxy manager (example port 24000)
    3. Install Multilogin on your operating system and run it
    4. Create 'New browser profile' in Multilogin
    5. Go to 'Proxy' settings
    6. 'Edit proxy' in proxy settings
    7. Select 'Connection type" as 'HTTP proxy'
    8. Insert in the 'Address' your lpm process address ('' if it is running on your local machine or server IP if the LPM is installed on a remote server)
    9. Insert the port number you want this profile to go through as proxy (example 24000)

    Now your Multilogin browser profile should route all the request through the proxy manager's port you selected

    See example below with instructions from the Multilogin application:

    Integrate the LPM with Insomniac browser

    Setting a new zone
    Setting the Proxy Manager
    • Install the Proxy Manager and run it
    • Create a new port (example port 24000)
    • Go to "Targeting" tab and select United States
    • Go to "Request speed" tab and select DNS lookup as Remote - resolved by peer
    • Go to "Rules" tab and set the following rules:
      1. Status code: 403 - ban IP for 50 min
      2. Status code: 402 - retry with a new IP
      3. Status code: 504 - retry with a new IP
        (any other status code can be added with a retry if received)
    • Go to "General" tab and set the following
      1. "Enable SSL logs" as "Yes"
      2. Multiply proxy port(The amount of tabs you need to open in the browser)
    • Download your ports list as .csv file
    • Edit your .csv file to look as the following example:
    Setting Insomniac browser
    • Install Insomniac browser
    • Click on the Insomniac Proxy Per Tab extension
    • Click Manage Proxy list
    • Click Add Bulk Proxies
    • Click Import Proxy List
    • Choose the file you saved from LPM
    • Click Open
    • List of LPM proxies should appear
    • Click Insomniac Proxy Per Tab and choose "Rotate through proxies in order"
    • go to settings/manage certificate and import luminati certificate into the trusted root authorities
    • Open a new tab
    • Use this URL to see that you are getting IP of your choice http://lumtest.com/myip.json
    • Browse to your target site using your configured proxies

    Selenium integration

    • Set proxy to your local machine by adding
    • Add port from the Proxy Manager ports list, for example port 24000

    Selenium and Proxy Manager integration example:

    const {Builder, By, Key, until} = require('selenium-webdriver'); const proxy = require('selenium-webdriver/proxy'); (async function example(){ let driver = await new Builder().forBrowser('firefox').setProxy(proxy.manual({ http: '', https: '' })).build() try { await driver.get('http://lumtest.com/myip.json'); driver.switchTo().alert().accept(); } finally { await driver.quit(); } })();

    Puppeteer integration

    • Set proxy to your local machine by adding
    • Add port from the Proxy Manager ports list, for example port 24000

    Puppeteer and Proxy Manager integration example:

    const puppeteer = require('puppeteer'); (async () => { const browser = await puppeteer.launch({ headless: false, args: ['--proxy-server='] }); const page = await browser.newPage(); await page.authenticate(); await page.goto('http://lumtest.com/myip.json'); await page.screenshot({path: 'example.png'}); await browser.close(); })();

    Watch video: connecting Puppeteer and Selenium with Proxy Manager

    How to configure SOCKS5 protocol?

    In Proxy Manager, every port that is created will listen by default to HTTP/HTTPS and SOCKS5. In case a SOCKS5 connection is created, the LPM convert will automatically convert the requests to HTTP/HTTPS. Meaning that nothing has to be configured in order to open SOCKS5 connection to the LPM.
    See example of SOCKS5 request using curl on port 2400:curl -x socks5h://localhost:24000 http://lumtest.com/myip.json
    Same 24000 port can be used for HTTP like this:curl --proxy localhost:24000 http://lumtest.com/myip.json

    How to reduce the amount of data in a response?

    • Go to "General" tab
    • Select "Yes" from "Enable SSL logs"
    • Go to "Rules" tab
    • Select "URL" from "Rule type" drop-down list
    • Choose any file type to apply regex expression
    • Select "Null response" from "Action type" drop-down list

    In the following example below the Proxy Manager will return a null response (0kb and still status code 200) for all requests that ends with any of the file type endings .jpg|.png|.gif etc.
    Use this option when you want to reduce the amount of data you wish to get in your response.

    How to reduce the amount of BW used to maintain a pool of sessions/IPs?

    If you are using a pool of IPs built by rules LPM is sending a small request to lumtest.com/myip.json to keep the session active.
    You can tell if you have sessions maintained by looking at the sessions list from the "Log" tab of the port. If the port is left idle for long periods of time you can disbaled the pool after 1h of of idle time to save BW:
    Go to "IP control" tab and set "Idle pool" to "Yes".

    How to set a port name

    • Go to "General" tab
    • Set the port name in the "Internal name" input

    When managing many ports it is easy to lose track of each port's configuration. This is why It is important to create an internal name for each one.
    The name you choose for your port should be one that gives you info about the port configuration (e.g. 'US_verizon', 'US_mobile', etc).
    After you provided a name for your ports they will appear next to the port number in every feature of the LPM. This way you will be able to manage all your ports easily, remember the settings of each port, assign users etc.

    How to reset the LPM?


    Make sure the LPM isn't currently running.
    On file explorer go to C:\Users\your_user.
    Delete the folder called luminati_proxy_manager.
    The next time you will run the LPM all the logs and the config will be deleted.


    Make sure the LPM isn't currently running.
    Run on terminal: rm -rf ~/luminati_proxy_manager
    The next time you will run the LPM all the logs and the config will be deleted.

    How do I get support for Proxy Manager?

    You can either contact your Success Manager or submit a bug from the admin panel of the Proxy Manager (http://localhost:22999) see image below

    Luminati Chrome Extension

    What is Luminati Chrome Extension?

    It’s a Chrome extension that allows you to use Luminati from your browser with minimum setup.
    Watch video: Luminati Chrome extension

    How can I start using it?

    Once you have an active account on Luminati, install the extension here, set up your zone and start browsing from anywhere in the world.

    Can I let other people use the extension without providing my account credentials?

    Yes. They will need to go to the extension setup page and login with the customer name,zone name and zone key of the zone you wish to let them access. All the zone info is available in the zones section.
    You can also use this link in order to automatically insert your guest-login credentials:https://luminati.io/cp/bext?customer=CUSTOMER-NAME&zone=ZONE-NAME&key=ZONE-KEY

    Can multiple machines use the extension on the same account?

    Yes. there is no limit on how many extensions are logging to the same account.

    How can I change the extension's settings?

    Open Extension setup page and change settings such as Zone, Country, Custom Headers, or anything necessary. Click 'Apply' when done, and your extension will be updated with the new setup.

    Why am I getting an 'error' message when I setup the extension?

    There are few possible reasons for proxy error when setting up the extension:

    • A zone was not selected. Make sure that the form is filled correctly.
    • Your account is 'disabled'. You can easily check this on your Dashboard.
    • You have a negative balance. Check this in your Billing section.
    • Luminati network status issues. You can check the network live status here.

    When should I use custom headers?

    Custom headers are mainly meant to make the request more specific. You should use it in cases when you need to pass custom parameters with your requests to the target site. Every header should contain Name & Value and you can add as many headers as you like.

    Does the extension work in incognito mode?

    Yes. Luminati extension works on both regular and incognito mode.

    To enable incognito support on Chrome, do the following:

    • Type chrome://extensions in the chrome address bar
    • Make sure Allow in incognito is checked

    Why login message keeps appearing

    Luminati uses cookies to remember your login credentials in order to keep your user experience at its best. If you are using third-party extensions that regularly removes cookies from your device then you'll see the login message quite often.
    How can you avoid getting login message?
    In the top right corner you can click on "Delete Cookies". This will delete all the cookies from your device except Luminati's and Google's cookies so you could keep using our service with no interruptions and keep your chrome extensions alive.

    Which Google services are supported?

    Any "single query session" to Google including:

    • Google search
    • Google images
    • Google shopping
    • Google books

    Common Use Cases

    Ad Intelligence

    See which ads are showing for keywords in different countries including (double‐click & Google ad services)

    Market Research

    Collect information about companies, contacts, locations and more

    Search for images or other copyright‐protected content

    Price Comparison

    Search for products on online shopping websites and compare prices between different vendors

    Organic Keyword Tracking

    Mapping a company’s ranking for various keywords in different locations

    Brand Protection

    Track top results for company brands and trademarks

    How to start?

    Luminati’s API is compatible with multiple coding languages and is easy to integrate

    Google search example (search for "taxi", over the "past month"):

    curl -v --proxy zproxy.lum-superproxy.io:22225 --proxy-user lum-customer-CUSTOMER-zone-ZONE:PASSWORD 'http://www.google.com/search?q=taxi&tbs=qdr:m' -o results_page.html

    Google photo search example (search for Reddit logo):

    curl -v --proxy zproxy.lum-superproxy.io:22225 --proxy-user lum-customer-CUSTOMER-zone-ZONE:PASSWORD 'http:// www.google.com/searchbyimage?image_url=https://www.redditstatic.com/desktop2x/img/banner/banner-small-logo.png' -o results_page.html

    Google shopping examples:

    curl -v --proxy zproxy.lum-superproxy.io:22225 --proxy-user lum-customer-CUSTOMER-zone-ZONE:PASSWORD 'http://www.google.com/search?q=lego+transformers&tbm=shop' -o results_page.html

    curl -v --proxy zproxy.lum-superproxy.io:22225 --proxy-user lum-customer-CUSTOMER-zone-ZONE:PASSWORD 'http://www.google.at/shopping/product/232536990647203309?biw=2048&bih=1937&output=search&q=8053672401714&oq=8053672401714' -o product_page.html

    Types of errors

    • 407: Auth Failed
      Various auth errors (wrong username/password, ip not whitelisted, zone disabled, no permission to request specified city/ASN/region)
    • 502: No peers available
      Currently we have no peers in the region you requested
    • 502: only http requests are allowed, https is forbidden
    • 502: path must be one of /search, /complete/search, /searchbyimage, /shopping/product
    • 502: one of these parameters must be present: q, image_url
      Mandatory param is missing (q for /search or image_url for /searchbyimage)
    • 502: invalid value of gl param - should be country code
    • 502: requested language (hl param) is unsupported
    • 502: google search is currently disabled
      We disabled Google Search feature due to some reason
    • 502: text/shopping/image search is currently disabled
      We disabled specific Google Search type due to some reason
    • 502: strict mode, query params not supported: gws_rd
      If you pass &lum_strict=1 as query parameter, we’ll check that all parameters will be passed to Google without changes, otherwise we silently ignore unknown parameters
    • 502: strict mode, important headers not supported: user-agent
      If you pass &lum_strict=1 as query parameter, we’ll check that all headers will be passed to Google without changes, otherwise we silently ignore unknown headers
    • 502: start/gbv param is not supported for mobile platform
    • 502: only start<100 and divisible by 10 is supported
    • 502: timeout
      Connection to peer timed out (after several retries with different peers)
    • 502: captcha_last_attempt
      Failed with captcha response (403/redirect to captcha) after several retries
    • 502: response_not_200
      Failed with erroneous response (4xx/5xx) from Google after several retries


    How do I integrate Luminati as my proxy network?

    The recommended way to integrate Luminati is through the open source Luminati proxy manager. Alternatively, you can find the Luminati API here.

    How do I integrate Luminati into a web browser automation tool?

    Integrating Luminati into a web browser automation tool such as Selenium or Puppeteer can be done by route to Luminati super proxy port which is zproxy.lum-superproxy.io:22225 and authenticate with your Luminati zone credentials.
    The username and password of the specific zone can be find in the API examples.
    Watch Luminati Browser Automation webinar
    Integrating Luminati super proxy with Selenium:

    const {Builder, By, Key, until} = require('selenium-webdriver'); const proxy = require('selenium-webdriver/proxy'); (async function example(){ let driver = await new Builder().forBrowser('firefox').setProxy(proxy.manual({ http: 'zproxy.lum-superproxy.io:22225', https: 'zproxy.lum-superproxy.io:22225' })).build() try { await driver.get('http://lumtest.com/myip.json'); driver.switchTo().alert().sendKeys('lum-customer-USERNAME'+Key.TAB+'PASSWORD'); driver.switchTo().alert().accept(); } finally { await driver.quit(); } })();

    NOTE: The latest FireFox version that supports the above code is 66.0.5. Newer versions support IP:PORT format, so using newer FireFox versions can be done through LPM configuration.

    Integrating Luminati super proxy with Puppeteer:

    const puppeteer = require('puppeteer'); (async () => { const browser = await puppeteer.launch({ headless: false, args: ['--proxy-server=zproxy.lum-superproxy.io:22225'] }); const page = await browser.newPage(); await page.setUserAgent('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36'); await page.authenticate({ username: 'lum-customer-USERNAME', password: 'PASSWORD' }); await page.goto('http://lumtest.com/myip.json'); await page.screenshot({path: 'example.png'}); await browser.close(); })();

    Watch video: connecting Puppeteer with Luminati super proxy
    Note: Chromium user-agent include "HeadlessChrome" that need to be replaced as shown in the example above using setUserAgent.

    Which ports and protocols are supported by Luminati?

    Ports 80 and 443 are available by default, supporting HTTP and HTTPS protocols.
    The below table shows supported protocols by port:

    80 HTTP

    Luminati is able to support additional ports by request. Every request to support a new port will be followed by a dedicated and additional compliance process with the Luminati compliance team.
    For additional port permissions, contact Luminati Support.
    Examples of ports that require Luminati compliance review prior activation:


    Can I use Luminati on more than one device?

    Yes. You are not limited by the number of devices, IPs, sessions, concurrent connections, or Geo-Locations. We charge based only on the traffic going through our network. See the basic package for more information.

    How many concurrent sessions can I use?

    We do not place a limit on the number of concurrent sessions used.

    How do I configure IP rotation when using Luminati?

    When using the commands listed in the Luminati proxy manager GitHub page, the "requests per session" parameter is defined by using:--max_requests Requests per session [default: 50].Our API allows you to manage the rotation on your end by using the session parameters. This can be done by adding the session to the proxy username:
    lum-customer-Customer-zone-YourZone-session-rand39484Changing the session number changes the IP as well.
    IP rotation can also be managed through the Proxy Manager dashboard editing under IP Policy.

    Can I select the ISP or ASN of the IP?

    Yes. You can select an IP per ASN. Contact us at sales@luminati.ioto add this premium feature to your Luminati account.

    How can I select an IP for a specific country?

    The country codes have standard ISO coding.
    You can find the right code for a specific country by using our interactive diagramand selecting a country from the drop-down menu.

    Can I select an IP per city?

    Yes. We offer a premium featurethat allows selecting the location of the IP at a city level. To enable a city zone in your account, contact your sales representative at sales@luminati.io.
    For instructions regarding the selection of a city using API, see How to use the Luminati API.

    How can I disconnect a browser session?

    You can use either of the following methods to disconnect a browser session:

    • HttpRequest:
      • Disconnecting session-1:new XMLHttpRequest().open('get', 'http://trigger.domain/hola_trigger?disconnect_sockets=1&all=1&reject=lum-customer-admin-zone-gen-session-1')
      • Disconnecting session-2:new XMLHttpRequest().open('get', 'http://trigger.domain/hola_trigger?disconnect_sockets=1&all=1&reject=lum-customer-admin-zone-gen-session-2')
    • Browser:http://trigger.domain/hola_trigger?disconnect_sockets=1&all=1&reject=lum-customer-admin-zone-gen-session-1

    Only change the proxy username as explained in out API.

    How do I keep the same IP over different requests?

    If you want to exit from the same IP over multiple requests, you should use the same session ID and make sure you exit from the same super proxy for the entire duration of your session.
    For example, get a specific super proxy IP:nslookup zproxy.lum-superproxy.ioChoose one of the resolved IPs and then use it with the same session:curl --proxy SUPERPROXY_IP:22225 --proxy-user lum-customer-CUSTOMER-zone-YOURZONE-session-rand1:YOURPASS "http://lumtest.com/myip.json"curl --proxy SUPERPROXY_IP:22225 --proxy-user lum-customer-CUSTOMER-zone-YOURZONE-session-rand1:YOURPASS "http://lumtest.com/myip.json"

    How can I receive statistics, recent IPs, and data center IPs?

    Go to the API samplespage to see how to use each of our APIs.

    Are the details included in the proxy authorization header visible to the target site?

    When the connection is established by using HTTP, the proxy authorization header is stripped from the request before the request is routed to the target site.
    When HTTPS is used, the removal of the proxy-authorization header depends on your framework.
    Under normal functioning this header is sent only in the CONNECT part of the request, in which case it will not get to the target site. This is the most common scenario, and therefore
    under normal circumstance and in most frameworks, there is no need to worry about the proxy authorization header being visible to the target site.

    However, if for some reason your framework sends this header as well in the GET/POST part of the HTTPS request, we have no access to the proxy-authorization header and cannot remove it.
    It is highly recommended to test this issue in advance by sending a request to https://lumtest.com/echo.json and examining the headers reported in the response.
    If the proxy-authorization header is exposed it will appear in the response.


    Can a peer intercept traffic?

    No. Luminati suggests to its customers to use HTTPS traffic, which is impossible to be intercepted. Customers that choose to use HTTP distribute their traffic over Luminati’s millions of peers, and thus no single peer (or even groups of thousands of peers) can piece together which Internet pages the Luminati customer is choosing to access

    Is there any way that the target website can trace the origin of the IP back to us?

    No. When a Luminati customer sends a request through the Luminati residential proxy network, that request is sent to a Luminati “Super proxy”, which is a server that strips away identifying information(if any), and sends that request to one of the millions of residential IPs that opted in to the Luminati network. The IP of the proxy on the Luminati network is a Residential IP, belonging to a regular Internet user in a geography and ISP of the Luminati customers’ choice. The request to the target website originates from that IP, and is not traceable further back to the Super proxy, or further back than that to the Luminati customer.

    GDPR Regulations

    Luminati is fully committed to complying with all relevant data protection legal requirements, including the new EU data protection regulatory framework - the General Data Protection Regulation ("GDPR").
    As an enthusiastic advocate of internet security and privacy, Luminati understands the importance of providing data subjects with greater control on their privacy and data. Therefore, we have taken considerable efforts to ensure that our privacy practices comply with data protection laws, including the GDPR, and the industry's best practices regarding, among other things, respecting data subjects' requests to exercise their rights. We are constantly examining applicable legal developments as well as the relevant provisions of the GDPR in order to develop tools for our customers' GDPR-compliant use of our services.

    How does Luminati handle our private data?

    Find out what types of info Luminati collects, how it's being used and other aspects of the way Luminati handles your data in the privacy policy page.

    Performance and best practices

    Can I request an IP change every 15 seconds?

    Yes. Our code snippet defines an IP change by number of requests (the default is 40), but can be modified by you so that your code would change every number of seconds as well.This can also be done through the Proxy Manager UI editing under IP Policy by setting Session duration (seconds) to the wanted value.

    Does Luminati compress the requests before sending them to the target site?

    No. The request will be sent as you specified it.
    Make a request to lumtest.com/echo.json - it will show you the headers it received.
    You will see it's not changed.
    curl -H "accept-encoding: deflate" --proxy zproxy.lum-superproxy.io:22225 --proxy-user lum-customer-xxx-zone-gen:xxx "http://lumtest.com/echo.json"{"ip":"","country":"IN","geoip":2232796061,"geo":{"city":"","region":"","postal_code":"","latitude":20,"longitude":77},"method":"GET","httpVersion":"1.1","url":"/echo.json","headers":{"host":"lumtest.com","x-real-ip":"","x-forwarded-for":"","x-forwarded-proto":"https","x-forwarded-host":"lumtest.com","user-agent":"curl/7.46.0","accept":"*/*","accept-encoding":"deflate"}}HTTPS:
    curl -H "accept-encoding: deflate" --proxy zproxy.lum-superproxy.io:22225 --proxy-user lum-customer-xxx-zone-gen:xxx "https://lumtest.com/echo.json"{"ip":"","country":"IL","geoip":674550570,"geo":{"city":"","region":"","postal_code":"","latitude":31.5,"longitude":34.75},"method":"GET","httpVersion":"1.1","url":"/echo.json","headers":{"host":"lumtest.com","x-real-ip":"","x-forwarded-for":"","x-forwarded-proto":"http","x-forwarded-host":"lumtest.com","accept":"*/*","user-agent":"curl/7.46.0","accept-encoding":"deflate"}}

    How can I see my current bandwidth usage with your API?

    You can see your current bandwidth usage with the following curl request:curl -H "X-Hola-Auth: lum-customer-CUSTOMER-zone-gen-key-PASSWORD" "https://luminati.io/api/bw"

    What happens if a target website blocks the IP?

    It should not happen with the correct usage of our system, but if it does, just open a new session with a different IP.

    Can you recommend ways for us to speed up proxies and drop slow ones?

    In the 200 Response there is a field called "x-hola-timeline-debug".
    The time in the field is the latency between the last IP and the site. You can use that to measure up to evaluate IPs.

    How do I exclude a specific IP?

    You cannot remove specific IPs because the super proxy allocates them randomly. However, you can make a simple query to get the specific IP you want to exclude. Go to http://lumtest.com/myip and disconnect (change session).

    Why did I get the same IP after changing the session ID?

    Sometimes an HTTP client caches the proxy username/password and as a result you may get the same IP even after changing a session. Ensure that your code accurately follows Luminati's 'high performance' sample according to the language you use. This sample contains a specific code, which ensures that the HTTP client library you use does not cache the proxy when switching sessions.

    Super proxy IP caching

    The server zproxy.lum-superproxy.io will get the most available 3 super proxy IPs. You can directly connect to each of those IPs by using your credentials.
    Caching the super proxy IPs might improve latency eliminating additional hop. It is recommended to cache the super proxy IPs every 6-7 days.

    Event log

    For a quick overview of your usage, go to the event log in your zones page:

    The event log will show you one line of data for the first request made with each unique IP in the past hour.

    The presented data is:

    • Date: Time and date of the request
    • Zone: What zone was used for the request
    • Source IP: What IP the request was made from
    • URL: The target site of the request
    • Result: Success or Fail of the request

    Billing and payments

    Watch how Luminati billing works

    What is the time zone used for my billing cycle?

    All billing calculations are made according to our dashboard timezone which is UTC+0. How this can effect your billing? You have the option to enable and disable your zones. The time of enabling/disabling will be in UTC time therefore the daily charges will be applied accordingly.

    I joined the Luminati residential network. What is included in my price plan?

    After joining the Luminati residential network, you will be designated a starter price plan that you can later change to fit your needs. When adjusting a price plan for our residential network, you will have 2 factors to consider:
    Price per GB - Luminati’s pricing is calculated per GB bandwidth/transferred data. However, each of our price plans sets a different price per GB, so as you scale up in plans (that is, when you chose a plan with greater usage), the price per GB goes down.
    A minimum monthly commitment - Each plan requires you to commit to paying a minimum amount at the beginning of every month while your account is in “active” status. This minimum commitment will set the limits for your basic usage: once your usage goes over your minimum commitment amount, you will need to add additional funds to keep using our service. Learn more at our pricing page.

    I use both residential and data-center IPs. Will the payment for data-center IPs be taken from the minimum monthly commitment or on top of it?

    If you are using both residential and data-center IPs, payment for data-center usage will be taken from the minimum monthly commitment for residential IP plans.

    If I suspend my account will I keep the IPs allocated to me?

    No. If you choose to suspend your account, the IPs currently allocated to you will not be saved.

    Disabling zones to control your account usage and balance

    You can easily disable any of your zones if you want to stop using it for a while. Our billing system will not charge for days when your zones are disabled but rather only charge for the relative time the zones were active. you can activate them back at any given moment from your control panel.

    • Disabling all residential/mobile zones will also stop the pre-commit charges. as long as you have at least one active residential or mobile zone the pre-commit plan will be applied and charged for.
    • Disabling Data center zones or residential zones with dedicated IPs will release all IPs to the pool

    What is the cost for refreshing data-center IPs?

    Refreshing data-center IPs will have a different cost depending on the type of IP.

    • Refreshing dedicated data-center IPs: $0.5/refresh/IP
    • Refreshing dedicated domain data-center IPs: $0.04/refresh/IP
    • Refreshing shared data-center IPs: $0.02/refresh/IP

    What is the cost for Cooling period data-center feature?

    Cooling period will have a different cost depending on the type of IP.

    • Cooling period for exclusive data-center IPs: $0.02/cooling day/IP
    • Cooling period exclusive data-center IPs with unlimited domains: $0.08/cooling day/IP

    Can I change price plans at any time?

    Yes. Feel free to upgrade or downgrade price plans at any point in time. It’s simple. You can change price plans by entering the “zones” section of your luminati.io account. Just enter the specific zone, click on the edit button, and chose the price plan that fits your current needs. If you will change your plan in the middle of the month, we will calculate your minimum monthly commitment according to the relative part of the month each plan took place in.

    If I upgrade my price plan, will my account be suspended if I do not immediately add the missing funds for my new minimum monthly commitment?

    No. As long as you have not used up the balance that you began your month with, you may continue using our service without interruption.

    How does the Luminati billing cycle work?

    The billing cycle begins on the 1st of each month. You will pay your minimum monthly commitment on the first of the month. You may opt to setup automatic payment and we will charge your credit card or PayPal on the 1st of the month. You will be billed your monthly account commitment on the first day of each month as long as your account remains in “active” status.

    How does the Luminati billing cycle work if I am only using data-center IPs?

    When customers only use data-center IPs, we calculate their cost on a daily basis. We subtract this daily cost from the current balance in your account, showing the remaining balance available for use. Costs are calculated according to the IP types used (shared vs. dedicated), as well as bandwidth/GB used. We also calculate any additional costs for added features (like exclusive time or dedicated domain/host).
    You will be billed for the costs described above on the 1st of every month. The balance remaining in your account will reflect the amount available for future use.

    What happens if I join Luminati in the middle of the billing cycle (in the middle of the month)?

    If you join Luminati in the middle of the month, your first minimum account commitment payment will be charged on the day you join and usage will retroactively apply only to the days in which your account was active during the month.
    Example: You join the Luminati Residential Network on the June 25th, your price plan has a $500 minimum monthly commitment and you make your first payment of $500.
    What will happen on July 1st?

    • Our system will see your account was active for only 6 days during June which are 20% of the month, so the relative part of the minimum monthly commitment will be $100. Unless the cost of your usage was higher than that, $100 will be your cost for June.
    • We will send you an invoice and take $100 from your balance against June cost, leaving your balance with $400.
    • Since on the 1st of every month your balance needs to comply with your minimum monthly commitment, we will now charge your credit card for $100 in order to top it back to $500 to comply with your minimum monthly commitment for July.

    Do you have any advanced pricing plans that cover unlimited data volume?

    No, our pricing model is based on bandwidth usage. The rate per GB is determined based on a minimum monthly commitment; the higher the commitment, the lower the rate. Contact our sales team and specify your expected usage, to allow them to send you a user-defined quote. You can sign up for a 7-day free trial to evaluate the value of our solution and determine your expected monthly bandwidth usage.

    Do you offer a monthly subscription?

    All of our pricing plans are on a month-to-month basis, based on our license agreement.

    I plan on using more than my minimum account commitment in a specific month. Can I add funds to my commitment?

    Yes. You can add additional funds to your account at any time.

    What happens when my usage goes beyond my minimum account commitment?

    When you have used 85% of your account balance during a given month, you will receive an email requesting that you add funds to your account. If you do not add funds to your account, your account will continue to operate until you have used 100% of your account balance. Once you have reached usage amounting to 100% of your account balance, your account will be suspended unless additional funds are added.

    If my usage goes beyond my minimum monthly commitment balance, will my account keep working?

    No. Your account will not work once your balance runs out. Once your balance reaches $0 it will automatically be suspended.

    What if my usage in a given month is less than my minimum account commitment? Will my funds roll over to the next month?

    If your account remains in “active” status for the entire month, your monthly commitment will not roll over to the next month, regardless of whether your usage charges fell below the minimum commitment.
    While in 'active' status, your usage and billing calculations start over fresh on the first day of each month according to your price plan and monthly commitment.

    Can I limit my daily usage?

    Yes. In the Zone page under the "Usage spent limit" column it is possible to limit your daily usage in 2 ways:

    • Bandwidth(bytes)
    • Money spent(Dollars)

    Once you reach your daily usage the zone will automatically be suspended.

    Note the Zone limit is calculated every 15 minutes and will not take effect immediately so a zone might go over it's limit by 15 minutes of usage.

    NOTE: When the load is high statistics calculation may have a delay. In order to manually update the usage-statistics in your Zone, open the Zone by clicking on its name, go to the Statistics table, and press the [recalc] button near the desired date. Wait until the red "Loadiong..." notification at the top of the screen will disappear, and refresh the page. The stats will then be up-to-date.

    What if my account is not in “active” status for the entire month?

    You may opt to suspend your account at any time. If your account was not active for the entire month, your minimum monthly commitment will apply only for the relative part of the month in which your account was “active.” If you have remaining funds in your balance during a month in which you were inactive, you will not lose your balance, but will be charged to bring that balance up to the minimum monthly commitment on the 1st day of the next month.

    I need my account to remain active at all times. How can I prevent suspension of my account?

    To ensure that your account is never suspended, we highly recommend that you use automatic recharging. You can activate automatic recharging in the “billing” section of your luminati.io account. You can choose the amount you would like us to recharge. Only when your available balance drops below 85% of the account balance Or is less than $100 we will make the automatic recharge. The automatic recharge amount does not need to be the same as your minimum account commitment. The amount you choose is totally up to you!

    Does the cost structure differ by country?

    No, all countries are charged the same rate per GB.

    Which forms of payment do you accept?

    We have an automated billing system that supports payments that were carried out through PayPal or credit card.

    How do I register for payment through PayPal?

    Go to the billing page click on "Add Payment Method" button and select "PayPal" as your payment method. Now you can click the "Add Balance" button, and you will be redirected automatically to PayPal.

    How do I register for payment through credit card?

    Go to the billing page and click on "Add Payment Method" and select credit card as your payment method. Now you can click the "Add Balance" button and make a payment with your credit card.

    How is Bandwidth calculated?

    The bandwidth is calculated according to the sum of data transmitted to and from the target site: request headers+request data (POST)+response headers+response data.
    Note that traffic used during your trial will be listed on your dashboard but will not be counted towards your bill.

    Do I need to log in online to deposit the prepayment funds? What is the link and login details for this?

    Yes, we send a prepayment billing request to your email which can be completed from the billing page.

    Are there any countries that cannot use Luminati?

    We do not provide services to Iran, Iraq, Syria and Lebanon.

    Is it best to upload credit card details?

    Yes, adding a credit card will enable us to process your payment immediately and activate your account.

    Will I receive an invoice?

    Yes. On the 1st of the month, you will receive an invoice. The invoice will provide details of your previous month’s usage. It will breakdown how your usage related to your minimum account commitment (and if applicable, any additional funds that were added during the course of the month).

    Why should I use Luminati when I can build my own proxy network and pay much less per GB?

    When building your own proxy network, you've leased servers with IPs, and you were allowed "unlimited" traffic from each IP. So if you consider the amount of traffic that you can stream from each such server, it seems that you are only paying a few cents per GB! But is that the case?
    There are three factors that affect your real cost per GB:

    • Utilization - most self-operated proxy networks utilize only 30% of the available capacity. With Luminati you can scale up/down immediately - no excess capacity. (a 3X difference)
    • Fail Rate - The average failure rate, or the more comprehensive term - misleading rate is 30%. Luminati residential network has a failure rate as low as 1%. (a 30X difference)
    • Developer Cost - The Luminati API can reduce the cost of the developer monitoring and fix the failed crawls and replace burnt out IPs - that can go up to $8,000/month. (a 2x difference)

    For example - A network of dedicated servers running 5TB/month, with a $0.1 price per GB, has a cost of $500 on traffic. However, this network has only 30% utilization, resulting in a threefold increase of the effective cost to $1,500; the network's failure rate is 30%, which increase the cost by 50% to $2,250; and the developer cost increases the cost to $10,250/month. Therefore, the effective price per GB is $2.05.
    With Luminati you can generate the same amount of traffic at a lower effective price, with a lower failure rate, and without collecting misleading information due to data-center IPs.

    I will not be using Luminati on a daily basis but on a per-project basis. Do I still need to pay the entire minimum monthly commitment?

    During time periods where you are not using our service, you can turn off your residential zones. Billing for residential services will only apply for the relative part of the month when the service was active.

    How many zones can I open in my Luminati account?

    You can open up to 50 zones in your Luminati account, free of charge. Each extra zone will cost $1/month


    Premium domains

    Our premium domains allows access to some of the email providers for verification purposes.
    The list of our premium domains contains the following:

    • mail.yahoo.com
    • mail.yahoo.co.jp
    • mail.aol.com
    • mail.aol.fr
    • mail.com
    • gmx.com
    • outlook.live.com
    • hotmail.live.com
    • outlook.com
    • mail.google.com

    Using our premium domains can be done through the Datacenter network and the price for premium domain is $100/GB.

    Sending proxy requests


    • Client: Your machine running the scraping code. It connects to the Super Proxy to request URLs you wish to scrape.
    • Super Proxy: Luminati Super Proxy that distributes your requests through the Luminati network to the Luminati Proxy Peers.
    • Proxy Peer: The final device that sends your URL request to the target website. This is the IP that the website sees, it is a device that is part of the huge Luminati P2P network. It is a regular home PC, mobile phone or tablet, typically behind DSL, Cable Modem, or WiFi.
    • DC (datacenter) Proxy Peer: The final device that sends your URL request to the target website. This is the IP that the website sees, it is an IP that is part of the huge Luminati datacenter network.

    Using the system

    • You send your requests to the Super Proxy, and the Super Proxy relays them through a Proxy Peer on our network.
    • You can specify to the Super Proxy which country/state/city the Proxy Peer should be in, when to force a switch to a different IP address within the country, where DNS is resolved and other parameters.
    • The control is done by -country-CODE suffixes after username.
      Example for Brazil: lum-customer-{your_customer_id}-zone-{your_zone}-country-br
    • Country/City/ASN names added to your username string has to be connected , without dashes or spaces.
      Example for city targeting (New York City):lum-customer-{your_customer_id}-zone-{your_zone}-country-us-city-newyork
      Example for state targeting (New York State):lum-customer-{your_customer_id}-zone-{your_zone}-country-us-state-ny
      Our location reference is based on MaxMind's geolocation database, so spelling must be coordinated with their list

    Obtaining addresses of Super Proxies

    • Super Proxies are available under zproxy.lum-superproxy.io. This DNS name resolves to the set of currently fastest Super Proxies.

    Additional options for obtaining Super Proxies

    • To refresh the set of Super Proxies, use customer-{customer_id}-session-12345.zproxy.lum-superproxy.io where 12345 is a new unique number every time. You can combine 'servercountry' and 'session' parameters like so:customer-{customer_id}-session-12345-servercountry-gb.zproxy.lum-superproxy.io

    Session IP persistence

    • In many cases you may want to run several parallel sessions from the same Client, use different Proxy Peers per session, and be able to change them when needed.
      This can be done by adding the session to the proxy username and targeting a specific Super proxy: lum-customer-{your_customer_id}-zone-{your_zone}-session-rand39484
      Generate the random number on thread startup, and change it when you want to change the Proxy Peer assigned for the thread's connection.
    • Use the same super proxy by storing the IP used from a DNS request to zproxy.lum-superproxy.io: nslookup zproxy.lum-superproxy.io
      if you don't use the same super proxy you won't be able to keep the same proxy peer IP.
    • Session ID can be any random string/counter: requests with same session string will use the same Proxy Peer (as long as possible); requests with different session strings will be assigned different Proxy Peers.
    • To force an IP change, just modify the session ID
    • If an assigned Proxy Peer(exit node IP) becomes unavailable, the Super Proxy will return an error "502 - No peers available" for the first request and then on the second request the super proxy will assign a new peer even if you do not change the session ID.
    • The Session IP is kept persistent up to 1 minute of idle time. After a minute with no requests, the IP is released back to the pool.
      To keep this Session/IP for longer, send a tiny keep-alive request every 30 seconds, to prevent this session from becoming idle for over a minute.
      This request may be anything small, such as /favicon.ico or even a request that returns 404 (as long as the web server does not disconnect the socket due to this request).
    • If you have multiple Clients and would like to ignore your Clients source IP (which is used together with you session ID to create a session), then you want to use global session then add glob_ as a prefix to your session:
      Generate the random number on thread startup, and change it when you want to change the Proxy Peer assigned for the thread's connection.

    Knowing the IP of the Proxy Peer

    • For HTTP the IP is in the response header x-hola-ip
      Example for Proxy Peer IP of
      GET /index.html HTTP/1.1
      User-Agent: curl/7.35.0
      Host: example.com
      Accept: */*

      HTTP/1.1 200 OK
      Content-Type: text/html
    • For HTTPS the IP is in the CONNECT response header x-hola-ip Example for Proxy Peer IP of
      CONNECT example.com:80 HTTP/1.1
      Host: example.com:80
      Accept: */*

      HTTP/1.1 200 OK
      Content-Type: text/html

    Super Proxy status

    • To “ping” the Super Proxy status run:http://zproxy.lum-superproxy.io:22225/ping
      You will receive its version number, IP and country where it's located.
      You can now tell if the super proxy is online if it returns the JSON properly like this:

    Increasing performance

    • Reduce round-trip/latency:
      • Choose Proxy Peer IP via lum-customer-{your_customer_id}-zone-{your_zone}-country-br
        (Brazil for example) matching the destination site you connect to.
      • Use a few specific Super Proxies by IP to save time on the DNS lookup. see Obtaining addresses of Super Proxies).
    • Increase throughput: Run multiple parallel sessions with unique session IDs, from the same Client, where each session will be assigned a unique Proxy Peer using distinct session IDs.

    Controlling where DNS resolution is performed

    • If you use lum-customer-{your_customer_id}-zone-{your_zone}-dns-localdomain names will be resolved and cached by the Super Proxy.
    • If you wish to perform the DNS resolution at the Proxy Peer, use lum-customer-{your_customer_id}-zone-{your_zone}-dns-remote
      This is slower, but will give you the same IP as users in your chosen country receive.

    Controlling from where the request is performed

    • You can choose to perform the request from the super proxy directly instead of the IP of the peer. In that case the IP of the request will be the one of the Super proxy. You will need to add '-direct' to your request authorization string.lum-customer-{your_customer_id}-zone-{your_zone}-direct

    Country-specific proxy peer IP

    • Example for United States:lum-customer-{your_customer_id}-zone-{your_zone}-country-us

    State-specific proxy peer IP

    • Example for California:lum-customer-{your_customer_id}-zone-{your_zone}-country-us-state-ca

    City-specific proxy peer IP

    • You can choose to use a specific City from MaxMind's geolocation database make sure to use the spelling from their list.
    • Example for Los Angeles, United States:lum-customer-{your_customer_id}-zone-{your_zone}-country-us-city-losangeles

    ASN-specific proxy peer IP

    • You can choose to use a specific ASN from a list of ASNs.
    • Example for ASN 1234:lum-customer-{your_customer_id}-zone-{your_zone}-asn-1234

    Carrier-specific proxy peer IP

    • You can choose to use a specific carrier from this list: a1, aircel, airtel, att, celcom, chinamobile, claro, comcast, cox, digi, dt, docomo, dtac, etisalat, idea, kyivstar, meo, megafon, mtn, mtnza, mts, optus, orange, qwest, reliance_jio, robi, sprint, telefonica, telstra, tmobile, tigo, tim, verizon, vimpelcom, vodacomza, vodafone, vivo, zain, vivabo, telenormyanmar, kcelljsc, swisscom, singtel, asiacell, windit, cellc, ooredoo, drei, umobile, cableone, proximus, tele2, mobitel, o2, bouygues, free, sfr, digicel
    • Example for carrier Deutsche Telekom:lum-customer-{your_customer_id}-zone-{your_zone}-carrier-dt
    • Example for carrier Sprint:lum-customer-{your_customer_id}-zone-{your_zone}-carrier-sprint

    gIP-specific proxy peer IP

    • The list of available gIPs appear in Zone Settings, in the 'Show allocated gIPs' link.
      Example for gIP us_7922_fl_hollywood_0:lum-customer-{your_customer_id}-zone-{your_zone}-gip-us_7922_fl_hollywood_0

    Specific residential proxy peer by IP

    • You can request a specific residential IP (without using gIP) if it is online and available from your zone by adding the -ip option to the proxy username.
      This is useful if you already have the IP you want to use from a previous session and it's critical to use the exact same IP. For most use-cases we recommend using gIPs to have better availability in the same go-location or session flag to keep an IP you get during a single session of use.

    IP specific DC Proxy Peer

    • Example for DC IP 111.222.333.444:lum-customer-{your_customer_id}-zone-{your_zone}-ip-111.222.333.444

    Country-specific DC Proxy Peer

    • Example for United States:lum-customer-{your_customer_id}-zone-{your_zone}-country-us
      DC 'Global shared' zones currently support the following countries: AM, AR, AT, AU, AZ, BE, BO, BR, BY, CA, CH, CL, CN, CO, CZ, DE, DK, DO, EC, EE, ES, FI, FR, GB, GE, HK, ID, IE, IL, IN, IT, JM, JP, KG, KH, KR, KZ, LA, LK, LT, LU, LV, MD, MX, MY, NL, NO, NZ, PE, PH, RU, SE, SG, TH, TJ, TM, TR, TW, UA, US, UZ, VN

    Mobile proxy peer IP

    • Use mobile ip:lum-customer-{your_customer_id}-zone-{your_zone}-mobile-true orlum-customer-{your_customer_id}-zone-{your_zone}-mobile
    • Don't use mobile ip:lum-customer-{your_customer_id}-zone-{your_zone}-mobile-false

    OS proxy peer

    You can use the following Operating Systems

    • Windows: lum-customer-{your_customer_id}-zone-{your_zone}-os-windows
    • Mac: lum-customer-{your_customer_id}-zone-{your_zone}-os-osx
    • Android: lum-customer-{your_customer_id}-zone-{your_zone}-os-android

    Using luminati in standard windows 10 settings

    • Get your proxy addresszproxy.lum-superproxy.io:22225 for direct access for LPM
    • Open start menu (press WIN)
    • Type 'Internet Options'
    • Choose 'Connections' tab
    • Open 'LAN Settings'
    • Un-select 'Automatically detect settings'
    • Select 'Use proxy server for your LAN'
    • Select 'Bypass proxy server for local addresses'
    • Type port and address (zproxy.lum-superproxy.io or127.0.0.1) in appropriate fields
    • Click OK
    • Some applications will interfere with setting up the proxy settings - if that happens, look for a proxy/vpn related application and deactivate them.
    • If you are using Luminati directly (without proxy manager), you should also configure proxy credentials:
    • Open start menu (press WIN)
    • Type 'Manage Windows Credentials'
    • Click 'add generic credential'
    • Type address without port or protocol (zproxy.lum-superproxy.io)
    • Construct user-name as explained earlier and type it in. Also type in the password
    • Click OK
    • Not all applications will honor the credentials, some applications (like Chrome) will ask for credentials themselves

    Using luminati in Android settings

    • Open your device Settings app
    • Tap 'Wi-Fi'
    • Touch and hold the Wi-Fi network name
    • Tap 'Modify' network
    • Tap the down arrow next to 'Advanced options'
    • Tap the down arrow next to 'Proxy'
    • Select 'Manual' and enter proxy settings:
      • Proxy host name: zproxy.lum-superproxy.io
      • Proxy port: 22225
    • Check the 'Authenticate Server' option and enter username and password as can be found at http://luminati.io/cp/zones, click on the zone name, then click on 'Settings' tab. If this option is not available, your browser will prompt you to input these values
    • Tap 'Save'

    Using luminati in iPhone settings

    • Open your device Settings app and go to Wi-Fi
    • Tap the name of the Wi-Fi network you are connected to
    • Scroll to the bottom and you will find a section for 'HTTP Proxy'. This is set to 'Off' by default. Set it to 'Manual'
      • In the server slot enter: zproxy.lum-superproxy.io
      • In the port slot enter: 22225
    • Toggle the Authentication to 'On'
    • Enter username and password as can be found at http://luminati.io/cp/zones, click on the zone name, then click on 'Settings' tab.

    Using HTTPS for connection to SP

    let auth = 'USER:PASS'; let https = require('https'); let agent = new https.Agent({keepAlive: true, keepAliveMsecs: 5000, servername: 'zproxy.lum-superproxy.io'}) let conn = https.request({ host: 'zproxy.lum-superproxy.io', port: 22225, method: 'CONNECT', path: 'lumtest.com:443', agent, headers: { 'Proxy-Authorization': 'Basic '+Buffer.from(auth).toString('base64'), } }) .on('connect', (res, socket, head)=>{ if (res.statusCode!=200) console.error('CONNECT failed:\n'+res.headers); res.on('error', e=>console.error('CONNECT error: '+e.message)); socket.on('error', e=>console.error('socket error: '+e.message)); socket.on('timeout', e=>console.error('socket timeout: '+e.message)); https.get('https://lumtest.com/myip.json', { socket, agent: false, }, res=>{ res.on('data', d=>console.log(Buffer.from(d).toString())); }); }) .on('error', console.error) .end();

    Using HTTP CONNECT for whois

    • To use this method of sending raw data through the proxy for WHOIS protocol you must get approved by your account manager
    • let auth = 'USER:PASS'; let http = require('http'); let conn = http.request({ host: 'zproxy.lum-superproxy.io', port: 22225, method: 'CONNECT', path: 'whois.eu:43', headers: { 'Proxy-Authorization': 'Basic '+Buffer.from(auth).toString('base64'), } }) .on('connect', (res, socket, head)=>{ if (res.statusCode!=200) console.error('CONNECT failed:\n'+res.headers); res.on('error', e=>console.error('CONNECT error: '+e.message)); socket.on('error', e=>console.error('socket error: '+e.message)); socket.on('timeout', e=>console.error('socket timeout: '+e.message)); socket.on('data', d=>console.log(Buffer.from(d).toString())); socket.write('test.eu\r\n', console.error); }) .on('error', console.error) .end();


    Your API parameters

    • ZONE - The zone name for which you want to get the info. view my zones
    • CUSTOMER - Your account id which you can get from your control panel
    • PASSWORD - Your zone password. view my zones
    • COUNTRY - The country code you wish to filter the request. (e.g '-country-us' for United states)

    Statistics API

    Get the bandwith stats for a zone

    API endpoint:/api/zone/bw

    Optional parameters:from=2018-07-01T00:00:00&to=2018-07-02T00:00:00
    curl "https://luminati.io/api/zone/bw?customer=CUSTOMER&zone=ZONE&details=1" -u "username:password"
    curl "https://luminati.io/api/zone/bw?details=1" -H "X-Hola-Auth: lum-customer-CUSTOMER-zone-ZONE-key-PASSWORD"
    Sample Response: {"CUSTOMER":{"ZONE":{"back_2m":{"bw_sum":1115287.58,"bw_up":28789,"bw_dn":1086498.58,"http_svc_req":12683,"https_svc_req":4298},"back_1m":{"bw_sum":1115287.58,"bw_up":28789,"bw_dn":1086498.58,"http_svc_req":12683,"https_svc_req":4298},"back_0m":{"bw_sum":1115287.58,"bw_up":28789,"bw_dn":1086498.58,"http_svc_req":12683,"https_svc_req":4298},"back_2d":{"bw_sum":1115287.58,"bw_up":28789,"bw_dn":1086498.58,"http_svc_req":12683,"https_svc_req":4298},"back_1d":{"bw_sum":1115287.58,"bw_up":28789,"bw_dn":1086498.58,"http_svc_req":12683,"https_svc_req":4298},"back_0d":{"bw_sum":1115287.58,"bw_up":28789,"bw_dn":1086498.58,"http_svc_req":12683,"https_svc_req":4298}}}}

    Get the bandwith stats for all your zones

    API endpoint:/api/customer/bw

    Optional parameters:from=2018-07-01T00:00:00&to=2018-07-02T00:00:00
    curl "https://luminati.io/api/customer/bw?customer=CUSTOMER&details=1" -u "username:password"
    Sample Response: {"CUSTOMER":{"ZONE_1":{"back_2m":{"bw_sum":1115287.58,"bw_up":28789,"bw_dn":1086498.58,"http_svc_req":12683,"https_svc_req":4298},"back_1m":{"bw_sum":1115287.58,"bw_up":28789,"bw_dn":1086498.58,"http_svc_req":12683,"https_svc_req":4298},"back_0m":{"bw_sum":1115287.58,"bw_up":28789,"bw_dn":1086498.58,"http_svc_req":12683,"https_svc_req":4298},"back_2d":{"bw_sum":1115287.58,"bw_up":28789,"bw_dn":1086498.58,"http_svc_req":12683,"https_svc_req":4298},"back_1d":{"bw_sum":1115287.58,"bw_up":28789,"bw_dn":1086498.58,"http_svc_req":12683,"https_svc_req":4298},"back_0d":{"bw_sum":1115287.58,"bw_up":28789,"bw_dn":1086498.58,"http_svc_req":12683,"https_svc_req":4298}},"ZONE_2":{"back_2m":{"bw_sum":1115287.58,"bw_up":28789,"bw_dn":1086498.58,"http_svc_req":12683,"https_svc_req":4298},"back_1m":{"bw_sum":1115287.58,"bw_up":28789,"bw_dn":1086498.58,"http_svc_req":12683,"https_svc_req":4298},"back_0m":{"bw_sum":1115287.58,"bw_up":28789,"bw_dn":1086498.58,"http_svc_req":12683,"https_svc_req":4298},"back_2d":{"bw_sum":1115287.58,"bw_up":28789,"bw_dn":1086498.58,"http_svc_req":12683,"https_svc_req":4298},"back_1d":{"bw_sum":1115287.58,"bw_up":28789,"bw_dn":1086498.58,"http_svc_req":12683,"https_svc_req":4298},"back_0d":{"bw_sum":1115287.58,"bw_up":28789,"bw_dn":1086498.58,"http_svc_req":12683,"https_svc_req":4298}}}}

    Get the total cost and bandwith stats for a zone

    API endpoint:/api/zone/cost

    Optional parameters:from=2018-07-01T00:00:00&to=2018-07-02T00:00:00
    curl "https://luminati.io/api/zone/cost?customer=CUSTOMER&zone=ZONE" -u "username:password"
    Sample Response: {"CUSTOMER":{"ZONE_1":{"back_2m":{"bw":123456,"cost":100},"back_1m":{"bw":123456,"cost":100},"back_0m":{"bw":123456,"cost":100},"back_2d":{"bw":123456,"cost":100},"back_1d":{"bw":123456,"cost":100},"back_0d":{"bw":123456,"cost":100}}}}

    Request Logs API

    Get request logs for customer

    API endpoint:/api/req_logs

    Optional parameters:page=1&page_size=100
    curl "https://luminati.io/api/req_logs?customer=CUSTOMER" -u "username:password"
    Sample Response: ["request obj 1","request obj2"]

    Get request logs for customer

    API endpoint:/api/req_logs/stats

    Optional parameters:status_breakdown=1
    curl "https://luminati.io/api/req_logs/stats?customer=CUSTOMER" -u "username:password"
    Sample Response: {"total":100,"success_statuses":99,"status_breakdown":[]}

    Manage your proxies API

    Get a list of whitelisted IPs for a specific zone

    API endpoint:/api/zone/whitelist

    curl "https://luminati.io/api/zone/whitelist?customer=CUSTOMER&zones=ZONE" -u "username:password"
    curl "https://luminati.io/api/zone/whitelist" -H "X-Hola-Auth: lum-customer-CUSTOMER-zone-ZONE-key-PASSWORD"
    Sample Response: {"ZONE":["any",""]}

    Get a list of whitelisted IPs for all your zone

    API endpoint:/api/zone/whitelist

    curl "https://luminati.io/api/zone/whitelist?customer=CUSTOMER&zones=*" -u "username:password"
    Sample Response: {"ZONE1":["any",""],"ZONE2":["any"]}

    Get recent IPs attempting to use a zone

    API endpoint:/api/zone/recent_ips

    curl "https://luminati.io/api/zone/recent_ips?customer=CUSTOMER&zones=ZONE" -u "username:password"
    curl "https://luminati.io/api/zone/recent_ips" -H "X-Hola-Auth: lum-customer-CUSTOMER-zone-ZONE-key-PASSWORD"
    Sample Response: {"ZONE":["",""]}

    Get recent IPs attempting to use any of your zones

    API endpoint:/api/zone/recent_ips

    curl "https://luminati.io/api/zone/recent_ips?customer=CUSTOMER&zones=*" -u "username:password"
    Sample Response: {"ZONE_1":["",""],"ZONE_2":["",""]}

    Get the available datacenter (static) IPs for a country

    API endpoint:/api/zone/route_ips

    curl "https://luminati.io/api/zone/route_ips?customer=CUSTOMER&zone=ZONE&country=COUNTRY" -u "username:password"
    curl "https://luminati.io/api/zone/route_ips" -H "X-Hola-Auth: lum-customer-CUSTOMER-zone-ZONE-key-PASSWORD-country-COUNTRY"
    Sample Response:

    Get all the available datacenter (static) IPs

    API endpoint:/api/zone/route_ips

    curl "https://luminati.io/api/zone/route_ips?customer=CUSTOMER&zone=ZONE" -u "username:password"
    curl "https://luminati.io/api/zone/route_ips" -H "X-Hola-Auth: lum-customer-CUSTOMER-zone-ZONE-key-PASSWORD"
    NOTE: add to the request '?expand=1' if you wish to expand the IPs in the response.
    Sample Response:

    Get all available gIPs per zone

    API endpoint:/api/zone/route_vips

    curl "https://luminati.io/api/zone/route_vips?customer=CUSTOMER&zone=ZONE" -u "username:password"
    curl "https://luminati.io/api/zone/route_vips" -H "X-Hola-Auth: lum-customer-CUSTOMER-zone-ZONE-key-PASSWORD"
    Sample Response: ["us_7922_fl_hollywood_0","ma_36903_01_tetouan_5","br_52894_mg_montesclaros_99","tr_9121_07_antalya_10"]

    Account management API

    Get total balance through API

    API endpoint:/api/balance

    curl "https://luminati.io/api/balance?customer=CUSTOMER" -u "username:password"
    Sample Response: {"balance":456,"pending_costs":123}
    The value under balance shows the amount of money in your account.
    The value under pending_costs shows the amount of money you will be billed for, as of this moment, in the next billing cycle

    Add a zone

    API endpoint:/api/zone

    • zone: object containingname (required), ips (whitelist) andpassword (string or array for multiple passwords).
    • plan: object containing plan options (their respective valid options can be seen in the example).
    curl -X POST "https://luminati.io/api/zone" -H "Content-Type: application/json" -d '{"zone":{"name":"zone291231237"},"customer":"test_user","plan":{"type":"static|resident","ips_type":"shared|dedicated|selective","ip_alloc_preset":"shared_block","bandwidth":"payperusage|unlimited","mobile":false,"city":false,"asn":false,"vip":false,"vips_type":"shared|vip|domain|domain_p","vips":0,"domain_whitelist":"test.com fb.com","not_country":null,"vip_country":"any","exclusive_sec":0,"exclusive_type":"days","exclusive_num":0,"ips":0}}' -u "username:password"
    Request response will show the sanitized zone.
    Sample Response: {"plan":{"start":"2019-07-15T18:08:59.269Z","type":"static","ips_type":"shared","ip_alloc_preset":"shared_block","bandwidth":"payperusage"},"zone":{"ips":"any","password":["PASSWORD"],"plans":[{"start":"2019-07-15T18:08:59.269Z","type":"static","ips_type":"shared","ip_alloc_preset":"shared_block","bandwidth":"payperusage"}]}}

    Get zone passwords

    API endpoint:/api/zone/passwords

    curl "https://luminati.io/api/zone/passwords?customer=CUSTOMER&zone=ZONE" -u "username:password"
    curl "https://luminati.io/api/zone/passwords" -H "X-Hola-Auth: lum-customer-CUSTOMER-zone-ZONE-key-PASSWORD"
    Sample Response: {"passwords":["psw1","psw2"]}

    Get zone permissions

    API endpoint:/api/zone/permissions

    curl "https://luminati.io/api/zone/permissions?customer=CUSTOMER&zone=ZONE" -u "username:password"
    curl "https://luminati.io/api/zone/permissions" -H "X-Hola-Auth: lum-customer-CUSTOMER-zone-ZONE-key-PASSWORD"
    Sample Response: {"perms":["city","google"]}

    Get zone status

    API endpoint:/api/zone/status

    curl "https://luminati.io/api/zone/status?customer=CUSTOMER&zone=ZONE" -u "username:password"
    curl "https://luminati.io/api/zone/status" -H "X-Hola-Auth: lum-customer-CUSTOMER-zone-ZONE-key-PASSWORD"
    Sample Response: {"status":"active"}

    Get zone datacenter IPs

    API endpoint:/api/zone/ips

    curl "https://luminati.io/api/zone/ips?customer=CUSTOMER&zone=ZONE" -u "username:password"
    curl "https://luminati.io/api/zone/ips" -H "X-Hola-Auth: lum-customer-CUSTOMER-zone-ZONE-key-PASSWORD"
    Request response will output all allocated IPs in the zone including their respective country per database.
    Sample Response: {"ips":[{"ip":"","maxmind":"au","ext":{"dbip":"au","ip2location":"au","google":"us"}},{"ip":"","maxmind":"au","ext":{"dbip":"au","ip2location":"au","google":"us"}}]}

    Remove zone

    API endpoint:/api/zone

    curl -X DELETE "https://luminati.io/api/zone" -H "Content-Type: application/json" -d '{"customer":"CUSTOMER","zone":"ZONE"}' -u "username:password"

    Add IPs

    API endpoint:/api/zone/ips

    Optional parameters:
    • country: new IPs' country (e.g. us)
    • country_city: new IPs' city (e.g. us-chicago)
    curl -X POST "https://luminati.io/api/zone/ips" -H "Content-Type: application/json" -d '{"customer":"CUSTOMER","zone":"ZONE","count":2}' -u "username:password"
    Request response will output all allocated IPs in the zone including the added IPs.
    Sample Response: {"ips":["",""],"new_ips":[""]}

    Remove datacenter IPs

    API endpoint:/api/zone/ips

    curl -X DELETE "https://luminati.io/api/zone/ips" -H "Content-Type: application/json" -d '{"customer":"CUSTOMER","zone":"ZONE","ips":["ip1","ip2"]}' -u "username:password"
    Request response will output the IPs removed.
    Sample Response: {"ips":["ip1","ip2"]}

    Remove residential gIPs

    API endpoint:/api/zone/vips

    curl -X DELETE "https://luminati.io/api/zone/vips" -H "Content-Type: application/json" -d '{"customer":"CUSTOMER","zone":"ZONE","vips":["vip1","vip2"]}' -u "username:password"
    Request response will output the gIPs removed.
    Sample Response: {"vips":["us_7922_fl_hollywood_0","ma_36903_01_tetouan_0"]}

    Refresh residential gIPs

    API endpoint:/api/zone/ips/refresh

    curl -X POST "https://luminati.io/api/zone/ips/refresh" -H "Content-Type: application/json" -d '{"customer":"CUSTOMER","zone":"ZONE","vips":["vip1","vip2"]}' -u "username:password"
    Request response will output all allocated gIPs in the zone including the refreshed gIPs.
    Sample Response: {"vips":[{"vip":"tr_9121_07_antalya_10","country":"tr"},{"vip":"tr_9121_07_antalya_17","country":"tr"}]}
    Each gIP refreshed costs $0.02/refresh/IP

    Refresh datacenter IPs

    API endpoint:/api/zone/ips/refresh

    Optional parameters:
    • country: new IPs' country (e.g. us)
    • country_city: new IPs' city (e.g. us-chicago)
    curl -X POST "https://luminati.io/api/zone/ips/refresh" -H "Content-Type: application/json" -d '{"customer":"CUSTOMER","zone":"ZONE","ips":["ip1","ip2"]}' -u "username:password"
    Request response will output all allocated IPs in the zone including the refreshed IPs.
    Sample Response: {"ips":["",""],"new_ips":[""]}
    If ALL IPs refresh needed, then ips parameter should be omitted. See pricing for refreshing datacenter IPs

    Get current service status

    API endpoint:/api/network_status/NETWORK_TYPE

    curl "https://luminati.io/api/network_status/NETWORK_TYPE" -u "username:password"
    NETWORK_TYPE can be one of:
    • All: all
    • Residential: res
    • Datacenter: dc
    • Mobile: mobile
    Sample Response: {"status":true}

    Turn on/off zone

    API endpoint:/api/zone/change_disable

    curl -X POST "https://luminati.io/api/zone/change_disable" -H "Content-Type: application/json" -d '{"customer":"CUSTOMER","zone":"ZONE","disable":1}' -u "username:password"

    Change account status

    API endpoint:/api/status

    curl -X PUT "https://luminati.io/api/status" -H "Content-Type: application/json" -d '{"customer":"CUSTOMER","status":"STATUS"}' -u "username:password"
    STATUS can besuspend_manual or active.

    Get amount of available IPs

    API endpoint:/api/count_available_ips

    curl "https://luminati.io/api/count_available_ips?customer=customer_id&zone=zone_name[&plan={...}]" -u "username:password"
    • customer=customer_id[string] - your account id which you can get from your control panel (required)
    • zone=zone_name[string] - name of the zone (required)
    • plan={...}[JSON object] - abstract plan parameters
      • ips_type=shared|selective[string] - type of the IPs
      • country=country_name[string] - IPs location country
      • country_city=country_name-city_name[string] - defines the city location of the IPs
      • city=true[boolean] - requred with [country_city] parameter
      • exclusive_sec=1234[string] - cooling period in seconds
      • domain_whitelist=d1.com d2.com d3...[string] - space separated list of domains. Note that for [curl] the spaces should be urlencoded (d1.com%20d2.com)
      • geo_db={...}[JSON object] - turns on/off using of the IP`s location databases
        • maxmind=true[boolean] - use this IP location DB
        • dbip=true[boolean] - use this IP location DB
        • google=true[boolean] - use this IP location DB
        • ip2location=true[boolean] - use this IP location DB
    Sample Response: {count: 1234}
    Available IPs for current zone plan:
    curl "https://luminati.io/api/count_available_ips?customer=CUSTOMER&zone=ZONE" -u "username:password"
    Abstract plan, exclusive IPs:
    curl "https://luminati.io/api/count_available_ips?customer=CUSTOMER&zone=ZONE&plan=\{\"ips_type\":\"selective\"\}" -u "username:password"
    Abstract plan, shared IPs located in Unated States:
    curl "https://luminati.io/api/count_available_ips?customer=CUSTOMER&zone=ZONE&plan=\{\"country\":\"us\",\"ips_type\":\"shared\"\}" -u "username:password"
    abstract plan, exclusive ips located in unated states:
    curl "https://luminati.io/api/count_available_ips?customer=CUSTOMER&zone=ZONE&plan=\{\"country\":\"us\",\"ips_type\":\"selective\"\}" -u "username:password"
    abstract plan, exclusive ips located in unated states, cooling period: 10 days:
    curl "https://luminati.io/api/count_available_ips?customer=CUSTOMER&zone=ZONE&plan=\{\"country\":\"us\",\"ips_type\":\"selective\",\"exclusive_sec\":864000\}" -u "username:password"
    Abstract plan, shared IPs located in Unated States, Denver:
    curl "https://luminati.io/api/count_available_ips?customer=CUSTOMER&zone=ZONE&plan=\{\"ips_type\":\"shared\",\"country_city\":\"us-denver\",\"city\":true\}" -u "username:password"
    Abstract plan, shared IPs located in US, exclusive for domains: amazon.com, fb.com:
    curl "https://luminati.io/api/count_available_ips?customer=CUSTOMER&zone=ZONE&plan=\{\"ips_type\":\"selective\",\"country\":\"us\",\"domain_whitelist\":\"amazon.com fb.com\"\}" -u "username:password"
    Abstract plan, shared IPs located in US, geo IP databases: should persist in both: maxmind and dbip:
    curl "https://luminati.io/api/count_available_ips?customer=CUSTOMER&zone=ZONE&plan=\{\"ips_type\":\"shared\"\},\"country\":\"us\",\"geo_db\":\{\"maxmind\":true,\"dbip\":true\}" -u "username:password"

    Using different coding languages

    All API examples for account management are presented using Shell but can be used in a variety of coding languages.
    To find all available coding languages check out the Account management section of our API and examples page

    Luminati SDK

    View FAQ for Luminati SDK