# DELETE Delete a customiser

Deletes the customiser and returns a receipt: the id, `deleted: true`, and a `resource` snapshot of exactly what was deleted. The delete is recoverable — the restore operation brings the customiser back with its options, pricing, and translations intact — but nothing else can reach it in the meantime: reading it, listing it, and every write against it answer 404 exactly as an id that never existed does. Keep the receipt: the id in it is the only way back. A customiser that storefront products were created from is refused with a 409 problem, code `resource_in_use`: `referenced_by` names those products (up to 100 of them), `referenced_by_count` is the true total, and `order_line_item_count` is how many order lines were sold through them. Deleting it would leave those product pages with nothing to render, and deleting the customiser removes neither the products nor the order history, so v3 refuses rather than stranding them. Remove the products first, then retry. Requires `customisers:write` and an `Idempotency-Key`; an exact retry replays the original receipt rather than reporting an unknown customiser. The delete clears the customiser's cached storefront configuration and never regenerates your Shopify products, product images, or product cache.

- Source URL: https://www.signcustomiser.com/help/api/v3-delete-delete-a-customiser/
- Markdown URL: https://www.signcustomiser.com/help/api/v3-delete-delete-a-customiser.md
- Group: Customisers
- Method: DELETE
- Path: /api/v3/customisers/{customiser_id}
- Auth: Bearer token
- Required scopes: `customisers:write`

## Path parameters

- customiser_id (string, required): The customiser id. Example: 1

## cURL example

```bash
curl https://web.signcustomiser.com/api/v3/customisers/1 \
  --request DELETE \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer YOUR_API_TOKEN'
```

## Response examples

### 200 DELETE 200 example 1

```json
{
  "data": {
    "object": "customiser_deletion_receipt",
    "id": 42,
    "deleted": true,
    "resource": {
      "object": "customiser",
      "id": 42,
      "name": "Neon sign builder",
      "active": false,
      "pricing_model": "frame_fit",
      "pricing_model_display_name": "Frame Fit",
      "sign_category": "neon",
      "product_family": "neon",
      "selection_mode": "per_word",
      "created_at": "2026-08-14T00:00:00Z",
      "updated_at": "2026-08-14T00:05:00Z"
    }
  },
  "links": {
    "self": "https://web.signcustomiser.com/api/v3/customisers/42",
    "documentation": "https://www.signcustomiser.com/help/api/"
  },
  "meta": {
    "api_version": "v3",
    "request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
  }
}
```

### 400 Missing idempotency key

```json
{
  "type": "https://www.signcustomiser.com/help/api/problems/missing_idempotency_key",
  "title": "Missing idempotency key",
  "status": 400,
  "code": "missing_idempotency_key",
  "detail": "Provide an Idempotency-Key header for this write.",
  "request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}
```

### 401 Missing API key

```json
{
  "type": "https://www.signcustomiser.com/help/api/problems/missing_api_key",
  "title": "Missing API key",
  "status": 401,
  "code": "missing_api_key",
  "detail": "Provide a store API key as a bearer token.",
  "request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}
```

### 403 Insufficient scope

```json
{
  "type": "https://www.signcustomiser.com/help/api/problems/insufficient_scope",
  "title": "Insufficient scope",
  "status": 403,
  "code": "insufficient_scope",
  "detail": "This operation requires the customisers:write scope.",
  "required_scopes": [
    "customisers:write"
  ],
  "granted_scopes": [
    "customisers:read"
  ],
  "request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}
```

### 404 Unknown customiser

```json
{
  "type": "https://www.signcustomiser.com/help/api/problems/resource_not_found",
  "title": "Resource not found",
  "status": 404,
  "code": "resource_not_found",
  "detail": "The requested resource does not exist or does not belong to the authenticated store.",
  "request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}
```

### 409 Products still design against it

```json
{
  "type": "https://www.signcustomiser.com/help/api/problems/resource_in_use",
  "title": "Resource in use",
  "status": 409,
  "code": "resource_in_use",
  "detail": "This customiser is still designed against by 2 product records and 5 order line items.",
  "errors": [
    {
      "pointer": "",
      "code": "resource_in_use",
      "detail": "The customiser is referenced by other records."
    }
  ],
  "referenced_by": [
    {
      "type": "product",
      "id": 88
    }
  ],
  "referenced_by_count": 2,
  "order_line_item_count": 5,
  "request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}
```

### 429 Option write budget exhausted

```json
{
  "type": "https://www.signcustomiser.com/help/api/problems/rate_limited",
  "title": "Too many requests",
  "status": 429,
  "code": "rate_limited",
  "detail": "You have exceeded the request limit for this API key.",
  "retry_after": 37,
  "request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}
```
