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

# List App Connections

> List catalog connections with the app's activation state.

Returns every catalog connection with the app's activation state, including connections the app has not activated. Use it to find what to send to [Activate Connection](https://docs.hopae.com/v2/api-reference/workspace/activate-connection.md) and to track each submission.

The Basic-auth runtime [Get Connections](https://docs.hopae.com/v2/api-reference/verifications/get-connections.md) also lists connections that are not activated, but only the ones the app's environment offers, and without the activation process and submissions this endpoint returns.

## Headers

**Authorization** `string` *required*

`Bearer sk_workspace_...`, a Workspace API key of the organization that owns the app. See [Workspace API](https://docs.hopae.com/v2/api-reference/workspace/introduction.md).

## Path Parameters

**appId** `string` *required*

The app ID returned by Create App or List Apps.

## Response

`200 OK` with an array of connection objects. The list is not paginated.

**id** `string` *required*

The catalog connection ID, for example `smart-id`. Send it in `connectionIds` when you activate connections. It is the same value as `connectionId` in Get Connections. Human-readable but opaque: read `provider.id` and `credential.id` instead of parsing it.

**provider** `object` *required*

The catalog provider, with `id`, `name`, and `logoUrl`. Send `provider.id` as `providerId` when you activate connections. Same object as `provider` in [Get Connections](https://docs.hopae.com/v2/api-reference/verifications/get-connections.md).

**credential** `object` *required*

The catalog credential. Same object as `credential` in [Get Connections](https://docs.hopae.com/v2/api-reference/verifications/get-connections.md).

**countries** `string[]`

The countries this connection covers, as lowercase ISO country codes. Present only when the connection covers fewer countries than its credential. Read a connection's countries as `countries ?? credential.countries`.

**flowTypes** `string[]` *required*

Supported delivery mechanics, primary first: `redirect`, `qr`, `push`, `dc`, or `query`. See [Flow Types](https://docs.hopae.com/v2/guides/reference/flow-types.md).

**supportedEnvironments** `string[]` *required*

The environments the connection can be activated in: `sandbox`, `production`, or both. A connection that the app's environment doesn't support can't be activated on that app. See [Activate Connection](https://docs.hopae.com/v2/api-reference/workspace/activate-connection.md) for how the request handles it.

**userInputJsonSchema** `object`

What this connection needs in `userInput` when you create a verification, as a JSON Schema (draft 2020-12) object, including the rules that span several fields. Absent when the connection needs no input. Same object as `userInputJsonSchema` in [Get Connections](https://docs.hopae.com/v2/api-reference/verifications/get-connections.md). See [User Input](https://docs.hopae.com/v2/api-reference/verifications/user-input.md).

**userInputSchema** `object` *deprecated*

**Deprecated: use `userInputJsonSchema` instead. `userInputSchema` will be removed on Mar 31, 2027.** The earlier per-field form of the same contract, without the rules that span several fields. Same object as `userInputSchema` in [Get Connections](https://docs.hopae.com/v2/api-reference/verifications/get-connections.md).

**availableClaims** `string[]` *required*

Every claim this connection can return. Includes `source_id` when the connection can derive a stable per-person identifier.

**sourceIdBackedBy** `object`

Present only when `availableClaims` contains `source_id`. The claims Hopae requests from the provider to derive `source_id`, as `primary` and `fallback` arrays. See [Get Connections](https://docs.hopae.com/v2/api-reference/verifications/get-connections.md).

**activationProcess** `object` *required*

How this connection is activated. See [Activate Connections](https://docs.hopae.com/v2/guides/concepts/connections/activation.md).

**properties**

**id** `string` *required*

The activation procedure ID, for example `act:smart-id`. Connections of the same provider usually share one.

**method** `string` *required*

* `direct`: nothing to fill in. A submission activates immediately.
* `registration`: send the `requirements` as `fields`. A sandbox app activates the submission with [Instant Activate](https://docs.hopae.com/v2/api-reference/workspace/instant-activate.md); on a production app, Hopae reviews it.
* `contract`: a sandbox app activates on submit. A production app needs a contract with Hopae first; contact `supportContactEmail`.

**requirements** `object[]`

The fields to send in `fields` when you submit. Present only when the procedure has fields.

**properties**

**id** `string` *required*

The key to use in `fields`, for example `legalCompanyName`.

**type** `string` *required*

The input type: `text`, `email`, `url`, `phone`, `checkbox`, `select`, or `info`.

**label** `string` *required*

A label to show next to the input.

**description** `string`

Help text for the field.

**example** `string`

An example value.

**required** `boolean`

If `true`, a submission without this field is filed with `status: "rejected"` and `rejection.reason: "missing_required_fields"`.

**options** `object[]`

The allowed values for a `select` field, each with `value` (string or boolean) and `description`. A value outside the options is filed with `rejection.reason: "invalid_value"`.

**currentValue** `string | boolean | null` *required*

The value already saved on the app for this field, for example from an earlier submission. `null` when nothing is saved. Use it to prefill your form.

**supportContactEmail** `string`

Present only for `contract`. The email address to contact about the contract.

**instances** `object[]` *required*

The app's activation submissions that include this connection, newest first. `[]` means the connection was never submitted for this app.

**properties**

**activationInstanceId** `string` *required*

The submission ID (`act_…`). On a sandbox app, use it with [Instant Activate](https://docs.hopae.com/v2/api-reference/workspace/instant-activate.md).

**status** `string` *required*

The status of the whole submission. Every connection in the same submission has the same status.

* `requested`: submitted. On a production app, it waits for Hopae's review. On a sandbox app, it waits for [Instant Activate](https://docs.hopae.com/v2/api-reference/workspace/instant-activate.md).
* `processing`: being reviewed and set up.
* `activated`: ready to use.
* `rejected`: something needs fixing. See `rejection`.

**rejection** `object`

Present only when `status` is `rejected`.

**properties**

**reason** `string` *required*

`missing_required_fields`, `invalid_value`, `provider_rejected`, or `other`.

**missingFields** `string[]`

With `missing_required_fields`: the requirement IDs that were missing or empty.

**message** `string`

A human-readable explanation, when one is available.

**id** `string`

The connection instance ID (`conn_…`). Present only after the submission is activated. Workflows and [Create Verification](https://docs.hopae.com/v2/api-reference/verifications/create-verification.md) use this ID.

**createdAt** `string` *required*

When the submission was made, as an ISO 8601 timestamp in UTC.

**lastSuccessAt** `string`

When this app last completed a verification with this connection, as an ISO 8601 timestamp in UTC. Absent when there is none.

## Errors

Besides the authentication and subscription errors that every route can return (see [Workspace API](https://docs.hopae.com/v2/api-reference/workspace/introduction.md#authentication-and-base-url)), this endpoint returns:

| HTTP | Code | When |
| :- | :- | :- |
| 403 | `AUTH_FORBIDDEN` | The app belongs to another organization |
| 404 | `RESOURCE_NOT_FOUND` | Unknown app, or the app was deleted |

```bash cURL theme={null}
curl --request GET \
  --url 'https://api.hopae.com/connect/v2/apps/{appId}/connections' \
  --header 'Authorization: Bearer sk_workspace_...'
```

```json theme={null}
[
  {
    "id": "smart-id",
    "provider": {
      "id": "smart-id",
      "name": "Smart-ID",
      "logoUrl": "https://static.hopae.com/images/wallets/smartid.png"
    },
    "credential": {
      "id": "smart-id",
      "name": "Smart-ID",
      "logoUrl": "https://static.hopae.com/images/wallets/smartid.png",
      "countries": ["ee", "lt", "lv", "be"],
      "loa": [4],
      "types": [1],
      "verificationModel": "disclosure",
      "displayName": "Smart-ID"
    },
    "flowTypes": ["push"],
    "supportedEnvironments": ["sandbox", "production"],
    "userInputJsonSchema": {
      "type": "object",
      "properties": {
        "registrationId": {
          "type": "string"
        }
      },
      "required": ["registrationId"]
    },
    "userInputSchema": {
      "fields": {
        "registrationId": {
          "required": true,
          "hint": "Smart-ID registrationId must be at least 8 characters"
        }
      }
    },
    "availableClaims": [
      "name",
      "given_name",
      "family_name",
      "birthdate",
      "nationality",
      "personal_code",
      "source_id"
    ],
    "sourceIdBackedBy": {
      "primary": ["personal_code"],
      "fallback": []
    },
    "activationProcess": {
      "id": "act:smart-id",
      "method": "registration",
      "requirements": [
        {
          "id": "legalCompanyName",
          "type": "text",
          "label": "Legal Company Name",
          "description": "The registered legal name of the company, as shown on official incorporation documents.",
          "example": "Acme Corporation B.V.",
          "required": true,
          "currentValue": "Acme Corporation B.V."
        },
        {
          "id": "registrationNumber",
          "type": "text",
          "label": "Registration Number",
          "description": "The company registration number from your country's business registry (e.g., RCS Luxembourg, HRB Germany, CVR Denmark).",
          "required": true,
          "currentValue": "12345678"
        },
        {
          "id": "registeredAddress",
          "type": "text",
          "label": "Registered Address",
          "required": true,
          "currentValue": "1 Example Street, Amsterdam, Netherlands"
        },
        {
          "id": "displayName",
          "type": "text",
          "label": "Display Name",
          "description": "The short brand name shown to end users during verification (e.g., on consent screens).",
          "example": "Acme",
          "required": true,
          "currentValue": "Acme"
        }
      ]
    },
    "instances": [
      {
        "id": "conn_01JBX5Q4D8F2H6K9M3N7P1R5T0",
        "activationInstanceId": "act_01JBX5N8Q2W7RZ3K4M6P9T1V0C",
        "status": "activated",
        "createdAt": "2026-10-30T08:12:44.000Z"
      }
    ],
    "lastSuccessAt": "2026-11-01T16:20:03.000Z"
  }
]
```


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