# Filtering Connected Accounts by Custom Metadata

When you use [List Connected Accounts](https://docs.seam.co/latest/api/connected_accounts/list), you can filter the list by one or more custom metadata pairs. Include the `custom_metadata_has` parameter with a JSON string that specifies the desired key:value pairs.

{% hint style="info" %}
If the [Connect Webview](https://docs.seam.co/latest/core-concepts/connect-webviews) associated with a connected account contains custom metadata, Seam transfers this custom metadata to the connected account. However, you can also use the [Update Connected Account](https://docs.seam.co/latest/api/connected_accounts/update) method with the optional `custom_metadata` property to [change or add custom metadata for a connected account](https://docs.seam.co/latest/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account).
{% endhint %}

{% tabs %}
{% tab title="Python" %}
**Request:**

```python
connected_accounts = seam.connected_accounts.list(
  custom_metadata_has = {
    "internal_account_id": "user-1"
  }
)

pprint(connected_accounts)
```

**Response:**

```
[ConnectedAccount(connected_account_id='c993818b-bf3c-4836-bef4-9a76d89bf1d3',
                  created_at='2024-01-05T07:20:07.692Z',
                  user_identifier={'username': 'jane'},
                  account_type='visionline',
                  errors=[],
                  custom_metadata={"internal_account_id": "user-1"}),
...]
```

{% endtab %}

{% tab title="cURL (bash)" %}
**Request:**

```bash
curl -X 'POST' \
  'https://connect.getseam.com/connected_accounts/list' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer ${API_KEY}' \
  -H 'Content-Type: application/json' \
  -d '{
  "custom_metadata_has": {
    "internal_account_id": "user-1"
  },
}'
```

**Response:**

```json
{
  "connected_accounts": [
    {
      "connected_account_id": "c993818b-bf3c-4836-bef4-9a76d89bf1d3",
      "created_at": "2024-01-05T07:20:07.692Z",
      "user_identifier": {
        "username": "jane"
      },
      "account_type": "visionline",
      "account_type_display_name": "Visionline",
      "errors": [],
      "warnings": [],
      "custom_metadata": {
        "internal_account_id": "user-1"
      },
      "automatically_manage_new_devices": true
    },
    ...
  ],
  "ok": true
}
```

{% endtab %}

{% tab title="JavaScript" %}
**Request:**

```javascript
const connected_accounts = await seam.connectedAccounts.list({
  custom_metadata_has: {
    "internal_account_id": "user-1"
  }
});

console.log(connected_accounts);
```

**Response:**

```json
[
  {
    connected_account_id: 'c993818b-bf3c-4836-bef4-9a76d89bf1d3',
    created_at: '2024-01-05T07:20:07.692Z',
    user_identifier: { username: 'jane' },
    account_type: 'visionline',
    account_type_display_name: 'Visionline',
    errors: [],
    warnings: [],
    custom_metadata: { internal_account_id: 'user-1' },
    automatically_manage_new_devices: true
  },
  ...
]
```

{% endtab %}

{% tab title="Ruby" %}
**Request:**

```ruby
connected_accounts = client.connected_accounts.list(
  custom_metadata_has: {
    "internal_account_id": "user-1"
  }
)

puts connected_accounts.inspect
```

**Response:**

```
[<Seam::ConnectedAccount:0x004d8
  connected_account_id="c993818b-bf3c-4836-bef4-9a76d89bf1d3"
  created_at=2024-01-05 07:20:07.692 UTC
  user_identifier={"username"=>"jane"}
  account_type="visionline"
  errors=[]
  warnings=[]
  custom_metadata={"internal_account_id"=>"user-1"}>, ...]
```

{% endtab %}

{% tab title="PHP" %}
**Request:**

```php
$accounts = $seam->connected_accounts->list(
  custom_metadata_has: array('internal_account_id' => 'user-1')
);

echo json_encode($accounts);
```

**Response:**

{% code overflow="wrap" %}

```json
[{"connected_account_id":"c993818b-bf3c-4836-bef4-9a76d89bf1d3","account_type":"visionline","user_identifier":{"username":"jane", "email":null,"phone":null},"errors":[],"warnings":[],"created_at":"2024-01-05T07:20:07.692Z","custom_metadata":{"internal_account_id":"user-1"},"automatically_manage_new_devices":true},...]
```

{% endcode %}
{% endtab %}

{% tab title="C#" %}
**Request:**

```csharp
var customMetadata = new Dictionary<string, string>()
{
  {"internal_account_id", "user-1"}
};

var connectedAccounts = seam.ConnectedAccounts.List(
  customMetadataHas: customMetadata
);

foreach (var connectedAccount in connectedAccounts)
{
  Console.WriteLine(connectedAccount);
}
```

**Response:**

```json
{
  "connected_account_id": "c993818b-bf3c-4836-bef4-9a76d89bf1d3",
  "created_at": "2024-01-05T07:20:07.692Z",
  "user_identifier": {
    "username": "jane"
  },
  "account_type": "visionline",
  "account_type_display_name": "Visionline",
  "errors": [],
  "warnings": [],
  "custom_metadata": {
    "internal_account_id": "user-1"
  },
  "automatically_manage_new_devices": true
}
...
```

{% endtab %}
{% endtabs %}
