Start headless account connection
Begin connecting a NEW social account from your own UI (no SmartlyQ dashboard session needed). Returns a one-time connect_url (valid 15 minutes) — open it in a browser so the user can authorize. After they approve, the platform’s OAuth callback completes the connection and (if provided) redirects to return_url with ?connected=<count>&platform=<name>. Supported on all platforms. Platforms that expose multiple targets (YouTube channels, Google Business locations, Tumblr blogs, LinkedIn pages) connect them all automatically. Poll completion with GET /social/connect/{state_token}. Requires scope social:write.
Some platforms connect with credentials instead of a browser round trip, and return the connected account directly rather than a connect_url: Telegram (bot_token + chat), WhatsApp (waba_id + phone_number_id + access_token) and Bluesky (identifier + app_password).
Authorizations
API key from Developer dashboard (Bearer token).
Headers
Act inside a profile (sub-account) you own: data reads and writes target the profile workspace while billing, rate limits and usage stay on your own account. Requires the profiles:manage scope. Returns 404 for profiles you do not own and 409 for paused profiles.
Path Parameters
Platform to connect. All 15 platforms are supported (use twitter for X, gmb for Google Business). 14 are OAuth flows returning a connect_url (discord runs the server-webhook authorize flow). telegram is a CREDENTIAL connect instead: pass bot_token + chat in the body and the account connects immediately - no URL to open. whatsapp is a credential connect too: POST body { waba_id, phone_number_id, access_token } (a Meta system-user token) links one WhatsApp Business number.
facebook, instagram, twitter, linkedin, youtube, tiktok, threads, bluesky, pinterest, reddit, snapchat, tumblr, gmb, discord, telegram, whatsapp Body
Optional URL to redirect the user to after they finish authorizing.
Telegram only (required for it): your bot's token from @BotFather (e.g. 123456:AA...). Verified against Telegram (getMe/getChat/getChatMember - the bot must have posting rights in the chat) and stored encrypted.
Telegram only (required for it): the target channel/group as @channelusername or a numeric chat id. Private chats are rejected.
Bluesky only: your handle (e.g. yourname.bsky.social), DID, or account email. Send it with app_password to connect without a browser.
Bluesky only: an app password generated in Bluesky settings (format xxxx-xxxx-xxxx-xxxx) - never your account password, which is rejected. Supplying this connects the account immediately instead of returning a connect_url.
WhatsApp only (required for it): your WhatsApp Business Account id.
WhatsApp only (required for it): the phone number id to connect, from the WABA.
WhatsApp only (required for it): a system-user access token with whatsapp_business_messaging and whatsapp_business_management. Stored encrypted.

