Reset a sub-user password
curl --request POST \
--url https://core-proxy-service-w34nvoxnwq-uc.a.run.app/proxy_api/v1/planx/users/reset_password \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"userId": "test124",
"newPassword": "NewPass123"
}
'import requests
url = "https://core-proxy-service-w34nvoxnwq-uc.a.run.app/proxy_api/v1/planx/users/reset_password"
payload = {
"userId": "test124",
"newPassword": "NewPass123"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({userId: 'test124', newPassword: 'NewPass123'})
};
fetch('https://core-proxy-service-w34nvoxnwq-uc.a.run.app/proxy_api/v1/planx/users/reset_password', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://core-proxy-service-w34nvoxnwq-uc.a.run.app/proxy_api/v1/planx/users/reset_password",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'userId' => 'test124',
'newPassword' => 'NewPass123'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://core-proxy-service-w34nvoxnwq-uc.a.run.app/proxy_api/v1/planx/users/reset_password"
payload := strings.NewReader("{\n \"userId\": \"test124\",\n \"newPassword\": \"NewPass123\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://core-proxy-service-w34nvoxnwq-uc.a.run.app/proxy_api/v1/planx/users/reset_password")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"userId\": \"test124\",\n \"newPassword\": \"NewPass123\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://core-proxy-service-w34nvoxnwq-uc.a.run.app/proxy_api/v1/planx/users/reset_password")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"userId\": \"test124\",\n \"newPassword\": \"NewPass123\"\n}"
response = http.request(request)
puts response.read_body{
"username": "test124",
"userId": "test124",
"password": "<string>",
"dataLimit": 5,
"dataUsed": 1.2,
"dataRemaining": 3.8,
"status": "active",
"dateCreated": "2023-11-07T05:31:56Z",
"whitelistedIps": [
"203.0.113.10",
"203.0.113.11"
]
}{
"statusCode": 400,
"message": "Not enough reseller data left",
"error": "Bad Request"
}{
"statusCode": 403,
"message": "reseller not found",
"error": "Bad Request"
}{
"statusCode": 400,
"message": "User <username or user_id> does not exist",
"error": "Bad Request"
}Plan X
Reset a sub-user password
Resets a sub-user’s password. Takes two inputs:
- userId: The ID of the user to reset the password for.
- newPassword: The new password for the user. Must be at least 8 characters long and contain only letters and numbers, and must differ from the current password. Returns the updated user’s details, including userId, username, the new password, status, dataLimit, and dataUsed.
POST
/
proxy_api
/
v1
/
planx
/
users
/
reset_password
Reset a sub-user password
curl --request POST \
--url https://core-proxy-service-w34nvoxnwq-uc.a.run.app/proxy_api/v1/planx/users/reset_password \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"userId": "test124",
"newPassword": "NewPass123"
}
'import requests
url = "https://core-proxy-service-w34nvoxnwq-uc.a.run.app/proxy_api/v1/planx/users/reset_password"
payload = {
"userId": "test124",
"newPassword": "NewPass123"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({userId: 'test124', newPassword: 'NewPass123'})
};
fetch('https://core-proxy-service-w34nvoxnwq-uc.a.run.app/proxy_api/v1/planx/users/reset_password', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://core-proxy-service-w34nvoxnwq-uc.a.run.app/proxy_api/v1/planx/users/reset_password",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'userId' => 'test124',
'newPassword' => 'NewPass123'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://core-proxy-service-w34nvoxnwq-uc.a.run.app/proxy_api/v1/planx/users/reset_password"
payload := strings.NewReader("{\n \"userId\": \"test124\",\n \"newPassword\": \"NewPass123\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://core-proxy-service-w34nvoxnwq-uc.a.run.app/proxy_api/v1/planx/users/reset_password")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"userId\": \"test124\",\n \"newPassword\": \"NewPass123\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://core-proxy-service-w34nvoxnwq-uc.a.run.app/proxy_api/v1/planx/users/reset_password")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"userId\": \"test124\",\n \"newPassword\": \"NewPass123\"\n}"
response = http.request(request)
puts response.read_body{
"username": "test124",
"userId": "test124",
"password": "<string>",
"dataLimit": 5,
"dataUsed": 1.2,
"dataRemaining": 3.8,
"status": "active",
"dateCreated": "2023-11-07T05:31:56Z",
"whitelistedIps": [
"203.0.113.10",
"203.0.113.11"
]
}{
"statusCode": 400,
"message": "Not enough reseller data left",
"error": "Bad Request"
}{
"statusCode": 403,
"message": "reseller not found",
"error": "Bad Request"
}{
"statusCode": 400,
"message": "User <username or user_id> does not exist",
"error": "Bad Request"
}Authorizations
[just text field] Please enter token in following format: Bearer
Body
application/json
Response
User password reset
Username of the sub-user
Example:
"test124"
Unique identifier of the sub-user (same value as username)
Example:
"test124"
Current password of the sub-user
Total data allocated to the sub-user, in GB
Example:
5
Amount of data used by the sub-user so far, in GB
Example:
1.2
Amount of data remaining for the sub-user, in GB (dataLimit minus dataUsed)
Example:
3.8
Current status of the sub-user
Available options:
active, inactive Example:
"active"
Date and time the sub-user was created
List of IP addresses whitelisted for the sub-user
Example:
["203.0.113.10", "203.0.113.11"]

