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

# Delete Character

> Remove a character by character ID.

`DELETE` `https://api.sonorancad.com/v2/civilian/characters/{characterId}`

> **Rate limit:** `10 requests per minute`\
> Authenticated v2 endpoints are rate limited per API key rather than per IP address.

Remove a Sonoran CAD character by character ID.

## Path Parameters

| Name | Type | Description |
| - | - | - |
| `characterId` | integer | Character record ID. |

## Example Request

**Sonoran.lua**

```lua theme={null}
-- luarocks install sonoran.lua
-- For SonoranCADFiveM in-game usage, see the SonoranCADFiveM tab for the export-based client.
local Sonoran = require("sonoran")

local sonoran = Sonoran.createClient({
  product = Sonoran.productEnums.CAD,
  communityId = "YOUR_COMMUNITY_ID",
  apiKey = "YOUR_API_KEY",
  defaultServerId = 1
})

local response = sonoran.cad:removeCharacterV2(42)

-- Inspect response.success, response.data, or response.reason as needed.
print(response.success)
```

**SonoranCADFiveM**

Use this tab only when calling the v2 API from the server side of an in-game FiveM resource.

* **Sonoran.lua** and **Sonoran.js:** use the `sonorancad` export to get the ready CAD client.
* **Sonoran.Net:** FiveM exports do not return a .NET client. Read the Sonoran CAD convars and create a fresh client.
* **Sonoran.py:** FiveM does not run Python resources; use the Python tab for external integrations.

The API key is stored in `sonoran_apiKey` as a protected FiveM convar. FiveM restricts a convar after `add_convar_permission` is configured, so only explicitly permitted resources can read it. Grant another resource access with `add_convar_permission your-resource-name read sonoran_apiKey`. If you change the API key in `config.json`, fully restart the `sonorancad` resource before reading the updated convar value.

**Sonoran.lua**

```lua theme={null}
local cad = exports["sonorancad"]:getCadClient()
```

**Sonoran.js**

```javascript theme={null}
const cad = exports["sonorancad"].getCadClient();
```

**Sonoran.Net**

```csharp theme={null}
// dotnet add package Sonoran.Net
using CitizenFX.Core.Native;
using Sonoran;

var communityId = API.GetConvar("sonoran_communityID", "");
var apiKey = API.GetConvar("sonoran_apiKey", "");
var serverIdRaw = API.GetConvar("sonoran_serverId", "1");
var serverId = int.TryParse(serverIdRaw, out var parsedServerId) ? parsedServerId : 1;

using var sonoran = new SonoranClient(new SonoranClientOptions
{
    product = SonoranProduct.CAD,
    communityId = communityId,
    apiKey = apiKey,
    defaultServerId = serverId
});
```

After getting the Lua export client:

```lua theme={null}
local response = cad:removeCharacterV2(42)

-- Inspect response.success, response.data, or response.reason as needed.
print(response.success)
```

**Sonoran.js**

```javascript theme={null}
// npm install @sonoransoftware/sonoran.js
// For SonoranCADFiveM in-game usage, see the SonoranCADFiveM tab for the export-based client.
const Sonoran = require('@sonoransoftware/sonoran.js');

(async () => {
  const instance = new Sonoran.Instance({
    communityId: 'YOUR_COMMUNITY_ID',
    apiKey: 'YOUR_API_KEY',
    product: Sonoran.productEnums.CAD,
    serverId: 1,
  });

  const response = await instance.cad.removeCharacterV2(42);
  console.log(response);
})();
```

**Sonoran.py**

```python theme={null}
# pip install Sonoran.py
# Sonoran.py is for external Python integrations; FiveM resources should use the SonoranCADFiveM tab.
from sonoran import Instance, productEnums

instance = Instance(
    apiKey="YOUR_API_KEY",
    communityId="YOUR_COMMUNITY_ID",
    product=productEnums.CAD,
    serverId=1,
)

response = instance.cad.removeCharacterV2(42)

print(response.success)
print(response.data if response.success else response.reason)
```

**Sonoran.Net**

```csharp theme={null}
// dotnet add package Sonoran.Net
// For SonoranCADFiveM in-game usage, see the SonoranCADFiveM tab; .NET creates a fresh client from convars.
using Sonoran;

using var sonoran = new SonoranClient(new SonoranClientOptions
{
    product = SonoranProduct.CAD,
    communityId = "YOUR_COMMUNITY_ID",
    apiKey = "YOUR_API_KEY",
    defaultServerId = 1
});

var response = await sonoran.Cad.removeCharacterV2(42);

Console.WriteLine(response.success);
Console.WriteLine(response.data);
```

**OpenAPI**

Import this YAML into Postman with **Import -> Raw text** to create a single-endpoint request collection for this route.

```yaml theme={null}
openapi: "3.0.3"
info:
  title: "Sonoran CAD v2 - Delete Character"
  version: "1.0.0"
  description: "Remove a character by character ID."
servers:
  -
    url: "https://api.sonorancad.com"
paths:
  /v2/civilian/characters/{characterId}:
    delete:
      summary: "Delete Character"
      operationId: "deleteCharacter"
      responses:
        200:
          description: "Successful response"
          content:
            application/json:
              schema:
                type: "object"
              example:
                characterId: 2451
      parameters:
        -
          description: "Character record ID."
          name: "characterId"
          in: "path"
          schema:
            type: "integer"
          required: true
      security:
        -
          bearerAuth:
components:
  securitySchemes:
    bearerAuth:
      type: "http"
      scheme: "bearer"
      bearerFormat: "JWT"
```

**cURL**

```bash theme={null}
curl --request DELETE \
  --url "https://api.sonorancad.com/v2/civilian/characters/2451" \
  --header "Authorization: Bearer YOUR_API_KEY" \
  --header "Accept: application/json"
```

## Response

Successful requests return `application/json`.

```json theme={null}
{
  "characterId": 2451
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.