Update a command
Any subset of fields - {"enabled": false} benches a command without deleting it, name renames it (the old name stops triggering immediately). Requires commands:manage.
PATCH
/commands/{commandName}Authorization
AuthorizationBearer token (tp_live_...) · headerrequiredA TipPage API key, created in Dashboard → Settings → Developer.
Path parameters
commandNamestringrequiredThe command's name - its trigger without the `!` prefix.
Request body
requiredapplication/jsonnamestringmax length 50 · matches ^[a-z0-9_-]+$
responsestringmax length 500
permissionstringAllowed:
everyonesubscribermoderatorcooldown_secondsintegermin 0 · max 3600
cooldown_typestringAllowed:
globalper_useraliasesstring[]max items 10
enabledbooleanResponses
200Updated.
commandCustomCommandShow propertiesHide properties
namestringThe trigger, without the `!` prefix.
responsestringWhat the bot answers. Template variables supported.
permissionstringWho can trigger it. `subscriber` includes moderators; `moderator` includes the streamer.
Allowed:
everyonesubscribermoderatorcooldown_secondsintegermin 0 · max 3600
cooldown_typestring`global` = one shared cooldown for the whole channel; `per_user` = each viewer gets their own.
Allowed:
globalper_useraliasesstring[]Extra triggers for the same command, also without the `!`.
enabledbooleancreated_atstring<date-time>updated_atstring<date-time>400Invalid fields (`invalid_command`).
errorstringrequiredHuman-readable message.
codestringMachine-readable code (e.g. `missing_scope`, `not_in_queue`).
401Missing or invalid API key (`missing_api_key` / `invalid_api_key`).
errorstringrequiredHuman-readable message.
codestringMachine-readable code (e.g. `missing_scope`, `not_in_queue`).
403The key lacks the required scope (`missing_scope`).
errorstringrequiredHuman-readable message.
codestringMachine-readable code (e.g. `missing_scope`, `not_in_queue`).
required_scopestring404No such resource.
errorstringrequiredHuman-readable message.
codestringMachine-readable code (e.g. `missing_scope`, `not_in_queue`).
409The new name is already taken (`command_exists`), or an alias collides with another trigger (`alias_in_use`).
errorstringrequiredHuman-readable message.
codestringMachine-readable code (e.g. `missing_scope`, `not_in_queue`).
429Rate limit exceeded - check the `RateLimit-*` headers.
errorstringRequest
curl -X PATCH "https://api.tippage.com/v1/commands/string" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "string",
"response": "string",
"permission": "everyone",
"cooldown_seconds": 3600,
"cooldown_type": "global",
"aliases": [
"string"
],
"enabled": true
}'const response = await fetch("https://api.tippage.com/v1/commands/string", {
method: "PATCH",
headers: {
"Authorization": "Bearer YOUR_TOKEN",
"Content-Type": "application/json"
},
body: JSON.stringify({
"name": "string",
"response": "string",
"permission": "everyone",
"cooldown_seconds": 3600,
"cooldown_type": "global",
"aliases": [
"string"
],
"enabled": true
})
});import requests
response = requests.patch(
"https://api.tippage.com/v1/commands/string",
headers={
"Authorization": "Bearer YOUR_TOKEN",
"Content-Type": "application/json"
},
json={
"name": "string",
"response": "string",
"permission": "everyone",
"cooldown_seconds": 3600,
"cooldown_type": "global",
"aliases": [
"string"
],
"enabled": True
},
)Response
{
"command": {
"name": "discord",
"response": "string",
"permission": "everyone",
"cooldown_seconds": 3600,
"cooldown_type": "global",
"aliases": [
"string"
],
"enabled": true,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
}{
"error": "string",
"code": "string"
}{
"error": "string",
"code": "string"
}{
"error": "string",
"code": "string",
"required_scope": "string"
}{
"error": "string",
"code": "string"
}{
"error": "string",
"code": "string"
}{
"error": "string"
}