curl --request GET \
--url https://service.abundly.ai/workspaceapi/overview \
--header 'Authorization: Bearer <token>'import requests
url = "https://service.abundly.ai/workspaceapi/overview"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://service.abundly.ai/workspaceapi/overview', 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/overview",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://service.abundly.ai/workspaceapi/overview"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://service.abundly.ai/workspaceapi/overview")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://service.abundly.ai/workspaceapi/overview")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"toolCredentials": [
{
"type": "<string>",
"fields": [
{
"key": "<string>",
"isSet": true
}
]
}
],
"tags": [
"<string>"
],
"featureFlags": {},
"defaultDailyCreditLimitPerAgent": 123,
"preferredLlmModel": "<string>",
"llmDefaultMode": "<string>",
"enabledLlmModels": [
"<string>"
],
"disabledLlmModels": [
"<string>"
],
"additionalLlmModelsForWorkspace": [
"<string>"
],
"capabilityAdminSettings": {
"capabilities": {},
"defaultMode": "<string>",
"allowUserMcpServers": true,
"defaultCreditDetails": true,
"hideUnavailableCapabilities": true
},
"accountRules": {
"enforceStripeSubscription": true,
"enforcePositiveBalance": true
},
"groupSettings": {
"enabled": true,
"customerWideGroupTransparency": true,
"allowCreateGlobalAgents": "<string>"
},
"loginSettings": {
"allowedLoginMethods": [
"<string>"
],
"allowedDomains": [
"<string>"
],
"ssoAutoJoin": true,
"ssoAutoJoinGroupIds": [
"<string>"
],
"ssoAutoJoinRole": "<string>"
},
"joinSettings": {
"code": "<string>",
"info": "<string>",
"validFrom": "<string>",
"validTo": "<string>"
},
"securityAlertSettings": {},
"notificationSettings": {},
"documentWriteAccess": {
"humanPolicy": "<string>",
"agentPolicy": "<string>"
},
"agentValueCaptureSettings": {
"enabled": true,
"typeOfValue": {
"enabled": true,
"required": true,
"categories": [
{
"id": "<string>",
"label": "<string>",
"colorKey": "<string>",
"order": 123
}
]
},
"criticality": {
"enabled": true,
"required": true
}
},
"agentLifecycleSettings": {
"enabled": true,
"whoCanChangePhase": "<string>",
"reservedCreditsForProduction": 123,
"promotionMode": "direct"
},
"dpa": {},
"subprocessorNoticePeriodDays": 123,
"subprocessorAuthorizations": {},
"subscriptionLimits": {
"maxUsers": 123
},
"seatsOverride": 123,
"stripeSubscriptionStatus": "<string>",
"stripeSubscriptionPlanName": "<string>",
"stripeSubscriptionCreditsPerMonth": 123,
"stripeTrialEnd": "<string>",
"creditRefillSchedule": {},
"suspendedAt": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Get workspace configuration
Workspace-level settings: feature flags, credit defaults, account rules, DPA and subprocessor settings, login settings, tags, the configured LLMs, and the retired value capture configuration (deprecated, removed in a later release).
curl --request GET \
--url https://service.abundly.ai/workspaceapi/overview \
--header 'Authorization: Bearer <token>'import requests
url = "https://service.abundly.ai/workspaceapi/overview"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://service.abundly.ai/workspaceapi/overview', 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/overview",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://service.abundly.ai/workspaceapi/overview"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://service.abundly.ai/workspaceapi/overview")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://service.abundly.ai/workspaceapi/overview")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"toolCredentials": [
{
"type": "<string>",
"fields": [
{
"key": "<string>",
"isSet": true
}
]
}
],
"tags": [
"<string>"
],
"featureFlags": {},
"defaultDailyCreditLimitPerAgent": 123,
"preferredLlmModel": "<string>",
"llmDefaultMode": "<string>",
"enabledLlmModels": [
"<string>"
],
"disabledLlmModels": [
"<string>"
],
"additionalLlmModelsForWorkspace": [
"<string>"
],
"capabilityAdminSettings": {
"capabilities": {},
"defaultMode": "<string>",
"allowUserMcpServers": true,
"defaultCreditDetails": true,
"hideUnavailableCapabilities": true
},
"accountRules": {
"enforceStripeSubscription": true,
"enforcePositiveBalance": true
},
"groupSettings": {
"enabled": true,
"customerWideGroupTransparency": true,
"allowCreateGlobalAgents": "<string>"
},
"loginSettings": {
"allowedLoginMethods": [
"<string>"
],
"allowedDomains": [
"<string>"
],
"ssoAutoJoin": true,
"ssoAutoJoinGroupIds": [
"<string>"
],
"ssoAutoJoinRole": "<string>"
},
"joinSettings": {
"code": "<string>",
"info": "<string>",
"validFrom": "<string>",
"validTo": "<string>"
},
"securityAlertSettings": {},
"notificationSettings": {},
"documentWriteAccess": {
"humanPolicy": "<string>",
"agentPolicy": "<string>"
},
"agentValueCaptureSettings": {
"enabled": true,
"typeOfValue": {
"enabled": true,
"required": true,
"categories": [
{
"id": "<string>",
"label": "<string>",
"colorKey": "<string>",
"order": 123
}
]
},
"criticality": {
"enabled": true,
"required": true
}
},
"agentLifecycleSettings": {
"enabled": true,
"whoCanChangePhase": "<string>",
"reservedCreditsForProduction": 123,
"promotionMode": "direct"
},
"dpa": {},
"subprocessorNoticePeriodDays": 123,
"subprocessorAuthorizations": {},
"subscriptionLimits": {
"maxUsers": 123
},
"seatsOverride": 123,
"stripeSubscriptionStatus": "<string>",
"stripeSubscriptionPlanName": "<string>",
"stripeSubscriptionCreditsPerMonth": 123,
"stripeTrialEnd": "<string>",
"creditRefillSchedule": {},
"suspendedAt": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Authorizations
Workspace API key (wk_). GET endpoints require the Workspace read API scope, POST, PUT, PATCH and DELETE endpoints the Workspace write API scope.
Response
Success. Empty result sets are also 200.
Workspace settings, as the settings page shows them. Credential values never appear: toolCredentials reports only the type and which fields are set, and any other credential-shaped field is redacted.
Show child attributes
Show child attributes
Per-workspace feature toggles, keyed by flag name.
Show child attributes
Show child attributes
Applied to every agent that has no dailyCreditLimit of its own.
Which capabilities agents may use, and the default for capabilities with no explicit entry.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Teams. When enabled is false, /teams returns an empty list and the team write endpoints 400.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Also served on its own at /security-settings.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Deprecated: the retired value capture configuration, kept read-only so it can be exported before a later release removes it. Its category ids label the deprecated valueEntries on agents.
Show child attributes
Show child attributes
Sandbox / production phases. Only active when the matching feature flag is also on. In reviewed promotion mode whoCanChangePhase does not apply: owners request a review and only the override role promotes directly.
Show child attributes
Show child attributes
Data processing agreement status and legal entity details.
Show child attributes
Show child attributes
Keyed by subprocessor id: authorization status, who decided, and the notice audit trail. Redaction covers the whole block, so its string values read [redacted]; dates and booleans survive.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
ISO 8601 timestamp.
Show child attributes
Show child attributes
Set while the workspace is suspended.

