---
title: "List connector connections"
method: GET
path: "/api/apps/{app_id}/external-auth/list"
---

# List connector connections

`GET /api/apps/{app_id}/external-auth/list`

## Request

- Base URL: `https://app.base44.com`
- URL: `https://app.base44.com/api/apps/{app_id}/external-auth/list`
- Auth: HTTP bearer

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

## Path parameters

- `app_id` string, required: ID of the app.

## Response `200`

The app's connector connections.

- ListIntegrationsResponse: The app's connector connections.
  - `integrations` IntegrationInfo[], required: One entry per connector the app has a connection for.
    - `integration_type` union, required: Connector this connection is for.
      - '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'
      - string
    - `auth_method` 'oauth' | 'platform_credentials': 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.
    - `user_email` string, nullable, required: Email of the collaborator who made the connection. It's `Base44` for a `platform_credentials` connector on Base44's credentials and `null` for one on the app's own credentials. It's `Unknown` when the account no longer exists, and can be `null` when another collaborator made the connection.
    - `integration_account_identifier` string, nullable, required: 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.
    - `status` 'active' | 'expired' | 'disconnected', required: Enum for integration status values in the database.
    - `created_at` string, nullable, required: When the connection was authorized, as a UTC timestamp in ISO 8601 format, or `null` if unknown.
    - `scopes` string[], required: OAuth scopes the connection was granted.
    - `requires_connection_config` boolean: Whether reconnecting needs values from [Get connector connection fields](/api-reference/get-connector-connection-fields) (`true`) or not (`false`).
    - `connected_by_me` boolean: Whether you made the connection (`true`) or another collaborator did (`false`).
    - `connection_id` string, nullable: ID of the underlying connection, or `null` for a disconnected one or a `platform_credentials` connector on Base44's credentials.
    - `connection_ownership` string, nullable: 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 on Base44's credentials.
  - `school_blocked_connector_types` string[]: Connectors requiring school approval before shared accounts can connect.

## Other responses

- `401`: Missing or invalid credentials.
- `403`: You don't have editor access to this app, or you used a workspace API key.
- `404`: App not found.
- `409`: The app's workspace requires an unlocked SSO session.
- `429`: Rate limit reached. Retry later.

## Changes

> 58 revisions in range; 1 not diffed.

- **2026-10-13** `b92cc2f13639`: 1 info
  - added the optional property `school_blocked_connector_types` to the response with the `200` status
- **2026-10-12** `5e139db2e643`: 1 info
  - the endpoint scheme security `PersonalAccessTokenAuth` was added to the API
- **2026-09-29** `d2b7ac8beb0c`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/adexad/apis/base44-app-management-api/changes/api/apps/:app_id/external-auth/list/get.md)

---

[API](https://skmtc.dev/adexad/apis/base44-app-management-api.md) · [All operations](https://skmtc.dev/adexad/apis/base44-app-management-api/llms.txt) · [OpenAPI document](https://skmtc.dev/adexad/apis/base44-app-management-api/revisions/fa29e915c226?raw)
