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

# 멤버 목록 조회

> 워크스페이스 멤버의 페이지네이션된 목록을 조회합니다

## 개요

이 엔드포인트는 워크스페이스 멤버의 페이지네이션된 목록을 반환합니다. `search` 파라미터를 사용하여 이름 또는 이메일로 결과를 필터링할 수 있습니다.

## 인증

모든 API 요청은 `Authorization: Bearer <API_KEY>` 형식을 사용합니다. 이 엔드포인트는 `users` 스코프가 필요합니다.

<ParamField header="Authorization" type="string" required>
  Bearer 토큰. 형식: `Bearer <API_KEY>`.
</ParamField>

## 쿼리 파라미터

<ParamField query="limit" type="string" default="10">
  페이지당 항목 수.
</ParamField>

<ParamField query="offset" type="string" default="0">
  시작 위치.
</ParamField>

<ParamField query="search" type="string">
  이름 또는 이메일로 검색.
</ParamField>

## 응답

<ResponseField name="items" type="object[]">
  워크스페이스 멤버 목록.

  <Expandable title="properties">
    <ResponseField name="id" type="string">
      워크스페이스 내 사용자의 고유 식별자 (사용자 ID).
    </ResponseField>

    <ResponseField name="name" type="string">
      사용자 이름.
    </ResponseField>

    <ResponseField name="email" type="string">
      사용자 이메일.
    </ResponseField>

    <ResponseField name="profileUrl" type="string | null">
      프로필 이미지 URL.
    </ResponseField>

    <ResponseField name="role" type="string">
      워크스페이스에서의 사용자 역할.
    </ResponseField>

    <ResponseField name="createdAt" type="string">
      사용자가 가입한 ISO8601 타임스탬프.
    </ResponseField>

    <ResponseField name="folders" type="object[]">
      사용자 폴더.

      <Expandable title="properties">
        <ResponseField name="id" type="string">
          폴더 ID.
        </ResponseField>

        <ResponseField name="name" type="string">
          폴더 이름.
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="pagination" type="object">
  페이지네이션 메타데이터.

  <Expandable title="properties">
    <ResponseField name="limit" type="number">
      페이지당 항목 수.
    </ResponseField>

    <ResponseField name="offset" type="number">
      시작 위치.
    </ResponseField>

    <ResponseField name="total" type="number">
      전체 항목 수.
    </ResponseField>
  </Expandable>
</ResponseField>

<RequestExample>
  ```bash curl theme={null}

  curl -X GET "https://api.caret.so/v1/workspace/members?limit=10&offset=0" \
       -H "Authorization: Bearer your_api_key_here"

  ```

  ```javascript JavaScript theme={null}
  const response = await fetch(
    'https://api.caret.so/v1/workspace/members?limit=10&offset=0',
    {
      headers: {
        Authorization: 'Bearer your_api_key_here',
      },
    },
  );

  const data = await response.json();
  console.log(data);
  ```

  ```python Python theme={null}
  import requests

  url = "https://api.caret.so/v1/workspace/members"
  params = {
      "limit": "10",
      "offset": "0"
  }
  headers = {
      "Authorization": "Bearer your_api_key_here"
  }

  response = requests.get(url, headers=headers, params=params)
  print(response.json())
  ```
</RequestExample>

<ResponseExample>
  ```json 200 OK theme={null}
  {
    "items": [
      {
        "id": "user_123456789",
        "name": "John Doe",
        "email": "john@example.com",
        "profileUrl": "https://example.com/profile.jpg",
        "role": "admin",
        "createdAt": "2023-01-01T00:00:00Z",
        "folders": [
          {
            "id": "folder_123",
            "name": "Product"
          }
        ]
      }
    ],
    "pagination": {
      "limit": 10,
      "offset": 0,
      "total": 1
    }
  }
  ```

  ```json 401 Unauthorized theme={null}
  {
    "error": {
      "code": "unauthorized",
      "message": "Invalid or missing API key"
    }
  }
  ```

  ```json 403 Forbidden theme={null}
  {
    "error": {
      "code": "forbidden",
      "message": "Missing required scope: users"
    }
  }
  ```
</ResponseExample>
