Zernio
APIFor you
Zernio
APIFor you
API Reference

Connect

General

Get OAuth connect URLGETComplete OAuth callbackPOSTGet pending OAuth dataGETConnect ads for a platformGET

Facebook

List Facebook pagesGETSelect Facebook pagePOSTList Facebook pagesGETUpdate Facebook pagePUTComplete Meta business loginGETRead a Facebook Page's webhook subscriptionGETRe-subscribe a Facebook Page to Zernio's webhooksPOST

Google Business

List Google Business Profile locationsGETSelect Google Business Profile locationPOSTAssign Google Business Profile location to another profilePOSTList Google Business Profile locationsGETUpdate Google Business Profile locationPUT

Instagram

List Pages with a linked Instagram accountGETSelect the Page whose Instagram account to connectPOST

LinkedIn

List LinkedIn orgsGETSelect LinkedIn orgPOSTList LinkedIn orgsGETSwitch LinkedIn account typePUT

Pinterest

List Pinterest boardsGETSelect Pinterest boardPOSTList Pinterest boardsGETCreate Pinterest boardPOSTSet default Pinterest boardPUT

Reddit

List Reddit subredditsGETList subreddit flairsGETGet subreddit rulesGETSet Reddit post flairPOSTVote on a Reddit post or commentPOSTSet default subredditPUT

Bluesky

Connect Bluesky accountPOST

Discord

Connect a Discord channelPOST

Slack

List Slack channels for the channel pickerGETConnect a Slack channelPOST

Telegram

Generate Telegram codeGETConnect Telegram directlyPOSTCheck Telegram statusPATCH

Snapchat

List Snapchat profilesGETSelect Snapchat profilePOST

TikTok

Set TikTok brand identityPATCH

OpenAI Ads

Connect an OpenAI Ads accountPOST

WhatsApp

Connect WhatsApp via credentialsPOSTConnect WhatsApp from Embedded SignupPOSTGet Embedded Signup SDK configGETList numbers for selectionGETComplete number selectionPOST

YouTube

List YouTube playlistsGETCreate YouTube playlistPOSTSet default YouTube playlistPUTGet a YouTube video transcriptGET

Shopify

Get Shopify OAuth connect URLGETConnect a Shopify store with a custom-app Admin tokenPOST

WordPress

Get WordPress.com OAuth connect URLGETConnect self-hosted WordPress with an application passwordPOST

Other

Connect Webflow with a site API tokenPOSTConnect a Whop accountPOSTGet the saved welcome screenGETGet HubSpot OAuth connect URLGETGet Webflow OAuth URLGETGet Wix site install URLGETSave the welcome screenPUT
Dashboard
OverviewPlatformsAPI ReferenceResources
Connect

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.


GET
/v1/connect/slack

Authorization

bearerAuth
AuthorizationBearer <token>

API key authentication: send your Zernio API key in the Authorization header, prefixed with Bearer.

In: header

Query Parameters

profileId*string

Zernio profile the channel account will belong to. Must match the profile the OAuth flow was started on when pendingDataToken is used.

pendingDataToken?string

Nonce from the OAuth redirect (first connect).

Length16 <= length
accountId?string

Existing active Slack account (yours or a team member's) whose workspace token is reused.

redirect_url?string

Start-OAuth mode only: where to send the user after the connect completes. redirectUrl is accepted as an alias.

Formaturi
scopes?string

Start-OAuth mode only. Comma-separated permission areas to request instead of the full Slack scope set, with the same semantics as scopes on GET /v1/connect/{platform}: posting installs the bot with the channel scopes it needs to post, messaging adds the history, DM and reaction scopes the inbox reads; analytics, comments and ads add nothing on Slack. Omit it to request everything.

Response 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    }  ]}

Was this page helpful?

Connect a Discord channel

Finalize a Discord connect by binding channels to a profile. Served by a dedicated route, so it is not reachable through POST /v1/connect/{platform}. One connected account per channel: send channelIds to connect several channels of the server at once, or repeat the call with a different channelId.

Connect a Slack channel

Finalize a Slack connect by creating the per-channel account. Served by a dedicated route, so it is not reachable through POST /v1/connect/{platform}. Send pendingDataToken for a first connect (the nonce from the OAuth redirect) or accountId to add another channel to a workspace already connected.