> ## Documentation Index
> Fetch the complete documentation index at: https://info.bundle.social/llms.txt
> Use this file to discover all available pages before exploring further.

# OAuth Options

> Understand disableAutoLogin, tiktokForceLogin, forceBrowserOAuth, withBusinessScope, and Instagram connection methods.

These options affect how provider OAuth behaves. They are available in both hosted and custom flows unless noted otherwise.

***

## disableAutoLogin

Supported for **Facebook**, **Instagram via Facebook**, **Instagram direct OAuth**, and **TikTok** where the provider supports it.

When `true`, we add provider-specific flags that try to prevent silent account reuse.

Use it when your users manage many accounts from the same browser. Without it, the OAuth popup can reuse the last logged-in platform account.

```json theme={null}
{
  "disableAutoLogin": true
}
```

***

## tiktokForceLogin

Supported only for **TikTok** and currently experimental.

When `true`, bundle.social routes the user through TikTok logout before starting authorization. Use it when TikTok keeps reusing the wrong active account even with `disableAutoLogin`.

```json theme={null}
{
  "type": "TIKTOK",
  "tiktokForceLogin": true
}
```

<Warning>
  This signs the user out of their active TikTok browser session. Use it only when choosing a fresh account is more important than preserving that session.
</Warning>

***

## forceBrowserOAuth

Supported for **Instagram direct OAuth**.

When `true`, direct Instagram connections on phones try to open browser OAuth instead of the Instagram app flow. This helps when the Instagram iOS app deep-link flow gets stuck or returns users without completing authorization.

```json theme={null}
{
  "type": "INSTAGRAM",
  "instagramConnectionMethod": "INSTAGRAM",
  "forceBrowserOAuth": true
}
```

<Note>
  This is separate from `disableAutoLogin`. `forceBrowserOAuth` changes which Instagram OAuth surface we try to use. `disableAutoLogin` asks the provider to avoid silently reusing the current logged-in session where supported.
</Note>

***

## withBusinessScope

Supported for **Facebook**, **Instagram via Facebook**, and **YouTube**.

When `true`, OAuth requests broader access on top of the standard scope set:

* **Facebook** and **Instagram via Facebook** - the broader Meta scope set, including `business_management`, `ads_management`, and `ads_read` among the permissions we request.
* **YouTube** - the monetary analytics scope (`yt-analytics-monetary.readonly`), which enables **revenue/monetization data** in raw analytics. See [YouTube → Monetization](/api-reference/platforms/youtube#monetization).

When `false`, OAuth uses the standard scope set.

```json theme={null}
{
  "type": "FACEBOOK",
  "withBusinessScope": true
}
```

<Warning>
  Some Facebook Pages and Instagram accounts only appear in the picker when the connection was made with business scope. If something is missing from the list, reconnect using the other method (`withBusinessScope` flipped) before assuming the picker is wrong.
</Warning>

<Note>
  For **YouTube**, the monetary scope is optional. If the user doesn't grant it, the connection still succeeds - only monetization data is unavailable. Missing it never blocks a connection.
</Note>

***

## Instagram Connection Method

Supported for `type: "INSTAGRAM"` in custom UI and hosted portal links.

| Value       | Meaning                                                                  | Channel selection                                             |
| :---------- | :----------------------------------------------------------------------- | :------------------------------------------------------------ |
| `FACEBOOK`  | Instagram through Facebook Login. This is the default path when omitted. | Required. Use `set-channel`.                                  |
| `INSTAGRAM` | Direct Instagram OAuth.                                                  | Not supported. The account is selected directly during OAuth. |

Use Facebook Login when you need Facebook-backed Instagram features such as Page-connected account selection, comments, insights, location search, or Instagram audio search for Reels.

Use direct Instagram OAuth when you explicitly want the direct Instagram OAuth path and do not need Facebook-backed channel selection.

***

## serverUrl

Supported for **Mastodon** and **Bluesky** in the custom UI flow.

| Platform | Required?         | Example                   |
| :------- | :---------------- | :------------------------ |
| Mastodon | Yes               | `https://mastodon.social` |
| Bluesky  | No, but supported | `https://bsky.social`     |

```json theme={null}
{
  "type": "MASTODON",
  "teamId": "team_123",
  "redirectUrl": "https://app.example.com/oauth/callback",
  "serverUrl": "https://mastodon.social"
}
```
