import json
import os
from parable_types_web_api import SetExternalAgentAccessEnabledInput
from parable_web_api_sdk import ClientConfig, WebApiSDK
sdk = WebApiSDK(
ClientConfig(
base_url=os.environ["PARABLE_API_URL"],
auth_token=os.environ["PARABLE_API_TOKEN"],
default_headers={"X-Tenant": os.environ["PARABLE_WORKSPACE"]},
)
)
input_data = SetExternalAgentAccessEnabledInput.model_validate(
json.loads("{\"enabled\":true}"),
)
result = sdk.auth.set_external_agent_access_enabled(input_data)sdk, err := webapisdk.New(webapisdk.SDKConfig{
BaseURL: os.Getenv("PARABLE_API_URL"),
Auth: &webapisdk.AuthConfig{Token: os.Getenv("PARABLE_API_TOKEN")},
RequestInterceptor: func(ctx context.Context, req *http.Request) error {
req.Header.Set("X-Tenant", os.Getenv("PARABLE_WORKSPACE"))
return nil
},
})
if err != nil {
return err
}
var input webapitypes.SetExternalAgentAccessEnabledInput
if err := json.Unmarshal([]byte(`{"enabled":true}`), &input); err != nil {
return err
}
result, err := sdk.AuthNamespace.SetExternalAgentAccessEnabled(ctx, input){
"data": {
"allowedMethods": [
"magic_link"
],
"apiTokensEnabled": true,
"createdAt": "2023-11-07T05:31:56Z",
"createdBy": "<string>",
"externalAgentAccessEnabled": true,
"id": "<string>",
"scimEnabled": true,
"tenantId": "<string>",
"updatedAt": "2023-11-07T05:31:56Z",
"updatedBy": "<string>",
"activeMethod": "magic_link",
"breakglassEmail": "jsmith@example.com",
"lastRefreshedFromStytchAt": "2023-11-07T05:31:56Z",
"lastTestConfigFingerprint": "<string>",
"lastTestSucceededAt": "2023-11-07T05:31:56Z",
"scimConnectionId": "<string>",
"scimDefaultRoleId": "<string>",
"ssoConnectionId": "<string>"
},
"meta": {
"requestId": "<string>",
"totalCount": 123
},
"links": {
"first": "<string>",
"last": "<string>",
"next": "<string>",
"prev": "<string>"
}
}{
"detail": "<string>",
"status": 400,
"title": "Bad Request",
"type": "about:blank",
"code": "WA-VL-001",
"details": "<unknown>",
"errors": "<unknown>",
"requestId": "<string>"
}{
"detail": "<string>",
"status": 400,
"title": "Bad Request",
"type": "about:blank",
"code": "WA-VL-001",
"details": "<unknown>",
"errors": "<unknown>",
"requestId": "<string>"
}{
"detail": "<string>",
"status": 400,
"title": "Bad Request",
"type": "about:blank",
"code": "WA-VL-001",
"details": "<unknown>",
"errors": "<unknown>",
"requestId": "<string>"
}Too Many Requests{
"detail": "<string>",
"status": 400,
"title": "Bad Request",
"type": "about:blank",
"code": "WA-VL-001",
"details": "<unknown>",
"errors": "<unknown>",
"requestId": "<string>"
}Turn external agent access on or off
Allows or refuses agents outside Parable, such as Claude Code, in the selected Workspace. It is off until an administrator turns it on. While it is off, a personal access token for MCP is refused on its next request and members cannot create one, and an OAuth sign-in from an agent is refused on its next request and its next refresh, and the consent page does not offer the Workspace. Turning it off revokes nothing: once it is back on, unexpired, unrevoked tokens and grants work again, except that a host that tried a refresh while it was off has discarded its tokens and signs in again. An outside agent sends the data it reads to its own model provider. Requires permission to manage the Workspace’s sign-in.
import json
import os
from parable_types_web_api import SetExternalAgentAccessEnabledInput
from parable_web_api_sdk import ClientConfig, WebApiSDK
sdk = WebApiSDK(
ClientConfig(
base_url=os.environ["PARABLE_API_URL"],
auth_token=os.environ["PARABLE_API_TOKEN"],
default_headers={"X-Tenant": os.environ["PARABLE_WORKSPACE"]},
)
)
input_data = SetExternalAgentAccessEnabledInput.model_validate(
json.loads("{\"enabled\":true}"),
)
result = sdk.auth.set_external_agent_access_enabled(input_data)sdk, err := webapisdk.New(webapisdk.SDKConfig{
BaseURL: os.Getenv("PARABLE_API_URL"),
Auth: &webapisdk.AuthConfig{Token: os.Getenv("PARABLE_API_TOKEN")},
RequestInterceptor: func(ctx context.Context, req *http.Request) error {
req.Header.Set("X-Tenant", os.Getenv("PARABLE_WORKSPACE"))
return nil
},
})
if err != nil {
return err
}
var input webapitypes.SetExternalAgentAccessEnabledInput
if err := json.Unmarshal([]byte(`{"enabled":true}`), &input); err != nil {
return err
}
result, err := sdk.AuthNamespace.SetExternalAgentAccessEnabled(ctx, input){
"data": {
"allowedMethods": [
"magic_link"
],
"apiTokensEnabled": true,
"createdAt": "2023-11-07T05:31:56Z",
"createdBy": "<string>",
"externalAgentAccessEnabled": true,
"id": "<string>",
"scimEnabled": true,
"tenantId": "<string>",
"updatedAt": "2023-11-07T05:31:56Z",
"updatedBy": "<string>",
"activeMethod": "magic_link",
"breakglassEmail": "jsmith@example.com",
"lastRefreshedFromStytchAt": "2023-11-07T05:31:56Z",
"lastTestConfigFingerprint": "<string>",
"lastTestSucceededAt": "2023-11-07T05:31:56Z",
"scimConnectionId": "<string>",
"scimDefaultRoleId": "<string>",
"ssoConnectionId": "<string>"
},
"meta": {
"requestId": "<string>",
"totalCount": 123
},
"links": {
"first": "<string>",
"last": "<string>",
"next": "<string>",
"prev": "<string>"
}
}{
"detail": "<string>",
"status": 400,
"title": "Bad Request",
"type": "about:blank",
"code": "WA-VL-001",
"details": "<unknown>",
"errors": "<unknown>",
"requestId": "<string>"
}{
"detail": "<string>",
"status": 400,
"title": "Bad Request",
"type": "about:blank",
"code": "WA-VL-001",
"details": "<unknown>",
"errors": "<unknown>",
"requestId": "<string>"
}{
"detail": "<string>",
"status": 400,
"title": "Bad Request",
"type": "about:blank",
"code": "WA-VL-001",
"details": "<unknown>",
"errors": "<unknown>",
"requestId": "<string>"
}Too Many Requests{
"detail": "<string>",
"status": 400,
"title": "Bad Request",
"type": "about:blank",
"code": "WA-VL-001",
"details": "<unknown>",
"errors": "<unknown>",
"requestId": "<string>"
}Access
This operation needs a Parable token. An MCP token cannot call it. See Authentication for the kinds of token. Your roles must granttenant.auth.manage.Authorizations
A personal access token, which starts with pat_. A Parable token can call each operation that the roles of its owner allow. An MCP token can call only the read operations that are open to agents. A SQL token does not work on this API.
Headers
Workspace slug. Overrides subdomain-based workspace resolution when provided.
"acme"
Optional request correlation ID echoed back in the response.
"550e8400-e29b-41d4-a716-446655440000"
Body
Input for allowing or refusing agents outside Parable in the selected Workspace.