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

# List your users' financial connections

> Every connection your users hold, newest first: bank, brokerage and
crypto-exchange alike. Filter by user, status, provider, or
`expiring_within_days` for the re-consent sweep.



## OpenAPI

````yaml /openapi/managed.json get /connections
openapi: 3.1.0
info:
  title: Synci
  version: '1.0'
  description: >-
    Register and manage the end users your Managed app pays for. Authenticate
    with HTTP Basic using your app's client id and client secret. See the
    Managed apps guide for the full flow.
servers:
  - url: https://api.synci.io/managed/v1
security:
  - basicAuth: []
tags:
  - name: Managed Users
  - name: Managed Connections
  - name: Managed Webhooks
paths:
  /connections:
    get:
      tags:
        - Managed Connections
      summary: List your users' financial connections
      description: |-
        Every connection your users hold, newest first: bank, brokerage and
        crypto-exchange alike. Filter by user, status, provider, or
        `expiring_within_days` for the re-consent sweep.
      operationId: managed.connections.index
      parameters:
        - name: user_id
          in: query
          description: One of your users, by the id this API gave you.
          schema:
            type: string
            maxLength: 64
        - name: external_user_id
          in: query
          description: One of your users, by your own correlation id.
          schema:
            type: string
            maxLength: 255
        - name: status
          in: query
          schema:
            $ref: '#/components/schemas/BankConnectionStatusEnum'
        - name: provider
          in: query
          schema:
            $ref: '#/components/schemas/IntegratorEnum'
        - name: enabled
          in: query
          schema:
            type: boolean
        - name: expiring_within_days
          in: query
          description: |-
            Connections whose bank consent lapses within N days — the
            re-consent sweep. GoCardless only; other providers never expire.
          schema:
            type: integer
            minimum: 0
            maximum: 365
        - name: per_page
          in: query
          schema:
            type: integer
            minimum: 1
            maximum: 200
        - name: page
          in: query
          schema:
            type: integer
            minimum: 1
      responses:
        '200':
          description: Paginated set of `ManagedConnectionResource`
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      allOf:
                        - $ref: '#/components/schemas/ManagedConnectionResource'
                        - type: object
                          required:
                            - institution
                            - health
                  links:
                    type: object
                    properties:
                      first:
                        type:
                          - string
                          - 'null'
                      last:
                        type:
                          - string
                          - 'null'
                      prev:
                        type:
                          - string
                          - 'null'
                      next:
                        type:
                          - string
                          - 'null'
                    required:
                      - first
                      - last
                      - prev
                      - next
                  meta:
                    type: object
                    properties:
                      current_page:
                        type: integer
                        minimum: 1
                      from:
                        type:
                          - integer
                          - 'null'
                        minimum: 1
                      last_page:
                        type: integer
                        minimum: 1
                      links:
                        type: array
                        description: Generated paginator links.
                        items:
                          type: object
                          properties:
                            url:
                              type:
                                - string
                                - 'null'
                            label:
                              type: string
                            active:
                              type: boolean
                          required:
                            - url
                            - label
                            - active
                      path:
                        type:
                          - string
                          - 'null'
                        description: Base path for paginator generated URLs.
                      per_page:
                        type: integer
                        description: Number of items shown per page.
                        minimum: 0
                      to:
                        type:
                          - integer
                          - 'null'
                        description: Number of the last item in the slice.
                        minimum: 1
                      total:
                        type: integer
                        description: Total number of items being paginated.
                        minimum: 0
                    required:
                      - current_page
                      - from
                      - last_page
                      - links
                      - path
                      - per_page
                      - to
                      - total
                required:
                  - data
                  - links
                  - meta
        '422':
          $ref: '#/components/responses/ValidationException'
components:
  schemas:
    BankConnectionStatusEnum:
      type: string
      description: >
        The lifecycle status of a financial connection, the same for every
        provider.
      enum:
        - PENDING_AUTHORIZATION
        - CONNECTED
        - DISABLED
        - REVOKED
        - EXPIRED
        - ERROR
      title: BankConnectionStatusEnum
    IntegratorEnum:
      type: string
      description: >-
        The provider a financial connection or account is sourced from:
        GOCARDLESS (EU/UK banks), AKAHU (NZ banks), ARRAY (US banks), SNAPTRADE
        (brokerages and crypto exchanges) or DEMO (Synci's demo banks). UNKNOWN
        is used for accounts created manually via the API.

        | |

        |---|

        | `UNKNOWN` <br/>  |

        | `GOCARDLESS` <br/>  |

        | `AKAHU` <br/>  |

        | `ARRAY` <br/> US banks. One connection can carry depository, liability
        and investment accounts, and transactions arrive already enriched.
        Connections cannot be created through the API: the consent flow is an
        embedded SDK, so they are started from the Synci Dashboard or the
        connection portal. |

        | `SNAPTRADE` <br/>  |

        | `DEMO` <br/> Synci's demo banks. Accounts, balances and transactions
        are generated by Synci rather than fetched from a bank, and otherwise
        behave like real data: syncs, webhooks and transfer links all run. |
      enum:
        - UNKNOWN
        - GOCARDLESS
        - AKAHU
        - ARRAY
        - SNAPTRADE
        - DEMO
      title: IntegratorEnum
    ManagedConnectionResource:
      type: object
      properties:
        id:
          type: string
        user_id:
          type:
            - string
            - 'null'
        external_user_id:
          type:
            - string
            - 'null'
        status:
          type:
            - string
            - 'null'
        status_message:
          type: string
        enabled:
          type: boolean
        institution:
          type: object
          properties:
            id:
              type: string
            name:
              type: string
            logo:
              type: string
            country:
              type: string
            provider:
              type: string
          required:
            - id
            - name
            - logo
            - country
            - provider
        health:
          type: object
          properties:
            status:
              type: string
            failure_count:
              type: string
            integrator_message:
              type: string
              description: The provider's own error text for the latest failure, if any.
            last_attempt_at:
              type: string
          required:
            - status
            - failure_count
            - integrator_message
            - last_attempt_at
        consent_expires_at:
          type:
            - string
            - 'null'
          description: |-
            When the bank consent expires and the user has to re-authorize.
            Null for providers that grant enduring consent (Akahu, SnapTrade):
            there is nothing to renew.
        access_valid_for_days:
          type:
            - string
            - 'null'
          description: |-
            The consent lifetime in days, as requested from the bank. Only
            set for providers whose consent expires on a schedule; null
            otherwise.
        accounts_count:
          type: integer
        accounts_last_synced_at:
          type: string
        created_at:
          type: string
      required:
        - id
        - user_id
        - external_user_id
        - status
        - status_message
        - enabled
        - consent_expires_at
        - access_valid_for_days
        - accounts_last_synced_at
        - created_at
      title: ManagedConnectionResource
  responses:
    ValidationException:
      description: Validation error
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                description: Errors overview.
              errors:
                type: object
                description: A detailed description of each field that failed validation.
                additionalProperties:
                  type: array
                  items:
                    type: string
            required:
              - message
              - errors
  securitySchemes:
    basicAuth:
      type: http
      description: |-
        **Username = your client id. Password = your client secret.**

        So the base64-encoded `username:password` described below is
        `client_id:client_secret`:

        ```
        Authorization: Basic base64(YOUR_CLIENT_ID:YOUR_CLIENT_SECRET)
        ```

        Most HTTP clients build that header for you:

        ```bash
        curl -u "YOUR_CLIENT_ID:YOUR_CLIENT_SECRET" \
             https://api.synci.io/managed/v1/users
        ```

        Both values come from **Developers → Apps → your app**. The
        secret is shown once at creation and is prefixed `oac_`.
      scheme: basic

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.