> ## 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.

# POST /v1/staff/characters/approve — Approve Characters

> Approve one or more submitted characters in a single batch request. Requires MODERATOR_CHIEF, ADMINISTRATOR, or DEVELOPER permission.

Use this endpoint to approve one or more characters that are in the `pending_approval` review queue. Approving a character changes its `idStatus` to `approved`, making it active in-game and enabling its wallet. You can approve multiple characters in a single request by passing an array of `characterId` values.

<Warning>
  This endpoint requires the `MODERATOR_CHIEF`, `ADMINISTRATOR`, or `DEVELOPER` permission. Regular user accounts cannot approve characters.
</Warning>

## Endpoint

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

## Request Body

<ParamField body="characterIds" type="string[]" required>
  An array of character Snowflake IDs to approve. All characters in the array are processed in a single batch operation.
</ParamField>

## Response

A successful `200` response returns the updated character objects after approval:

<ResponseField name="characters" type="array">
  An array of character objects reflecting their new `approved` status. The array includes one entry for each successfully approved character. Each object contains the full character data as returned by `getApiCharacterData()`.
</ResponseField>

## Example Request

```bash theme={null}
curl -X POST "https://api.cacolombia.com/v1/staff/characters/approve" \
  -H "Authorization: Bearer <your_token>" \
  -H "Content-Type: application/json" \
  -d '{"characterIds": ["998877665544332211", "111222333444555666"]}'
```

## 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": "xyz789uvw012",
      "fullBodyHash": "def456ghi789",
      "avatar3dHash": null,
      "avatar3dCamera": null,
      "avatar3dAABB": null,
      "idStatus": "approved",
      "wallet": null,
      "createdAt": "2024-06-07T14:00:00.000Z",
      "updatedAt": "2024-06-08T09:00:00.000Z"
    }
  ]
}
```

## Error Responses

| Status | Description                                                                                                                       |
| ------ | --------------------------------------------------------------------------------------------------------------------------------- |
| `400`  | The request body is missing `characterIds`, the field is not an array, or the array contains non-string values.                   |
| `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.                                                                 |
| `500`  | The batch approval could not be completed. This is an internal server error — try again or contact support if the issue persists. |

<Tip>
  Rate limiting applies to this endpoint. You can call it at most 10 times per minute. Batch your `characterIds` together to make the most efficient use of each call.
</Tip>
