# Delete preference records (/docs/api-reference/preferences-server-side/post-v1-preferences-delete)

Batch delete consent preference records by anchor identifier. This endpoint deletes preference records from the Preference Store only and does not trigger DSR workflows or delete data in downstream systems.

## POST /v1/preferences/{partition}/delete

```json
{
  "servers": [
    {
      "url": "https://multi-tenant.sombra.transcend.io",
      "description": "Multi-tenant (EU)"
    },
    {
      "url": "https://multi-tenant.sombra.us.transcend.io",
      "description": "Multi-tenant (US)"
    },
    {
      "description": "Self-hosted",
      "url": "https://_yourOrganizationSombraURL_.com"
    },
    {
      "description": "Preference Store in Europe",
      "url": "https://consent.transcend.io"
    },
    {
      "description": "Preference Store in the U.S.",
      "url": "https://consent.us.transcend.io"
    },
    {
      "description": "Rules Automation webhook ingestion (EU)",
      "url": "https://rule-automation.transcend.io"
    },
    {
      "description": "Rules Automation webhook ingestion (US)",
      "url": "https://rule-automation.us.transcend.io"
    }
  ],
  "security": [
    {
      "Transcend_API_Key": [],
      "Sombra_Token": [],
      "Transcend_API_Key_If_Multitenant": []
    }
  ],
  "operation": {
    "summary": "Delete preference records",
    "description": "Batch delete consent preference records by anchor identifier.\nThis endpoint deletes preference records from the Preference Store only and does not trigger DSR workflows or delete data in downstream systems.\n\n**Rate Limits**\n\n- 100 requests per organization per minute (default).\n- This limit can be increased upon request.\n\n**Rate Limiting Headers**\n\n- `X-RateLimit-Limit`: The maximum number of requests allowed in the current window.\n- `X-RateLimit-Remaining`: The number of requests remaining in the current window.\n- `X-RateLimit-Reset`: The time at which the current rate limit window resets in ISO 8601 format.\n- `Retry-After`: (on 429) The number of seconds to wait before making a new request.\n\n**Deleting by Transcend ID**\n\n- Every preference record has a system-managed `transcend` identifier — a stable UUID automatically assigned by the system.\n- Use `{ \"name\": \"transcend\", \"value\": \"<uuid>\" }` as the `anchorIdentifier` to delete a record by Transcend ID.",
    "operationId": "post-v1-preferences-delete",
    "parameters": [
      {
        "$ref": "#/components/parameters/authorization"
      },
      {
        "$ref": "#/components/parameters/x-sombra-authorization"
      },
      {
        "$ref": "#/components/parameters/content-type-application-json"
      },
      {
        "name": "partition",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string",
          "description": "The ID of the partition in the Preference Store."
        }
      }
    ],
    "requestBody": {
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "required": [
              "records"
            ],
            "properties": {
              "records": {
                "description": "List of delete operations to remove whole preference records.",
                "type": "array",
                "maxItems": 10,
                "items": {
                  "type": "object",
                  "required": [
                    "anchorIdentifier",
                    "timestamp"
                  ],
                  "properties": {
                    "anchorIdentifier": {
                      "description": "The primary identifier used to locate and delete the preference record.",
                      "type": "object",
                      "required": [
                        "name",
                        "value"
                      ],
                      "properties": {
                        "name": {
                          "type": "string",
                          "description": "Identifier name (e.g. \"email\", \"phone\")"
                        },
                        "value": {
                          "type": "string",
                          "description": "Identifier value for locating the preference record"
                        }
                      }
                    },
                    "timestamp": {
                      "type": "string",
                      "format": "date-time",
                      "description": "ISO 8601 timestamp when the deletion was requested. This is used for auditing and bookkeeping purposes."
                    }
                  }
                }
              }
            }
          },
          "examples": {
            "Delete single record": {
              "value": {
                "records": [
                  {
                    "anchorIdentifier": {
                      "name": "email",
                      "value": "xyz@foo.com"
                    },
                    "timestamp": "2025-11-26T17:33:13.515Z"
                  }
                ]
              }
            },
            "Delete multiple records": {
              "value": {
                "records": [
                  {
                    "anchorIdentifier": {
                      "name": "email",
                      "value": "user1@example.com"
                    },
                    "timestamp": "2025-11-26T17:33:13.515Z"
                  },
                  {
                    "anchorIdentifier": {
                      "name": "phone",
                      "value": "+15551234567"
                    },
                    "timestamp": "2025-11-26T17:34:00.000Z"
                  }
                ]
              }
            },
            "Delete record by Transcend ID": {
              "value": {
                "records": [
                  {
                    "anchorIdentifier": {
                      "name": "transcend",
                      "value": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
                    },
                    "timestamp": "2025-11-26T17:33:13.515Z"
                  }
                ]
              }
            }
          }
        }
      }
    },
    "security": [
      {
        "Transcend_API_Key": [
          "Modify User Stored Preferences"
        ]
      }
    ],
    "responses": {
      "200": {
        "description": "The response payload contains the results of the batch delete operation. Each record in the records array corresponds to an input record and indicates whether the delete operation succeeded or failed, along with any relevant error messages. Note: When the response includes failures, clients can only retry the failed items from the original request after addressing the reported errors. When the response includes errors, clients should retry the entire batch after addressing the reported errors.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "records": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "success": {
                        "type": "boolean",
                        "description": "Whether the delete for this record succeeded."
                      },
                      "errorMessage": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Error message when `success` is false."
                      }
                    }
                  }
                },
                "failures": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "index": {
                        "type": "number"
                      },
                      "error": {
                        "type": "string"
                      }
                    }
                  }
                },
                "errors": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            },
            "examples": {
              "Successful delete": {
                "value": {
                  "records": [
                    {
                      "success": true
                    }
                  ],
                  "failures": [],
                  "errors": []
                }
              },
              "Succeful batch delete ": {
                "value": {
                  "records": [
                    {
                      "success": true
                    },
                    {
                      "success": true
                    },
                    {
                      "success": true
                    }
                  ],
                  "failures": [],
                  "errors": []
                }
              },
              "Partial Success": {
                "value": {
                  "records": [
                    {
                      "success": false,
                      "errorMessage": "No preference record found for anchor identifier: \"email\" with value: \"missing@example.com\""
                    },
                    {
                      "success": true
                    }
                  ],
                  "failures": [
                    {
                      "index": 0,
                      "error": "No preference record found for anchor identifier: \"email\" with value: \"missing@example.com\""
                    }
                  ],
                  "errors": []
                }
              }
            }
          }
        }
      },
      "400": {
        "description": "Bad Request",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errors": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            },
            "examples": {
              "Batch too large": {
                "value": {
                  "errors": [
                    "Too many preference record deletions in a batch. Max: 10"
                  ]
                }
              }
            }
          }
        }
      },
      "401": {
        "description": "There was a problem authenticating your request. This may be an issue with the Transcend API key (\"authorization\" header), or the Sombra API key (\"x-sombra-authorization\" header used for self-hosted gateways only).",
        "headers": {},
        "content": {
          "application/json": {
            "schema": {
              "description": "",
              "type": "object",
              "properties": {}
            }
          }
        }
      },
      "413": {
        "description": "The request body is too large. JSON and raw bodies must be less than 50MB. URL encoded bodies must be less than 30MB.",
        "headers": {},
        "content": {
          "application/json": {
            "schema": {
              "description": "",
              "type": "object",
              "properties": {}
            }
          }
        }
      },
      "429": {
        "description": "You are sending requests too quickly and have hit our rate limit. If you hit this, you'll need to throttle your request velocity or try again later.",
        "headers": {
          "Retry-After": {
            "description": "The number of seconds to wait before retrying.",
            "schema": {
              "type": "integer"
            }
          },
          "X-RateLimit-Limit": {
            "description": "The maximum number of requests allowed in the time window.",
            "schema": {
              "type": "integer"
            }
          },
          "X-RateLimit-Remaining": {
            "description": "The number of requests remaining in the time window.",
            "schema": {
              "type": "integer"
            }
          },
          "X-RateLimit-Reset": {
            "description": "The time at which the rate limit will reset.",
            "schema": {
              "type": "integer"
            }
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "description": "",
              "type": "object",
              "properties": {}
            }
          }
        }
      },
      "500": {
        "description": "A 5xx error means there is either an issue with your self-hosted gateway, or a Transcend server is having issues. You check our system status at status.transcend.io. Please reach out to Transcend support if you're experiencing this error.",
        "headers": {},
        "content": {
          "application/json": {
            "schema": {
              "description": "",
              "type": "object",
              "properties": {}
            }
          }
        }
      },
      "502": {
        "description": "An upstream service on Transcend's side is having issues. You check our system status at status.transcend.io. Please reach out to Transcend support if you're experiencing this error.",
        "headers": {},
        "content": {
          "application/json": {
            "schema": {
              "description": "",
              "type": "object",
              "properties": {}
            }
          }
        }
      }
    },
    "tags": [
      "Preferences (Server-Side)"
    ]
  }
}
```