curl -X POST "https://your-domain.com/api/channels/ch_abc123/update" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "announcements-updated",
"description": "Official company announcements"
}'
curl -X POST "https://your-domain.com/api/channels/ch_abc123/update" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "general",
"description": "General discussion",
"access_grants": [
{
"principal_type": "user",
"principal_id": "*",
"permission": "read"
},
{
"principal_type": "group",
"principal_id": "group_moderators",
"permission": "write"
}
]
}'
import requests
response = requests.post(
"https://your-domain.com/api/channels/ch_abc123/update",
headers={"Authorization": "Bearer YOUR_TOKEN"},
json={
"name": "engineering",
"description": "Engineering team discussions",
"is_private": True,
"meta": {
"slack_channel": "#engineering"
}
}
)
channel = response.json()
print(f"Updated channel: {channel['name']}")
{
"id": "ch_abc123",
"user_id": "user_123",
"type": "standard",
"name": "announcements-updated",
"description": "Official company announcements",
"is_private": false,
"data": null,
"meta": null,
"access_grants": [
{
"principal_type": "user",
"principal_id": "*",
"permission": "read"
},
{
"principal_type": "role",
"principal_id": "admin",
"permission": "write"
}
],
"created_at": 1709500000000000000,
"updated_at": 1709567890123456789,
"updated_by": "user_123",
"archived_at": null,
"archived_by": null,
"deleted_at": null,
"deleted_by": null
}
{
"detail": "Not found"
}
{
"detail": "ERROR"
}
{
"detail": "ERROR"
}
Channels
Update Channel
Update channel settings and metadata
POST
/
api
/
channels
/
{id}
/
update
curl -X POST "https://your-domain.com/api/channels/ch_abc123/update" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "announcements-updated",
"description": "Official company announcements"
}'
curl -X POST "https://your-domain.com/api/channels/ch_abc123/update" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "general",
"description": "General discussion",
"access_grants": [
{
"principal_type": "user",
"principal_id": "*",
"permission": "read"
},
{
"principal_type": "group",
"principal_id": "group_moderators",
"permission": "write"
}
]
}'
import requests
response = requests.post(
"https://your-domain.com/api/channels/ch_abc123/update",
headers={"Authorization": "Bearer YOUR_TOKEN"},
json={
"name": "engineering",
"description": "Engineering team discussions",
"is_private": True,
"meta": {
"slack_channel": "#engineering"
}
}
)
channel = response.json()
print(f"Updated channel: {channel['name']}")
{
"id": "ch_abc123",
"user_id": "user_123",
"type": "standard",
"name": "announcements-updated",
"description": "Official company announcements",
"is_private": false,
"data": null,
"meta": null,
"access_grants": [
{
"principal_type": "user",
"principal_id": "*",
"permission": "read"
},
{
"principal_type": "role",
"principal_id": "admin",
"permission": "write"
}
],
"created_at": 1709500000000000000,
"updated_at": 1709567890123456789,
"updated_by": "user_123",
"archived_at": null,
"archived_by": null,
"deleted_at": null,
"deleted_by": null
}
{
"detail": "Not found"
}
{
"detail": "ERROR"
}
{
"detail": "ERROR"
}
Updates a channel’s name, description, access controls, and other settings. Only the channel creator or admins can update channels.
Authentication
Requires a valid user session. User must be the channel creator or an admin.Path Parameters
string
required
The unique identifier of the channel to update
Request Body
string
required
Channel name
string
Channel description
boolean
Whether the channel is private (for group channels)
object
Additional channel data
object
Channel metadata
array
array
Array of group IDs to grant access to the channel
array
Array of user IDs to grant access to the channel
Response
Returns the updated channel object.string
required
Unique channel identifier
string
required
ID of the user who created the channel
string
Channel type
string
required
Channel name
string
Channel description
boolean
Whether the channel is private
object
Additional channel data
object
Channel metadata
array
Updated access control grants
integer
required
Creation timestamp (epoch time in nanoseconds)
integer
required
Updated timestamp (epoch time in nanoseconds)
string
ID of user who updated the channel
curl -X POST "https://your-domain.com/api/channels/ch_abc123/update" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "announcements-updated",
"description": "Official company announcements"
}'
curl -X POST "https://your-domain.com/api/channels/ch_abc123/update" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "general",
"description": "General discussion",
"access_grants": [
{
"principal_type": "user",
"principal_id": "*",
"permission": "read"
},
{
"principal_type": "group",
"principal_id": "group_moderators",
"permission": "write"
}
]
}'
import requests
response = requests.post(
"https://your-domain.com/api/channels/ch_abc123/update",
headers={"Authorization": "Bearer YOUR_TOKEN"},
json={
"name": "engineering",
"description": "Engineering team discussions",
"is_private": True,
"meta": {
"slack_channel": "#engineering"
}
}
)
channel = response.json()
print(f"Updated channel: {channel['name']}")
{
"id": "ch_abc123",
"user_id": "user_123",
"type": "standard",
"name": "announcements-updated",
"description": "Official company announcements",
"is_private": false,
"data": null,
"meta": null,
"access_grants": [
{
"principal_type": "user",
"principal_id": "*",
"permission": "read"
},
{
"principal_type": "role",
"principal_id": "admin",
"permission": "write"
}
],
"created_at": 1709500000000000000,
"updated_at": 1709567890123456789,
"updated_by": "user_123",
"archived_at": null,
"archived_by": null,
"deleted_at": null,
"deleted_by": null
}
{
"detail": "Not found"
}
{
"detail": "ERROR"
}
{
"detail": "ERROR"
}
Notes
- Only the channel creator (
user_id) or admins can update channels - All fields in the request body are optional, but at least the
namefield should be provided - Updating access grants will replace the existing grants entirely
- The
updated_attimestamp andupdated_byfield are automatically updated