Bootic Price Lists API
Named price lists for B2B / wholesale pricing. Products can have per-variant price overrides within a price list.
Named price lists for B2B / wholesale pricing. Products can have per-variant price overrides within a price list.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/bootic-price-lists-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Bolder API v2 Price Lists API
version: '2.0'
description: '## Getting Started
The Bolder API provides programmatic access to your Bolder Shop data through a
hypermedia-driven REST interface.'
contact:
name: Bolder API Support
url: https://www.onbolder.com
servers:
- url: https://api.onbolder.com/v2
description: Production
security:
- bearerAuth: []
tags:
- name: Price Lists
description: 'Named price lists for B2B / wholesale pricing. Products can have per-variant price
overrides within a price list.'
paths:
/price_lists:
get:
tags:
- Price Lists
summary: List price lists
description: 'Returns price lists for the authenticated account. A price list lets
you override variant prices for specific customer groups or channels.'
operationId: listPriceLists
parameters:
- name: seller_id
in: query
schema:
type: integer
description: Filter price lists by seller ID.
example: 7
- name: currency
in: query
schema:
type: string
description: Filter price lists by currency code (ISO 4217).
example: EUR
- name: page
in: query
schema:
type: integer
default: 1
minimum: 1
example: 1
- name: per_page
in: query
schema:
type: integer
default: 20
minimum: 1
maximum: 200
example: 20
responses:
'200':
description: Paginated list of price lists
content:
application/json:
schema:
$ref: '#/components/schemas/PriceListList'
example:
_class:
- results
- price_lists
total_items: 1
per_page: 20
page: 1
_links:
self:
href: https://api.onbolder.com/v2/price_lists
products:create_price_list:
href: https://api.onbolder.com/v2/price_lists
method: post
_embedded:
items:
- id: 10
name: Wholesale EUR
currency_code: EUR
created_on: '2024-01-15T10:00:00Z'
_links:
self:
href: https://api.onbolder.com/v2/price_lists/10
post:
tags:
- Price Lists
summary: Create a price list
operationId: createPriceList
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- name
- seller_id
properties:
seller_id:
type: integer
description: The seller this price list belongs to.
name:
type: string
description: Human-readable label for this price list.
prices_include_tax:
type: boolean
description: Whether prices in this list already include tax.
use_price_comparison_for_vol_discounts:
type: boolean
description: Use price comparison values when computing volume discounts.
contact_group_ids:
type: array
items:
type: integer
description: 'Contact groups this price list applies to. On update, this list is additive (existing group ids are not removed).
'
tax:
type: object
properties:
name:
type: string
rate:
type: number
description: Tax rate, between 0 and 1.
description: 'Note: `currency_code` is not a settable field — it is always derived from the owning seller''s currency and returned read-only in responses.
'
example:
seller_id: 7
name: Wholesale EUR
prices_include_tax: false
responses:
'201':
description: Price list created
content:
application/json:
schema:
$ref: '#/components/schemas/PriceList'
example:
id: 10
name: Wholesale EUR
currency_code: EUR
created_on: '2024-01-15T10:00:00Z'
_links:
self:
href: https://api.onbolder.com/v2/price_lists/10
products:add_price_item:
href: https://api.onbolder.com/v2/price_lists/10/items
method: post
/price_lists/{id}:
parameters:
- name: id
in: path
required: true
schema:
type: integer
get:
tags:
- Price Lists
summary: Get a price list
operationId: getPriceList
responses:
'200':
description: Price list entity
content:
application/json:
schema:
$ref: '#/components/schemas/PriceList'
example:
id: 10
name: Wholesale EUR
currency_code: EUR
contact_groups_count: 3
created_on: '2024-01-15T10:00:00Z'
_links:
self:
href: https://api.onbolder.com/v2/price_lists/10
products:price_items:
href: https://api.onbolder.com/v2/price_lists/10/items
products:add_price_item:
href: https://api.onbolder.com/v2/price_lists/10/items
method: post
products:delete_price_list:
href: https://api.onbolder.com/v2/price_lists/10
method: delete
'403':
description: Access denied
put:
tags:
- Price Lists
summary: Update a price list
operationId: updatePriceList
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
prices_include_tax:
type: boolean
use_price_comparison_for_vol_discounts:
type: boolean
contact_group_ids:
type: array
items:
type: integer
description: Additive — existing group ids on the price list are not removed.
tax:
type: object
properties:
name:
type: string
rate:
type: number
example:
name: Wholesale EUR - Revised
responses:
'200':
description: Price list updated
content:
application/json:
schema:
$ref: '#/components/schemas/PriceList'
example:
id: 10
name: Wholesale EUR - Revised
currency_code: EUR
_links:
self:
href: https://api.onbolder.com/v2/price_lists/10
delete:
tags:
- Price Lists
summary: Delete a price list
operationId: deletePriceList
responses:
'204':
description: Price list deleted
/price_lists/{id}/products:
get:
tags:
- Price Lists
summary: List products in a price list
description: Returns all products that have a price override within this price list.
operationId: getPriceListProducts
parameters:
- name: id
in: path
required: true
schema:
type: integer
description: Price list ID
example: 10
- name: page
in: query
schema:
type: integer
default: 1
- name: per_page
in: query
schema:
type: integer
default: 20
responses:
'200':
description: Products in this price list
content:
application/json:
schema:
type: object
properties:
_embedded:
type: object
properties:
items:
type: array
items:
type: object
description: 'There is no `list_prices` field — price overrides are embedded as `price_items` (per variant).
'
properties:
id:
type: integer
product_id:
type: integer
name:
type: string
slug:
type: string
price:
type: integer
price_comparison:
type: integer
retail_price:
type: integer
description: Original (non-price-list) price, in cents
example:
_class:
- results
- priceListProducts
total_items: 3
_embedded:
items:
- id: 101
product_id: 101
name: Summer Dress
slug: summer-dress
price: 3999
retail_price: 4999
_embedded:
price_items:
- id: 201
variant_id: 201
price: 3999
'404':
description: Price list not found
/price_lists/{price_list_id}/items:
get:
tags:
- Price Lists
summary: List price items
description: Returns all price item overrides within the given price list.
operationId: listPriceItems
parameters:
- name: price_list_id
in: path
required: true
schema:
type: integer
example: 10
- name: page
in: query
schema:
type: integer
default: 1
- name: per_page
in: query
schema:
type: integer
default: 20
responses:
'200':
description: Price items list
content:
application/json:
schema:
type: object
properties:
_embedded:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/PriceItem'
example:
_class:
- results
- priceItems
total_items: 2
_embedded:
items:
- id: 201
variant_id: 201
product_id: 101
name: Summer Dress
sku: SD-001
price: 3999
retail_price: 4999
visible: true
/price_lists/{price_list_id}/items/{id}:
parameters:
- name: price_list_id
in: path
required: true
schema:
type: integer
example: 10
- name: id
in: path
required: true
schema:
type: integer
description: 'The variant ID. Passing a variant ID that has no price override in this price list returns 404.
'
example: 201
put:
tags:
- Price Lists
summary: Update a price item
description: Set or update the price override for a variant in this price list.
operationId: updatePriceItem
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
price:
type: integer
description: In cents
example:
price: 3499
responses:
'200':
description: Price item updated
content:
application/json:
schema:
$ref: '#/components/schemas/PriceItem'
delete:
tags:
- Price Lists
summary: Delete a price item
description: Remove the price override for this variant from the price list.
operationId: deletePriceItem
responses:
'204':
description: Price item deleted
components:
schemas:
PriceList:
type: object
properties:
_links:
$ref: '#/components/schemas/HalLinks'
id:
type: integer
name:
type: string
currency_code:
type: string
prices_include_tax:
type: boolean
use_price_comparison_for_vol_discounts:
type: boolean
tax:
type: number
contact_groups_count:
type: integer
created_on:
type: string
format: date-time
updated_on:
type: string
format: date-time
Pagination:
type: object
properties:
total_items:
type: integer
example: 42
per_page:
type: integer
example: 20
page:
type: integer
example: 1
HalLinks:
type: object
additionalProperties:
oneOf:
- $ref: '#/components/schemas/HalLink'
- type: array
items:
$ref: '#/components/schemas/HalLink'
PriceItem:
type: object
description: '`id` is the variant ID (`variant_id`) — there is no independent price-item ID.
'
properties:
id:
type: integer
variant_id:
type: integer
product_id:
type: integer
name:
type: string
sku:
type: string
price:
type: integer
description: In cents
price_comparison:
type: integer
retail_price:
type: integer
description: Original (non-price-list) price, in cents
cart_quantity_multiple:
type: integer
visible:
type: boolean
created_on:
type: string
format: date-time
updated_on:
type: string
format: date-time
PriceListList:
allOf:
- $ref: '#/components/schemas/Pagination'
- type: object
properties:
_links:
$ref: '#/components/schemas/HalLinks'
_class:
type: array
items:
type: string
example:
- results
- priceLists
_embedded:
type: object
properties:
price_lists:
type: array
items:
$ref: '#/components/schemas/PriceList'
HalLink:
type: object
required:
- href
properties:
href:
type: string
templated:
type: boolean
method:
type: string
enum:
- get
- post
- put
- patch
- delete
title:
type: string
type:
type: string
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
oauth2:
type: oauth2
flows:
clientCredentials:
tokenUrl: https://auth.onbolder.com/oauth/token
scopes:
products.read: View products, variants and collections
products.write: Create and update products
orders.read: View orders
orders.write: Create and update orders
customers.read: View customer profiles
customers.write: Update customer profiles
shops.read: View shop configuration
shops.write: Update shop configuration
hub.read: View content (posts, pages)
hub.write: Create and update content
store.read: View themes and assets
store.write: Manage themes and assets
sellers.read: View seller information
batches.read: View batch job status
batches.write: Create and run batch jobs
authorizationCode:
authorizationUrl: https://auth.onbolder.com/oauth/authorize
tokenUrl: https://auth.onbolder.com/oauth/token
scopes:
products.read: View products, variants and collections
products.write: Create and update products
orders.read: View orders
orders.write: Create and update orders
customers.read: View customer profiles
customers.write: Update customer profiles
shops.read: View shop configuration
shops.write: Update shop configuration
hub.read: View content (posts, pages)
hub.write: Create and update content
store.read: View themes and assets
store.write: Manage themes and assets
sellers.read: View seller information
batches.read: View batch job status
batches.write: Create and run batch jobs