> ## Documentation Index > Fetch the complete documentation index at: https://docs.mapp.com/llms.txt > Use this file to discover all available pages before exploring further. # Bulk delete variants > Deletes multiple variants in a single request. Each variant in the array is deleted if it exists and skipped otherwise, removing both source and enriched data. Up to 1000 variants are allowed per request. ## OpenAPI ````json DELETE /api/product-catalog/v1/catalogs/{catalogId}/variants/bulk { "openapi": "3.0.1", "info": { "title": "Product Catalog - Public API", "version": "1.0.3" }, "servers": [ { "url": "https://api.mapp.com" } ], "security": [ { "Keycloak": [] } ], "tags": [ { "name": "Variant Data Bulk Operations", "description": "Endpoints for variant data bulk operations" }, { "name": "Variant Data Operations", "description": "Endpoints for variant data operations" }, { "name": "Catalog Metadata Operations", "description": "Endpoints for catalog metadata operations" }, { "name": "Product Data Operations", "description": "Endpoints for product data operations" } ], "paths": { "/api/product-catalog/v1/catalogs/{catalogId}/variants/bulk": { "delete": { "tags": [ "Variant Data Bulk Operations" ], "summary": "Bulk delete variants", "description": "Deletes multiple variants in a single request. Each variant in the array is deleted if it exists and skipped otherwise, removing both source and enriched data. Up to 1000 variants are allowed per request.", "operationId": "bulkDeleteVariants", "parameters": [ { "name": "catalogId", "in": "path", "description": "Catalog identifier containing the variants to delete.", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "requestBody": { "description": "List of variant identifiers to delete.", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BulkDeleteVariantOperationFlatSchema" } }, "example": [ { "variant_id": "V-1001" }, { "variant_id": "V-1002" } ] } }, "required": true }, "responses": { "500": { "description": "Unexpected error while processing bulk delete.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" }, "example": { "message": "Unexpected error while processing request", "httpStatus": 500, "errorCode": "500 Internal Server Error", "timestamp": "2026-07-08T12:00:00Z" } } } }, "422": { "description": "Bulk delete payload exceeds the maximum allowed size of 1000 variants.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkVariantOperationResponseDTO" }, "example": { "operation_id": "350e8400-e29b-41d4-a716-546655440000", "operation": "add", "status": "failed", "catalog_id": 123, "total_variants_success": 0, "total_variants_failed": 0, "message": "Payload list exceeds maximum allowed size of 1000", "accepted_at": 1783502993000, "variant_events_success": [], "variant_events_failed": [] } } } }, "202": { "description": "Variant delete accepted for processing", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkVariantOperationResponseDTO" }, "example": { "operation_id": "350e8400-e29b-41d4-a716-546655440000", "operation": "delete", "status": "accepted", "catalog_id": 123, "total_variants_success": 2, "total_variants_failed": 0, "message": "Variant delete accepted for processing", "accepted_at": 1783502993000, "variant_events_success": [ { "event_id": "550e8400-e29b-41d4-a716-446655440000", "variant_id": "V-1001", "status": "accepted" }, { "event_id": "660e8400-e29b-41d4-a716-446655440000", "variant_id": "V-1002", "status": "accepted" } ], "variant_events_failed": [] } } } }, "400": { "description": "Bulk delete payload list is missing or null.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkVariantOperationResponseDTO" }, "example": { "operation_id": "350e8400-e29b-41d4-a716-546655440000", "operation": "add", "status": "failed", "catalog_id": 123, "total_variants_success": 0, "total_variants_failed": 0, "message": "Payload list is null", "accepted_at": 1783502993000, "variant_events_success": [], "variant_events_failed": [] } } } } } } } }, "components": { "schemas": { "BulkDeleteVariantOperationFlatSchema": { "required": [ "variant_id" ], "type": "object", "properties": { "variant_id": { "type": "string", "description": "Client-defined unique identifier of the purchasable variant. Maximum length is 255 characters.", "example": "V-1001" } }, "description": "Flat request payload for bulk deleting a SOURCE variant. " }, "ErrorResponse": { "type": "object", "properties": { "message": { "type": "string" }, "httpStatus": { "type": "integer", "format": "int32" }, "errorCode": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "BulkVariantOperationResponseDTO": { "type": "object", "properties": { "operation_id": { "type": "string", "example": "350e8400-dgwe-41d4-a716-546655440000" }, "status": { "type": "string", "example": "accepted", "enum": [ "accepted", "failed" ] }, "catalog_id": { "type": "integer", "format": "int64", "example": 123 }, "operation": { "type": "string", "example": "add", "enum": [ "add", "upsert", "partial_update", "delete", "delete_attributes", "add_existing_only", "overwrite", "overwrite_existing_only", "update", "update_existing_only", "update_localized_attribute", "update_localized_attribute_existing_only", "clean" ] }, "total_variants_success": { "type": "integer", "format": "int32", "example": 1 }, "total_variants_failed": { "type": "integer", "format": "int32", "example": 1 }, "message": { "type": "string", "example": "Variant add accepted for processing\"" }, "accepted_at": { "type": "string", "format": "date-time" }, "variant_events_success": { "type": "array", "items": { "$ref": "#/components/schemas/VariantEventResult" } }, "variant_events_failed": { "type": "array", "items": { "$ref": "#/components/schemas/VariantEventResult" } } } }, "VariantEventResult": { "type": "object", "properties": { "event_id": { "type": "string", "description": "Unique generated UUID assigned to the event and preserved throughout its whole lifecycle.\nThe event_id is used in logs and is also sent back to the client with webhook events when\nwebhooks are configured, so clients are advised to log/save it on their side.", "example": "550e8400-e29b-41d4-a716-446655440000" }, "variant_id": { "type": "string", "example": "V-1001" }, "status": { "type": "string", "example": "accepted", "enum": [ "accepted", "failed" ] }, "accepted_attributes": { "type": "object", "additionalProperties": { "type": "object", "example": { "color": { "en-GB": "Navy Blue", "de-DE": "Marineblau", "fr-FR": "Bleu marine" }, "size": { "US": "S", "EU": "36" } } }, "example": { "color": { "en-GB": "Navy Blue", "de-DE": "Marineblau", "fr-FR": "Bleu marine" }, "size": { "US": "S", "EU": "36" } } }, "skipped_attributes": { "$ref": "#/components/schemas/SkippedAttributesDTO" }, "failure_reason": { "type": "string", "description": "Filled in only when variant could not be processed.", "example": "price mandatory field cannot be deleted" } } }, "SkippedAttributesDTO": { "type": "object", "properties": { "non_existing_attributes": { "uniqueItems": true, "type": "array", "example": [ "custom_attribute_abc" ], "items": { "type": "string", "example": "[\"custom_attribute_abc\"]" } }, "inactive_attributes": { "uniqueItems": true, "type": "array", "example": [ "custom_attribute_def" ], "items": { "type": "string", "example": "[\"custom_attribute_def\"]" } }, "invalid_data_type_attributes": { "type": "object", "additionalProperties": { "type": "string", "example": "{\"price\":\"price map value must be a number\",\"gtin\":\"gtin field must be 8-14 digits\",\"min_age\":\"min_age value must be a number\"}" }, "example": { "price": "price map value must be a number", "gtin": "gtin field must be 8-14 digits", "min_age": "min_age value must be a number" } } } } }, "securitySchemes": { "Keycloak": { "type": "http", "scheme": "bearer", "bearerFormat": "JWT" } } } } ````