API reference
Change matching tasks on many accounts
task_bulk_patch — On every selected account, change the tasks matching type (and optionally name): enabled, schedule and/or settings merged key by key.
task_bulk_patch · Changes an X-Buddy setting
On every selected account, change the tasks matching type (and optionally name): enabled, schedule and/or settings merged key by key. One result row per account. Switching growth tasks on still needs their preview: those rows come back refused.
| REST | POST /api/public/v1/bulk/tasks |
| MCP tool | task_bulk_patch |
| Permission needed | tasks.manage — Owner, Manager, Operator |
| Scope group | automation:write |
| Group | Tasks and playbooks |
| Shown up front in profiles | Automation |
Input
| Field | Type | Required | Description |
|---|---|---|---|
selector |
object | Yes | Which accounts: the union of account_ids and the members of group_ids. Empty = no account (never all). |
match |
object | Yes | |
patch |
object | Yes | |
dry_run |
boolean | No | true = return the per-account result table without changing anything. |
Result
Returns the operation's result in the { data, meta } envelope.
Needs an idempotency key (Idempotency-Key, 8–128 characters). Retrying with the same key never repeats the action.
Example
Call over REST
curl -X POST "https://reach-link-craft.lovable.app/api/public/v1/bulk/tasks" \
-H "Authorization: Bearer $XBUDDY_API_KEY" \
-H "Idempotency-Key: 6f1c2a90-example-key" \
-H "Content-Type: application/json" \
-d '{"selector":{},"match":{"type":"timeline_browse"},"patch":{}}'
Call over MCP
{
"method": "tools/call",
"params": {
"name": "task_bulk_patch",
"arguments": {
"selector": {},
"match": {
"type": "timeline_browse"
},
"patch": {},
"idempotency_key": "6f1c2a90-example-key"
}
}
}
Errors you may get
| Code | HTTP | Retryable |
|---|---|---|
unauthorized |
401 | No |
key_expired |
401 | No |
integration_revoked |
401 | No |
connection_not_linked |
403 | No |
integration_paused |
403 | No |
workspace_integrations_paused |
403 | No |
integration_authorization_lost |
403 | No |
workspace_suspended |
403 | No |
forbidden |
403 | No |
invalid_input |
422 | No |
rate_limited |
429 | Yes |
internal |
500 | Yes |
read_only |
403 | No |
idempotency_key_required |
428 | No |
idempotency_conflict |
409 | No |
idempotency_processing |
409 | Yes |
conflict |
409 | No |
precondition_failed |
422 | No |