curl --request POST \
--url https://core-proxy-service-w34nvoxnwq-uc.a.run.app/proxy_api/v1/planx/users/update \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"userId": "test124",
"dataGb": 2,
"idempotency_key": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
'import requests
url = "https://core-proxy-service-w34nvoxnwq-uc.a.run.app/proxy_api/v1/planx/users/update"
payload = {
"userId": "test124",
"dataGb": 2,
"idempotency_key": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
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',
dataGb: 2,
idempotency_key: '3c90c3cc-0d44-4b50-8888-8dd25736052a'
})
};
fetch('https://core-proxy-service-w34nvoxnwq-uc.a.run.app/proxy_api/v1/planx/users/update', 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/update",
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',
'dataGb' => 2,
'idempotency_key' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]),
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/update"
payload := strings.NewReader("{\n \"userId\": \"test124\",\n \"dataGb\": 2,\n \"idempotency_key\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\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/update")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"userId\": \"test124\",\n \"dataGb\": 2,\n \"idempotency_key\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://core-proxy-service-w34nvoxnwq-uc.a.run.app/proxy_api/v1/planx/users/update")
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 \"dataGb\": 2,\n \"idempotency_key\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\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": "User <username or user_id> does not exist",
"error": "Bad Request"
}{
"statusCode": 403,
"message": "reseller not found",
"error": "Bad Request"
}Update sub-user
Updates a sub-user’s data allocation. Takes two inputs:
- userId: The ID of the user to update.
- dataGb: The amount, in GB, to adjust the user’s current data allocation by (positive to add, negative to subtract). The resulting allocation cannot be negative. Returns the updated user’s details, including userId, username, password, status, dataLimit, dataUsed, dateCreated, and whitelistedIps.
curl --request POST \
--url https://core-proxy-service-w34nvoxnwq-uc.a.run.app/proxy_api/v1/planx/users/update \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"userId": "test124",
"dataGb": 2,
"idempotency_key": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
'import requests
url = "https://core-proxy-service-w34nvoxnwq-uc.a.run.app/proxy_api/v1/planx/users/update"
payload = {
"userId": "test124",
"dataGb": 2,
"idempotency_key": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
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',
dataGb: 2,
idempotency_key: '3c90c3cc-0d44-4b50-8888-8dd25736052a'
})
};
fetch('https://core-proxy-service-w34nvoxnwq-uc.a.run.app/proxy_api/v1/planx/users/update', 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/update",
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',
'dataGb' => 2,
'idempotency_key' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]),
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/update"
payload := strings.NewReader("{\n \"userId\": \"test124\",\n \"dataGb\": 2,\n \"idempotency_key\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\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/update")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"userId\": \"test124\",\n \"dataGb\": 2,\n \"idempotency_key\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://core-proxy-service-w34nvoxnwq-uc.a.run.app/proxy_api/v1/planx/users/update")
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 \"dataGb\": 2,\n \"idempotency_key\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\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": "User <username or user_id> does not exist",
"error": "Bad Request"
}{
"statusCode": 403,
"message": "reseller not found",
"error": "Bad Request"
}Authorizations
[just text field] Please enter token in following format: Bearer
Body
The userId (username) of the sub-user to update.
"test124"
Amount, in GB, to adjust the sub-user's current data allocation by. Use a positive value to add data or a negative value to subtract data.
2
Optional UUIDv4. Reuse for the same operation to replay saved responses. Processing or uncertain operations return 409. Retained indefinitely (at least 24 hours). Omit for legacy behavior.
Response
User updated
Username of the sub-user
"test124"
Unique identifier of the sub-user (same value as username)
"test124"
Current password of the sub-user
Total data allocated to the sub-user, in GB
5
Amount of data used by the sub-user so far, in GB
1.2
Amount of data remaining for the sub-user, in GB (dataLimit minus dataUsed)
3.8
Current status of the sub-user
active, inactive "active"
Date and time the sub-user was created
List of IP addresses whitelisted for the sub-user
["203.0.113.10", "203.0.113.11"]

