API resource
Slack
Each connected Slack channel is its own account: Create a post with platforms: ["slack"] sends to every connected channel (narrow it with account_ids), and a slack object turns it into a thread reply (threadTs), controls link previews (unfurlLinks, unfurlMedia) or changes the name and avatar of one message (username, iconUrl). There is no channel field: the channel is the connected account. DMs to the bot and messages that @mention it arrive in Messages; reply with POST /v1/inbox/conversations/{id}/messages (replyTo keeps the answer in the thread), or start a DM with a member through POST /v1/inbox/conversations and participantId. These calls cover the channel account itself: its default message identity, the members a DM can go to, and connecting more channels.
List Slack channels
/v1/accounts/{accountId}/slack-channelsWorks on: Slack
Path parameters
accountIdstringrequiredA connected Slack channel (its acc_ id).
curl "https://creatoros-production-5658.up.railway.app/v1/accounts/acc_Sk6Tn2Vw9Kx4Ry1Lm8Qc5Hb3Js7Df0Ga2Ue6Ki9Oq1S/slack-channels" \
-H "Authorization: Bearer $CREATOROS_API_KEY"{
"team": {
"id": "T0123456789",
"name": "Example Co",
"icon": "https://..."
},
"channels": [
{
"id": "C0123456789",
"name": "marketing",
"isPrivate": false,
"isMember": true
},
{
"id": "G0123456789",
"name": "launch-room",
"isPrivate": true,
"isMember": false
}
]
}Connect more Slack channels
/v1/connect/slackWorks on: Slack
Body
account_idstringrequiredA connected Slack channel of the same Slack workspace (its acc_ id).
channel_idsstring[]requiredUp to 25 channel ids from List Slack channels.
curl -X POST "https://creatoros-production-5658.up.railway.app/v1/connect/slack" \
-H "Authorization: Bearer $CREATOROS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"account_id": "acc_Sk6Tn2Vw9Kx4Ry1Lm8Qc5Hb3Js7Df0Ga2Ue6Ki9Oq1S",
"channel_ids": [
"C0123456789"
]
}'{
"message": "Slack channel connected successfully",
"account": {
"accountId": "acc_Sk6Tn2Vw9Kx4Ry1Lm8Qc5Hb3Js7Df0Ga2Ue6Ki9Oq1S",
"platform": "slack",
"username": "marketing",
"displayName": "marketing",
"isActive": true,
"channelId": "C0123456789",
"teamName": "Example Co"
}
}List Slack workspace members
/v1/accounts/{accountId}/slack-membersWorks on: Slack
Path parameters
accountIdstringrequiredQuery parameters
querystringCase-insensitive filter over display name and handle.
limitintegercurl "https://creatoros-production-5658.up.railway.app/v1/accounts/acc_Sk6Tn2Vw9Kx4Ry1Lm8Qc5Hb3Js7Df0Ga2Ue6Ki9Oq1S/slack-members" \
-H "Authorization: Bearer $CREATOROS_API_KEY"{
"members": [
{
"id": "string",
"name": "string",
"username": "string",
"picture": "string"
}
]
}Get Slack account settings
/v1/accounts/{accountId}/slack-settingsWorks on: Slack
Path parameters
accountIdstringrequiredcurl "https://creatoros-production-5658.up.railway.app/v1/accounts/acc_Sk6Tn2Vw9Kx4Ry1Lm8Qc5Hb3Js7Df0Ga2Ue6Ki9Oq1S/slack-settings" \
-H "Authorization: Bearer $CREATOROS_API_KEY"{
"account": {
"id": "string",
"platform": "slack",
"displayName": "string",
"channelId": "1234567890123456789",
"channelName": "string",
"channelType": "string",
"teamId": "string",
"teamName": "string",
"defaultUsername": "string",
"defaultIconUrl": "string"
}
}Update Slack account settings
/v1/accounts/{accountId}/slack-settingsWorks on: Slack
Path parameters
accountIdstringrequiredBody
defaultUsernamestringAuthor name shown on posts. Empty string clears it.
defaultIconUrlstringAuthor avatar image URL. Empty string clears it.
curl -X PATCH "https://creatoros-production-5658.up.railway.app/v1/accounts/acc_Sk6Tn2Vw9Kx4Ry1Lm8Qc5Hb3Js7Df0Ga2Ue6Ki9Oq1S/slack-settings" \
-H "Authorization: Bearer $CREATOROS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"defaultUsername": "string"
}'{
"ok": true
}