Change a campaign's Discord settings
Changes how Scouty runs one campaign's Discord server, as the campaign builder does: any of the setup, the posting schedule, the time zone, reminders, digests, view tracking and the quiet days before a creator is flagged. Fields left out keep what is saved. Saving a posting schedule confirms it, and counting starts from today. Only campaigns Discord ops is on for.
https://api.tryscouty.com/v1/campaigns/{campaignId}/discord-ops - Scope
campaigns:write - Write
- Safe to retry
- MCP tool
scouty_update_ops_settings
Authorization
Send a Scouty token as a bearer token in the Authorization header. The token needs the campaigns:write scope, or the call answers 403 insufficient_scope. Tokens and scopes
Authorization: Bearer $SCOUTY_TOKENPath parameters
| Name | Type | Required | Description |
|---|---|---|---|
campaignId | integer | Required | The campaign whose Discord settings these are. |
Headers
| Name | Type | Required | Description |
|---|---|---|---|
Idempotency-Key | string | Optional | The same key the body's idempotencyKey carries. Send one or the other, or both with the same value. |
Body parameters
A JSON object, sent with Content-Type: application/json.
| Name | Type | Required | Description |
|---|---|---|---|
idempotencyKey | string | Required | A key you choose for this call, 8 to 128 characters of letters, digits, dot, underscore, colon or hyphen. Sending the same key with the same arguments replays the first answer and changes nothing, so a retry after a timeout is safe. |
setupMode | string | Optional | How the server is set up: none (just add Scouty), bot (Scouty builds it) or template. One of |
cadence | object | Optional | How many videos each creator posts. Saving one confirms it and starts the counting. |
cadence.count | integer | Required | Videos each creator posts, 1 to 1000. |
cadence.period | string | Required | Per day, week or month. One of |
timezone | string | Optional | The time zone reminders and digests follow, from the builder's list. One of |
remindersEnabled | boolean | Optional | Whether creators get reminders. |
digestsEnabled | boolean | Optional | Whether the team gets the morning and night digests. |
inactivityDays | integer | Optional | Quiet days before a creator is flagged to the team, 1 to 30. |
viewTrackingEnabled | boolean | Optional | Whether views on posted videos are checked. |
Errors
A refusal answers { "error": { "code", "message" } }. Branch on code; the message is for a person. Every error and its fix
| Status | error.code | Meaning |
|---|---|---|
| 400 Bad Request | invalid_request | The request was not the shape this capability takes, or its body was not JSON. |
| 401 Unauthorized | missing_token invalid_token token_revoked token_expired token_orphaned | No token, or one that is not recognized, revoked or expired. |
| 403 Forbidden | insufficient_scope wrong_principal | The token does not carry the scope this capability needs. |
| 404 Not Found | not_found | No such route, or no such campaign for this client. |
| 409 Conflict | idempotency_conflict | That idempotency key was already used for a different request. Nothing was changed. |
| 429 Too Many Requests | rate_limited | Too many requests this minute. Retry-After says how long is left. |