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

# List integrations

> List integrations — the apps the workspace integrates with. With `search`, results also include catalog candidates auto-generated from connectors, external apps, and web search (synthetic `~connector.<app>` keys), so this is the way to find any app the user could connect to.

`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:
      summary: list-integrations
      description: >-
        List integrations — the apps the workspace integrates with. With
        `search`, results also include catalog candidates auto-generated from
        connectors, external apps, and web search (synthetic `~connector.<app>`
        keys), so this is the way to find any app the user could connect to.
      operationId: listIntegrations
      parameters:
        - name: appUuid
          in: query
          required: false
          schema:
            type: string
        - name: connectors
          in: query
          required: false
          schema:
            description: >-
              Override auto-generate integrations from connectors: 1 to enable,
              0 to disable
            type: number
        - name: externalApps
          in: query
          required: false
          schema:
            description: >-
              Override auto-generate integrations from external apps: 1 to
              enable, 0 to disable
            type: number
        - name: websearch
          in: query
          required: false
          schema:
            description: >-
              Override auto-generate integrations from web search: 1 to enable,
              0 to disable
            type: number
        - name: all
          in: query
          required: false
          schema:
            description: >-
              Enable all auto-generation sources (connectors, external apps, web
              search) regardless of workspace settings or per-source flags
            type: number
        - name: limit
          in: query
          required: false
          schema:
            description: Maximum number of items to return (1-1000)
            type: integer
            minimum: 1
            maximum: 1000
        - name: cursor
          in: query
          required: false
          schema:
            description: Pagination cursor from a previous response
            type: string
        - name: search
          in: query
          required: false
          schema:
            description: Text search query to filter results
            type: string
        - name: includeArchived
          in: query
          required: false
          schema:
            type: boolean
      responses:
        '200':
          description: >-
            List integrations — the apps the workspace integrates with. With
            `search`, results also include catalog candidates auto-generated
            from connectors, external apps, and web search (synthetic
            `~connector.<app>` keys), so this is the way to find any app the
            user could connect to.
          content:
            application/json:
              schema:
                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: {}
                        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:
                            type: object
                        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:
                          description: >-
                            Resolved app logo for this element (integration ->
                            connector -> external app -> favicon).
                          type: string
                        connectorId:
                          type: string
                        connectorVersion:
                          type: string
                        oAuthCallbackUri:
                          type: string
                        parameters: {}
                        hasMissingParameters:
                          type: boolean
                        hasDocumentation:
                          type: boolean
                        hasUdm:
                          type: boolean
                        isTest:
                          type: boolean
                        externalAppId:
                          type: string
                        appUuid:
                          description: '[INTERNAL] Deprecated: Use externalAppId instead'
                          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: {}
                            additionalProperties: false
                        spec: {}
                        appUri:
                          type: string
                        isCustom:
                          description: >-
                            Marks integrations derived from workspace-owned,
                            non-public connectors or external apps.
                          type: boolean
                      required:
                        - name
                      additionalProperties: false
                  cursor:
                    type: string
                required:
                  - items
                additionalProperties: false
components:
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: JWT
      type: http

````