Zernio
Zernio
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 loginGET

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

Other

Read a Facebook Page's webhook subscriptionGETRe-subscribe a Facebook Page to Zernio's webhooksPOST
Dashboard
llms.txtOpenAPI
OverviewPlatformsAPI ReferenceResources
Connect

Get a YouTube video transcript

Returns the caption track YouTube already holds for one of the connected channel's own videos, as plain text plus timed cues. Use it instead of downloading and transcribing the video yourself.

Auto-generated (ASR) tracks are included: YouTube serves them to the channel owner, which is what the connected account is. Uploaded tracks win over auto-generated ones when both exist for a language.

Caching: we store the transcript on first read and serve it from there afterwards, so you do not need to cache it yourself. A cached read costs no YouTube quota and does not call YouTube at all. source tells you which happened (youtube on the first read, cache after). Pass refresh=true only when the captions actually changed on YouTube, since that re-downloads.

Notes:

  • Only videos owned by this connected channel. Anything else returns 404.
  • contentDetails.caption in YouTube's own API reads false on videos that DO have a serving auto-generated track, so it is not a usable availability signal. Call this endpoint and handle the 404.
  • YouTube generates auto-captions only for videos with recognisable speech, and can take a few hours after upload to publish them.

GET
/v1/accounts/{accountId}/youtube-captions

Authorization

bearerAuth
AuthorizationBearer <token>

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

In: header

Path Parameters

accountId*string

The connected YouTube account.

Query Parameters

videoId*string

The YouTube video id (the platformPostId on a synced external post).

language?string

BCP-47 language tag as YouTube labels the track. en also matches an en-GB track. Omit to take the best available track.

format?string

json returns timed cues; srt returns the raw SubRip body instead. text is present either way.

Default"json"

Value in

  • "json"
  • "srt"
refresh?boolean

Re-download from YouTube instead of serving the stored copy. Spends 200 quota units.

Defaultfalse

Response Body

application/json

application/json

application/json

application/json

{  "accountId": "68a1f2c3d4e5f6a7b8c9d0e1",  "videoId": "sdw1FML60tM",  "language": "en",  "trackId": "AUieDaanCEjmJQdL7wfZbe1QDQTbseX-hToYw99pmOJitlJz868",  "trackKind": "asr",  "source": "cache",  "fetchedAt": "2026-08-27T21:09:54.000Z",  "text": "Hey, this is Mickey. I'm the founder of this portfolio of three websites which are mainly monetized via AdSense.",  "cues": [    {      "start": 1.6,      "end": 8.88,      "text": "Hey, this is Mickey. I'm the founder of"    },    {      "start": 5.04,      "end": 12.8,      "text": "this portfolio of three websites"    }  ],  "availableTracks": [    {      "trackId": "AUieDaanCEjmJQdL7wfZbe1QDQTbseX-hToYw99pmOJitlJz868",      "language": "en",      "trackKind": "asr",      "name": ""    }  ]}
Was this page helpful?

Set default YouTube playlist

Sets the default playlist used when publishing videos for this account. When a post does not specify a playlistId, the default playlist is not automatically used (it is stored for client-side convenience).

Get Shopify OAuth connect URL

Initiate the Shopify OAuth flow for a store. Shopify is a connect-only platform: the connected account does not publish social posts, it powers the Blogs API (`/v1/accounts/{accountId}/blogs`). Returns an `authUrl` to redirect the merchant to; after they approve the install, Shopify redirects their browser to Zernio's callback, the account is created on the profile (platform `shopify`), and the browser is redirected to `redirect_url` (or the Zernio dashboard when omitted). Requested scopes are `read_content` and `write_content` (content only; no customer or order data). Connecting the same profile to a store again refreshes the stored token in place.