---
title: "Get OAuth connect URL"
method: GET
path: "/v1/connect/{platform}"
tags: ["Connect"]
---

# Get OAuth connect URL

`GET /v1/connect/{platform}`

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.

TikTok: every connection now goes through the TikTok for Business app. One TikTok account per
profile, so connecting on a profile that already holds one replaces it. Reconnecting the SAME
account keeps it and all of its history; authorizing a DIFFERENT TikTok account takes the slot
over and permanently deletes the previous account's analytics, inbox and DM history. The two
are told apart by the `@handle` stored at the last connect, so an account whose handle has
been renamed on TikTok since then reads as a different account. An authorization that leaves
out a permission the connected account needs changes nothing at all and comes back as
`missing_tiktok_permissions`; connect again and accept every permission on TikTok's screen.

## Path parameters

- `platform` 'facebook' | 'instagram' | 'linkedin' | 'twitter' | 'tiktok' | 'youtube' | 'threads' | 'reddit' | 'pinterest' | 'bluesky' | 'googlebusiness' | 'telegram' | 'snapchat' | 'discord' | 'slack' | 'whatsapp', required

## Query parameters

- `profileId` string, required
- `redirect_url` string, uri
- `headless` boolean
- `loginMethod` 'instagram_login' | 'facebook_login'
- `onboarding` 'api' | 'business_app'
- `signup` 'hosted'
- `brandName` string
- `primaryColor` string
- `language` 'en' | 'es' | 'pt-BR'

## Response `200`

OAuth authorization URL to redirect user to

- object
  - `authUrl` string, uri — URL to redirect your user to for OAuth authorization
  - `state` string — State parameter for security (handled automatically)

## Other responses

- `400` — Missing/invalid parameters (e.g., invalid profileId format, or a non-absolute redirect_url)
- `401` — Unauthorized
- `402` — Payment method or enterprise contract required. The authenticated account hit a billing gate before the connection could proceed. Three reasons: - `free_tier_exceeded`: the team has connected more accounts than the free tier allows. Add a payment method on the dashboard to continue (the user will be billed per additional connected account). - `twitter_passthrough`: connecting an X account requires a card on file from day one because X API calls incur real per-call pass-through costs. Applies to the 1st X account, not only the 3rd+. - `enterprise_required`: the team is on an enterprise contract with a negotiated connected-account cap and has reached it. Self-service teams have NO connected-account cap (the $1/account rate continues at any scale), so this reason can only fire for teams whose contract sets an explicit limit. `dashboard_url` deep-links to the enterprise contact page rather than the billing tab. The end-user already has a card on file; this gate is about contract terms, not card collection. SDK consumers should switch on `reason` to render the right prompt. For `free_tier_exceeded` and `twitter_passthrough`, redirect the end-user to `dashboard_url`: it opens the add-payment-method drawer on the Zernio billing page, and the request succeeds once the card is on file. For `enterprise_required`, redirect to `dashboard_url` (the enterprise contact form) to adjust the contract's limit.
- `403` — No access to profile, BYOK required for AppSumo X, or Snapchat closed beta (code PLATFORM_BETA_RESTRICTED)
- `404` — Profile not found

## Changes

- **2026-09-22** `106013ac73b8` — 1 info
  - added the new enum value `pt-BR` to the `query` request parameter `language`
- **2026-09-09** `222e3a38a382` — 3 info
  - added the new optional `query` request parameter `brandName`
  - added the new optional `query` request parameter `language`
  - added the new optional `query` request parameter `primaryColor`
- **2026-09-09** `41eff0cffb2d` — 1 info
  - added the new optional `query` request parameter `signup`
- **2026-08-14** `875093317201` — 1 info
  - added the new optional `query` request parameter `onboarding`
- **2026-08-10** `f81ca70ea6b9` — 1 info
  - added the new optional `query` request parameter `loginMethod`

[Change history](https://skmtc.dev/zernio/apis/zernio-api/changes/v1/connect/:platform/get.md)

---

[API](https://skmtc.dev/zernio/apis/zernio-api.md) · [All operations](https://skmtc.dev/zernio/apis/zernio-api/llms.txt) · [OpenAPI document](https://skmtc.dev/zernio/apis/zernio-api/revisions/106013ac73b8?raw)
