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

# Get connector connection status

> <Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>

Returns where a connector authorization you started with [Start connector connection](/api-reference/start-connector-connection) stands. Poll it every few seconds after opening the link, until `status` is `ACTIVE` or `FAILED`.

An authorization nobody completes stays `PENDING`, so stop polling a few minutes after the link expires. A connection another collaborator started always reads as `PENDING` to you.

This is limited to 70 requests a minute per caller. Some workspaces have a different limit.

<Note>This endpoint accepts a personal API key belonging to a user with editor access to the app, including a read-only key. Workspace API keys are not accepted.</Note>



## OpenAPI

````yaml /developers/references/app-management/app-management-openapi.json get /api/apps/{app_id}/external-auth/status
openapi: 3.1.0
info:
  title: Base44 App Management API
  version: 1.0.0
servers:
  - url: https://app.base44.com
security:
  - PersonalAccessTokenAuth: []
paths:
  /api/apps/{app_id}/external-auth/status:
    get:
      summary: Get connector connection status
      description: >-
        <Info>This API is in beta. Endpoints, fields, and behavior may still
        change, so avoid depending on it in production.</Info>


        Returns where a connector authorization you started with [Start
        connector connection](/api-reference/start-connector-connection) stands.
        Poll it every few seconds after opening the link, until `status` is
        `ACTIVE` or `FAILED`.


        An authorization nobody completes stays `PENDING`, so stop polling a few
        minutes after the link expires. A connection another collaborator
        started always reads as `PENDING` to you.


        This is limited to 70 requests a minute per caller. Some workspaces have
        a different limit.


        <Note>This endpoint accepts a personal API key belonging to a user with
        editor access to the app, including a read-only key. Workspace API keys
        are not accepted.</Note>
      operationId: get_integration_status_api_apps__app_id__external_auth_status_get
      parameters:
        - name: app_id
          in: path
          required: true
          schema:
            type: string
            description: ID of the app.
            title: App Id
          description: ID of the app.
          example: 6820f3a4e7b91d003c45a1f2
        - name: integration_type
          in: query
          required: true
          schema:
            anyOf:
              - type: string
                enum:
                  - googlecalendar
                  - google_classroom
                  - googledrive
                  - gmail
                  - googlesheets
                  - googledocs
                  - googleslides
                  - googlebigquery
                  - googlemeet
                  - googletasks
                  - googleads
                  - google_analytics
                  - google_search_console
                  - slack
                  - notion
                  - salesforce
                  - hubspot
                  - linkedin
                  - tiktok
                  - instagram
                  - discord
                  - slackbot
                  - wix
                  - github
                  - gitlab
                  - bamboohr
                  - dropbox
                  - clickup
                  - wrike
                  - box
                  - outlook
                  - linear
                  - airtable
                  - microsoft_teams
                  - share_point
                  - one_drive
                  - typeform
                  - splitwise
                  - hugging_face
                  - calendly
                  - contentful
                  - supabase
                  - snowflake
                  - databricks
                  - quickbooks
                  - square
              - type: string
                maxLength: 80
                minLength: 1
                pattern: ^[a-z0-9_]+$
            description: Connector the authorization is for.
            title: Integration Type
          description: Connector the authorization is for.
          example: googlecalendar
        - name: connection_id
          in: query
          required: true
          schema:
            type: string
            description: >-
              `connection_id` returned by [Start connector
              connection](/api-reference/start-connector-connection).
            title: Connection Id
          description: >-
            `connection_id` returned by [Start connector
            connection](/api-reference/start-connector-connection).
          example: base44_6820f3a4e7b91d003c45a1f7
      responses:
        '200':
          description: Where the authorization stands.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntegrationPollingStatusResult'
        '401':
          description: Missing or invalid credentials.
        '403':
          description: >-
            You don't have editor access to this app, or you used a workspace
            API key.
        '404':
          description: >-
            App not found, or the connector isn't available to you and the app
            has no connection for it.
        '409':
          description: The app's workspace requires an unlocked SSO session.
        '422':
          description: >-
            `integration_type` or `connection_id` is missing, or
            `integration_type` isn't a valid connector ID.
        '429':
          description: Rate limit reached. Retry later.
components:
  schemas:
    IntegrationPollingStatusResult:
      properties:
        status:
          $ref: '#/components/schemas/IntegrationPollingStatus'
          description: >-
            State of the authorization. `PENDING` while it's still in progress,
            `ACTIVE` once the connection is ready to use, or `FAILED` if it was
            refused, expired, or couldn't be completed.
          example: ACTIVE
        status_reason:
          anyOf:
            - type: string
            - type: 'null'
          title: Status Reason
          description: >-
            Why the authorization failed, when `status` is `FAILED` and you
            started it. The value is `null` otherwise.
          example: OAuth provider returned access_denied
      type: object
      required:
        - status
      title: IntegrationPollingStatusResult
      description: Where a connector authorization stands.
    IntegrationPollingStatus:
      type: string
      enum:
        - ACTIVE
        - FAILED
        - PENDING
      title: IntegrationPollingStatus
      description: Enum for integration polling statuses.
  securitySchemes:
    PersonalAccessTokenAuth:
      type: http
      scheme: bearer
      description: 'Personal access token, sent as `Authorization: Bearer <token>`.'

````