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

# List integrations

`GET /integrations` returns the workspace's integration catalog. Beyond the
user's own integrations, the response can include **auto-generated** entries
discovered from connectors, external apps, and the public web — what we call
"infinite integrations".

## Sources

| Source                 | When it's included                                                                                                      |
| ---------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| Workspace integrations | Always.                                                                                                                 |
| Connectors             | Workspace setting `autoGenerateIntegrationsFromConnectors`, or `connectors=1`, or `all=1`.                              |
| External apps          | Workspace setting `autoGenerateIntegrationsFromExternalApps`, or `externalApps=1`, or `all=1`.                          |
| Web search             | Workspace setting `autoGenerateIntegrationsFromWebSearch`, or `websearch=1`, or `all=1`. Requires a non-empty `search`. |

`all=1` force-enables every source. Auto-generated items have `isReadOnly: true`
and a synthetic `key` (e.g. `~connector.membrane`, `~app.membrane`,
`~search.membrane--getmembrane_com`) that you can pass to any endpoint
accepting an integration selector.

## Deduplication

The same canonical app can surface from more than one source — a connector
for Membrane, an external app at `https://getmembrane.com`, and a web-search
hit for the same brand all referring to the same product. The endpoint
collapses these into a single row.

<Warning>
  **Pages may be smaller than `limit`.** Dedup runs after pagination, so a request for `limit=20` can return fewer items
  when duplicates are dropped. The cursor is unaffected; keep paginating until the response has no `cursor`.
</Warning>

## Search

Set the `search` query parameter to filter the catalog. When the web-search
source is enabled, search dispatches a single web-search call per request and
caches results for 24h at the org level.


## OpenAPI

````yaml GET /integrations
openapi: 3.0.0
info:
  title: Membrane API
  description: API documentation for Membrane Engine
  version: '1.0'
  contact: {}
servers:
  - url: https://api.getmembrane.com
security:
  - bearer: []
tags: []
paths:
  /integrations:
    get:
      tags:
        - Integrations
      summary: List all integrations
      operationId: listIntegrations
      parameters:
        - name: limit
          required: false
          in: query
          description: Maximum number of items to return (1-1000)
          schema:
            minimum: 1
            maximum: 1000
            type: integer
        - name: cursor
          required: false
          in: query
          description: Pagination cursor from a previous response
          schema:
            type: string
        - name: search
          required: false
          in: query
          description: Text search query to filter results
          schema:
            type: string
        - name: connectorId
          required: false
          in: query
          schema:
            type: string
        - name: includeArchived
          required: false
          in: query
          schema:
            type: boolean
        - name: appUuid
          required: false
          in: query
          schema:
            type: string
        - name: connectors
          required: false
          in: query
          schema:
            type: number
        - name: externalApps
          required: false
          in: query
          schema:
            type: number
        - name: websearch
          required: false
          in: query
          schema:
            type: number
        - name: all
          required: false
          in: query
          schema:
            type: number
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntegrationsPaginatedResponseDto'
components:
  schemas:
    IntegrationsPaginatedResponseDto:
      type: object
      properties:
        items:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              name:
                type: string
                description: >-
                  Display name. Always present in API responses (filled by API
                  if not set on create).
              uuid:
                description: >-
                  Stable unique identifier (UUID). Can be provided on create;
                  otherwise generated. Must be unique across elements of this
                  type.
                type: string
              key:
                description: >-
                  Stable key for referencing the element (e.g. in selectors).
                  Unique per (parent, integration) scope. Generated from name if
                  not provided on create.
                type: string
              description:
                description: Optional human-readable description.
                type: string
              meta:
                description: Optional key-value metadata.
                type: object
                additionalProperties:
                  type: object
              state:
                description: >-
                  Current lifecycle or health state (e.g. READY, SETUP_FAILED,
                  CONFIGURATION_ERROR, BUILDING). Set by the engine during setup
                  and validation.
                type: string
                enum:
                  - BUILDING
                  - CLIENT_ACTION_REQUIRED
                  - CONFIGURATION_ERROR
                  - SETUP_FAILED
                  - READY
                  - DISCONNECTING
              errors:
                description: Validation or setup errors when state is not READY.
                type: array
                items:
                  $ref: >-
                    #/components/schemas/IntegrationsPaginatedResponseDto__schema0
              revision:
                description: >-
                  Opaque revision token; changes on each update. Used for
                  optimistic concurrency.
                type: string
              createdAt:
                description: ISO date when the element was created.
                type: string
              updatedAt:
                description: ISO date when the element was last updated.
                type: string
              archivedAt:
                type: string
              isDeactivated:
                type: boolean
              isReadOnly:
                description: >-
                  When true, the element cannot be modified (e.g. published
                  package elements or elements from another workspace).
                type: boolean
              logoUri:
                type: string
              connectorId:
                type: string
              connectorVersion:
                type: string
              oAuthCallbackUri:
                type: string
              parameters:
                type: object
              hasMissingParameters:
                type: boolean
              hasDocumentation:
                type: boolean
              hasOperations:
                type: boolean
              operationsCount:
                type: number
              hasData:
                type: boolean
              dataCollectionsCount:
                type: number
              hasEvents:
                type: boolean
              eventsCount:
                type: number
              hasGlobalWebhooks:
                type: boolean
              hasUdm:
                type: boolean
              isTest:
                type: boolean
              externalAppId:
                type: string
              authType:
                type: string
                enum:
                  - integration-app-token
                  - membrane-token
                  - oauth2
                  - oauth1
                  - client-credentials
                  - proxy
              optionsConfig:
                type: object
                additionalProperties:
                  type: object
                  properties:
                    disabled:
                      type: boolean
                    parameters:
                      type: object
                      additionalProperties:
                        type: object
              connection:
                type: object
                properties:
                  id:
                    type: string
                    description: >-
                      Internal database ID of the element. Assigned by the API;
                      unique per element.
                  name:
                    type: string
                  userId:
                    type: string
                  tenantId:
                    type: string
                  type:
                    type: string
                    enum:
                      - connector
                      - mcp
                  key:
                    type: string
                  isTest:
                    type: boolean
                  connected:
                    type: boolean
                  disconnected:
                    description: Use `connected` instead.
                    type: boolean
                    deprecated: true
                  isDefunct:
                    type: boolean
                  state:
                    type: string
                    enum:
                      - BUILDING
                      - CLIENT_ACTION_REQUIRED
                      - CONFIGURATION_ERROR
                      - SETUP_FAILED
                      - READY
                      - DISCONNECTING
                  errors:
                    type: array
                    items:
                      $ref: >-
                        #/components/schemas/IntegrationsPaginatedResponseDto__schema0
                  requestError:
                    $ref: >-
                      #/components/schemas/IntegrationsPaginatedResponseDto__schema0
                  error:
                    $ref: >-
                      #/components/schemas/IntegrationsPaginatedResponseDto__schema0
                    description: Use `requestError` and `errors` instead.
                    deprecated: true
                  integrationId:
                    type: string
                  connectorId:
                    type: string
                  externalAppId:
                    type: string
                  connectorVersion:
                    type: string
                  authOptionKey:
                    type: string
                  createdAt:
                    type: string
                  updatedAt:
                    type: string
                  lastActiveAt:
                    type: string
                  nextCredentialsRefreshAt:
                    type: string
                  nextRetryTimestamp:
                    type: string
                  retryAttempts:
                    type: number
                  canTest:
                    type: boolean
                  canRefreshCredentials:
                    type: boolean
                  archivedAt:
                    type: string
                  isDeactivated:
                    type: boolean
                  meta:
                    type: object
                    additionalProperties:
                      type: object
                  buildingAgentSessionId:
                    description: >-
                      Session ID for building the element via intent-based
                      endpoints (create/update with intent). Present when state
                      is BUILDING.
                    type: string
                  clientAction:
                    description: >-
                      Action the client must perform to advance this connection.
                      Present if and only if state is CLIENT_ACTION_REQUIRED.
                    type: object
                    properties:
                      type:
                        type: string
                        enum:
                          - connect
                          - provide-input
                      description:
                        type: string
                      uiUrl:
                        type: string
                      agentInstructions:
                        type: string
                      handoffAgentInstructions:
                        type: string
                    required:
                      - type
                      - description
                required:
                  - id
                  - name
                  - userId
                  - createdAt
                  - updatedAt
              spec:
                type: object
              appUri:
                type: string
              isConnected:
                type: boolean
            required:
              - name
        cursor:
          type: string
      required:
        - items
    IntegrationsPaginatedResponseDto__schema0:
      type: object
      properties:
        type:
          type: string
          enum:
            - bad_request
            - connection
            - configuration
            - dependency_error
            - flow_run
            - flow_instance_setup
            - concurrency
            - internal
            - action_run
            - action_instance_setup
            - unit_run
            - custom_code
            - insufficient_credit
            - openrouter_not_configured
        key:
          type: string
        message:
          type: string
        data:
          type: object
        stack:
          type: object
        causedByError:
          $ref: '#/components/schemas/IntegrationsPaginatedResponseDto__schema0'
        logs:
          type: array
          items:
            type: object
      required:
        - message
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: JWT
      type: http

````