AVAILABLE
E-commerce
SKU Normalize & Collision Guard
Inspect and normalize merchant-scoped SKU strings, compare identities under explicit rules, detect batch collisions, build unreserved candidates, and apply caller-defined namespace policy.
CONTRACT
Predictable for agents. Legible for reviewers.
- REST
POST /v1/skus/policy-check- MCP tool
check_sku_policy- Inputs
- One bounded SKU string up to 128 characters; comparison accepts two strings, collision inspection accepts up to 1,000 caller-supplied rows, and candidate building accepts up to 20 components plus an optional known-SKU set.
- Returns
- CLEAR, REVIEW_REQUIRED, or BLOCKED with exact Unicode and length evidence, an explicit normalized value and change list, exact/case/normalized collision groups, candidate evidence, named policy findings, and an agent-readable next action.
- Latency
- Synchronous
- Usage unit
- SKU operation
The suite also exposes /v1/skus/inspect, /v1/skus/normalize, /v1/skus/compare, /v1/skus/batch/inspect, and /v1/skus/build plus /mcp/sku. GOOGLE_MERCHANT_ID_2026 checks the documented 50-character ID limit only. The API never queries a marketplace, writes to a catalog, reserves a candidate, proves product identity, or verifies uniqueness outside the supplied request.
AGENT-READABLE EXCEPTIONS
SKU_CONTROL_CHARACTERSKU_INTERNAL_WHITESPACE_BLOCKEDSKU_NORMALIZATION_CHANGED_VALUESKU_NON_EXACT_COLLISIONSKU_CANDIDATE_TOO_LONGSKU_CANDIDATE_COLLISIONSKU_CHARSET_NOT_ALLOWEDSKU_REQUIRED_PREFIX_MISSINGSKU_BLOCKED_PREFIXSKU_RESERVED_VALUESKU_OUTPUT_TOO_LARGEHTTP request
POST /v1/skus/policy-check
Authorization: Bearer apc_...
Content-Type: application/json
{
"sku": "ACME-TSHIRT-BLUE-M",
"min_length": 3,
"max_length": 50,
"charset": "ASCII_ALNUM_DASH_UNDERSCORE",
"required_prefixes": [
"ACME-"
],
"blocked_prefixes": [
"TEST-"
],
"reserved_values": [
"UNKNOWN"
],
"require_alphanumeric": true,
"require_normalized_input": true
}cURL (bash)
curl --request POST \
--url 'https://api-production-9502.up.railway.app/v1/skus/policy-check' \
--header 'Authorization: Bearer ${AP_CONTROL_API_KEY}' \
--header 'Content-Type: application/json' \
--data '{
"sku": "ACME-TSHIRT-BLUE-M",
"min_length": 3,
"max_length": 50,
"charset": "ASCII_ALNUM_DASH_UNDERSCORE",
"required_prefixes": [
"ACME-"
],
"blocked_prefixes": [
"TEST-"
],
"reserved_values": [
"UNKNOWN"
],
"require_alphanumeric": true,
"require_normalized_input": true
}'Representative response
{
"status": "COMPLETED",
"decision": "CLEAR",
"original": "ACME-TSHIRT-BLUE-M",
"normalized": "ACME-TSHIRT-BLUE-M",
"findings": [],
"ruleset_version": "2026-08-11",
"validation_scope": "CALLER_POLICY_AND_VALUE_ONLY",
"marketplace_queried": false,
"uniqueness_verified_outside_request": false,
"payload_stored": false,
"next_action": "The supplied value satisfies the caller's static SKU policy."
}Use SKU Normalize & Collision Guard through RapidAPI.
Choose a capped marketplace plan, copy the generated request, and route the structured result through your own authorized workflow.