import json
import os
from parable_types_web_api import SetPulseCapturePolicyInput
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 = SetPulseCapturePolicyInput.model_validate(
json.loads("{\"skippedBundleIdPrefixes\":[]}"),
)
result = sdk.devices.set_pulse_capture_policy(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.SetPulseCapturePolicyInput
if err := json.Unmarshal([]byte(`{"skippedBundleIdPrefixes":[]}`), &input); err != nil {
return err
}
result, err := sdk.DevicesNamespace.SetPulseCapturePolicy(ctx, input){
"data": {
"skippedBundleIdPrefixes": [
"<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>"
}{
"detail": "<string>",
"status": 400,
"title": "Bad Request",
"type": "about:blank",
"code": "WA-VL-001",
"details": "<unknown>",
"errors": "<unknown>",
"requestId": "<string>"
}Set skipped apps
Replaces the list of apps that Pulse skips on every Mac in this Workspace. Give each app as a bundle ID prefix, such as com.tinyspeck.slackmacgap. Pulse records only which skipped app was in front and for how long. Macs apply the change within six hours.
import json
import os
from parable_types_web_api import SetPulseCapturePolicyInput
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 = SetPulseCapturePolicyInput.model_validate(
json.loads("{\"skippedBundleIdPrefixes\":[]}"),
)
result = sdk.devices.set_pulse_capture_policy(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.SetPulseCapturePolicyInput
if err := json.Unmarshal([]byte(`{"skippedBundleIdPrefixes":[]}`), &input); err != nil {
return err
}
result, err := sdk.DevicesNamespace.SetPulseCapturePolicy(ctx, input){
"data": {
"skippedBundleIdPrefixes": [
"<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>"
}{
"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.connectors.taps.write.
Errors
HTTP 400: An entry is not a bundle ID prefix, an entry is longer than 255 characters, or the list has more than 200 entries. Give each app as a bundle ID with at least two parts, such as com.example.app, and send at most 200 entries.HTTP 403: You cannot change Pulse settings in this Workspace. Select a Workspace where you can manage connector taps.
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
Replaces a Workspace's Pulse capture policy.
The whole list of macOS bundle ID prefixes Pulse skips. An empty list
leaves only the built-in protected list. Each entry has at least two
dot-separated parts of letters, digits, and hyphens, as a bundle ID
does, so a one-part entry such as com cannot skip almost every app.
Parable stores the entries in lower case, sorted, with duplicates
removed.
200255^[A-Za-z0-9-]+(\.[A-Za-z0-9-]+)+$Response
Successful response
A Workspace's Pulse capture policy: the apps Pulse skips on every Mac of the Workspace. The protected list built into Pulse (password managers, banking, health) always applies too, and this policy cannot remove an app from it. Pulse records which skipped app was in front and for how long, and never its window title, UI tree, or screen text.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes