> For the complete documentation index, see [llms.txt](https://help.dollarlabs.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.dollarlabs.io/dollarlabs-b2b-custom-pricing/developer-tools.md).

# Developer tools

Push pricing from an ERP or PIM, and read resolved prices in the browser.

Use these guides when you need an external pricing integration or custom storefront code. The [merchant setup](/dollarlabs-b2b-custom-pricing/getting-started/set-up-wholesale-pricing.md) uses the app and its theme blocks without requiring an API integration or a custom cart.

## [API keys](/dollarlabs-b2b-custom-pricing/developer-tools/api-keys.md)

Create and manage the credentials your systems authenticate with, and optionally lock them to specific IP addresses.

## [Pricing API](/dollarlabs-b2b-custom-pricing/developer-tools/api-for-bulk-update-pricing.md)

A REST API for reading and writing price list data. Push prices straight from an ERP, PIM or internal tool instead of maintaining a CSV.

Updates are asynchronous: you submit a batch, get a job ID back, and poll it.

## [Quotes API](/dollarlabs-b2b-custom-pricing/developer-tools/quotes-api.md)

Read [quotes](/dollarlabs-b2b-custom-pricing/quotes.md), their negotiation history and the buyer's form answers into an ERP, CRM or report. Read-only; uses the same API keys as the Pricing API.

## [Storefront UI SDK](/dollarlabs-b2b-custom-pricing/developer-tools/ui-sdk-for-storefront.md)

Read-only JavaScript helpers on `window.Dollarlabs`, available when Collection Pricing is enabled. One call returns the buyer's unit price, line total, ordering rules and next volume break. Query the same pricing the app resolves, so custom storefront UI stays consistent with the product page and checkout.

## Which to use

<table><thead><tr><th width="290">You want to…</th><th>Use</th></tr></thead><tbody><tr><td>Sync prices nightly from an ERP</td><td><a href="/dollarlabs-b2b-custom-pricing/developer-tools/api-for-bulk-update-pricing.md">Pricing API</a></td></tr><tr><td>Update a few thousand prices occasionally</td><td><a href="/dollarlabs-b2b-custom-pricing/price-list/csv-import-and-export.md">CSV import</a> — no code</td></tr><tr><td>Build a custom price display or calculator</td><td><a href="/dollarlabs-b2b-custom-pricing/developer-tools/ui-sdk-for-storefront.md">UI SDK</a></td></tr><tr><td>Pull quote requests into a CRM or ERP</td><td><a href="/dollarlabs-b2b-custom-pricing/developer-tools/quotes-api.md">Quotes API</a></td></tr><tr><td>Show prices on collection pages</td><td><a href="/dollarlabs-b2b-custom-pricing/show-final-prices-on/collection-page.md">Collection Pricing block</a> — no code</td></tr></tbody></table>

{% hint style="info" %}
The API and CSV import write to the same price list and run through the same job queue. Mixing them is fine, but avoid running a large import and a large API batch at the same time — only one job runs per shop at a time.
{% endhint %}
