From b2c-cli
Verifies custom SCAPI endpoint registration status using the b2c CLI. Debugs 404 errors and lists deployment status of custom API endpoints.
How this skill is triggered — by the user, by Claude, or both
Slash command
/b2c-cli:b2c-scapi-customThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Use the `b2c` CLI plugin to manage SCAPI Custom API endpoints and check their registration status.
Use the b2c CLI plugin to manage SCAPI Custom API endpoints and check their registration status.
Tip: If
b2cis not installed globally, usenpx @salesforce/b2c-cliinstead (e.g.,npx @salesforce/b2c-cli scapi custom status).
Values like tenantId, shortCode, clientId, and clientSecret resolve from dw.json / SFCC_* env vars / the active instance / configuration plugins. Examples below show minimal usage; add flags only to override configured values — passing --client-id/--client-secret/--tenant-id/--short-code is usually unnecessary. If a required value is missing, the CLI emits an actionable error pointing at the flag, env var, and config key.
Run b2c setup inspect to see the resolved configuration and which source provided each value (--json for scripting, --unmask to reveal secrets). For precedence rules and troubleshooting, see the b2c-cli:b2c-config skill.
The tenant ID identifies your B2C Commerce instance. It is not the same as the organization ID:
zzxy_prd (the tenantId value in dw.json, or --tenant-id override)f_ecom_zzxy_prd (used in SCAPI URLs, has f_ecom_ prefix)For sandbox instances, derive the tenant ID from the hostname by replacing hyphens with underscores:
| Hostname | Tenant ID |
|---|---|
zzpq-013.dx.commercecloud.salesforce.com | zzpq_013 |
zzxy-001.dx.commercecloud.salesforce.com | zzxy_001 |
abcd-dev.dx.commercecloud.salesforce.com | abcd_dev |
For production instances, use your realm and instance identifier (e.g., zzxy_prd).
# list all Custom API endpoints for the configured tenant
b2c scapi custom status
# list with JSON output
b2c scapi custom status --json
# target a different tenant than the active config
b2c scapi custom status --tenant-id zzxy_prd
# list only active endpoints
b2c scapi custom status --status active
# list only endpoints that failed to register
b2c scapi custom status --status not_registered
# group endpoints by API type (Admin vs Shopper)
b2c scapi custom status --group-by type
# group endpoints by site
b2c scapi custom status --group-by site
# show extended columns (includes error reasons, sites, etc.)
b2c scapi custom status --extended
# select specific columns to display
b2c scapi custom status --columns type,apiName,status,sites
# available columns: type, apiName, apiVersion, cartridgeName, endpointPath, httpMethod, status, sites, securityScheme, operationId, schemaFile, implementationScript, errorReason, id
# quickly find and diagnose failed Custom API registrations
b2c scapi custom status --status not_registered --columns type,apiName,endpointPath,errorReason
The tenant ID and short code can be overridden via flags or environment variables:
--tenant-id / SFCC_TENANT_ID / tenantId in dw.json--short-code / SFCC_SHORTCODE / shortCode in dw.jsonSee b2c scapi custom --help for a full list of available commands and options.
b2c scapi custom status injects the scopes it needs automatically — the domain scope sfcc.custom-apis plus the tenant scope SALESFORCE_COMMERCE_API:<tenant_id>. You don't pass these for the command itself.
When you mint a token by hand (with b2c auth token or curl) to call a custom Admin API directly, that injection does not happen — you must list both the tenant scope and your scope(s) yourself. b2c auth token accepts multiple scopes (repeat --auth-scope or comma-separate):
# Token for calling a custom Admin API endpoint
b2c auth token \
--auth-scope "SALESFORCE_COMMERCE_API:zzpq_013" \
--auth-scope c_my_admin_scope
A token missing the tenant scope returns 403. See b2c:b2c-custom-api-development (Testing Reference) for full request examples.
b2c:b2c-custom-api-development - Creating Custom API endpoints (schema, script, mapping)b2c-cli:b2c-code - Deploying and activating code versions (triggers registration)npx claudepluginhub salesforcecommercecloud/b2c-developer-tooling --plugin b2c-cliDevelops Custom SCAPI REST endpoints with api.json routes, schema.yaml definitions, and OAuth scope configuration. Helps debug endpoint registration and 404 issues for Salesforce B2C Commerce.
Browses and retrieves SCAPI OpenAPI schema specifications for Salesforce B2C Commerce. Helps list APIs, inspect endpoints, request/response shapes, and data models.
Documents OCAPI Shop and Data API endpoints, authentication, pagination, and SCAPI migration guide for maintaining legacy Salesforce B2C Commerce integrations.