> ## 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.

# List connector connections

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

Returns the app's connector connections, whether active, expired, or disconnected, with who made each one and the scopes it was granted. Read `status` to tell whether a connection still works. Connections made with a workspace connector's own OAuth app aren't included.

Each active connection is checked as you list it, so `status` can read `expired` before the app next uses the connector. The list isn't paginated, since an app has at most one connection for each connector.

This is limited to 60 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/list
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/list:
    get:
      summary: List connector connections
      description: >-
        <Info>This API is in beta. Endpoints, fields, and behavior may still
        change, so avoid depending on it in production.</Info>


        Returns the app's connector connections, whether active, expired, or
        disconnected, with who made each one and the scopes it was granted. Read
        `status` to tell whether a connection still works. Connections made with
        a workspace connector's own OAuth app aren't included.


        Each active connection is checked as you list it, so `status` can read
        `expired` before the app next uses the connector. The list isn't
        paginated, since an app has at most one connection for each connector.


        This is limited to 60 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: list_integrations_api_apps__app_id__external_auth_list_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
      responses:
        '200':
          description: The app's connector connections.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListIntegrationsResponse'
        '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.
        '409':
          description: The app's workspace requires an unlocked SSO session.
        '429':
          description: Rate limit reached. Retry later.
components:
  schemas:
    ListIntegrationsResponse:
      properties:
        integrations:
          items:
            $ref: '#/components/schemas/IntegrationInfo'
          type: array
          title: Integrations
          description: One entry per connector the app has a connection for.
          example:
            - auth_method: oauth
              connected_by_me: true
              connection_id: base44_6820f3a4e7b91d003c45a1f7
              connection_ownership: app
              created_at: '2026-01-15T09:23:41Z'
              integration_account_identifier: jane@acme.com
              integration_type: googlecalendar
              requires_connection_config: false
              scopes:
                - https://www.googleapis.com/auth/calendar.readonly
              status: active
              user_email: jane@acme.com
      type: object
      required:
        - integrations
      title: ListIntegrationsResponse
      description: The app's connector connections.
    IntegrationInfo:
      properties:
        integration_type:
          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_]+$
          title: Integration Type
          description: Connector this connection is for.
          example: googlecalendar
        auth_method:
          type: string
          enum:
            - oauth
            - platform_credentials
          title: Auth Method
          description: >-
            How the connector authenticates. Either `oauth`, for a provider
            account someone signed in with, or `platform_credentials`, for a
            connector that runs on Base44's own credentials.
          default: oauth
          example: oauth
        user_email:
          anyOf:
            - type: string
            - type: 'null'
          title: User Email
          description: >-
            Email of the collaborator who made the connection. It's `Base44` for
            a `platform_credentials` connector, `Unknown` when the account no
            longer exists, and can be `null` when another collaborator made the
            connection.
          example: jane@acme.com
        integration_account_identifier:
          anyOf:
            - type: string
            - type: 'null'
          title: Integration Account Identifier
          description: >-
            The provider account that's connected, such as its email or
            username. The value is `null` when the provider doesn't report one,
            the connection isn't active, or another collaborator made the
            connection.
          example: jane@acme.com
        status:
          $ref: '#/components/schemas/IntegrationStatus'
          description: >-
            State of the connection. One of `active`, `expired` (it needs to be
            authorized again), or `disconnected`.
          example: active
        created_at:
          anyOf:
            - type: string
            - type: 'null'
          title: Created At
          description: >-
            When the connection was authorized, as a UTC timestamp in ISO 8601
            format, or `null` if unknown.
          example: '2026-01-15T09:23:41Z'
        scopes:
          items:
            type: string
          type: array
          title: Scopes
          description: OAuth scopes the connection was granted.
          example:
            - https://www.googleapis.com/auth/calendar.readonly
        requires_connection_config:
          type: boolean
          title: Requires Connection Config
          description: >-
            Whether reconnecting needs values from [Get connector connection
            fields](/api-reference/get-connector-connection-fields) (`true`) or
            not (`false`).
          default: false
          example: false
        connected_by_me:
          type: boolean
          title: Connected By Me
          description: >-
            Whether you made the connection (`true`) or another collaborator did
            (`false`).
          default: true
          example: true
        connection_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Connection Id
          description: >-
            ID of the underlying connection, or `null` for a
            `platform_credentials` connector or a disconnected one.
          example: base44_6820f3a4e7b91d003c45a1f7
        connection_ownership:
          anyOf:
            - type: string
            - type: 'null'
          title: Connection Ownership
          description: >-
            Who owns the connection. Either `app`, for a connection only this
            app uses, or `workspace`, for one shared by apps across the
            workspace. The value is `null` for a `platform_credentials`
            connector.
          example: app
      type: object
      required:
        - integration_type
        - user_email
        - integration_account_identifier
        - status
        - created_at
        - scopes
      title: IntegrationInfo
    IntegrationStatus:
      type: string
      enum:
        - active
        - expired
        - disconnected
      title: IntegrationStatus
      description: Enum for integration status values in the database.
  securitySchemes:
    PersonalAccessTokenAuth:
      type: http
      scheme: bearer
      description: 'Personal access token, sent as `Authorization: Bearer <token>`.'

````