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

# GET /v1/staff/characters/pending — List Pending Characters

> Retrieve a paginated list of characters in pending_approval status awaiting staff review. Requires MODERATOR_CHIEF, ADMINISTRATOR, or DEVELOPER permission.

Use this endpoint to retrieve a paginated list of all characters that have been submitted for staff review and are currently in the `pending_approval` state. This is the primary queue staff members work through when processing character applications. Results are paginated — use the `page` and `limit` query parameters to navigate through the list.

<Warning>
  This endpoint is restricted to users who hold at least one of the following permissions: `MODERATOR_CHIEF`, `ADMINISTRATOR`, or `DEVELOPER`. Requests from accounts without these roles are rejected with `403`.
</Warning>

## Endpoint

```text theme={null}
GET https://api.cacolombia.com/v1/staff/characters/pending
```

## Query Parameters

<ParamField query="page" type="number">
  The page number to retrieve. Must be a positive integer. Defaults to `1`.
</ParamField>

<ParamField query="limit" type="number">
  The number of characters to return per page. Must be between `1` and `50`. Defaults to `20`.
</ParamField>

## Response

A successful `200` response returns the characters on the requested page along with pagination metadata:

<ResponseField name="characters" type="array">
  An array of character objects currently awaiting review. Each object contains the full character data as returned by `getApiCharacterData()`. Returns an empty array if there are no pending characters on the requested page.
</ResponseField>

<ResponseField name="meta" type="object">
  Pagination information for the result set.

  <Expandable title="meta fields">
    <ResponseField name="meta.total" type="number">
      The total number of pending characters across all pages.
    </ResponseField>

    <ResponseField name="meta.page" type="number">
      The current page number returned in this response.
    </ResponseField>

    <ResponseField name="meta.limit" type="number">
      The number of results per page used for this response.
    </ResponseField>

    <ResponseField name="meta.totalPages" type="number">
      The total number of pages available given the current `limit`.
    </ResponseField>
  </Expandable>
</ResponseField>

## Example Request

```bash theme={null}
curl -X GET "https://api.cacolombia.com/v1/staff/characters/pending?page=1&limit=20" \
  -H "Authorization: Bearer <your_token>"
```

## Example Response

```json theme={null}
{
  "characters": [
    {
      "characterId": "998877665544332211",
      "userId": "112233445566778899",
      "firstNames": "Carlos",
      "lastNames": "Rodríguez",
      "age": 30,
      "height": 178,
      "gender": "Masculino",
      "bloodType": "O+",
      "nationality": {
        "nombre": "Colombiano",
        "abrev": "COL",
        "lugar": "Colombia"
      },
      "dob": "01/03/1994",
      "avatarHash": "abc123def456",
      "idCardHash": null,
      "fullBodyHash": "def456ghi789",
      "avatar3dHash": null,
      "avatar3dCamera": null,
      "avatar3dAABB": null,
      "idStatus": "pending_approval",
      "wallet": null,
      "createdAt": "2024-06-07T14:00:00.000Z",
      "updatedAt": "2024-06-07T14:05:00.000Z"
    }
  ],
  "meta": {
    "total": 47,
    "page": 1,
    "limit": 20,
    "totalPages": 3
  }
}
```

## Error Responses

| Status | Description                                                                       |
| ------ | --------------------------------------------------------------------------------- |
| `401`  | You are not authenticated. Provide a valid authorization token with your request. |
| `403`  | Your account does not hold any of the required staff permissions.                 |

<Tip>
  Rate limiting applies to this endpoint. You can call it at most 10 times per minute. Use the `meta.totalPages` value to determine whether you need to fetch additional pages rather than polling repeatedly.
</Tip>
