Move agents to a team
curl --request POST \
--url https://service.abundly.ai/workspaceapi/agents/team-moves \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"ids": [
"<string>"
],
"targetTeamId": "<string>",
"dryRun": true
}
'import requests
url = "https://service.abundly.ai/workspaceapi/agents/team-moves"
payload = {
"ids": ["<string>"],
"targetTeamId": "<string>",
"dryRun": True
}
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({ids: ['<string>'], targetTeamId: '<string>', dryRun: true})
};
fetch('https://service.abundly.ai/workspaceapi/agents/team-moves', 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://service.abundly.ai/workspaceapi/agents/team-moves",
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([
'ids' => [
'<string>'
],
'targetTeamId' => '<string>',
'dryRun' => true
]),
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://service.abundly.ai/workspaceapi/agents/team-moves"
payload := strings.NewReader("{\n \"ids\": [\n \"<string>\"\n ],\n \"targetTeamId\": \"<string>\",\n \"dryRun\": true\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://service.abundly.ai/workspaceapi/agents/team-moves")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"ids\": [\n \"<string>\"\n ],\n \"targetTeamId\": \"<string>\",\n \"dryRun\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://service.abundly.ai/workspaceapi/agents/team-moves")
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 \"ids\": [\n \"<string>\"\n ],\n \"targetTeamId\": \"<string>\",\n \"dryRun\": true\n}"
response = http.request(request)
puts response.read_body{
"results": [
{
"id": "<string>",
"success": true,
"name": "<string>",
"unchanged": true,
"applied": {},
"tags": [
"<string>"
],
"impact": "<unknown>",
"error": "<string>"
}
],
"summary": {
"total": 123,
"succeeded": 123,
"failed": 123,
"unchanged": 123
}
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}API Reference
Move agents to a team
Move the listed agents to another team, or to the workspace-global space with targetTeamId=null. Moving an agent changes who can reach it and can flip team-scoped capabilities on or off, so call with dryRun=true first: each result carries an impact naming the members who gain or lose access and the capabilities that flip. Returns 400 when team settings are not enabled for the workspace. Batch write: each id gets its own result and per-id failures still return HTTP 200 — check results[].success and summary.
POST
/
workspaceapi
/
agents
/
team-moves
Move agents to a team
curl --request POST \
--url https://service.abundly.ai/workspaceapi/agents/team-moves \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"ids": [
"<string>"
],
"targetTeamId": "<string>",
"dryRun": true
}
'import requests
url = "https://service.abundly.ai/workspaceapi/agents/team-moves"
payload = {
"ids": ["<string>"],
"targetTeamId": "<string>",
"dryRun": True
}
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({ids: ['<string>'], targetTeamId: '<string>', dryRun: true})
};
fetch('https://service.abundly.ai/workspaceapi/agents/team-moves', 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://service.abundly.ai/workspaceapi/agents/team-moves",
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([
'ids' => [
'<string>'
],
'targetTeamId' => '<string>',
'dryRun' => true
]),
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://service.abundly.ai/workspaceapi/agents/team-moves"
payload := strings.NewReader("{\n \"ids\": [\n \"<string>\"\n ],\n \"targetTeamId\": \"<string>\",\n \"dryRun\": true\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://service.abundly.ai/workspaceapi/agents/team-moves")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"ids\": [\n \"<string>\"\n ],\n \"targetTeamId\": \"<string>\",\n \"dryRun\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://service.abundly.ai/workspaceapi/agents/team-moves")
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 \"ids\": [\n \"<string>\"\n ],\n \"targetTeamId\": \"<string>\",\n \"dryRun\": true\n}"
response = http.request(request)
puts response.read_body{
"results": [
{
"id": "<string>",
"success": true,
"name": "<string>",
"unchanged": true,
"applied": {},
"tags": [
"<string>"
],
"impact": "<unknown>",
"error": "<string>"
}
],
"summary": {
"total": 123,
"succeeded": 123,
"failed": 123,
"unchanged": 123
}
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Authorizations
Workspace API key (wk_). GET endpoints require the Workspace read API scope, POST endpoints the Workspace write API scope.
Body
application/json

