Public APIs
The Public API integration lets you programmatically manage B2B pricing rules and registration workflows at scale, without manually configuring each rule in the app dashboard.
Who Should Use This
Section titled “Who Should Use This”Public APIs are intended for:
- Developers integrating B2B pricing with external ERP or PIM systems
- Merchants with large catalogs who need automated pricing rule management
- Teams using CSV/data pipeline workflows to sync pricing from external sources
Plan Requirement
Section titled “Plan Requirement”Public API access requires the Platinum plan (or the Enterprise plan if your store is on a legacy plan).
Authentication
Section titled “Authentication”All API requests require an Access Key generated from within the app:
- In the app menu, click Integrations and find the Public API card.
- Click Get API key, then generate the API key.

- Copy your Access Key.

Treat the key like a password: anyone with it can read your B2B data and call the write endpoints. If it leaks, delete (revoke) it on the same card; clients using it stop working at once, and you can generate a new key.
- Include it in every request: either in the request body as
accessKey, or as a header. The header name depends on the API version, so check which one your endpoint uses:
| API version | Endpoints | Header name |
|---|---|---|
v1 (/api/v1/...) |
Custom Pricing (CP), Price List (PL), Registration Form (RF), and all v1 Volume Pricing (VP) endpoints |
x-bss-b2b-api-key |
v2 (/api/v2/...) |
Volume Pricing (VP) GET /api/v2/vp/rules |
x-api-key |
Some v1 endpoints read the key from the request body only and reject the header with 400 No domain or access key invalid: the three upload endpoints (rule/upload, qb/rule/upload, pl/rule/upload), PUT /rule/delete-items, PUT /pl/delete-items and PUT /pl/update-items. For these, send accessKey in the JSON body.
Base URL
Section titled “Base URL”Send requests to https://solution-public-api.bss-b2b.solutions. The previous host b2b-solution-public-api.bsscommerce.com keeps working, so existing integrations do not need to change.
Available API Groups
Section titled “Available API Groups”| API Group | What it manages |
|---|---|
| Uploading APIs | Upload/sync active rules to your Shopify theme |
| Volume Pricing (VP) APIs | Manage quantity break / volume pricing rules |
| Custom Pricing (CP) APIs | Manage custom pricing rules |
| Price List (PL) APIs | Manage price list per customer rules |
| Registration Form (RF) APIs | Manage wholesale registration workflows |
Logs and Usage
Section titled “Logs and Usage”On the Integrations page, click Logs and usage on the Public API card. The page lists your recent API requests with the columns Request, Created at, Status, Method and Path, in three tabs: Custom Pricing, Volume Pricing and Price Lists. Request logs are kept for 30 days. Click a row to see the full request and response. Requests to other resources, such as Discount Code, Registration Form or Order Limit, are listed under the Price Lists tab.
Use it to confirm that your integration connects, and to see why a request failed.
Rate Limits
Section titled “Rate Limits”| Endpoint group | Limit |
|---|---|
| Upload endpoints | 1 request per module per 5 minutes |
Bulk write endpoints (bulk-save, mass-delete, bulk-delete) |
While one of these calls, or a delete-items / update-items call, is running for a store, other bulk write calls for the same store, in any module (CP, PL, VP), return 429 Domain is executing another process. Try later. After a server error, wait up to 3 minutes. |
Exceeding rate limits returns a 429 Too Many Requests response.
Technical Constraints
Section titled “Technical Constraints”Pricing data is stored in Shopify metafields as JSON with these limits:
- Maximum 10 keys per metafield
- Maximum 2,000,000 characters per key
- Maximum ~20,000,000 characters total
Content exceeding these limits will not be uploaded to the theme.