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

# Connect a Page

> Connects with a Facebook login result (`code` or `access_token`), or with the business's own Meta app (`page_id`, `page_access_token`, `app_id`, `app_secret`). When the login offers one Page, it connects at once. When it offers several, the answer lists them in `candidates`, and you call `pages/pick`. Needs the `channels:write` scope.



## OpenAPI

````yaml /openapi/partner.yaml post /api/v1/partner/tenants/{external_ref}/channels/meta/pages/
openapi: 3.1.0
info:
  title: ImpelLabs Partner API
  version: '1'
  description: >-
    The Partner API provisions customer businesses (tenants) and runs their
    channels, conversations and templates from your own product. Call it from
    your server with a partner key. Every path ends with a slash.
servers:
  - url: https://api.impellabs.tech
security:
  - bearer: []
tags:
  - name: Keys
    description: Your partner API keys.
  - name: Tenants
    description: Customer businesses, their channels, conversations and templates.
  - name: Webhooks
    description: Where your tenants' events go.
  - name: WhatsApp sign-up
    description: The settings of the hosted WhatsApp sign-up.
paths:
  /api/v1/partner/tenants/{external_ref}/channels/meta/pages/:
    post:
      tags:
        - Tenants
      summary: Connect a Page
      description: >-
        Connects with a Facebook login result (`code` or `access_token`), or
        with the business's own Meta app (`page_id`, `page_access_token`,
        `app_id`, `app_secret`). When the login offers one Page, it connects at
        once. When it offers several, the answer lists them in `candidates`, and
        you call `pages/pick`. Needs the `channels:write` scope.
      operationId: post_api_v1_partner_tenants_external_ref_channels_meta_pages
      parameters:
        - name: external_ref
          in: path
          required: true
          schema:
            type: string
          description: Your own id for the customer business, set when you created it.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                code:
                  type: string
                  description: A Facebook Login code.
                access_token:
                  type: string
                  description: A Facebook user access token, instead of `code`.
                page_id:
                  type: string
                  description: The Page to connect.
                page_access_token:
                  type: string
                  description: The Page token, for the business's own Meta app.
                app_id:
                  type: string
                  description: The business's own Meta app id.
                app_secret:
                  type: string
                  description: The business's own Meta app secret.
            example:
              code: CODE_FROM_META
        required: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              example:
                candidates:
                  - page_id: '300000000000001'
                    page_name: Acme Dental
                    ig_account_id: ''
                    ig_username: ''
                page:
                  page_id: '300000000000001'
                  page_name: Acme Dental
                  ig_account_id: ''
                  ig_username: ''
                  status: pending
                  is_primary: true
                  activated_at: null
                  channels:
                    - messenger
                  own_app: false
                  last_health: {}
                  last_health_check_at: null
                  settings: {}
                  location: null
                  agent: null
        '400':
          $ref: '#/components/responses/Invalid'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        4XX:
          description: The request is not valid or not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  responses:
    Invalid:
      description: >-
        A field is missing or wrong. The body names each field: {"field": "what
        to fix"}.
    Unauthorized:
      description: The credentials are missing, wrong, expired or revoked.
    Forbidden:
      description: These credentials may not do this.
    NotFound:
      description: There is no such row, or these credentials cannot see it.
  schemas:
    Error:
      type: object
      description: >-
        An error. Most errors carry `detail`. Some carry `error` with `code` and
        `message`.
      properties:
        detail:
          type: string
        code:
          type: string
        field:
          type: string
        error:
          type: object
          properties:
            code:
              type: string
            message:
              type: string
  securitySchemes:
    bearer:
      type: http
      scheme: bearer

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.