속성 삭제
/crm-core/v1/properties/{propertyId}속성을 영구 삭제합니다. 속성이 삭제되면 해당 속성에 대한 모든 레코드 값(record_values)도 함께 제거됩니다. OWNER 전용 권한이 필요합니다.
Path Params
Response
Structure
코드 예제
const crypto = require('crypto');
const apiKey = 'NCSXXXXXXXXXXXXX';
const apiSecret = 'YOUR_API_SECRET';
const dateTime = new Date().toISOString();
const salt = crypto.randomBytes(16).toString('hex');
const signature = crypto.createHmac('sha256', apiSecret).update(dateTime + salt).digest('hex');
const authHeader = HMAC-SHA256 apiKey=${apiKey}, date=${dateTime}, salt=${salt}, signature=${signature};
const response = await fetch('https://api.solapi.com/crm-core/v1/properties/CRMPP1260423091530123PPP11122233', {
method: 'DELETE',
headers: { 'Authorization': authHeader, 'Content-Type': 'application/json' }
});
const data = await response.json();
import hmac, hashlib, secrets, requests
from datetime import datetime, timezone
api_key = 'NCSXXXXXXXXXXXXX'
api_secret = 'YOUR_API_SECRET'
date_time = datetime.now(timezone.utc).strftime('%Y-%m-%dT%H:%M:%SZ')
salt = secrets.token_hex(16)
signature = hmac.new(api_secret.encode(), (date_time + salt).encode(), hashlib.sha256).hexdigest()
auth_header = f'HMAC-SHA256 apiKey={api_key}, date={date_time}, salt={salt}, signature={signature}'
response = requests.delete('https://api.solapi.com/crm-core/v1/properties/CRMPP1260423091530123PPP11122233', headers={
'Authorization': auth_header,
'Content-Type': 'application/json'
})
data = response.json()
API_KEY="NCSXXXXXXXXXXXXX"
API_SECRET="YOUR_API_SECRET"
DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
SALT=$(openssl rand -hex 16)
SIGNATURE=$(echo -n "${DATE}${SALT}" | openssl dgst -sha256 -hmac "${API_SECRET}" | awk '{print $NF}')
AUTH="HMAC-SHA256 apiKey=${API_KEY}, date=${DATE}, salt=${SALT}, signature=${SIGNATURE}"
curl -X DELETE 'https://api.solapi.com/crm-core/v1/properties/CRMPP1260423091530123PPP11122233' \
-H "Authorization: ${AUTH}" \
-H "Content-Type: application/json"
**복구 불가능**: 속성 삭제는 휴지통 없이 즉시 영구 삭제됩니다. 해당 속성에 대해 저장된 모든 레코드 값도 함께 사라지며 복원할 수 없습니다. 삭제 전 반드시 **백업**하거나 **속성 비활성화**(사용하지 않음 표시) 방식을 고려하세요.
속성 삭제 시 record_values (해당 속성의 record 값) 와 entity.propertyIds 도 자동 cascade 정리됩니다.
개체의 `viewSettings.board.groupByPropertyId` 등에서 참조 중인 속성을 삭제하면 해당 설정이 유효하지 않게 됩니다. 삭제 전 관련 뷰 설정을 먼저 정리하세요.
**401 응답**: `{ "errorCode": "Unauthorized", "errorMessage": "권한이 없습니다." }`