Base URL
인증
어떤 API 키로도 이 API를 호출할 수 있습니다. 기본값인 실행 전용 범위로 만든 키도 됩니다. 모든 요청에 포함하세요:실행 모드
단일 그룹 실행
현재 배포된 버전의 모든 활성 규칙을 평가합니다.요청
context가 하는 일은 둘입니다. 이름만 봐서는 드러나지 않습니다.
- A/B 라우팅이 읽습니다. 정책 그룹에 A/B 테스트가 진행 중이면
context.trafficKey가 어느 버전이 요청을 처리할지 정합니다. 이 값이 없으면 테스트 버전 트래픽이 0%가 됩니다. 트래픽 식별 키를 참조하세요. - 기록에 남습니다. 객체 전체가 요청과 함께 실행 원장에 저장되어 실행 이력과 감사 화면에 나타납니다. 개인정보는 담지 않습니다.
context가 아니라 facts로 보냅니다. fact 정의와 /requirements 응답, 실행 응답이 모두 합의하는 입력은 facts 하나입니다. context로 보낸 값은 그 계약 밖이라 fact 정의로 등록할 수 없고, /requirements에 나타나지 않으며, 응답으로 돌아오지도 않습니다.
응답
data.traceId는 이 실행의 감사 핸들입니다. 나중에 이 실행을 추적하려면 자체 레코드와 함께 저장하세요.
응답의 data 객체는 상태를 세 층위로 분리합니다:
inputFacts: 요청에서 받은 입력 fact (정규화 후).mutatedFacts: 규칙 액션에 의해 값이 변경된 fact만.generatedVariables: 규칙 액션이 새로 생성한 변수 (입력에 없었던 것). 액션별 변화 키도 포함됩니다.{targetVar}__delta는MUTATE_FACT가 적용한 부호 포함 변화량입니다.
{ ...inputFacts, ...mutatedFacts, ...generatedVariables }로 재구성하세요.
멱등성
Idempotency-Key 헤더를 포함하면 중복 실행을 방지합니다. 동일한 키로 이미 처리된 요청이 있으면, 정책을 재실행하지 않고 원래 응답을 반환합니다.
재생된 응답은 에러가 아니라 정상 200입니다. 첫 호출과 traceId와 executedAt이 같아서 재생인지 새 실행인지 구분할 수 있습니다. 아래 I-001은 다른 상황입니다. 키가 이미 소진되어 이 요청을 그 키로 처리할 수 없다는 뜻입니다.
키 형식. 최대 255자입니다. 키를 어떻게 만들지는 자유이나 V4 UUID 나 충돌하지 않을 만큼 엔트로피가 있는 난수 문자열을 권합니다. 상한을 넘으면 잘라내지 않고 I-003으로 거부합니다. 자르면 서로 다른 두 키가 하나로 접혀 한 요청이 다른 요청의 재생으로 처리되기 때문입니다.
키는 실행 원장에 평문으로 저장되어 보관 기간 동안 남습니다. 개인정보를 키에 넣지 마세요. 이메일, 전화번호, 이름 모두 해당합니다.
특정 버전 실행
트래픽 라우팅을 우회하여 정책 그룹의 특정 버전을 실행합니다. A/B 테스트 후보 버전 검증이나 롤백 전 이전 버전 테스트에 유용합니다.버전은
ACTIVE (발행됨) 상태여야 합니다. DRAFT 버전은 Engine API로 실행할 수 없습니다. DRAFT 테스트에는 드라이런을 사용하세요.배치 실행
여러 fact 세트를 동일한 정책 그룹에 대해 한 번의 호출로 실행합니다. 일관성을 위해 배치 내 모든 요청이 동일 버전으로 평가됩니다.요청
응답
sharedContext와 병합됩니다 (개별 요청 컨텍스트가 충돌 시 우선).
배치 실행은 TPS 스로틀링에서 아이템 수와 관계없이 1회 API 호출로 계산됩니다. 단, 과금은 총 아이템 수 기준입니다.
복합 실행
동일한 fact를 여러 정책 그룹에 대해 한 번의 호출로 평가합니다. 하나의 거래가 여러 정책 검사를 동시에 통과해야 할 때 사용합니다 (예: 상품할인 + 장바구니쿠폰 + 배송비 + 멤버십적립).요청
응답에는 평가된 모든 그룹의
inputFacts, mutatedFacts, generatedVariables, executionTraces, decisionTraces가 병합되어 포함됩니다.
모든 대상 그룹이 ACTIVE 상태여야 합니다.
필수 fact 조회
실행 엔드포인트를 호출하기 전에 배포된 버전이 어떤 입력 fact를 필요로 하는지 확인합니다.Accept-Language 헤더로 usedBy 설명의 언어를 제어합니다 (en 또는 ko).
응답
시스템 fact
모든 테넌트는 계정 생성 시 2개의 시스템 fact가 자동 등록됩니다. 수동 생성이 필요 없습니다:
각 fact가 실제 실행에서 필수인지는 배포된 버전의 어떤 규칙이 그 fact를 참조하느냐에 달려 있습니다. 정확히 어떤 fact가 필요한지는
GET /groups/{groupId}/requirements를 호출해 확인하세요.
그 외 모든 fact(예: paymentAmount, customerTier, orderRegion)는 사용자가 정의하며, 사용 전에 fact 정의에서 등록해야 합니다.
오류 처리
모든 오류는 동일한 envelope 형태를 따릅니다:
전체 도메인(인증·빌링·시뮬레이션 등)에 걸친 코드 레지스트리는 에러 레퍼런스를 참조하세요.
다음 단계
드라이런
라이브 전에 부작용 없이 규칙을 테스트합니다.
fact 정의
규칙에 사용할 커스텀 입력 변수를 등록합니다.

