
# 애플리케이션 나열

`GET /v1/applications` · 권한 `applications:read`

환경의 애플리케이션을 최신순으로 나열합니다(`order=asc`는 역순입니다). 페이지 매김은 커서 기반입니다: 다음 페이지에는 `list_metadata.after`를 `after`로, 이전 페이지에는 `list_metadata.before`을 `before`로 전달합니다. 커서는 발급된 필터 및 순서에 바인딩됩니다. 다른 필터로 사용하면 `400 invalid_cursor`를 반환합니다. 전체 개수가 반환되지 않습니다.

## 요청

| 매개변수 | 유형 | 설명 |
|---|---|---|
| `limit` | integer | 1-100, 기본값 20. |
| `after` / `before` | string | 불투명한 커서. 둘 다 사용할 수 없습니다. |
| `order` | string | `desc`(기본값) 또는 `asc`. |
| `app_type` | string | 필터: `web`, `spa`, `native`, `m2m`, `device`, `management`. |
| `status` | string | 필터: `active` 또는 `suspended`. |

## 응답

`200 OK`.

```json
{
  "data": [ { "id": "app_6f8d0cjgbmf0gtn2rg6pscp3cg", "key": "portal", "…": "…" } ],
  "list_metadata": { "before": null, "after": "<cursor>" }
}
```

## 오류

| HTTP | `code` | 조건 |
|---|---|---|
| 401 | `unauthenticated` | 키가 누락되었거나, 유효하지 않거나, 취소되었습니다. |
| 403 | `insufficient_permissions` | 키에 필요한 권한이 없습니다. |
| 400 | `invalid_cursor` | 커서가 잘못되었거나, 다른 필터 또는 순서로 발급되었거나, 다른 환경에 속합니다. |
| 422 | `validation_failed` | 쿼리 매개변수가 유효하지 않습니다(`limit`, `order`, `app_type`, `status`). |

## 예제

```bash
curl "https://api.eu.keenauth.com/v1/applications?limit=20&app_type=web" \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
```
