Transfer team ownership
curl --request POST \
--url https://core.cyberun.cloud/api/v1/teams/current/transfer \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"new_owner_id": "019abc12-3456-7890-abcd-ef1234567890"
}
'import requests
url = "https://core.cyberun.cloud/api/v1/teams/current/transfer"
payload = { "new_owner_id": "019abc12-3456-7890-abcd-ef1234567890" }
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({new_owner_id: '019abc12-3456-7890-abcd-ef1234567890'})
};
fetch('https://core.cyberun.cloud/api/v1/teams/current/transfer', 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.cyberun.cloud/api/v1/teams/current/transfer",
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([
'new_owner_id' => '019abc12-3456-7890-abcd-ef1234567890'
]),
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.cyberun.cloud/api/v1/teams/current/transfer"
payload := strings.NewReader("{\n \"new_owner_id\": \"019abc12-3456-7890-abcd-ef1234567890\"\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.cyberun.cloud/api/v1/teams/current/transfer")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"new_owner_id\": \"019abc12-3456-7890-abcd-ef1234567890\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://core.cyberun.cloud/api/v1/teams/current/transfer")
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 \"new_owner_id\": \"019abc12-3456-7890-abcd-ef1234567890\"\n}"
response = http.request(request)
puts response.read_body{
"is_success": true
}{
"error_message": "resource not found"
}{
"error_message": "resource not found"
}{
"error_message": "resource not found"
}{
"error_message": "resource not found"
}Team
Transfer team ownership
Transfers ownership of the team to another existing team member. The current owner is demoted to admin. Only the current owner can transfer. The new owner must already be a member of the team.
POST
/
teams
/
current
/
transfer
Transfer team ownership
curl --request POST \
--url https://core.cyberun.cloud/api/v1/teams/current/transfer \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"new_owner_id": "019abc12-3456-7890-abcd-ef1234567890"
}
'import requests
url = "https://core.cyberun.cloud/api/v1/teams/current/transfer"
payload = { "new_owner_id": "019abc12-3456-7890-abcd-ef1234567890" }
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({new_owner_id: '019abc12-3456-7890-abcd-ef1234567890'})
};
fetch('https://core.cyberun.cloud/api/v1/teams/current/transfer', 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.cyberun.cloud/api/v1/teams/current/transfer",
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([
'new_owner_id' => '019abc12-3456-7890-abcd-ef1234567890'
]),
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.cyberun.cloud/api/v1/teams/current/transfer"
payload := strings.NewReader("{\n \"new_owner_id\": \"019abc12-3456-7890-abcd-ef1234567890\"\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.cyberun.cloud/api/v1/teams/current/transfer")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"new_owner_id\": \"019abc12-3456-7890-abcd-ef1234567890\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://core.cyberun.cloud/api/v1/teams/current/transfer")
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 \"new_owner_id\": \"019abc12-3456-7890-abcd-ef1234567890\"\n}"
response = http.request(request)
puts response.read_body{
"is_success": true
}{
"error_message": "resource not found"
}{
"error_message": "resource not found"
}{
"error_message": "resource not found"
}{
"error_message": "resource not found"
}Authorizations
bearerAuthDeviceAuth
User session JWT (Bearer ). Must be paired with the X-Team-ID
request header on team-scoped endpoints so the server knows which
team's resources to operate on.
Headers
UUID of the team to scope the request to. Used by dual-auth endpoints (runtime + scoped management):
- JWT callers MUST send it — a user may belong to multiple teams and the runtime cannot otherwise know which one to operate on. Missing header → 400.
- Credential callers (
sk-,dk-) can omit it because the team is derived from the credential row itself. Any value sent is ignored.
Example:
"019abc12-4567-7890-abcd-ef1234567891"
Body
application/json
UUID of the team member to transfer ownership to. Must be an existing member.
Example:
"019abc12-3456-7890-abcd-ef1234567890"
Response
Ownership transferred
Always true when the action completed successfully.
Example:
true
