> ## 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. # Delete a variant by ID > Both source and enriched data is removed. ## OpenAPI ````json DELETE /api/product-catalog/v1/catalogs/{catalogId}/variants { "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": { "delete": { "tags": [ "Variant Data Operations" ], "summary": "Delete a variant by ID", "description": "Both source and enriched data is removed.", "operationId": "deleteVariant", "parameters": [ { "name": "catalogId", "in": "path", "description": "Catalog identifier containing the variant to delete.", "required": true, "schema": { "type": "integer", "format": "int64" } }, { "name": "variantId", "in": "query", "description": "Variant identifier. If it contains special characters, clients must URL-encode the query parameter value.", "required": true, "schema": { "type": "string" } } ], "responses": { "500": { "description": "Variant delete failed unexpectedly.", "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" } } } }, "202": { "description": "Variant delete accepted for processing", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VariantOperationResponseDTO" }, "example": { "variant_id": "V-1001", "catalog_id": 123, "status": "accepted", "message": "Variant delete accepted for processing", "event_id": "550e8400-e29b-41d4-a716-446655440000", "operation": "delete", "accepted_at": 1783502993000 } } } }, "404": { "description": "Variant delete target was not found by downstream validation.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VariantOperationResponseDTO" }, "example": { "variant_id": "V-1001", "catalog_id": 123, "status": "failed", "message": "Variant delete failed: price mandatory field cannot be deleted", "operation": "delete", "accepted_at": 1783502993000, "accepted_attributes": {}, "skipped_attributes": {} } } } }, "400": { "description": "Variant delete was rejected during validation.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VariantOperationResponseDTO" }, "example": { "variant_id": "V-1001", "catalog_id": 123, "status": "failed", "message": "Variant delete failed: price mandatory field cannot be deleted", "operation": "delete", "accepted_at": 1783502993000, "accepted_attributes": {}, "skipped_attributes": {} } } } } } } } }, "components": { "schemas": { "ErrorResponse": { "type": "object", "properties": { "message": { "type": "string" }, "httpStatus": { "type": "integer", "format": "int32" }, "errorCode": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } }, "VariantOperationResponseDTO": { "type": "object", "properties": { "variant_id": { "type": "string", "example": "V-1001" }, "catalog_id": { "type": "integer", "format": "int64", "example": 123 }, "status": { "type": "string", "example": "accepted", "enum": [ "accepted", "failed" ] }, "message": { "type": "string", "example": "Variant add accepted for processing" }, "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" }, "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" ] }, "accepted_at": { "type": "integer", "format": "int64", "example": 1783502993000 }, "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" } } }, "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" } } } } ````