> For the complete documentation index, see [llms.txt](https://docs.monolithforensics.com/monolith/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.monolithforensics.com/monolith/monolith-api-and-webhooks/cases-api/create-case.md).

# Create Case

Create a new Monolith Case using supported Case fields and relationships.

The **Create Case** endpoint creates a new Case in Monolith using the supported fields provided in the request body.

### Endpoint

```
POST /api/v1/cases
```

All requests require a valid API key in the `X-API-KEY` request header.

Because this endpoint accepts JSON data, include the following content type:

```
Content-Type: application/json
```

See [**Authentication**](/monolith/monolith-api-and-webhooks/api-access/authentication.md) for additional API authentication guidance.

### Body Parameters

Only the supported fields below are accepted. Unknown fields return an HTTP `400` response.

| Name              | Type                   | Required | Validation / Behavior                                                                                  |
| ----------------- | ---------------------- | -------- | ------------------------------------------------------------------------------------------------------ |
| `case_name`       | `string`               | **Yes**  | Maximum length `255`. Cannot contain `+`, `<`, `>`, `:`, `"`, `/`, or `\`.                             |
| `case_number`     | `string`               | No       | Maximum length `255`. Uses the same character restrictions as `case_name`. Must be unique if provided. |
| `description`     | `string`               | No       | Maximum length `2000`.                                                                                 |
| `case_status`     | `string`               | No       | Maximum length `255`.                                                                                  |
| `case_type`       | `string`               | No       | Maximum length `255`.                                                                                  |
| `case_lead_id`    | `integer`              | No       | Monolith user ID to assign as the Case Lead.                                                           |
| `case_open_date`  | `date`                 | No       | Must contain a valid date value.                                                                       |
| `user_group_uuid` | `string` or `string[]` | No       | Accepts either one user group UUID or an array of user group UUIDs.                                    |
| `client_id`       | `integer`              | No       | Monolith Client ID to associate with the Case.                                                         |

### Successful Response

A successfully created Case returns an HTTP `200` response.

```json
{
  "success": true,
  "message": "Case Created",
  "case_id": 123,
  "uuid": "abc123...",
  "case_number": "CASE-0001",
  "case_name": "New Case"
}
```

The response includes identifiers for the newly created Case that can be used with other Monolith API endpoints.

### Error Responses

#### 400 - Validation Error

A request containing invalid or missing required data returns an HTTP `400` response.

```json
{
  "message": "Invalid case data",
  "success": false,
  "errors": [
    {
      "message": "\"case_name\" is required"
    }
  ]
}
```

#### 400 - Duplicate Case Number

If `case_number` is provided, it must be unique.

```json
{
  "message": "Case number already exists. Case number must be unique",
  "success": false
}
```

#### 500 - Server Error

An unexpected server error may return an HTTP `500` response.

```json
{
  "message": "Error creating case",
  "success": false
}
```

### Example Request

The following example creates a Case and associates it with a Case Lead, Client, and two user groups.

```bash
curl -X POST "<api-base-url>/cases" \
  -H "Content-Type: application/json" \
  -H "X-API-KEY: <api-key>" \
  -d '{
    "case_name": "Customer Investigation",
    "case_number": "INV-2026-001",
    "description": "Investigation details",
    "case_open_date": "2026-02-25",
    "case_lead_id": 12,
    "client_id": 44,
    "user_group_uuid": ["group-uuid-1", "group-uuid-2"]
  }'
```

Replace `<api-base-url>` with the `/api/v1` base URL for your Monolith environment.

See [**API Endpoints**](/monolith/monolith-api-and-webhooks/api-access/api-endpoints.md) for the correct API base URL.

### Related Documentation

* [**Cases API Summary**](/monolith/monolith-api-and-webhooks/cases-api/summary.md)
* [**Get Cases**](/monolith/monolith-api-and-webhooks/cases-api/get-cases.md)
* [**Update Case**](/monolith/monolith-api-and-webhooks/cases-api/update-case.md)
* [**Delete Case**](/monolith/monolith-api-and-webhooks/cases-api/delete-case.md)
* [**Authentication**](/monolith/monolith-api-and-webhooks/api-access/authentication.md)
* [**API Endpoints**](/monolith/monolith-api-and-webhooks/api-access/api-endpoints.md)
