## List accounts

`client.Accounts.List(ctx, query) (*[]Account, error)`

**get** `/api/v1/accounts`

List accounts

### Parameters

- `query AccountListParams`

  - `UserID param.Field[string]`

### Returns

- `type AccountListResponse []Account`

  - `ID string`

  - `AccountNumber string`

  - `AccountType AccountAccountType`

    - `const AccountAccountTypeChecking AccountAccountType = "checking"`

    - `const AccountAccountTypeSaving AccountAccountType = "saving"`

  - `Balance string`

  - `Currency string`

  - `Environment string`

  - `Status AccountStatus`

    - `const AccountStatusActive AccountStatus = "active"`

    - `const AccountStatusSuspended AccountStatus = "suspended"`

    - `const AccountStatusClosed AccountStatus = "closed"`

  - `UserID string`

  - `AdminUserID string`

  - `CreatedAt Time`

  - `OrganizationID string`

  - `UpdatedAt Time`

  - `UserRole string`

### Example

```go
package main

import (
  "context"
  "fmt"

  "github.com/railsinfra/rails-go"
  "github.com/railsinfra/rails-go/option"
)

func main() {
  client := rails.NewClient(
    option.WithAPIKey("My API Key"),
  )
  accounts, err := client.Accounts.List(context.TODO(), rails.AccountListParams{
    UserID: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", accounts)
}
```

#### Response

```json
[
  {
    "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "account_number": "account_number",
    "account_type": "checking",
    "balance": "balance",
    "currency": "currency",
    "environment": "environment",
    "status": "active",
    "user_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "admin_user_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "created_at": "2019-12-27T18:11:19.117Z",
    "organization_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "updated_at": "2019-12-27T18:11:19.117Z",
    "user_role": "user_role"
  }
]
```
