List Slack channels for the channel picker
Serves the channel picker of the Slack connect flow. Slack's OAuth installs the bot into a
workspace, not a channel, so after the redirect the caller lists the workspace's channels
here and finalizes one with POST /v1/connect/slack. Served by a dedicated route that
shadows GET /v1/connect/{platform} for slack.
Send exactly one of pendingDataToken (first connect: the nonce from the OAuth redirect,
bound to the same profileId) or accountId (add another channel to a workspace already
connected: the existing Slack account's workspace token is reused, no re-OAuth). With
neither, the endpoint behaves like GET /v1/connect/{platform} and returns authUrl and
state to start the OAuth flow.
Channels are read live from Slack (conversations.list, public and private, archived
excluded, up to 2,000). isMember says whether the Zernio bot is already in the channel:
a public channel is joined automatically on finalize, a private one must be invited
(/invite @Zernio) first.
API key authentication - use your Zernio API key as a Bearer token
In: header
Query Parameters
Zernio profile the channel account will belong to. Must match the profile the OAuth flow was started on when pendingDataToken is used.
Nonce from the OAuth redirect (first connect).
16 <= lengthExisting active Slack account (yours or a team member's) whose workspace token is reused.
Start-OAuth mode only: where to send the user after the connect completes. redirectUrl is accepted as an alias.
uriResponse Body
application/json
application/json
import Zernio from '@zernio/node';const zernio = new Zernio({ apiKey: process.env.ZERNIO_API_KEY });const { data } = await zernio.connect.listSlackChannels({ query: { profileId: 'profile_abc123', },});console.log(data);{
"team": {
"id": "T0123ABCD",
"name": "Acme",
"icon": "https://avatars.slack-edge.com/acme_88.png"
},
"channels": [
{
"id": "C0123ABCD",
"name": "general",
"isPrivate": false,
"isMember": true
},
{
"id": "G0456EFGH",
"name": "leadership",
"isPrivate": true,
"isMember": false
}
]
}{
"error": "Unauthorized"
}Connect a Shopify store with a custom-app Admin token POST
Token-paste alternative to the OAuth flow: connect a store using the Admin API access token of a custom app the merchant created in their own Shopify admin (Settings → Apps and sales channels → Develop apps, with the `read_content`/`write_content` scopes). Use this when the one-click OAuth connect is unavailable or when your users prefer not to install a third-party app on their store. The token is validated against the store before anything is saved; custom-app tokens do not expire. Connecting the same profile to a store again replaces the stored token in place.
List posts GET
Returns a paginated list of posts. Published posts include platformPostUrl with the public URL on each platform.