---
title: "Select Facebook page"
method: POST
path: "/v1/connect/facebook/select-page"
tags: ["Connect"]
---

# Select Facebook page

`POST /v1/connect/facebook/select-page`

Complete a classic Facebook Page connection with profileId, pageId, tempToken and userProfile. Use X-Connect-Token for headless connections. The dashboard business-login picker instead sends only selectionToken and pageId to complete a Meta Ads connection. The server verifies the initiating user, profile access, current grants and connection eligibility. The profile, platform token, ad-account scope and return URL come only from the encrypted grant. Business selection requires a session or bearer authentication for the initiating user; X-Connect-Token is not accepted. It returns redirect_url with connected=metaads on success or an eligibility error redirect.

## Request body

- object
  - `selectionToken` string, required — Encrypted dashboard business-login grant. Expires after ten minutes.
  - `pageId` string, required — A Page ID from the granted Pages returned by listFacebookPages.

## Response `200`

Facebook Page connected or business-login redirect returned.

- object
  - `message` string
  - `redirect_url` string — Redirect URL when a custom redirect_url was provided or a business Page was selected.
  - `account` object
    - `accountId` string — ID of the created SocialAccount
    - `platform` 'facebook'
    - `username` string
    - `displayName` string
    - `profilePicture` string
    - `isActive` boolean
    - `selectedPageName` string

## Other responses

- `400` — Invalid or expired selectionToken, invalid Page choice, forbidden grant overrides, or missing classic connection fields.
- `401` — Unauthorized
- `403` — User does not have access to the specified profile
- `404` — Selected page not found in available pages
- `409` — Reconnect identity mismatch. The OAuth was initiated as a `force=true` token-recovery re-auth (`GET /v1/connect/{platform}/ads`), but the grant landed on a different Facebook user or page than the connected account. The existing account is left untouched.
- `500` — Failed to save Facebook connection

## Changes

- **2026-09-10** `e70ed06e7150` — 1 breaking, 5 warning, 1 info
  - the request's body type changed from `object` to no type
  - removed the request property `pageId`
  - removed the request property `profileId`
  - removed the request property `redirect_url`
  - …3 more

[Change history](https://skmtc.dev/zernio/apis/zernio-api/changes/v1/connect/facebook/select-page/post.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/fdaf9a9fb1a7?raw)
