Boxc Shops API
The Shops resource allows a user to manage their fulfillment shop. A shop with orders or SKUs cannot be deleted. Clients should use a third party platform for integrating their ecommerce marketplaces with the BoxC API.
The Shops resource allows a user to manage their fulfillment shop. A shop with orders or SKUs cannot be deleted. Clients should use a third party platform for integrating their ecommerce marketplaces with the BoxC API.
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/boxc-shops-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:
x-logo:
url: https://storage.googleapis.com/boxc_cdn/public/boxc-logo.png
altText: BoxC
title: BoxC CalculateDuty Shops API
version: '1.123'
description: 'A simple but powerful logistics API that drives international ecommerce by utilizing a single integration with access to dozens of carriers and global markets. BoxC can complete every leg or only select steps of a shipment''s journey on your behalf with our routing engine.
'
servers:
- url: https://api.boxc.com/v1
tags:
- name: Shops
x-displayName: Shops
description: The Shops resource allows a user to manage their fulfillment shop. A shop with orders or SKUs cannot be deleted. Clients should use a third party platform for integrating their ecommerce marketplaces with the BoxC API.
paths:
/shops:
get:
tags:
- Shops
summary: GET /shops
description: Retrieves a list of shops.
operationId: getShops
security:
- JWT:
- read_shops
parameters:
- in: query
name: limit
description: The number of results to return.
required: false
schema:
type: integer
default: 50
maximum: 100
- in: query
name: name
description: Filter that searches for shops with a similar name.
required: false
schema:
type: string
default: null
- in: query
name: page_token
description: Used for selecting the page after the initial query.
required: false
schema:
type: string
x-codeSamples:
- lang: cURL
label: cURL
source: "curl -H \"Authorization: Bearer <YOUR TOKEN>\" \\\n -H \"Accept: application/json\" \\\n https://api.boxc.com/v1/shops\\?limit=50\\&name=PhoneBlox\n"
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
shops:
type: array
items:
$ref: '#/components/schemas/Shop'
next_page:
type: string
description: Page token. Set by the system.
example: null
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequest'
examples:
invalidToken:
summary: Bad Request
description: Invalid page token
value:
code: 1025
message: Invalid page token
errors:
- Invalid page token
'401':
$ref: '#/components/schemas/Unauthorized'
'403':
$ref: '#/components/schemas/Forbidden'
'429':
$ref: '#/components/schemas/RateLimit'
post:
tags:
- Shops
summary: POST /shops
description: Creates a new shop.
operationId: addShop
security:
- JWT:
- write_shops
x-codeSamples:
- lang: cURL
label: cURL
source: "curl -X POST https://api.boxc.com/v1/shops \\\n -H \"Authorization: Bearer <YOUR TOKEN>\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"shop\": {\n \"id\": \"my-shop\",\n \"active\": true,\n \"name\": \"Appleseeds\",\n \"settings\": {\n \"delay_processing\": 240\n },\n \"type\": \"BoxC\"\n }\n }'\n"
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
shop:
$ref: '#/components/schemas/Shop'
required:
- shop
responses:
'201':
description: Created
content:
application/json:
schema:
type: object
description: Shop object
properties:
shop:
$ref: '#/components/schemas/Shop'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequest'
examples:
validation:
summary: Validation error
description: The request schema is invalid.
value:
code: 1000
message: 'Validation Error. /shop: The required properties (name) are missing'
status: error
errors:
- '/shop: The required properties (name) are missing'
badRequest:
summary: Bad Request
description: Shop ID is already in use
value:
code: 1373
message: Shop ID is already in use
errors:
- Shop ID is already in use
'401':
$ref: '#/components/schemas/Unauthorized'
'403':
$ref: '#/components/schemas/Forbidden'
'429':
$ref: '#/components/schemas/RateLimit'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/InternalServerError'
examples:
internalServerError:
summary: Internal Server Error
description: Shop can't be created
value:
code: 1372
message: Shop can't be created
errors:
- Shop can't be created
/shops/{id}:
get:
tags:
- Shops
summary: GET /shops/{id}
description: Retrieves a shop.
operationId: getShopsById
security:
- JWT:
- read_shops
parameters:
- name: id
in: path
description: The shop ID
required: true
schema:
type: string
maxLength: 32
x-codeSamples:
- lang: cURL
label: cURL
source: "curl -H \"Authorization: Bearer <YOUR TOKEN>\" \\\n -H \"Accept: application/json\" \\\n https://api.boxc.com/v1/shops/{id}\n"
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
shop:
$ref: '#/components/schemas/Shop'
'401':
$ref: '#/components/schemas/Unauthorized'
'403':
$ref: '#/components/schemas/Forbidden'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/NotFound'
examples:
notFound:
summary: Not Found
description: Shop not found
value:
code: 1370
message: Shop not found
errors:
- Shop not found
'429':
$ref: '#/components/schemas/RateLimit'
put:
tags:
- Shops
summary: PUT /shops/{id}
description: Updates a shop.
operationId: updateShop
security:
- JWT:
- write_shops
parameters:
- name: id
in: path
description: The shop ID
required: true
schema:
type: string
maxLength: 32
x-codeSamples:
- lang: cURL
label: cURL
source: "curl -X PUT https://api.boxc.com/v1/shops/{id} \\\n -H \"Authorization: Bearer <YOUR TOKEN>\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"shop\": {\n \"active\": true,\n \"name\": \"Appleseeds\",\n \"settings\": {\n \"delay_processing\": 200\n },\n \"type\": \"BoxC\"\n }\n }'\n"
requestBody:
required: true
content:
application/json:
schema:
type: object
description: Shop object
properties:
shop:
$ref: '#/components/schemas/ShopPut'
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
description: Shop object
properties:
shop:
$ref: '#/components/schemas/Shop'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequest'
examples:
validation:
summary: Validation error
description: The request schema is invalid.
value:
code: 1000
message: Request is malformed.
status: error
errors:
- Request is malformed.
'401':
$ref: '#/components/schemas/Unauthorized'
'403':
$ref: '#/components/schemas/Forbidden'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/NotFound'
examples:
notFound:
summary: Not Found
description: Shop not found
value:
code: 1370
message: Shop not found
errors:
- Shop not found
'429':
$ref: '#/components/schemas/RateLimit'
delete:
tags:
- Shops
summary: DELETE /shops/{id}
description: Deletes a shop.
operationId: deleteShop
security:
- JWT:
- write_shops
parameters:
- name: id
in: path
description: The shop ID
required: true
schema:
type: string
maxLength: 32
x-codeSamples:
- lang: cURL
label: cURL
source: "curl -X DELETE https://api.boxc.com/v1/shops/{id} \\\n -H \"Authorization: Bearer <YOUR TOKEN>\" \\\n -H \"Content-Type: application/json\"\n"
responses:
'200':
description: OK
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequest'
examples:
cannotDelete:
summary: Bad Request
description: Shop can't be deleted
value:
code: 1371
message: Shop can't be deleted
errors:
- Shop can't be deleted
'401':
$ref: '#/components/schemas/Unauthorized'
'403':
$ref: '#/components/schemas/Forbidden'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/NotFound'
examples:
notFound:
summary: Not Found
description: Shop not found
value:
code: 1370
message: Shop not found
errors:
- Shop not found
'429':
$ref: '#/components/schemas/RateLimit'
components:
schemas:
shop-put:
type: object
properties:
active:
type: boolean
description: Whether or not the shop is active. This only applies to third party shops. An inactive third party shop will no longer have its orders imported into the system.
example: true
default: true
created:
type: string
description: The date and time the shop was created.
example: '2024-06-17 13:22:44'
readOnly: true
name:
type: string
description: The shop name.
minLength: 3
maxLength: 32
example: Appleseeds
settings:
$ref: '#/components/schemas/Settings'
type:
type: string
description: The type of shop. Always "BoxC".
example: BoxC
deprecated: true
enum:
- BoxC
internal-server-error:
type: object
summary: Internal Server Error
description: Processing Error
properties:
code:
description: Error code. Refer to the list of [Errors](/#tag/Errors).
type: integer
message:
description: Error message explaining the code.
type: string
status:
type: string
enum:
- error
example: error
errors:
description: Displays processing error.
type: array
minItems: 1
maxItems: 1
items:
type: string
settings:
type: object
description: Default settings for the shop.
properties:
delay_processing:
type: integer
description: 'The number of <u>hours</u> an order should remain unprocessed in the system before packing. Orders will be processed if their <em>created</em> value plus the shop''s <em>delay_processing</em> value is greater than the current time. Max: 240.'
example: 240
default: 0
rate-limit:
description: Too Many Requests
content:
application/json:
schema:
type: object
summary: Too Many Requests
description: Error for too many requests in a given time frame. See [Rate Limits](/#tag/RateLimit) for more information.
properties:
code:
description: Error code. Refer to the list of [Errors](/#tag/Errors).
type: integer
message:
description: Error message explaining the code.
type: string
status:
type: string
enum:
- error
example: error
errors:
description: Displays processing error.
type: array
minItems: 1
maxItems: 1
items:
type: string
examples:
rateLimit:
summary: Too Many Requests
description: Too many requests. Please wait before trying again.
value:
code: 1015
message: Too many requests. Please wait before trying again.
errors:
- Too many requests. Please wait before trying again.
RateLimit:
$ref: '#/components/schemas/rate-limit'
forbidden:
description: Forbidden
content:
application/json:
schema:
type: object
summary: Forbidden
description: Error relating to insufficient permissions for a resource
properties:
code:
description: Error code. Refer to the list of [Errors](/#tag/Errors).
type: integer
message:
description: Error message explaining the code.
type: string
status:
type: string
enum:
- error
example: error
errors:
description: Displays processing error.
type: array
minItems: 1
maxItems: 1
items:
type: string
examples:
revoked:
summary: Forbidden Authorization Revoked
description: 'Forbidden: Authorization revoked'
value:
code: 1008
message: 'Forbidden: Authorization revoked'
errors:
- 'Forbidden: Authorization revoked'
scope:
summary: Forbidden Scope
description: 'Forbidden: Missing required scope'
value:
code: 1009
message: 'Forbidden: Missing required scope'
errors:
- 'Forbidden: Missing required scope'
ShopPut:
$ref: '#/components/schemas/shop-put'
Settings:
$ref: '#/components/schemas/settings'
Shop:
$ref: '#/components/schemas/shop'
bad-request:
type: object
summary: Bad Request
description: Validation error with the request
properties:
code:
description: Error code. Refer to the list of [Errors](/#tag/Errors).
type: integer
message:
description: Error message explaining the code.
type: string
status:
type: string
enum:
- error
example: error
errors:
description: Lists validation errors with the schema or the resource being operated on.
type: array
minItems: 1
maxItems: 5
items:
type: string
Forbidden:
$ref: '#/components/schemas/forbidden'
BadRequest:
$ref: '#/components/schemas/bad-request'
shop:
allOf:
- type: object
properties:
id:
type: string
description: The shop ID. This property is immutable and must be unique.
minLength: 3
maxLength: 32
pattern: A-Za-z0-9-_
example: my-shop
required:
- id
- name
- $ref: '#/components/schemas/ShopPut'
not-found:
type: object
summary: Not Found
description: Object not found or not owned by the user
properties:
code:
description: Error code. Refer to the list of [Errors](/#tag/Errors).
type: integer
message:
description: Error message explaining the code.
type: string
status:
type: string
enum:
- error
example: error
errors:
description: Duplicate of the error message
type: array
items:
type: string
Unauthorized:
$ref: '#/components/schemas/unauthorized'
InternalServerError:
$ref: '#/components/schemas/internal-server-error'
unauthorized:
description: Unauthorized
content:
application/json:
schema:
type: object
summary: Unauthorized
description: Lack of valid authentication credentials for the resource
properties:
code:
description: Error code. Refer to the list of [Errors](/#tag/Errors).
type: integer
message:
description: Error message explaining the code.
type: string
status:
type: string
enum:
- error
example: error
errors:
description: Displays processing error.
type: array
minItems: 1
maxItems: 1
items:
type: string
examples:
accessToken:
summary: Invalid access token
description: Invalid access token
value:
code: 1005
message: Invalid access token
errors:
- Invalid access token
NotFound:
$ref: '#/components/schemas/not-found'
securitySchemes:
JWT:
type: http
scheme: bearer
bearerScheme: JWT
in: header
description: All operations require a JSON Web Token after completing an [OAuth2 flow](#tag/Authentication).
PrivilegedClient:
type: http
scheme: bearer
bearerScheme: JWT
description: Some clients require special privileges to use operations. No additional scope is needed.
x-servers:
- url: https://api.boxc.com/v1
x-tagGroups:
- name: Overview
tags:
- Introduction
- Authentication
- RateLimit
- Paginate
- Changelog
- name: Operations
tags:
- CalculateDuty
- Classify
- Invoices
- Users
- ValidateAddress
- Webhooks
- name: Shipping
tags:
- Credentials
- CustomsProducts
- EntryPoints
- Estimate
- Labels
- Manifests
- Overpacks
- Shipments
- Track
- name: Fulfillment
tags:
- Inbound
- Orders
- Products
- Shops
- Warehouses
- name: Returns
tags:
- Reshipments
- Returns
- name: Data
tags:
- CarrierCredentials
- DangerousGoods
- Errors
- Languages
- CarrierParameters
- ReturnsProcess
- TrackingEvents