{"id":10132,"date":"2024-06-10T12:47:12","date_gmt":"2024-06-10T12:47:12","guid":{"rendered":"https:\/\/www.purewl.com\/developer\/docs\/api-reference\/api-reference\/vpn-account-management-vam\/speedtest-get-fastest-server\/"},"modified":"2026-02-23T09:27:41","modified_gmt":"2026-02-23T09:27:41","slug":"speedtest-get-fastest-server","status":"publish","type":"docs","link":"https:\/\/www.purewl.com\/developer\/guides\/api\/api-reference\/speedtest-get-fastest-server\/","title":{"rendered":"Get Optimized Server"},"content":{"rendered":"\n<p>Optimizing VPN server selection is crucial for ensuring the best possible performance and user experience. By leveraging APIs, users can dynamically find and connect to the most suitable VPN servers based on various factors such as latency, load, and geographical location. This article provides a technical overview of how to retrieve an optimized VPN server via API for a better VPN connection.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Overview<\/h2>\n\n\n\n<p>Retrieving an optimized VPN server via API involves sending a request to an endpoint designed to assess and return the best available server based on current conditions. This operation helps users and administrators select a server that provides optimal performance, minimizing latency and improving connection stability.<\/p>\n\n\n\n<ul>\n<li><strong>URL:&nbsp;<\/strong>&lt;base url&gt;\/speedtest\/v4\/serversWithoutPsk<\/li>\n\n\n\n<li><strong>Request Method:&nbsp;<\/strong>POST<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Payload<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th class=\"has-text-align-left\" data-align=\"left\"><strong>Key<\/strong><\/th><th class=\"has-text-align-left\" data-align=\"left\"><strong>Type<\/strong><\/th><th class=\"has-text-align-left\" data-align=\"left\"><strong>Pass in<\/strong><\/th><th class=\"has-text-align-left\" data-align=\"left\"><strong>Description<\/strong><\/th><\/tr><\/thead><tbody><tr><td class=\"has-text-align-left\" data-align=\"left\"><code>X-AccessToken<\/code>*<\/td><td class=\"has-text-align-left\" data-align=\"left\">String<\/td><td class=\"has-text-align-left\" data-align=\"left\">Header  <\/td><td class=\"has-text-align-left\" data-align=\"left\"><kbd>accessToken<\/kbd> retrieved from <a href=\"https:\/\/www.purewl.com\/developer\/guides\/api\/api-reference\/api-access-authentication\/#get-access-token\" data-type=\"link\" data-id=\"https:\/\/www.purewl.com\/developer\/guides\/api\/api-reference\/inventory-management\/countries\/\" target=\"_blank\" rel=\"noreferrer noopener\">Get Access Token<\/a> endpoint<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><code>sCountrySlug<\/code>*<\/td><td class=\"has-text-align-left\" data-align=\"left\">String<\/td><td class=\"has-text-align-left\" data-align=\"left\">Body<\/td><td class=\"has-text-align-left\" data-align=\"left\"><kbd>countries.iso_code<\/kbd> retrieved from <a href=\"https:\/\/www.purewl.com\/developer\/guides\/api\/api-reference\/inventory-management\/countries\/\" data-type=\"link\" data-id=\"https:\/\/www.purewl.com\/developer\/guides\/api\/api-reference\/inventory-management\/countries\/\" target=\"_blank\" rel=\"noreferrer noopener\">Get Subscribed Countries<\/a> endpoint<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><code>iCityId<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Integer<\/td><td class=\"has-text-align-left\" data-align=\"left\">Body<\/td><td class=\"has-text-align-left\" data-align=\"left\"><kbd>cities.id<\/kbd> retrieved from <a href=\"https:\/\/www.purewl.com\/developer\/guides\/api\/api-reference\/inventory-management\/cities\/\" data-type=\"link\" data-id=\"https:\/\/www.purewl.com\/developer\/guides\/api\/api-reference\/inventory-management\/countries\/\" target=\"_blank\" rel=\"noreferrer noopener\">Get Subscribed Cities<\/a> endpoint<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><code>iResellerId<\/code>*<\/td><td class=\"has-text-align-left\" data-align=\"left\">Integer<\/td><td class=\"has-text-align-left\" data-align=\"left\">Body<\/td><td class=\"has-text-align-left\" data-align=\"left\"><kbd>resellerId<\/kbd> retrieved from <a href=\"https:\/\/www.purewl.com\/developer\/guides\/api\/api-reference\/api-access-authentication\/#get-access-token\" data-type=\"link\" data-id=\"https:\/\/www.purewl.com\/developer\/guides\/api\/api-reference\/inventory-management\/countries\/\" target=\"_blank\" rel=\"noreferrer noopener\">Get Access Token<\/a> endpoint<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><code>sProtocolSlug1<\/code>*<\/td><td class=\"has-text-align-left\" data-align=\"left\">String<\/td><td class=\"has-text-align-left\" data-align=\"left\">Body<\/td><td class=\"has-text-align-left\" data-align=\"left\"><kbd>protocols.protocol<\/kbd> retrieved from <a href=\"https:\/\/www.purewl.com\/developer\/guides\/api\/api-reference\/inventory-management\/protocols\/\" data-type=\"link\" data-id=\"https:\/\/www.purewl.com\/developer\/guides\/api\/api-reference\/inventory-management\/countries\/\" target=\"_blank\" rel=\"noreferrer noopener\">Get Subscribed Protocols<\/a> endpoint<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><code>sProtocolSlug2<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">String<\/td><td class=\"has-text-align-left\" data-align=\"left\">Body<\/td><td class=\"has-text-align-left\" data-align=\"left\"><kbd>protocols.protocol<\/kbd> retrieved from <a href=\"https:\/\/www.purewl.com\/developer\/guides\/api\/api-reference\/inventory-management\/protocols\/\" data-type=\"link\" data-id=\"https:\/\/www.purewl.com\/developer\/guides\/api\/api-reference\/inventory-management\/countries\/\" target=\"_blank\" rel=\"noreferrer noopener\">Get Subscribed Protocols<\/a> endpoint<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><code>sProtocolSlug3<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">String<\/td><td class=\"has-text-align-left\" data-align=\"left\">Body<\/td><td class=\"has-text-align-left\" data-align=\"left\"><kbd>protocols.protocol<\/kbd> retrieved from <a href=\"https:\/\/www.purewl.com\/developer\/guides\/api\/api-reference\/inventory-management\/protocols\/\" data-type=\"link\" data-id=\"https:\/\/www.purewl.com\/developer\/guides\/api\/api-reference\/inventory-management\/countries\/\" target=\"_blank\" rel=\"noreferrer noopener\">Get Subscribed Protocols<\/a> endpoint<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><code>sUsername<\/code>*<\/td><td class=\"has-text-align-left\" data-align=\"left\">String<\/td><td class=\"has-text-align-left\" data-align=\"left\">Body<\/td><td class=\"has-text-align-left\" data-align=\"left\">VPN Username of the user requesting connection<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><code>sDeviceType<\/code>*<\/td><td class=\"has-text-align-left\" data-align=\"left\">String<\/td><td class=\"has-text-align-left\" data-align=\"left\">String<\/td><td class=\"has-text-align-left\" data-align=\"left\">Type of device<br>Possible values:&nbsp;<strong>android<\/strong>&nbsp;|&nbsp;<strong>ios<\/strong>&nbsp;|&nbsp;<strong>mac<\/strong>&nbsp;|&nbsp;<strong>windows<\/strong><\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><code>iChannelId<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">String<\/td><td class=\"has-text-align-left\" data-align=\"left\">String<\/td><td class=\"has-text-align-left\" data-align=\"left\"><kbd>channels.id<\/kbd> retrieved from <a href=\"https:\/\/www.purewl.com\/developer\/guides\/api\/api-reference\/inventory-management\/cities\/\" data-type=\"link\" data-id=\"https:\/\/www.purewl.com\/developer\/guides\/api\/api-reference\/inventory-management\/countries\/\" target=\"_blank\" rel=\"noreferrer noopener\">Get Subscribed Channels<\/a> endpoint<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><code>iMultiPort<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Integer<\/td><td class=\"has-text-align-left\" data-align=\"left\">Body<\/td><td class=\"has-text-align-left\" data-align=\"left\">0 for getting multiport servers<br>(0\/1)<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><code>sDataCenters<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">json<\/td><td class=\"has-text-align-left\" data-align=\"left\">Body<\/td><td class=\"has-text-align-left\" data-align=\"left\">Json array of datacenters [123,122]<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><code>iNatting<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Integer<\/td><td class=\"has-text-align-left\" data-align=\"left\">Body<\/td><td class=\"has-text-align-left\" data-align=\"left\">1 for returning non-natted servers, 2 for natted<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><code>aServerFilter<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Json<\/td><td class=\"has-text-align-left\" data-align=\"left\">Body<\/td><td class=\"has-text-align-left\" data-align=\"left\">Exclude servers from server selection logic <br>Sample JSON: [ { &#8216;nasidentifier&#8217; : &#8216;lux-01-01-01&#8242;,&#8217;type&#8217; : &#8216;include | exclude&#8217;} ]<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><code>aTagsFilter<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Json<\/td><td class=\"has-text-align-left\" data-align=\"left\">Body<\/td><td class=\"has-text-align-left\" data-align=\"left\">Exclude tags from server selection logic <br>Sample [\u201cTAG_RAM_BASED\u201d, TAG_OVPN_OBF]<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><code>sClientPublicKey<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">String<\/td><td class=\"has-text-align-left\" data-align=\"left\">Body<\/td><td class=\"has-text-align-left\" data-align=\"left\">Clients device public key<br><strong>*Mandatory if WireGuard protocol is requested<\/strong><\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\">(*) Required Parameter<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Response<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th class=\"has-text-align-left\" data-align=\"left\"><strong>Key<\/strong><\/th><th class=\"has-text-align-left\" data-align=\"left\"><strong>Type<\/strong><\/th><th class=\"has-text-align-left\" data-align=\"left\"><strong>Desc<\/strong>ription<\/th><\/tr><\/thead><tbody><tr><td class=\"has-text-align-left\" data-align=\"left\"><code>header<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Object<\/td><td class=\"has-text-align-left\" data-align=\"left\">Contains Object describing error code and error messages<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><code>body<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Array<\/td><td class=\"has-text-align-left\" data-align=\"left\">Object containing servers<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><code>servers<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Array<\/td><td class=\"has-text-align-left\" data-align=\"left\">array of servers containing keys mentioned below<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><code>host<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">String<\/td><td class=\"has-text-align-left\" data-align=\"left\">Host name of the server to be dialed<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><code>hub_key<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">String<\/td><td class=\"has-text-align-left\" data-align=\"left\">Hub key the password required for connection in case of stealthvpn<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><code>acknowledgement_server<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">String<\/td><td class=\"has-text-align-left\" data-align=\"left\">Host of the acknowledgement server<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><code>port_number<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">String<\/td><td class=\"has-text-align-left\" data-align=\"left\">Port number to be pinged for checking servers availability<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><code>protocol_no<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Integer<\/td><td class=\"has-text-align-left\" data-align=\"left\">Protocol number Requested<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><code>destination_country<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Integer<\/td><td class=\"has-text-align-left\" data-align=\"left\">Id of the destination country<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><code>server_type<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">String<\/td><td class=\"has-text-align-left\" data-align=\"left\">Type of server (windows\/linux)<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><code>speedtest_method<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">String<\/td><td class=\"has-text-align-left\" data-align=\"left\">Calculation method against which the server is returned. Dc is for Datacenter, LL is for Latitude\/Longitude, FO is for failover and AFO is for advance feature failovers .<br>(DC\/LL\/FO\/AFO)<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><code>filter_success<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Integer<\/td><td class=\"has-text-align-left\" data-align=\"left\">0 or 1<br>Indicated either the provided json of server filter applied to result or not<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><code>ram_based<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Integer<\/td><td class=\"has-text-align-left\" data-align=\"left\">0 or 1<br>Indicated that return server is ram based or not<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><code>ovpn_obf<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Integer<\/td><td class=\"has-text-align-left\" data-align=\"left\">0 or 1<br>Indicates that return server supports ovpn obfuscation<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><code>ip_translation<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Integer<\/td><td class=\"has-text-align-left\" data-align=\"left\">0 or 1<br>Integer 0 or 1 Indicates that return server is natted or non-natted 0=non-natted,1=natted<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><code>nasidentifer<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">String<\/td><td class=\"has-text-align-left\" data-align=\"left\">Server\u2019s Name<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><code>iperf_client_ip<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">String<\/td><td class=\"has-text-align-left\" data-align=\"left\">Iperf client ip<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><code>iperf_port_range<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">String<\/td><td class=\"has-text-align-left\" data-align=\"left\">Iperf port range<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><code>iperf_client_status<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">String<\/td><td class=\"has-text-align-left\" data-align=\"left\">Iperf client status<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><code>configuration_version<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">String<\/td><td class=\"has-text-align-left\" data-align=\"left\">OVPN configuration version<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><code>configuration<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">String<\/td><td class=\"has-text-align-left\" data-align=\"left\">OVPN configuration<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><code>is_experiment_server<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Integer<\/td><td class=\"has-text-align-left\" data-align=\"left\">0 or 1<br>Indicates that either the returned server belongs to experiment cohort<\/td><\/tr><tr><td class=\"has-text-align-left\" data-align=\"left\"><code>wireguard_configuration<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">String<\/td><td class=\"has-text-align-left\" data-align=\"left\">Configuration required for wireguard connection<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Possible API error codes<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th><strong>Code<\/strong><\/th><th class=\"has-text-align-left\" data-align=\"left\"><strong>Message<\/strong><\/th><th class=\"has-text-align-left\" data-align=\"left\"><strong>Description<\/strong><\/th><\/tr><\/thead><tbody><tr><td><code>1001<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Invalid Device Type Provided !<\/td><td class=\"has-text-align-left\" data-align=\"left\">Provided device type is invalid.<\/td><\/tr><tr><td><code>1002<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Reseller id provided is either Invalid or Expired !<\/td><td class=\"has-text-align-left\" data-align=\"left\">Reseller has expired or is invalid .<\/td><\/tr><tr><td><code>1003<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Country Not Allowed !<\/td><td class=\"has-text-align-left\" data-align=\"left\">Reseller not allowed connection to the requested country<\/td><\/tr><tr><td><code>1004<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">City Not Allowed !<\/td><td class=\"has-text-align-left\" data-align=\"left\">Reseller not allowed connection to the requested city<\/td><\/tr><tr><td><code>40001<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Protocol is either not available or not allowed, please try again later or switch to other protocol!<\/td><td class=\"has-text-align-left\" data-align=\"left\">Reseller not allowed connection to the requested protocol<\/td><\/tr><tr><td><code>40002<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Advance Features Not Allowed !<\/td><td class=\"has-text-align-left\" data-align=\"left\">Reseller not allowed connection with requested advance features<\/td><\/tr><tr><td><code>1007<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Failed to Validate Connection Request !<\/td><td class=\"has-text-align-left\" data-align=\"left\">Some error occurred while validating reseller&#8217;s inventory.<\/td><\/tr><tr><td><code>1008<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Sorry! Your Multi Login Limit has Exceeded<\/td><td class=\"has-text-align-left\" data-align=\"left\">The user has exceeded the allowed number of concurrent sessions for the day. Disconnect an active session and try again.<\/td><\/tr><tr><td><code>1009<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Session Limit for User Exceeded !<\/td><td class=\"has-text-align-left\" data-align=\"left\">Allowed sessions per day exceeded by user.<br>Renews 24 hrs.<\/td><\/tr><tr><td><code>1010<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Unable to generate Psk!<\/td><td class=\"has-text-align-left\" data-align=\"left\">Some error occurred while generating psk.<\/td><\/tr><tr><td><code>1011<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Something went wrong, inserting data!<\/td><td class=\"has-text-align-left\" data-align=\"left\">Some error occurred while generating psk.<\/td><\/tr><tr><td><code>1012<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Invalid Reseller Id Provided !<\/td><td class=\"has-text-align-left\" data-align=\"left\">Invalid Reseller Id Provided<\/td><\/tr><tr><td><code>1013<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Invalid Country Id Provided !<\/td><td class=\"has-text-align-left\" data-align=\"left\">Invalid Country Id Provided<\/td><\/tr><tr><td><code>1014<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Invalid Protocol No Provided !<\/td><td class=\"has-text-align-left\" data-align=\"left\">Invalid Protocol No Provided<\/td><\/tr><tr><td><code>1015<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Invalid Ip Address Provided !<\/td><td class=\"has-text-align-left\" data-align=\"left\">Invalid clients ip address provided<\/td><\/tr><tr><td><code>1016<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Invalid Username Provided !<\/td><td class=\"has-text-align-left\" data-align=\"left\">Invalid Username Provided<\/td><\/tr><tr><td><code>1017<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Invalid Channel Id Provided !<\/td><td class=\"has-text-align-left\" data-align=\"left\">Invalid Channel Id Provided<\/td><\/tr><tr><td><code>1032<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">All NAT Servers are busy, please try again later or switch to other network type !<\/td><td class=\"has-text-align-left\" data-align=\"left\">All NAT Servers are busy, please try again later or switch to other network type<\/td><\/tr><tr><td><code>1031<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">No Servers Found !<\/td><td class=\"has-text-align-left\" data-align=\"left\">No Servers Found with provided params.<\/td><\/tr><tr><td><code>1050<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Invalid Params !<\/td><td class=\"has-text-align-left\" data-align=\"left\">One of the Required Params are not provided.<\/td><\/tr><tr><td><code>1051<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Username Not found !<\/td><td class=\"has-text-align-left\" data-align=\"left\">The provided username does not exists<\/td><\/tr><tr><td><code>5002<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">invalid service Keys<\/td><td class=\"has-text-align-left\" data-align=\"left\">Provided advance features slugs are invalid<\/td><\/tr><tr><td><code>5004<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">User not found<\/td><td class=\"has-text-align-left\" data-align=\"left\">Provided username not found in system<\/td><\/tr><tr><td><code>5006<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Country not found in user inventory<\/td><td class=\"has-text-align-left\" data-align=\"left\">Provided country not found in users inventory<\/td><\/tr><tr><td><code>5007<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Protocol not found in user inventory<\/td><td class=\"has-text-align-left\" data-align=\"left\">Provided Protocol not found in users inventory<\/td><\/tr><tr><td><code>5008<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Invalid protocol number provided<\/td><td class=\"has-text-align-left\" data-align=\"left\">Provided protocol number is invalid<\/td><\/tr><tr><td><code>10007<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Your account has expired. Buy premium account and enjoy unlimited freedom<\/td><td class=\"has-text-align-left\" data-align=\"left\">Incase VPN account has been expired<\/td><\/tr><tr><td><code>10008<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Your account has been disabled, please contact our 24&#215;7 live chat support for more details<\/td><td class=\"has-text-align-left\" data-align=\"left\">Provided VPN account is disabled<\/td><\/tr><tr><td><code>1009<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Reseller not found<\/td><td class=\"has-text-align-left\" data-align=\"left\">Provided reseller id not found<\/td><\/tr><tr><td><code>1052<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Channel belongs to country which is not allowed to reseller<\/td><td class=\"has-text-align-left\" data-align=\"left\">Channel belongs to country which is not allowed to reseller<\/td><\/tr><tr><td><code>40007<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Invalid Tag Provided!<\/td><td class=\"has-text-align-left\" data-align=\"left\">Tags provided in aTag params are not valid<\/td><\/tr><tr><td><code>40008<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">All Ram based servers are busy, please try again later or switch to other network type!!<\/td><td class=\"has-text-align-left\" data-align=\"left\">No ram based server is available is requested destination<\/td><\/tr><tr><td><code>1036<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">failed to upload client public key<\/td><td class=\"has-text-align-left\" data-align=\"left\">Wireguard middleware failed to upload client\u2019s public key<\/td><\/tr><tr><td><code>1035<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">No response from WireGuard Server<\/td><td class=\"has-text-align-left\" data-align=\"left\">No wireguard server is available against provided params<\/td><\/tr><tr><td><code>40003<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">password is invalid<\/td><td class=\"has-text-align-left\" data-align=\"left\">Given password is invalid<\/td><\/tr><tr><td><code>40004<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">Unable to connect with WireGuard Server!<\/td><td class=\"has-text-align-left\" data-align=\"left\">Wireguard server failed to respond<\/td><\/tr><tr><td><code>40005<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">sPassword, sClientPublicKey &amp; sSdkVersion is mandatory when WireGuard protocol is requested!<\/td><td class=\"has-text-align-left\" data-align=\"left\">Not all Parameters are provided<\/td><\/tr><tr><td><code>40006<\/code><\/td><td class=\"has-text-align-left\" data-align=\"left\">WireGuard protocol is not allowed on this endpoint!<\/td><td class=\"has-text-align-left\" data-align=\"left\">If someone provide wireguard protocol to old endpoints of speedtest<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Sample Response<\/h3>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism off-numbers lang-json\" data-lang=\"JSON\" data-show-lang=\"1\"><code>{\n  &quot;header&quot;: {\n    &quot;code&quot;: 1,\n    &quot;message&quot;: &quot;Success&quot;\n  },\n  &quot;body&quot;: {\n    &quot;servers&quot;: [{\n      &quot;host&quot;: &quot;xxxxxx.pointtoserver.com&quot;,\n      &quot;hub_key&quot;: &quot;&quot;,\n      &quot;acknowledgement_server&quot;: &quot;xxxxxx.pointtoserver.com&quot;,\n      &quot;port_number&quot;: &quot;30&quot;,\n      &quot;protocol_no&quot;: 8,\n      &quot;country&quot;: &quot;US&quot;,\n      &quot;multiport&quot;: 0,\n      &quot;server_type&quot;: &quot;linux&quot;,\n      &quot;speedtest_method&quot;: &quot;DC&quot;\n      &quot;filter_success&quot;: false\n      &quot;ram_based&quot;: 0\n      &quot;ovpn_obf&quot;: 0\n      &quot;ip_translation&quot;: 1\n      &quot;nasidentifer&quot;: &quot;lux-01-xx-xx&quot;,\n      &quot;iperf_client_ip&quot;: &quot;...........com&quot;,\n      &quot;iperf_port_range&quot;: &quot;5201:5210&quot;,\n      &quot;iperf_client_status&quot;: 0,\n      &quot;configuration_version&quot;: &quot;&quot;,\n      &quot;configuration&quot;: &quot;&quot;, \n      &quot;Wireguard_configuration&quot; : &quot;&quot;,\n      &quot;Is_experiment_server&quot; : &quot;&quot;\n    }]\n  }\n}<\/code><\/pre><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Optimizing VPN server selection is crucial for ensuring the best possible performance and user experience. By leveraging APIs, users can dynamically find and connect to the most suitable VPN servers based on various factors such as latency, load, and geographical location. This article provides a technical overview of how to retrieve an optimized VPN server [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":9987,"menu_order":4,"comment_status":"open","ping_status":"closed","template":"","doc_tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/www.purewl.com\/developer\/wp-json\/wp\/v2\/docs\/10132"}],"collection":[{"href":"https:\/\/www.purewl.com\/developer\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/www.purewl.com\/developer\/wp-json\/wp\/v2\/types\/docs"}],"author":[{"embeddable":true,"href":"https:\/\/www.purewl.com\/developer\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.purewl.com\/developer\/wp-json\/wp\/v2\/comments?post=10132"}],"version-history":[{"count":12,"href":"https:\/\/www.purewl.com\/developer\/wp-json\/wp\/v2\/docs\/10132\/revisions"}],"predecessor-version":[{"id":11145,"href":"https:\/\/www.purewl.com\/developer\/wp-json\/wp\/v2\/docs\/10132\/revisions\/11145"}],"up":[{"embeddable":true,"href":"https:\/\/www.purewl.com\/developer\/wp-json\/wp\/v2\/docs\/9987"}],"wp:attachment":[{"href":"https:\/\/www.purewl.com\/developer\/wp-json\/wp\/v2\/media?parent=10132"}],"wp:term":[{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/www.purewl.com\/developer\/wp-json\/wp\/v2\/doc_tag?post=10132"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}