Skip to content

Latest commit

 

History

History
925 lines (515 loc) · 34.1 KB

File metadata and controls

925 lines (515 loc) · 34.1 KB

\ConnectApi

All URIs are relative to https://zernio.com/api

Method HTTP request Description
complete_telegram_connect PATCH /v1/connect/telegram Check Telegram status
connect_bluesky_credentials POST /v1/connect/bluesky/credentials Connect Bluesky account
connect_whats_app_credentials POST /v1/connect/whatsapp/credentials Connect WhatsApp via credentials
get_connect_url GET /v1/connect/{platform} Get OAuth connect URL
get_facebook_pages GET /v1/accounts/{accountId}/facebook-page List Facebook pages
get_gmb_locations GET /v1/accounts/{accountId}/gmb-locations List GBP locations
get_linked_in_organizations GET /v1/accounts/{accountId}/linkedin-organizations List LinkedIn orgs
get_pending_o_auth_data GET /v1/connect/pending-data Get pending OAuth data
get_pinterest_boards GET /v1/accounts/{accountId}/pinterest-boards List Pinterest boards
get_reddit_flairs GET /v1/accounts/{accountId}/reddit-flairs List subreddit flairs
get_reddit_subreddits GET /v1/accounts/{accountId}/reddit-subreddits List Reddit subreddits
get_telegram_connect_status GET /v1/connect/telegram Generate Telegram code
handle_o_auth_callback POST /v1/connect/{platform} Complete OAuth callback
initiate_telegram_connect POST /v1/connect/telegram Connect Telegram directly
list_facebook_pages GET /v1/connect/facebook/select-page List Facebook pages
list_google_business_locations GET /v1/connect/googlebusiness/locations List GBP locations
list_linked_in_organizations GET /v1/connect/linkedin/organizations List LinkedIn orgs
list_pinterest_boards_for_selection GET /v1/connect/pinterest/select-board List Pinterest boards
list_snapchat_profiles GET /v1/connect/snapchat/select-profile List Snapchat profiles
select_facebook_page POST /v1/connect/facebook/select-page Select Facebook page
select_google_business_location POST /v1/connect/googlebusiness/select-location Select GBP location
select_linked_in_organization POST /v1/connect/linkedin/select-organization Select LinkedIn org
select_pinterest_board POST /v1/connect/pinterest/select-board Select Pinterest board
select_snapchat_profile POST /v1/connect/snapchat/select-profile Select Snapchat profile
update_facebook_page PUT /v1/accounts/{accountId}/facebook-page Update Facebook page
update_gmb_location PUT /v1/accounts/{accountId}/gmb-locations Update GBP location
update_linked_in_organization PUT /v1/accounts/{accountId}/linkedin-organization Switch LinkedIn account type
update_pinterest_boards PUT /v1/accounts/{accountId}/pinterest-boards Set default Pinterest board
update_reddit_subreddits PUT /v1/accounts/{accountId}/reddit-subreddits Set default subreddit

complete_telegram_connect

models::CompleteTelegramConnect200Response complete_telegram_connect(code) Check Telegram status

Poll this endpoint to check if a Telegram access code has been used to connect a channel/group. Recommended polling interval: 3 seconds. Status values: pending (waiting for user), connected (channel/group linked), expired (generate a new code).

Parameters

Name Type Description Required Notes
code String The access code to check status for [required]

Return type

models::CompleteTelegramConnect200Response

Authorization

bearerAuth

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

connect_bluesky_credentials

models::ConnectBlueskyCredentials200Response connect_bluesky_credentials(connect_bluesky_credentials_request) Connect Bluesky account

Connect a Bluesky account using identifier (handle or email) and an app password. To get your userId for the state parameter, call GET /v1/users which includes a currentUserId field.

Parameters

Name Type Description Required Notes
connect_bluesky_credentials_request ConnectBlueskyCredentialsRequest [required]

Return type

models::ConnectBlueskyCredentials200Response

Authorization

bearerAuth

HTTP request headers

  • Content-Type: application/json
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

connect_whats_app_credentials

models::ConnectWhatsAppCredentials200Response connect_whats_app_credentials(connect_whats_app_credentials_request) Connect WhatsApp via credentials

Connect a WhatsApp Business Account by providing Meta credentials directly. This is the headless alternative to the Embedded Signup browser flow. To get the required credentials: 1. Go to Meta Business Suite (business.facebook.com) 2. Create or select a WhatsApp Business Account 3. In Business Settings > System Users, create a System User 4. Assign it the whatsapp_business_management and whatsapp_business_messaging permissions 5. Generate a permanent access token 6. Get the WABA ID from WhatsApp Manager > Account Tools > Phone Numbers 7. Get the Phone Number ID from the same page (click on the number)

Parameters

Name Type Description Required Notes
connect_whats_app_credentials_request ConnectWhatsAppCredentialsRequest [required]

Return type

models::ConnectWhatsAppCredentials200Response

Authorization

bearerAuth

HTTP request headers

  • Content-Type: application/json
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

get_connect_url

models::GetConnectUrl200Response get_connect_url(platform, profile_id, redirect_url, headless) Get OAuth connect URL

Initiate an OAuth connection flow. Returns an authUrl to redirect the user to. Standard flow: Zernio hosts the selection UI, then redirects to your redirect_url. Headless mode (headless=true): user is redirected to your redirect_url with OAuth data for custom UI. Use the platform-specific selection endpoints to complete.

Parameters

Name Type Description Required Notes
platform String Social media platform to connect [required]
profile_id String Your Zernio profile ID (get from /v1/profiles) [required]
redirect_url Option<String> Your custom redirect URL after connection completes. Standard mode appends ?connected={platform}&profileId=X&accountId=Y&username=Z. Headless mode appends OAuth data params for platforms requiring selection (e.g. LinkedIn orgs, Facebook pages). If no selection is needed, the account is created directly and the redirect includes accountId.
headless Option<bool> When true, the user is redirected to your redirect_url with raw OAuth data (code, state) instead of Zernio's default account selection UI. Use this to build a custom connect experience. [default to false]

Return type

models::GetConnectUrl200Response

Authorization

bearerAuth

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

get_facebook_pages

models::GetFacebookPages200Response get_facebook_pages(account_id) List Facebook pages

Returns all Facebook pages the connected account has access to, including the currently selected page.

Parameters

Name Type Description Required Notes
account_id String [required]

Return type

models::GetFacebookPages200Response

Authorization

bearerAuth

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

get_gmb_locations

models::GetGmbLocations200Response get_gmb_locations(account_id) List GBP locations

Returns all Google Business Profile locations the connected account has access to, including the currently selected location.

Parameters

Name Type Description Required Notes
account_id String [required]

Return type

models::GetGmbLocations200Response

Authorization

bearerAuth

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

get_linked_in_organizations

models::GetLinkedInOrganizations200Response get_linked_in_organizations(account_id) List LinkedIn orgs

Returns LinkedIn organizations (company pages) the connected account has admin access to.

Parameters

Name Type Description Required Notes
account_id String [required]

Return type

models::GetLinkedInOrganizations200Response

Authorization

bearerAuth

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

get_pending_o_auth_data

models::GetPendingOAuthData200Response get_pending_o_auth_data(token) Get pending OAuth data

Fetch pending OAuth data for headless mode using the pendingDataToken from the redirect URL. One-time use, expires after 10 minutes. No authentication required.

Parameters

Name Type Description Required Notes
token String The pending data token from the OAuth redirect URL (pendingDataToken parameter) [required]

Return type

models::GetPendingOAuthData200Response

Authorization

bearerAuth

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

get_pinterest_boards

models::GetPinterestBoards200Response get_pinterest_boards(account_id) List Pinterest boards

Returns the boards available for a connected Pinterest account. Use this to get a board ID when creating a Pinterest post.

Parameters

Name Type Description Required Notes
account_id String [required]

Return type

models::GetPinterestBoards200Response

Authorization

bearerAuth

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

get_reddit_flairs

models::GetRedditFlairs200Response get_reddit_flairs(account_id, subreddit) List subreddit flairs

Returns available post flairs for a subreddit. Some subreddits require a flair when posting.

Parameters

Name Type Description Required Notes
account_id String [required]
subreddit String Subreddit name (without "r/" prefix) to fetch flairs for [required]

Return type

models::GetRedditFlairs200Response

Authorization

bearerAuth

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

get_reddit_subreddits

models::GetRedditSubreddits200Response get_reddit_subreddits(account_id) List Reddit subreddits

Returns the subreddits the connected Reddit account can post to. Use this to get a subreddit name when creating a Reddit post.

Parameters

Name Type Description Required Notes
account_id String [required]

Return type

models::GetRedditSubreddits200Response

Authorization

bearerAuth

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

get_telegram_connect_status

models::GetTelegramConnectStatus200Response get_telegram_connect_status(profile_id) Generate Telegram code

Generate an access code (valid 15 minutes) for connecting a Telegram channel or group. Add the bot as admin, then send the code + @yourchannel to the bot. Poll PATCH /v1/connect/telegram to check status.

Parameters

Name Type Description Required Notes
profile_id String The profile ID to connect the Telegram account to [required]

Return type

models::GetTelegramConnectStatus200Response

Authorization

bearerAuth

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

handle_o_auth_callback

handle_o_auth_callback(platform, handle_o_auth_callback_request) Complete OAuth callback

Exchange the OAuth authorization code for tokens and connect the account to the specified profile.

Parameters

Name Type Description Required Notes
platform String [required]
handle_o_auth_callback_request HandleOAuthCallbackRequest [required]

Return type

(empty response body)

Authorization

bearerAuth

HTTP request headers

  • Content-Type: application/json
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

initiate_telegram_connect

models::InitiateTelegramConnect200Response initiate_telegram_connect(initiate_telegram_connect_request) Connect Telegram directly

Connect a Telegram channel/group directly using the chat ID. Alternative to the access code flow. The bot must already be an admin in the channel/group.

Parameters

Name Type Description Required Notes
initiate_telegram_connect_request InitiateTelegramConnectRequest [required]

Return type

models::InitiateTelegramConnect200Response

Authorization

bearerAuth

HTTP request headers

  • Content-Type: application/json
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

list_facebook_pages

models::ListFacebookPages200Response list_facebook_pages(profile_id, temp_token) List Facebook pages

Returns the list of Facebook Pages the user can manage after OAuth. Extract tempToken and userProfile from the OAuth redirect params and pass them here. Use the X-Connect-Token header if connecting via API key.

Parameters

Name Type Description Required Notes
profile_id String Profile ID from your connection flow [required]
temp_token String Temporary Facebook access token from the OAuth callback redirect [required]

Return type

models::ListFacebookPages200Response

Authorization

connectToken, bearerAuth

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

list_google_business_locations

models::ListGoogleBusinessLocations200Response list_google_business_locations(profile_id, temp_token) List GBP locations

For headless flows. Returns the list of GBP locations the user can manage. Use X-Connect-Token if connecting via API key.

Parameters

Name Type Description Required Notes
profile_id String Profile ID from your connection flow [required]
temp_token String Temporary Google access token from the OAuth callback redirect [required]

Return type

models::ListGoogleBusinessLocations200Response

Authorization

connectToken, bearerAuth

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

list_linked_in_organizations

models::ListLinkedInOrganizations200Response list_linked_in_organizations(temp_token, org_ids) List LinkedIn orgs

Fetch full LinkedIn organization details (logos, vanity names, websites) for custom UI. No authentication required, just the tempToken from OAuth.

Parameters

Name Type Description Required Notes
temp_token String The temporary LinkedIn access token from the OAuth redirect [required]
org_ids String Comma-separated list of organization IDs to fetch details for (max 100) [required]

Return type

models::ListLinkedInOrganizations200Response

Authorization

bearerAuth

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

list_pinterest_boards_for_selection

models::ListPinterestBoardsForSelection200Response list_pinterest_boards_for_selection(x_connect_token, profile_id, temp_token) List Pinterest boards

For headless flows. Returns Pinterest boards the user can post to. Use X-Connect-Token from the redirect URL.

Parameters

Name Type Description Required Notes
x_connect_token String Short-lived connect token from the OAuth redirect [required]
profile_id String Your Zernio profile ID [required]
temp_token String Temporary Pinterest access token from the OAuth callback redirect [required]

Return type

models::ListPinterestBoardsForSelection200Response

Authorization

bearerAuth

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

list_snapchat_profiles

models::ListSnapchatProfiles200Response list_snapchat_profiles(x_connect_token, profile_id, temp_token) List Snapchat profiles

For headless flows. Returns Snapchat Public Profiles the user can post to. Use X-Connect-Token from the redirect URL.

Parameters

Name Type Description Required Notes
x_connect_token String Short-lived connect token from the OAuth redirect [required]
profile_id String Your Zernio profile ID [required]
temp_token String Temporary Snapchat access token from the OAuth callback redirect [required]

Return type

models::ListSnapchatProfiles200Response

Authorization

bearerAuth

HTTP request headers

  • Content-Type: Not defined
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

select_facebook_page

models::SelectFacebookPage200Response select_facebook_page(select_facebook_page_request) Select Facebook page

Complete the headless flow by saving the user's selected Facebook page. Pass the userProfile from the OAuth redirect and use X-Connect-Token if connecting via API key.

Parameters

Name Type Description Required Notes
select_facebook_page_request SelectFacebookPageRequest [required]

Return type

models::SelectFacebookPage200Response

Authorization

connectToken, bearerAuth

HTTP request headers

  • Content-Type: application/json
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

select_google_business_location

models::SelectGoogleBusinessLocation200Response select_google_business_location(select_google_business_location_request) Select GBP location

Complete the headless flow by saving the user's selected GBP location. Include userProfile from the OAuth redirect (contains refresh token). Use X-Connect-Token if connecting via API key.

Parameters

Name Type Description Required Notes
select_google_business_location_request SelectGoogleBusinessLocationRequest [required]

Return type

models::SelectGoogleBusinessLocation200Response

Authorization

connectToken, bearerAuth

HTTP request headers

  • Content-Type: application/json
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

select_linked_in_organization

models::SelectLinkedInOrganization200Response select_linked_in_organization(select_linked_in_organization_request) Select LinkedIn org

Complete the LinkedIn connection flow. Set accountType to "personal" or "organization" to connect as a company page. Use X-Connect-Token if connecting via API key.

Parameters

Name Type Description Required Notes
select_linked_in_organization_request SelectLinkedInOrganizationRequest [required]

Return type

models::SelectLinkedInOrganization200Response

Authorization

bearerAuth

HTTP request headers

  • Content-Type: application/json
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

select_pinterest_board

models::SelectPinterestBoard200Response select_pinterest_board(select_pinterest_board_request) Select Pinterest board

Complete the Pinterest connection flow. After OAuth, use this endpoint to save the selected board and complete the account connection. Use the X-Connect-Token header if you initiated the connection via API key.

Parameters

Name Type Description Required Notes
select_pinterest_board_request SelectPinterestBoardRequest [required]

Return type

models::SelectPinterestBoard200Response

Authorization

bearerAuth

HTTP request headers

  • Content-Type: application/json
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

select_snapchat_profile

models::SelectSnapchatProfile200Response select_snapchat_profile(select_snapchat_profile_request, x_connect_token) Select Snapchat profile

Complete the Snapchat connection flow by saving the selected Public Profile. Snapchat requires a Public Profile to publish content. Use X-Connect-Token if connecting via API key.

Parameters

Name Type Description Required Notes
select_snapchat_profile_request SelectSnapchatProfileRequest [required]
x_connect_token Option<String> Short-lived connect token from the OAuth redirect (for API users)

Return type

models::SelectSnapchatProfile200Response

Authorization

bearerAuth

HTTP request headers

  • Content-Type: application/json
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

update_facebook_page

models::UpdateFacebookPage200Response update_facebook_page(account_id, update_facebook_page_request) Update Facebook page

Switch which Facebook Page is active for a connected account.

Parameters

Name Type Description Required Notes
account_id String [required]
update_facebook_page_request UpdateFacebookPageRequest [required]

Return type

models::UpdateFacebookPage200Response

Authorization

bearerAuth

HTTP request headers

  • Content-Type: application/json
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

update_gmb_location

models::UpdateGmbLocation200Response update_gmb_location(account_id, update_gmb_location_request) Update GBP location

Switch which GBP location is active for a connected account.

Parameters

Name Type Description Required Notes
account_id String [required]
update_gmb_location_request UpdateGmbLocationRequest [required]

Return type

models::UpdateGmbLocation200Response

Authorization

bearerAuth

HTTP request headers

  • Content-Type: application/json
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

update_linked_in_organization

models::ConnectBlueskyCredentials200Response update_linked_in_organization(account_id, update_linked_in_organization_request) Switch LinkedIn account type

Switch a LinkedIn account between personal profile and organization (company page) posting.

Parameters

Name Type Description Required Notes
account_id String [required]
update_linked_in_organization_request UpdateLinkedInOrganizationRequest [required]

Return type

models::ConnectBlueskyCredentials200Response

Authorization

bearerAuth

HTTP request headers

  • Content-Type: application/json
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

update_pinterest_boards

models::ConnectBlueskyCredentials200Response update_pinterest_boards(account_id, update_pinterest_boards_request) Set default Pinterest board

Sets the default board used when publishing pins for this account.

Parameters

Name Type Description Required Notes
account_id String [required]
update_pinterest_boards_request UpdatePinterestBoardsRequest [required]

Return type

models::ConnectBlueskyCredentials200Response

Authorization

bearerAuth

HTTP request headers

  • Content-Type: application/json
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]

update_reddit_subreddits

models::UpdateRedditSubreddits200Response update_reddit_subreddits(account_id, update_reddit_subreddits_request) Set default subreddit

Sets the default subreddit used when publishing posts for this Reddit account.

Parameters

Name Type Description Required Notes
account_id String [required]
update_reddit_subreddits_request UpdateRedditSubredditsRequest [required]

Return type

models::UpdateRedditSubreddits200Response

Authorization

bearerAuth

HTTP request headers

  • Content-Type: application/json
  • Accept: application/json

[Back to top] [Back to API list] [Back to Model list] [Back to README]