Introduction
Welcome to the SellerChamp API! You can use our API to access SellerChamp API endpoints, to pull back orders, products, inventory, marketplace prices and more.
Common error codes:
- 400: Bad Request - Invalid parameters
- 401: Unauthorized - Invalid or missing authentication
- 403: Forbidden - Insufficient permissions
- 404: Not Found - Resource doesn't exist
- 429: Too Many Requests - Rate limit exceeded
- 500: Internal Server Error - Server-side error
Authentication
An API Token must be passed in inside the headers with every request. You can generate your API Token by logging into SellerChamp.com and navigating to Settings -> API Settings. Click the 'Generate API Key' button to generate your API Token.

Pass it as the header-key 'Token'.
API URL
The API is located at https://app.sellerchamp.com
Marketplace Accounts
GET marketplace_accounts
Returns all of your connected marketplace accounts (Amazon, eBay, Shopify, etc.)
Url format:
/api/marketplace_accounts
curl --request GET \
--url 'https://app.sellerchamp.com/api/marketplace_accounts \
-H 'token: YOUR-TOKEN' \
Make sure to replace `YOUR-TOKEN` with your API key token.
The above command returns JSON structured like this:
{
"marketplace_accounts": [
{
"id": "5d516f51584085a850000013",
"name": "MaryKom",
"icon_black": "http://localhost:3000/assets/icons/src/amazon.svg",
"icon_white": "http://localhost:3000/assets/icons/src/amazon-white.svg",
"marketplace": "amazon",
"marketplace_account_type": "AmazonAccount",
"active": true,
"manifest_folders": [
{
"id": "5d516f52584085a850000029",
"name": "All",
"internal_name": "all",
"position": 0
},
{
"id": "5d516f52584085a85000002a",
"name": "Active",
"internal_name": "active",
"position": 1
},
{
"id": "5d516f52584085a85000002b",
"name": "Drafts",
"internal_name": "drafts",
"position": 2
},
{
"id": "5d516f52584085a85000002c",
"name": "Channel Imports",
"internal_name": "channel_imports",
"position": 3
},
{
"id": "5d516f52584085a85000002d",
"name": "Archived",
"internal_name": "archived",
"position": 4
},
{
"id": "5e4cb620584085359200003e",
"name": "Purchase Orders",
"internal_name": "purchase_orders",
"position": 5
}
],
"store_categories": [ { "external_id": 10027112133, "name": "Apparel > Accessories "}, { "external_id": 10027112183, "name": "BMX > Wheels" } ]
}
]
}
PUT marketplace_account
Updates marketplace_account specified by parameters id and marketplace_account_type
Url format:
/api/marketplace_accounts/ID.json?marketplace_account_type=MARKETPLACE_ACCOUNT_TYPE
curl -X PUT \
https://app.sellerchamp.com/api/marketplace_accounts/5e73df57584085c9820002fe.json?marketplace_account_type=EbayAccount \
-H 'token: YOUR-TOKEN' \
-H 'content-type: application/json' \
-d '{
"marketplace_account": {
"name": "My Ebay Account"
}
}'
Make sure to replace `YOUR-TOKEN` with your API key token.
URL Parameters
| Name | Data Type | Description |
|---|---|---|
| marketplace_account_type | String | The marketplace account type. One of [AmazonAccount, EbayAccount, ShopifyAccount, etc.]. Value can be fetched via API /api/marketplace_accounts |
BODY Parameters
marketplace_account Parameters: A JSON object with the key "marketplace_account"
| Name | Data Type | Description |
|---|---|---|
| name | String | The nickname of the marketplace account. |
Manifests
CREATE manifest with parameters
It will create the manifest according to your parameters along with the array of listing.
Url format:
/api/manifests
curl --request POST \
--url https://app.sellerchamp.com/api/manifests \
--header 'Content-Type: application/json' \
--header 'cache-control: no-cache,no-cache,no-cache' \
--header 'token: YOUR-TOKEN' \
--data '{ "manifest" : {
"name": "My Manifest",
"marketplace_account_id" : "59e0f41007b6205968000016",
"supplier_id" : "5c1902f207b620090a000026",
"ship_from_address_id" : "59e0d31f07b6204cc8000000",
"template_id" : "59e0d31f07b6204cc8000000",
"product_listings_attributes" : [
{
"asin" : "B07G22S48Q", "quantity" : "10", "item_condition" : "like_new", "upc" : "0123456789",
"sku" : "S123", "title" : "My product title", "retail_price" : "10.00", "msrp_price": "20.00", "cost_price": "3.00",
"item_location" : "SHELF A - BIN 1", "item_category" : "Clothing",
"item_category_id" : "123", "item_remarks" : "Packaging is missing",
"brand" : "Polo", "description" : "Green polo shirt", "features" : ['Green', 'Solid'],
"details_html" : "More details here",
"item_specifics" : [{"name"=>"Brand", "value"=>"Polo"}, {"name"=>"Size", "value"=>"Small"}] , "mpn" : null,
"listing_format" : "fixed_price", "color" : "Green", "manufacturer" : "Polo", "model" : "",
"part_number" : "", "listing_duration" : "GTC", "store_category_external_id" : "",
"store_category_2_external_id" : "", "weight_in_pounds" : "0.2",
"package_dimensions_length" : "10", "package_dimensions_width" : "10", "package_dimensions_height" : "14",
"item_dimensions_length" : "10", "item_dimensions_width" : "10", "item_dimensions_height" : "14",
"handling_time" : "1", "shipping_charge_type" : "", "global_shipping" : "false",
"free_shipping" : "true", "shipping_service_code" : "", "shipping_service_cost" : "",
"extra_shipping_service_cost" : "", "domestic_rate_table" : "false",
"international_shipping_service_code" : "", "international_shipping_service_cost" : "",
"extra_international_shipping_service_cost" : "", "international_ship_to_locations" : "",
"international_rate_table" : "false", "return_in_days_value" : "30",
"refund_policy_value" : "", "return_shipping_paid_by_value" : "",
"quantity_in_case" : "", "cost_price" : "2.00", "expiration_date" : "2020-10-30", "fnsku" : "",
"image_urls" : ['https://someurl.com'], "external_ids" : [], "variant_listings": [
{
variant_sku: 'V1', option1_name: 'Color', option1_value: 'Red', option2_name: 'Style', option2_value: 'Solid', asin: 'B00XX', upc: '12345', quantity: 10, retail_price: 10.00, item_location: 'A1'
},
{
variant_sku: 'V2', option1_name: 'Color', option1_value: 'Blue', option2_name: 'Style', option2_value: 'Checkered', asin: 'B00XX', upc: '12345', quantity: 10, retail_price: 10.00, item_location: 'A1'
}
]}
]
} }'
BODY Parameters
manifest Parameters: should be a JSON object with the key "manifest"
| Name | Data Type | Description |
|---|---|---|
| name | String (required) | Name of the Manifest. Example: 04-17-2019. |
| supplier_id | String (optional) | Supplier ID. Example: '59e0f41007b6205968000016'. |
| ship_from_address_id | String (required) | ID of ship from address Example: '59e0d31f07b6204cc8000000'. |
| marketplace_account_id | String (required) | ID of Marketplace Account. Example: '5c1902f207b620090a000026'. |
| template_id | String (optional) | Template ID. Example: '5c1902f207b620090a00003e' |
| seller_fulfilled | Boolean (optional) | If manifest should add items as merchant fulfilled or FBA. Applicable only for Amazon. |
| auto_submit | Boolean (optional) | Submit manifest to marketplace after all listings have been created. |
product_listings_attributes Parameters: should be in array. Allows for multiple listing creation.
| Name | Data Type | Description |
|---|---|---|
| asin | String(Required) | Listing ASIN. Example: B07G22S48Q. |
| quantity | Integer(Optional) | Quantity of the listing. Example: 2. |
| item_condition | Integer(Optional) | It is an enum consist of the following values: [new, like_new, very_good, good, acceptable, refurbished, salvage] anyone. Example: like_new |
| upc | String(Optional) | Example: 883929635085 |
| sku | String(Optional) | SKU of the listing. Example: AB883929635085. |
| title | String(Required) | Title of the listing. Example: DCU Justice League: Throne of Atlantis Commemorative Edition (BD) [Blu-ray]. |
| retail_price | Float(Optional) | Retail Price of the listing. Example: 9.99 |
| min_price | Float(Optional) | Minimum Price of the listing. Example: 7.99 |
| max_price | Float(Optional) | Maximum Price of the listing. Example: 20.99 |
| msrp_price | Float(Optional) | Manufactrer Suggested Retail Price of the listing. Example: 19.99 |
| cost_price | Float(Optional) | Csot Price of the listing. Example: 2.99 |
| color | String(Optional) | Example: Navy |
| manufacturer | String(Optional) | Example: Charmed |
| model | String(Optional) | Example: P3Q-00001 |
| part_number | String(Optional) | Example: LE |
| listing_duration | String(Optional) | It is an enum consist of the following values: [days_1, days_3, days_5, days_7, days_10, days_30, gtc] anyone. Example: gtc |
| item_location | String(Optional) | Location of item in your warehouse. |
| item_category | String(Optional) | Hierarchy of the item category(parent>child). If ebay marketplace. Example: DVDs & Blu-ray Discs. |
| item_category_id | String(Optional) | Id of the item category. Example: 63861 |
| item_remarks | String(Optional) | Example: Item will come in original packaging and includes all accessories. Item has been tested and is in full working condition. Comes with a 30-day warranty.. |
| brand | String(Optional) | Example: Warner Manufacturing |
| description | String(Optional) | Description of the listing |
| features | Array(Optional) | Features of the product |
| details_html | String(Optional) | It is the HTML which contains item details with html tags. Example: <ul><li>Item Weight: 0.0 pounds</li><li>Shipping Weight: 0.0 pounds</li><li>Domestic Shipping: Item can be shipped within U.S.</li></ul> |
| item_specifics | Array of JSON objects(Optional) | Example: [{"name"=>"Brand", "value"=>"Update International", "source"=>"ItemSpecific"}, {"name"=>"UPC", "value"=>"793842123296", "source"=>"ItemSpecific"}] |
| mpn | String | Example: 90000032507 |
| listing_format | String(Optional) | It is an enum consist of the following values: [fixed_price, auction] anyone. Example: fixed_price |
| store_category_external_id | String(Optional) | Example: 64789836013 |
| store_category_2_external_id | String(Optional) | Example: 64789836013 |
| weight_in_pounds | Float(Optional) | Example: 0.0 |
| package_dimensions_length | Float(Optional) | Example: 0.0 |
| package_dimensions_width | Float(Optional) | Example: 0.0 |
| package_dimensions_height | Float(Optional) | Example: 0.0 |
| item_dimensions_length | Float(Optional) | Example: 0.0 |
| item_dimensions_width | Float(Optional) | Example: 0.0 |
| item_dimensions_height | Float(Optional) | Example: 0.0 |
| handling_time | Integer(Optional) | Example: 1 |
| shipping_charge_type | String(Optional) | It is an enum consist of the following values: [flat, calculated, calculated_domestic_flat_international, flat_domestic_calculated_international, freight, freight_flat not_specified] anyone. Example: freight |
| global_shipping | Boolean(Optional) | Example: True |
| free_shipping | Boolean(Optional) | Example: True |
| shipping_service_code | String(Optional) | It is an enum consist of the following values: [Other, ShippingMethodStandard, ShippingMethodExpress, ShippingMethodOvernight, Pickup, FlatRateFreight, USPSFirstClass, USPSMedia, USPSPriority, USPSPriorityFlatRateEnvelope, USPSPriorityMailSmallFlatRateBox, USPSPriorityFlatRateBox, USPSPriorityMailLargeFlatRateBox, USPSPriorityMailPaddedFlatRateEnvelope, USPSPriorityMailLegalFlatRateEnvelope, USPSExpressMail, USPSExpressFlatRateEnvelope, USPSExpressMailLegalFlatRateEnvelope, UPSNextDayAir, UPSNextDay, UPS2ndDay, UPS3rdDay, UPSGround, FedExHomeDelivery, FedEx2Day, FedExExpressSaver, FedExStandardOvernight, FedExPriorityOvernight] anyone. Example: USPSFirstClass |
| shipping_service_cost | Float(Optional) | Example: 0.46 |
| extra_shipping_service_cost | String(Optional) | Example: 0.3 |
| domestic_rate_table | Boolean(Optional) | Example: False |
| international_shipping_service_code | String(Optional) | It is an enum consist of the following values: [US_IntlEconomyShippingFromGC, ExpeditedDeliveryToRussia, US_IntlExpeditedShippingFromGC, OtherInternational, ExpeditedInternational, US_RUTrackedFromChina, StandardInternational, US_IntlStandardShippingFromGC, USPSFirstClassMailInternational, USPSExpressMailInternational, USPSExpressMailInternationalFlatRateEnvelope, USPSExpressMailInternationalLegalFlatRateEnvelope, USPSPriorityMailInternational, USPSPriorityMailInternationalFlatRateEnvelope, USPSPriorityMailInternationalLargeFlatRateBox, USPSPriorityMailInternationalLegalFlatRateEnvelope, USPSPriorityMailInternationalFlatRateBox, USPSPriorityMailInternationalPaddedFlatRateEnvelope, USPSPriorityMailInternationalSmallFlatRateBox, UPSStandardToCanada, UPSWorldWideExpedited, UPSWorldWideExpress, UPSWorldWideExpressPlus, UPSWorldwideSaver, FedExGroundInternationalToCanada, FedExInternationalEconomy, FedExInternationalPriority] anyone. Example: US_IntlEconomyShippingFromGC |
| international_shipping_service_cost | Float(Optional) | Example: 0.6 |
| extra_international_shipping_service_cost | Float(Optional) | Example: 0.3 |
| international_ship_to_locations | Array(Optional) | Example: ["CN", "CA"] |
| international_rate_table | Boolean(Optional) | Example: False |
| return_in_days_value | String(Optional) | It is an enum consist of the following values: [ReturnsNotAccepted, Days_30, Days_60] anyone. Example: Days_30 |
| refund_policy_value | String(Optional) | It is an enum consist of the following values: [MoneyBack, MoneyBackOrReplacement, MoneyBackOrExchange] anyone. Example: MoneyBack |
| return_shipping_paid_by_value | String(Optional) | Example: Seller |
| expiration_date | Date(Optional) | Example: 2019-04-27 |
| fnsku | String(Optional) | Example: 0060011831 |
| image_urls | Array(Optional) | Array of image urls. Example [user.png, user1.png] |
| external_ids | Array(Optional) | Example: ["B07G22S48Q", "883929635085"] |
| units_system | String(Optional) | Units for dimensions/weight. Example: imperial or metric. |
| sale_price | Float(Optional) | Temporary sale price of the listing. |
| sale_start_date | String(Optional) | ISO8601 datetime when the sale starts. |
| sale_end_date | String(Optional) | ISO8601 datetime when the sale ends. |
| lot_size | Integer(Optional) | Number of units per lot. |
| sell_as_lot | Boolean(Optional) | Whether to sell the listing as a lot. |
| reserve_quantity | Integer(Optional) | Quantity kept in reserve. |
| reserve_quantity_location | String(Optional) | Location description for the reserved quantity. |
| max_quantities_to_list | Integer(Optional) | Maximum quantity to list at once. |
| min_quantity_to_list | Integer(Optional) | Minimum quantity to list at once. |
| max_order_quantity | Integer(Optional) | Maximum allowed quantity per order. |
| tax_code_field | String(Optional) | Tax code for the listing (for tax engines). |
| hs_tariff_number | String(Optional) | Harmonized tariff number. |
| country_of_origin | String(Optional) | Country of origin for customs/tax (e.g. US). |
| enable_promo_price | Boolean(Optional) | Enable promotional price for the listing. |
| promo_price | Float(Optional) | Promotional price of the listing. |
| promo_price_starts_at | String(Optional) | ISO8601 datetime when the promo price starts. |
| promo_price_ends_at | String(Optional) | ISO8601 datetime when the promo price ends. |
| who_made | String(Optional) | Creator of the item (Etsy-style). |
| when_made | String(Optional) | When the item was made (Etsy-style). |
| is_supply | Boolean(Optional) | Whether the listing is a supply. |
| materials | Array(Optional) | List of materials for the item. |
| product_type_1 | String(Optional) | Primary product type. |
| product_type_2 | String(Optional) | Secondary product type. |
| readiness_state_id | String(Optional) | Readiness state of the listing (e.g. ready). |
| ships_in_original_packaging | Boolean(Optional) | If true, item ships in original packaging. |
| must_ship_alone | Boolean(Optional) | If true, item must be shipped alone. |
| best_offer | String(Optional) | Best offer mode (e.g. enable). |
| best_offer_accept | Float(Optional) | Auto-accept price for best offers. |
| best_offer_decline | Float(Optional) | Auto-decline price for best offers. |
| charity_id | String(Optional) | Charity ID associated with the listing. |
| charity_percentage | Float(Optional) | Charity percentage for the listing. |
| meta_description | String(Optional) | Channel-specific SEO meta description. |
| tags_array | Array(Optional) | Tags to apply to the listing. |
variant_listings Parameters: A child array of a product_listing. Required if creating a product_listing with variants.
| Name | Data Type | Description |
|---|---|---|
| variant_sku | String (optional) | The variant SKU |
| variant_alt_sku | String (optional) | The variant ALT SKU |
| position | Integer (optional) | The variant's position |
| option1_name | String (required) | The option name, ex: Color |
| option1_value | String (required) | The option value, ex: Red |
| option2_name | String (optional) | The option name, ex: Style |
| option2_value | String (optional) | The option value, ex: Checkered |
| option3_name | String (optional) | The option name |
| option3_value | String (optional) | The option value |
| option4_name | String (optional) | The option name |
| option4_value | String (optional) | The option value |
| option5_name | String (optional) | The option name |
| option5_value | String (optional) | The option value |
| retail_price | Float (optional) | The retail price of the variant |
| quantity | Integer (optional) | The quantity of the variant_listing |
| item_location | String (optional) | The variant's warehouse bin location |
| weight_in_pounds | Float (optional) | The variant's weight |
| title | String (optional) | The variant's title |
| image_urls | Array (string) | The variant's image urls |
| upc | String | Universal Product Code |
| asin | String | Amazon Standard Identification Number |
| lot_size | Integer | Lot size quantity |
GET manifests
Returns back paged manifests optionally filtering by marketplace_account_id OR manifest_folder_id. Default page size is 25.
Url format:
/api/manifests?marketplace_account_id=5c1902f207b620090a000026 &manifest_folder_id=59e0d31f07b6204cc8000000&page=1&page_size=20
curl --request GET \
--url 'https://app.sellerchamp.com/api/manifests?marketplace_account_id=5c1902f207b620090a000026&manifest_folder_id=59e0d31f07b6204cc8000000&page=1&page_size=20' \
-H 'token: YOUR-TOKEN' \
Make sure to replace `YOUR-TOKEN` with your API key token.
The above command returns JSON structured like this:
{
"manifest": {
"id": "5cb96fc707b62026d6000000",
"name": "test",
"supplier_id": "",
"ship_from_address_id": "59e0d31f07b6204cc8000000",
"created_at": "2019-04-19T06:50:47.455Z",
"updated_at": "2019-04-19T06:50:47.455Z",
"status": "created",
"last_valid_status": "created",
"status_message": null,
"processing": null,
"number": 590,
"order_number": null,
"phase": 1,
"client_paid": false,
"seller_fulfilled": true,
"image_source": "stock",
"label_prep": "merchant",
"print_all_fba_labels": false,
"print_fba_labels": "needed",
"print_all_item_labels": false,
"convert_images": null,
"performing_action": null,
"sku_prefix": "AB",
"auto_location_enabled": false,
"auto_location_prefix": "",
"skip_box_content": false,
"auto_create_shipments": false,
"auto_print_exp_dates": true,
"prefill_product_data": true,
"product_listings_count": 0,
"item_present_option": "inc_quantity",
"multiple_matches_pick_strategy": "none",
"manifest_folder_id": "5c6496e307b6205dce000001",
"processing_company_id": "",
"marketplace_account_type": "EbayAccount",
"marketplace_account_id": "5c1902f207b620090a000026",
"client_id": "59dd22f507b6201961000000",
"contact_id": "",
"template_type": "EbayTemplate",
"template_id": "5c1902f207b620090a00003e",
"manifest_xls_file_name": null,
"manifest_xls_content_type": null,
"manifest_xls_file_size": null,
"manifest_xls_updated_at": null,
"manifest_xls_fingerprint": null,
"version": null,
"modifier_id": "",
"_keywords": [
"test"
]
}
}
URL Parameters
| Name | Data Type | Description |
|---|---|---|
| marketplace_account_id | String (optional) | The marketplace_account_id for which to fetch manifests. |
| manifest_folder_id | String (optional) | The manifest_folder_id for which to fetch manifests |
The above command returns JSON structured like this:
{
"manifests": [
{
"id": "5e7514fa07b6201d69000263",
"name": "03-20-2020",
"supplier_id": "",
"ship_from_address_id": "5d1c7a6107b6200724000012",
"created_at": "2020-03-20T19:09:46.209Z",
"updated_at": "2020-03-20T19:09:46.209Z",
"status": "created",
"last_valid_status": "created",
"status_message": null,
"processing": null,
"number": 51871,
"order_number": "",
"phase": 1,
"seller_fulfilled": true,
"image_source": "stock",
"label_prep": "merchant",
"print_all_fba_labels": false,
"print_fba_labels": "needed",
"print_all_item_labels": false,
"convert_images": null,
"performing_action": null,
"sku_prefix": "",
"auto_location_enabled": false,
"auto_location_prefix": "",
"skip_box_content": false,
"auto_create_shipments": false,
"auto_print_exp_dates": true,
"prefill_product_data": true,
"product_listings_count": 1,
"item_present_option": "inc_quantity",
"multiple_matches_pick_strategy": "none",
"manifest_folder_id": "5e2fb23d07b62074fe000027",
"processing_company_id": "",
"marketplace_account_type": "EbayAccount",
"marketplace_account_id": "5e2fb23d07b62074fe000011",
"client_id": "5cfc419d07b6200b87000000",
"contact_id": "",
"template_type": "EbayTemplate",
"template_id": "5e2fb23d07b62074fe000033",
"manifest_xls_file_name": null,
"manifest_xls_content_type": null,
"manifest_xls_file_size": null,
"manifest_xls_updated_at": null,
"manifest_xls_fingerprint": null,
"version": 1,
"modifier_id": "",
"_keywords": [
"03",
"20",
"2020"
]
}
]
}
Product Listings
GET product_listings for a manifest_id
Returns back paged product_listings for a given manifest_id. Default page size is 25.
Url format:
/api/manifests/MANIFEST_ID/product_listings?page=1&page_size=20&created_at=DATE
# With shell, you can just pass the correct header with each request
curl -X GET \
https://app.sellerchamp.com/api/manifests/5e6ec5a5584085af1800013d/product_listings?page=1&page_size=20 \
-H 'token: YOUR-TOKEN' \
Make sure to replace `YOUR-TOKEN` with your API key token.
The above command returns JSON structured like this:
{
"product_listings": [
{
"id": "5e73df57584085c982000305",
"product_id": "5e73df57584085c9820002fe",
"manifest_id": "5e6ec5a5584085af1800013d",
"marketplace_account_id": "5d50c6735840854a3900002c",
"sku": "S127K7Z8YH4Q",
"asin": "B07NLMXG57",
"title": "Style & Co. Womens Louiza Low Top Slip On Fashion Sneakers, Navy, Size 8.5",
"quantity": 1,
"quantity_listed": 1,
"retail_price": 10.00,
"msrp": 20.00,
"min_price": 2.00,
"max_price": 20.00,
"cost_price": 0.50,
"map_price": 10.00,
"handling_cost": 2.00,
"shipping_cost": 3.00,
"misc_cost": 1.00,
"item_condition": "new",
"item_location": null,
"variant_listings": [
{
"id": "5f729cabd8a35f6298bf1908",
"variant_id": "5f729ca9d8a35f6298bf18db",
"product_listing_id": "5f729c29d8a35f63fb159780",
"option1_name": "Color",
"option1_value": "BLACK",
"option2_name": "Size",
"option2_value": "10-13",
"option3_name": null,
"option3_value": null,
"option4_name": null,
"option4_value": null,
"option5_name": null,
"option5_value": null,
"sku": "BLACK-10-13",
"alt_sku": null,
"position": 0,
"title": null,
"upc": "732755004384",
"asin": "B07GJJK5TF",
"item_location": null,
"quantity": null,
"retail_price": 999.99,
"weight_in_pounds": null
},
{
"id": "5f729cabd8a35f6298bf190a",
"variant_id": "5f729ca9d8a35f6298bf18e0",
"product_listing_id": "5f729c29d8a35f63fb159780",
"option1_name": "Color",
"option1_value": "DENIM BLUE",
"option2_name": "Size",
"option2_value": "10-13",
"option3_name": null,
"option3_value": null,
"option4_name": null,
"option4_value": null,
"option5_name": null,
"option5_value": null,
"sku": "DENIM BLUE-10-13",
"alt_sku": null,
"position": 1,
"title": null,
"upc": "732755004537",
"asin": "B07H5JTKFV",
"item_location": null,
"quantity": null,
"retail_price": 999.99,
"weight_in_pounds": null
},
{
"id": "5f729cabd8a35f6298bf190b",
"variant_id": "5f729ca9d8a35f6298bf18e5",
"product_listing_id": "5f729c29d8a35f63fb159780",
"option1_name": "Color",
"option1_value": "MIX",
"option2_name": "Size",
"option2_value": "10-13",
"option3_name": null,
"option3_value": null,
"option4_name": null,
"option4_value": null,
"option5_name": null,
"option5_value": null,
"sku": "MIX-10-13",
"alt_sku": null,
"position": 2,
"title": null,
"upc": "732755004407",
"asin": "B07GJ8QGR7",
"item_location": null,
"quantity": null,
"retail_price": 999.99,
"weight_in_pounds": null
},
{
"id": "5f729cacd8a35f6298bf190c",
"variant_id": "5f729ca9d8a35f6298bf18ea",
"product_listing_id": "5f729c29d8a35f63fb159780",
"option1_name": "Color",
"option1_value": "WHITE",
"option2_name": "Size",
"option2_value": "10-13",
"option3_name": null,
"option3_value": null,
"option4_name": null,
"option4_value": null,
"option5_name": null,
"option5_value": null,
"sku": "WHITE-10-13",
"alt_sku": null,
"position": 3,
"title": null,
"upc": "732755004391",
"asin": "B07GJCZSWN",
"item_location": null,
"quantity": null,
"retail_price": 999.99,
"weight_in_pounds": null
}
],
"list_status": "okay_to_ship",
"list_status_error_detail": null,
"list_status_error_detail_2": null,
"errors": {}
},
{
"id": "5e6ed77e584085706800007a",
"product_id": "5e6ed77e5840857068000076",
"manifest_id": "5e6ec5a5584085af1800013d",
"marketplace_account_id": "5d50c6735840854a3900002c",
"sku": "S127K7TSO3BZ",
"asin": "B01DE7MNEQ",
"title": "Lego Scooby-Doo: Haunted Hollywood",
"quantity": 2,
"quantity_listed": 0,
"retail_price": 10.00,
"msrp": 20.00,
"min_price": 2.00,
"max_price": 20.00,
"cost_price": 0.50,
"item_condition": "new",
"item_location": null,
"product_images": [
{
"id": "5e6ed77e5840857068000078",
"product_id": "5e6ed77e5840857068000076",
"product_name": "Lego Scooby-Doo: Haunted Hollywood",
"position": null,
"original_image_url": "https://images-na.ssl-images-amazon.com/images/I/51NWjpojihL.jpg",
"small_image_url": null,
"medium_image_url": null,
"large_image_url": "https://images-na.ssl-images-amazon.com/images/I/51NWjpojihL.jpg"
}
],
"list_status": "restricted_listing",
"list_status_error_detail": "'Lego Scooby-Doo: Haunted Hollywood' has been known to cause copyright infringement complaint: .",
"list_status_error_detail_2": null,
"errors": {}
}
]
}
CREATE product_listings
Add or update product_listings inside the specified manifest.
Url format:
/api/manifests/MANIFEST_ID/product_listings
curl -X POST "https://app.sellerchamp.com/api/manifests/MANIFEST_ID/product_listings.json" \
-H "Token: YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"product_listings_attributes": [
{
"sku": "EBAY-SKU-1",
"title": "New Ebay Item",
"quantity": 3,
"item_condition": "new",
"retail_price": 19.99,
"sale_price": 17.99,
"min_price": 10.0,
"max_price": 25.0,
"map_price": 12.0,
"upc": "0123456789012",
"asin": "B00XXXXXXX",
"item_remarks": "Like new",
"brand": "BrandName",
"description": "<p>Listing description</p>",
"features": ["Feature 1", "Feature 2"],
"details_html": "<p>More details</p>",
"mpn": "MPN-123",
"item_category": "Electronics",
"item_category_id": "12345",
"listing_format": "fixed_price",
"listing_duration": "gtc",
"color": "Black",
"manufacturer": "MakerCo",
"model": "Model1",
"part_number": "PART-1",
"store_category_external_id": "STORE_CAT_1",
"store_category_2_external_id": "STORE_CAT_2",
"weight_in_pounds": 1.2,
"package_dimensions_length": 10.0,
"package_dimensions_width": 5.0,
"package_dimensions_height": 3.0,
"item_dimensions_length": 9.5,
"item_dimensions_width": 4.5,
"item_dimensions_height": 2.5,
"units_system": "imperial",
"handling_time": 2,
"shipping_charge_type": "flat",
"global_shipping": true,
"free_shipping": false,
"shipping_service_code": "USPSPri",
"shipping_service_cost": 3.99,
"extra_shipping_service_cost": 1.0,
"domestic_rate_table": false,
"international_shipping_service_code": "Intl",
"international_shipping_service_cost": 9.99,
"extra_international_shipping_service_cost": 2.0,
"international_ship_to_locations": ["Worldwide"],
"international_rate_table": false,
"return_in_days_value": "30",
"refund_policy_value": "MoneyBack",
"return_shipping_paid_by_value": "Buyer",
"return_policy_id": "RET_ID",
"expiration_date": "2026-12-31",
"fnsku": "FNSKU123",
"lot_size": 2,
"sell_as_lot": true,
"reserve_quantity": 3,
"reserve_quantity_location": "Backroom",
"max_quantities_to_list": 5,
"min_quantity_to_list": 1,
"max_order_quantity": 10,
"sale_start_date": "2025-12-01T00:00:00Z",
"sale_end_date": "2025-12-31T23:59:59Z",
"tax_code_field": "A_GEN_TAX",
"shipping_template_field": "Default Amazon Template",
"hs_tariff_number": "1234.56",
"country_of_origin": "US",
"shipping_cost": 1.0,
"handling_cost": 0.5,
"misc_cost": 0.25,
"enable_promo_price": true,
"promo_price": 15.99,
"promo_price_starts_at": "2025-11-25T00:00:00Z",
"promo_price_ends_at": "2025-11-30T23:59:59Z",
"who_made": "i_did",
"when_made": "2020_2023",
"is_supply": false,
"materials": ["Cotton", "Polyester"],
"product_type_1": "Home",
"product_type_2": "FurnitureAndDecor",
"readiness_state_id": "ready",
"ships_in_original_packaging": true,
"must_ship_alone": false,
"best_offer": "enable",
"best_offer_accept": 18.0,
"best_offer_decline": 15.0,
"charity_id": "CHARITY123",
"charity_percentage": 10.0,
"meta_description": "Channel-specific meta description",
"tags_array": ["Tag1", "Tag2"],
"image_urls": ["https://example.com/img1.jpg"],
"external_ids": ["EXT1", "EXT2"],
"item_specifics": [
{ "name": "Color", "value": "Black" },
{ "name": "Size", "value": "L" }
]
}
]
}'
The above command returns JSON structured like this:
{
"manifest": {
"id": "5cb96fc707b62026d6000000",
"name": "test",
"supplier_id": "",
"ship_from_address_id": "59e0d31f07b6204cc8000000",
"created_at": "2019-04-19T06:50:47.455Z",
"updated_at": "2019-04-19T06:50:47.455Z",
"status": "created",
"last_valid_status": "created",
"status_message": null,
"processing": null,
"number": 590,
"order_number": null,
"phase": 1,
"client_paid": false,
"seller_fulfilled": true,
"image_source": "stock",
"label_prep": "merchant",
"print_all_fba_labels": false,
"print_fba_labels": "needed",
"print_all_item_labels": false,
"convert_images": null,
"performing_action": null,
"sku_prefix": "AB",
"auto_location_enabled": false,
"auto_location_prefix": "",
"skip_box_content": false,
"auto_create_shipments": false,
"auto_print_exp_dates": true,
"prefill_product_data": true,
"product_listings_count": 0,
"item_present_option": "inc_quantity",
"multiple_matches_pick_strategy": "none",
"manifest_folder_id": "5c6496e307b6205dce000001",
"processing_company_id": "",
"marketplace_account_type": "EbayAccount",
"marketplace_account_id": "5c1902f207b620090a000026",
"client_id": "59dd22f507b6201961000000",
"contact_id": "",
"template_type": "EbayTemplate",
"template_id": "5c1902f207b620090a00003e",
"manifest_xls_file_name": null,
"manifest_xls_content_type": null,
"manifest_xls_file_size": null,
"manifest_xls_updated_at": null,
"manifest_xls_fingerprint": null,
"version": null,
"modifier_id": "",
"_keywords": [
"test"
]
}
}
URL Parameters
| Name | Data Type | Description |
|---|---|---|
| auto_submit | Boolean (optional) | Should manifest be submitted after listing creations. |
BODY Parameters
product_listings_attributes Parameters: Should be in array. Allows for multiple listing creation.
| Name | Data Type | Description |
|---|---|---|
| asin | String(Required) | Listing ASIN. Example: B07G22S48Q. |
| quantity | Integer(Optional) | Quantity of the listing. Example: 2. |
| item_condition | Integer(Optional) | It is an enum consist of the following values: [new, like_new, very_good, good, acceptable, refurbished, salvage] anyone. Example: like_new |
| upc | String(Optional) | Example: 883929635085 |
| sku | String(Optional) | SKU of the listing. Example: AB883929635085. |
| title | String(Required) | Title of the listing. Example: DCU Justice League: Throne of Atlantis Commemorative Edition (BD) [Blu-ray]. |
| retail_price | Float(Optional) | Retail Price of the listing. Example: 9.99 |
| min_price | Float(Optional) | Minimum Price of the listing. Example: 7.99 |
| max_price | Float(Optional) | Maximum Price of the listing. Example: 20.99 |
| msrp_price | Float (optional) | Manufacturer Suggested Retail Price. Example: 20.00 |
| cost_price | Float (optional) | Cost Price of the list. Example: 3.00 |
| color | String(Optional) | Example: Navy |
| manufacturer | String(Optional) | Example: Charmed |
| model | String(Optional) | Example: P3Q-00001 |
| part_number | String(Optional) | Example: LE |
| listing_duration | String(Optional) | It is an enum consist of the following values: [days_1, days_3, days_5, days_7, days_10, days_30, gtc] anyone. Example: gtc |
| item_location | String(Optional) | Location of item in your warehouse. |
| item_category | String(Optional) | Hierarchy of the item category(parent>child). If ebay marketplace. Example: DVDs & Blu-ray Discs. |
| item_category_id | String(Optional) | Id of the item category. Example: 63861 |
| item_remarks | String(Optional) | Example: Item will come in original packaging and includes all accessories. Item has been tested and is in full working condition. Comes with a 30-day warranty.. |
| brand | String(Optional) | Example: Warner Manufacturing |
| description | String(Optional) | Description of the listing |
| features | Array(Optional) | Features of the product |
| details_html | String(Optional) | It is the HTML which contains item details with html tags. Example: <ul><li>Item Weight: 0.0 pounds</li><li>Shipping Weight: 0.0 pounds</li><li>Domestic Shipping: Item can be shipped within U.S.</li></ul> |
| item_specifics | Array of JSON objects(Optional) | Example: [{"name"=>"Brand", "value"=>"Update International", "source"=>"ItemSpecific"}, {"name"=>"UPC", "value"=>"793842123296", "source"=>"ItemSpecific"}] |
| mpn | String | Example: 90000032507 |
| listing_format | String(Optional) | It is an enum consist of the following values: [fixed_price, auction] anyone. Example: fixed_price |
| store_category_external_id | String(Optional) | Example: 64789836013 |
| store_category_2_external_id | String(Optional) | Example: 64789836013 |
| weight_in_pounds | Float(Optional) | Example: 0.0 |
| package_dimensions_length | Float(Optional) | Example: 0.0 |
| package_dimensions_width | Float(Optional) | Example: 0.0 |
| package_dimensions_height | Float(Optional) | Example: 0.0 |
| item_dimensions_length | Float(Optional) | Example: 0.0 |
| item_dimensions_width | Float(Optional) | Example: 0.0 |
| item_dimensions_height | Float(Optional) | Example: 0.0 |
| handling_time | Integer(Optional) | Example: 1 |
| shipping_charge_type | String(Optional) | It is an enum consist of the following values: [flat, calculated, calculated_domestic_flat_international, flat_domestic_calculated_international, freight, freight_flat not_specified] anyone. Example: freight |
| global_shipping | Boolean(Optional) | Example: True |
| free_shipping | Boolean(Optional) | Example: True |
| shipping_service_code | String(Optional) | It is an enum consist of the following values: [Other, ShippingMethodStandard, ShippingMethodExpress, ShippingMethodOvernight, Pickup, FlatRateFreight, USPSFirstClass, USPSMedia, USPSPriority, USPSPriorityFlatRateEnvelope, USPSPriorityMailSmallFlatRateBox, USPSPriorityFlatRateBox, USPSPriorityMailLargeFlatRateBox, USPSPriorityMailPaddedFlatRateEnvelope, USPSPriorityMailLegalFlatRateEnvelope, USPSExpressMail, USPSExpressFlatRateEnvelope, USPSExpressMailLegalFlatRateEnvelope, UPSNextDayAir, UPSNextDay, UPS2ndDay, UPS3rdDay, UPSGround, FedExHomeDelivery, FedEx2Day, FedExExpressSaver, FedExStandardOvernight, FedExPriorityOvernight] anyone. Example: USPSFirstClass |
| shipping_service_cost | Float(Optional) | Example: 0.46 |
| extra_shipping_service_cost | String(Optional) | Example: 0.3 |
| domestic_rate_table | Boolean(Optional) | Example: False |
| international_shipping_service_code | String(Optional) | It is an enum consist of the following values: [US_IntlEconomyShippingFromGC, ExpeditedDeliveryToRussia, US_IntlExpeditedShippingFromGC, OtherInternational, ExpeditedInternational, US_RUTrackedFromChina, StandardInternational, US_IntlStandardShippingFromGC, USPSFirstClassMailInternational, USPSExpressMailInternational, USPSExpressMailInternationalFlatRateEnvelope, USPSExpressMailInternationalLegalFlatRateEnvelope, USPSPriorityMailInternational, USPSPriorityMailInternationalFlatRateEnvelope, USPSPriorityMailInternationalLargeFlatRateBox, USPSPriorityMailInternationalLegalFlatRateEnvelope, USPSPriorityMailInternationalFlatRateBox, USPSPriorityMailInternationalPaddedFlatRateEnvelope, USPSPriorityMailInternationalSmallFlatRateBox, UPSStandardToCanada, UPSWorldWideExpedited, UPSWorldWideExpress, UPSWorldWideExpressPlus, UPSWorldwideSaver, FedExGroundInternationalToCanada, FedExInternationalEconomy, FedExInternationalPriority] anyone. Example: US_IntlEconomyShippingFromGC |
| international_shipping_service_cost | Float(Optional) | Example: 0.6 |
| extra_international_shipping_service_cost | Float(Optional) | Example: 0.3 |
| international_ship_to_locations | Array(Optional) | Example: ["CN", "CA"] |
| international_rate_table | Boolean(Optional) | Example: False |
| return_in_days_value | String(Optional) | It is an enum consist of the following values: [ReturnsNotAccepted, Days_30, Days_60] anyone. Example: Days_30 |
| refund_policy_value | String(Optional) | It is an enum consist of the following values: [MoneyBack, MoneyBackOrReplacement, MoneyBackOrExchange] anyone. Example: MoneyBack |
| return_shipping_paid_by_value | String(Optional) | Example: Seller |
| expiration_date | Date(Optional) | Example: 2019-04-27 |
| fnsku | String(Optional) | Example: 0060011831 |
| image_urls | Array(Optional) | Array of image urls. Example [user.png, user1.png] |
| external_ids | Array(Optional) | Example: ["B07G22S48Q", "883929635085"] |
variant_listings Parameters: A child array of a product_listing. Required if product listing contains variants
| Name | Data Type | Description |
|---|---|---|
| variant_sku | String (optional) | The variant SKU |
| variant_alt_sku | String (optional) | The variant ALT SKU |
| position | Integer (optional) | The variant's position |
| option1_name | String (required) | The option name, ex: Color |
| option1_value | String (required) | The option value, ex: Red |
| option2_name | String (optional) | The option name, ex: Style |
| option2_value | String (optional) | The option value, ex: Checkered |
| option3_name | String (optional) | The option name |
| option3_value | String (optional) | The option value |
| option4_name | String (optional) | The option name |
| option4_value | String (optional) | The option value |
| option5_name | String (optional) | The option name |
| option5_value | String (optional) | The option value |
| retail_price | Float (optional) | The retail price of the variant |
| quantity | Integer (optional) | The quantity of the variant_listing |
| item_location | String (optional) | The variant's warehouse bin location |
| weight_in_pounds | Float (optional) | The variant's weight |
| title | String (optional) | The variant's title |
| image_urls | Array (string) | The variant's image urls |
| upc | String | Universal Product Code |
| asin | String | Amazon Standard Identification Number |
| lot_size | Integer | Lot size quantity |
DELETE product_listing
Deletes a product_listing from the manifest.
Url format:
/api/manifests/MANIFEST_ID/product_listings/PRODUCT_LISTING_ID
curl -X DELETE \
'http://localhost:3000/api/manifests/5e73df57584085c9820002fe/product_litings/5e73df57584085c9820002fe.json' \
-H 'content-type: application/json' \
-H 'token: YOUR-TOKEN'
Make sure to replace `YOUR-TOKEN` with your API key token.
Products
GET products
Returns back paged products optionally filtering by search parameters. Default page size is 50.
Url format:
/api/products?marketplace_account_id=5e2fb23d07b62074fe000011
URL Parameters
| Name | Data Type | Description |
|---|---|---|
| marketplace_account_id | String (optional) | The marketplace_account_id for which to fetch products. |
| sku | String (optional) | The product SKU to search for (case-sensitive) |
| asin | String (optional) | The product ASIN to search for |
| upc | String (optional) | The product UPC/ISBN/EAN to search for |
| marketplace_id | String (optional) | The product marketplace_id (ex: eBay Item ID) to search for |
| created_at_start | String (optional) | Returns products that were created after the specified date Example: 2015-01-01T00:00:00 |
| created_at_end | String (optional) | Returns products that were created before the specified date Example: 2015-01-30T00:00:00 |
| updated_at_start | String (optional) | Returns products that were upated after the specified date Example: 2015-01-01T00:00:00 |
| updated_at_end | String (optional) | Returns products that were updated before the specified date Example: 2015-01-01T00:00:00 |
| tag | String (optional) | Returns products that have this tag. NOTE: Use this to search for products that have just one tag. |
| tags_array | String (optional) | Returns products that have exactly the specified tags. NOTE: Use this to search for products that have multiple tags. Ex: tags_array[]=A&tags_array[]=B |
# With shell, you can just pass the correct header with each request
curl -X GET \
https://app.sellerchamp.com/api/products.json?marketplace_account_id=5e2fb23d07b62074fe000011&page=1&page_size=20 \
-H 'token: YOUR-TOKEN' \
Make sure to replace `YOUR-TOKEN` with your API key token.
The above command returns JSON structured like this:
{
"products": [
{
"id": "5e9316fb07b620137a000144",
"marketplace_account_id": "5e2fb23d07b62074fe000011",
"sku": "QVC3-026",
"alt_sku": null,
"asin": null,
"fnsku": null,
"upc": null,
"title": "Bethlehem Lights 8.5\" Metallic Scroll Aqua, Red,",
"quantity_available": 0,
"quantity_listed": 0,
"retail_price": 10.00,
"msrp": 20.00,
"min_price": 2.00,
"max_price": 20.00,
"map_price": 15.00,
"cost_price": 1.00,
"handling_cost": 1.00,
"shipping_cost": 2.00,
"misc_cost": 1.00,
"handling_time": 2,
"marketplace_status": "inactive",
"marketplace_id": null,
"item_condition": "new",
"ebay_item_condition_id": 1000,
"description": "Soothe your senses. Enjoy the calming sounds of flowing water along with alluring ambient light from this Bethlehem Lights AquaFlame candle. The flameless wick and five-hour timer provide worry-free enjoyment. From Bethlehem Lights.",
"item_remarks": "Items comes in a sealed package.",
"features": [
"Embossed scroll AquaFlame water fountain and flameless candle",
"Five ambient LED lights",
"Five-hour timer",
"Requires included adapter or 3 D batteries",
" not included",
"Indoor use only",
"Measures approximately 8-1/2\"H x 5\"Diam"
],
"features_html": null,
"item_specifics": [
{
"name": "Color",
"value": "Red"
}
],
"item_category": "Travel > Travel Accessories > Locks",
"item_category_hierarchy": "Travel > Travel Accessories > Locks",
"item_category_id": "164796",
"store_category_external_id": "1",
"store_category_2_external_id": "0",
"brand": "Bethlehem Lights",
"color": null,
"mpn": null,
"weight_in_pounds": null,
"package_weight_in_pounds": null,
"shipping_template_field": "Template1",
"item_dimensions": {
"unit": "inches",
"length": 10.0,
"width": 12.0,
"height": 6.0
},
"package_dimensions": {
"unit": null,
"length": null,
"width": null,
"height": null
},
"inventory_locations": [],
"variants": [
{
"id": "5f729ca9d8a35f6298bf18db",
"option1_name": "Color",
"option1_value": "BLACK",
"option2_name": "Size",
"option2_value": "10-13",
"option3_name": null,
"option3_value": null,
"option4_name": null,
"option4_value": null,
"option5_name": null,
"option5_value": null,
"sku": "BLACK-10-13",
"alt_sku": null,
"position": 0,
"title": null,
"upc": "732755004384",
"asin": "B07GJJK5TF",
"item_location": null,
"quantity_available": 0,
"retail_price": 999.99,
"weight_in_pounds": null,
"inventory_locations": []
}
]
}
]
}
GET product
Returns back the product for the specified id.
Url format:
/api/products/PRODUCT_ID
URL Parameters
| Name | Data Type | Description |
|---|---|---|
| product_id | String (optional) | The ID for the product to fetch. |
# With shell, you can just pass the correct header with each request
curl -X GET \
https://app.sellerchamp.com/api/products/5e9316fb07b620137a000144.json \
-H 'token: YOUR-TOKEN' \
Make sure to replace `YOUR-TOKEN` with your API key token.
{
"product": {
"id": "5e9316fb07b620137a000144",
"marketplace_account_id": "5e2fb23d07b62074fe000011",
"sku": "QVC3-026",
"alt_sku": "QVC3",
"asin": null,
"fnsku": null,
"upc": null,
"title": "Bethlehem Lights 8.5\" Metallic Scroll Aqua, Red,",
"quantity_available": 0,
"quantity_listed": 0,
"awaiting_pick": 1,
"awaiting_paid": 1,
"retail_price": 10.00,
"msrp": 20.00,
"min_price": 2.00,
"max_price": 20.00,
"map_price": 15.00,
"cost_price": 1.00,
"handling_cost": 1.00,
"shipping_cost": 2.00,
"misc_cost": 1.00,
"use_ebay_business_policies": false,
"ebay_payment_policy_id": null,
"ebay_payment_policy_name": null,
"ebay_return_policy_id": null,
"ebay_return_policy_name": null,
"ebay_shipping_policy_id": null,
"ebay_shipping_policy_name": null,
"marketplace_status": "inactive",
"marketplace_id": null,
"item_condition": "new",
"ebay_item_condition_id": 1000,
"description": "Soothe your senses. Enjoy the calming sounds of flowing water along with alluring ambient light from this Bethlehem Lights AquaFlame candle. The flameless wick and five-hour timer provide worry-free enjoyment. From Bethlehem Lights.",
"item_remarks": "Item comes in a sealed package.",
"features": [
"Embossed scroll AquaFlame water fountain and flameless candle",
"Five ambient LED lights",
"Five-hour timer",
"Requires included adapter or 3 D batteries",
" not included",
"Indoor use only",
"Measures approximately 8-1/2\"H x 5\"Diam"
],
"features_html": null,
"item_specifics": [
{
"name": "Color",
"value": "Red"
}
],
"item_category": "Travel > Travel Accessories > Locks",
"item_category_hierarchy": "Travel > Travel Accessories > Locks",
"item_category_id": "164796",
"store_category_external_id": "1",
"store_category_2_external_id": "0",
"brand": "Bethlehem Lights",
"color": null,
"mpn": null,
"weight_in_pounds": null,
"package_weight_in_pounds": null,
"shipping_template_field": "Template1",
"item_dimensions": {
"unit": "inches",
"length": 10.0,
"width": 12.0,
"height": 6.0
},
"package_dimensions": {
"unit": null,
"length": null,
"width": null,
"height": null
},
"inventory_locations": [],
"product_images": [
{
"id": "5f729c7bd8a35f63fb1597ab",
"product_id": "5f729c29d8a35f63fb159777",
"product_name": "JOURNOW 10 Pairs Men's Cotton Extra Heavy Cushion Crew Socks",
"position": 1,
"original_image_url": "https://images-na.ssl-images-amazon.com/images/I/41oNK1fKzJL._AC_US1500_.jpg",
"small_image_url": null,
"medium_image_url": null,
"large_image_url": "https://images-na.ssl-images-amazon.com/images/I/41oNK1fKzJL._AC_US1500_.jpg"
}
],
"variants": [
{
"id": "5f729ca9d8a35f6298bf18db",
"option1_name": "Color",
"option1_value": "BLACK",
"option2_name": "Size",
"option2_value": "10-13",
"option3_name": null,
"option3_value": null,
"option4_name": null,
"option4_value": null,
"option5_name": null,
"option5_value": null,
"sku": "BLACK-10-13",
"alt_sku": null,
"position": 0,
"title": null,
"upc": "732755004384",
"asin": "B07GJJK5TF",
"item_location": null,
"quantity_available": 0,
"retail_price": 999.99,
"weight_in_pounds": null,
"inventory_locations": [],
"images": [
{
"id": "5f729cadd8a35f6298bf1918",
"position": 0,
"option_name": "Color",
"option_value": "BLACK",
"product_image": {
"id": "5f729cadd8a35f6298bf1916",
"product_id": "5f729c29d8a35f63fb159777",
"product_name": "JOURNOW 10 Pairs Men's Cotton Extra Heavy Cushion Crew Socks",
"position": 1,
"original_image_url": "https://images-na.ssl-images-amazon.com/images/I/41oNK1fKzJL._AC_US1500_.jpg",
"small_image_url": null,
"medium_image_url": null,
"large_image_url": "https://images-na.ssl-images-amazon.com/images/I/41oNK1fKzJL._AC_US1500_.jpg"
}
}
]
}
],
"domestic_shipping_methods": [ { "shipping_service": "Standard" } ],
"international_shipping_methods": [ { "shipping_service": "InternationalStandard" } ]
}
}
PUT product
Updates the product with the specified ID.
Url format:
/api/products/PRODUCT_ID
curl -X PUT "https://app.sellerchamp.com/api/products/PRODUCT_ID.json" \
-H "Token: YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"product": {
"sku": "SKU123",
"alt_sku": "ALT-123",
"custom_catalogue_sku": "CAT-001",
"alias": "My Alias",
"upc": "0123456789012",
"asin": "B00XXXXXXX",
"title": "New Title",
"subtitle": "Subtitle (eBay only)",
"description": "<p>HTML description</p>",
"features_html": "<ul><li>Feature</li></ul>",
"brand": "BrandName",
"mpn": "MPN-123",
"item_condition": 1000,
"item_category": "Category Text",
"item_category_id": "12345",
"item_category_hierarchy": "Parent > Child",
"retail_price": 19.99,
"starting_price": 19.99,
"sale_price": 17.99,
"sale_start_date": "2025-12-01T00:00:00Z",
"sale_end_date": "2025-12-31T23:59:59Z",
"msrp_price": 29.99,
"min_price": 10.0,
"max_price": 30.0,
"map_price": 15.0,
"quantity_available": 10,
"lot_size": 2,
"max_quantities_to_list": 5,
"min_quantity_to_list": 1,
"reserve_quantity": 3,
"reserve_quantity_location": "Backroom",
"bin_location": "BIN-A1",
"target_quantity": 50,
"reorder_level": 10,
"cost_price": 8.0,
"avg_cost_price": 8.0,
"shipping_cost": 1.0,
"handling_cost": 0.5,
"handling_time": 2,
"misc_cost": 0.25,
"seller_vat_margin": 0.2,
"buyer_vat_margin": 0.1,
"retail_price_profit_margin": 0.3,
"retail_price_add_on_amount": 1.0,
"min_price_profit_margin": 0.2,
"min_price_add_on_amount": 0.5,
"max_price_profit_margin": 0.4,
"max_price_add_on_amount": 2.0,
"apply_marketplace_fee": true,
"business_price_margin_type": "percent",
"business_price_margin": 0.1,
"units_system": "imperial",
"weight_in_pounds": 1.2,
"package_weight_in_pounds": 1.5,
"hs_tariff_number": "1234.56",
"country_of_origin": "US",
"tax_code_field": "A_GEN_TAX",
"item_remarks": "Condition notes",
"ebay_item_condition_id": 1000,
"use_ebay_business_policies": true,
"ebay_payment_policy_id": "PAY_ID",
"ebay_payment_policy_name": "PayPolicy",
"ebay_return_policy_id": "RET_ID",
"ebay_return_policy_name": "ReturnPolicy",
"ebay_shipping_policy_id": "SHIP_ID",
"ebay_shipping_policy_name": "ShipPolicy",
"best_offer": "enable",
"best_offer_accept": 18.0,
"best_offer_decline": 15.0,
"store_category_external_id": "STORE_CAT_1",
"store_category_2_external_id": "STORE_CAT_2",
"shipping_template_field": "Default Amazon Template",
"template_id": "TEMPLATE_ID",
"fulfillment_provider_account_id": "FP123",
"fulfillment_provider_sku": "FP-SKU-1",
"marketplace_url": "https://example.com/product",
"meta_description": "SEO meta description",
"who_made": "i_did",
"when_made": "2020_2023",
"is_supply": false,
"materials": ["Cotton", "Polyester"],
"readiness_state_id": "ready",
"product_type_1": "Home",
"product_type_2": "FurnitureAndDecor",
"release_date": "2024-01-01",
"platform": "web",
"ships_in_original_packaging": true,
"must_ship_alone": false,
"international_shipping_enabled": true,
"label_preference": "manufacturer",
"label_owner": "SELLER",
"prep_owner": "AMAZON",
"enable_promo_price": true,
"promo_price": 15.99,
"promo_price_starts_at": "2025-11-25T00:00:00Z",
"promo_price_ends_at": "2025-11-30T23:59:59Z",
"preorder": true,
"preorder_message": "Ships in 3 weeks",
"preorder_release_date": "2026-01-15T00:00:00Z",
"tags_array": ["Tag1", "Tag2"],
"external_ids": ["EXT1", "EXT2"],
"supplier_ids": ["SUP1", "SUP2"],
"item_dimensions": {
"length": 10.0,
"width": 5.0,
"height": 2.0,
"unit": "in"
},
"package_dimensions": {
"length": 12.0,
"width": 7.0,
"height": 3.0,
"unit": "in"
},
"item_specifics": [
{ "name": "Color", "value": "Red", "namespace": "custom", "type": "string" }
]
}
}'
Make sure to replace `YOUR_API_TOKEN` and `PRODUCT_ID` with your actual API token and product ID.
URL Parameters
| Name | Data Type | Description |
|---|---|---|
| relist | Boolean | Optional. If true, relists the product on the marketplace if inactive. |
BODY Parameters
product Parameters: A JSON object with the key "product"
| Name | Data Type | Description |
|---|---|---|
| sku | String | Product SKU. |
| alt_sku | String | Alternate SKU. |
| custom_catalogue_sku | String | Custom catalog SKU override. |
| alias | String | Optional alternate identifier for the product. |
| upc | String | UPC/EAN/ISBN. |
| asin | String | Amazon ASIN. |
| title | String | Product title. |
| subtitle | String | eBay subtitle (eBay only). |
| description | String | HTML product description. |
| features_html | String | Additional HTML features list. |
| brand | String | Brand name. |
| mpn | String | Manufacturer part number. |
| item_condition | Integer | Internal item condition code. |
| item_category | String | Category name or path. |
| item_category_id | String | Category ID. |
| item_category_hierarchy | String | Full category hierarchy (e.g. Parent > Child). |
| retail_price | Float | Regular selling price. |
| starting_price | Float | Auction starting price (eBay). |
| sale_price | Float | Temporary sale price. |
| sale_start_date | String | ISO8601 datetime when sale starts. |
| sale_end_date | String | ISO8601 datetime when sale ends. |
| msrp_price | Float | MSRP. |
| min_price | Float | Minimum allowed price. |
| max_price | Float | Maximum allowed price. |
| map_price | Float | Minimum Advertised Price. |
| quantity_available | Integer | Available quantity for sale. |
| lot_size | Integer | Number of units per lot. |
| max_quantities_to_list | Integer | Max quantity listed at once. |
| min_quantity_to_list | Integer | Min quantity listed at once. |
| reserve_quantity | Integer | Quantity kept in reserve. |
| reserve_quantity_location | String | Location description for reserved quantity. |
| bin_location | String | Warehouse/bin location. |
| target_quantity | Integer | Desired stock level. |
| reorder_level | Integer | Quantity at which to reorder. |
| cost_price | Float | Unit cost. |
| avg_cost_price | Float | Average cost across inventory. |
| shipping_cost | Float | Shipping cost used in margin calculations. |
| handling_cost | Float | Handling cost. |
| handling_time | Integer | Handling time in days. |
| misc_cost | Float | Additional misc cost per unit. |
| seller_vat_margin | Float | Seller VAT percentage. |
| buyer_vat_margin | Float | Buyer VAT percentage. |
| retail_price_profit_margin | Float | Target profit margin on retail price. |
| retail_price_add_on_amount | Float | Flat add-on amount for retail price. |
| min_price_profit_margin | Float | Target profit margin on minimum price. |
| min_price_add_on_amount | Float | Flat add-on amount for minimum price. |
| max_price_profit_margin | Float | Target profit margin on maximum price. |
| max_price_add_on_amount | Float | Flat add-on amount for maximum price. |
| apply_marketplace_fee | Boolean | Whether to apply marketplace fee in pricing logic. |
| business_price_margin_type | String | Type of business price margin (percent or amount). |
| business_price_margin | Float | Margin value for business price. |
| units_system | String | imperial or metric. |
| weight_in_pounds | Float | Item weight in pounds. |
| package_weight_in_pounds | Float | Package weight in pounds. |
| hs_tariff_number | String | Harmonized tariff code. |
| country_of_origin | String | Country of origin. |
| tax_code_field | String | Tax code for tax engine. |
| item_remarks | String | Condition or remark notes. |
| ebay_item_condition_id | Integer | eBay item condition ID. |
| use_ebay_business_policies | Boolean | Whether to use eBay business policies. |
| ebay_payment_policy_id | String | eBay payment policy ID. |
| ebay_payment_policy_name | String | eBay payment policy name. |
| ebay_return_policy_id | String | eBay return policy ID. |
| ebay_return_policy_name | String | eBay return policy name. |
| ebay_shipping_policy_id | String | eBay shipping policy ID. |
| ebay_shipping_policy_name | String | eBay shipping policy name. |
| best_offer | String | Best offer mode (e.g. enable). |
| best_offer_accept | Float | Auto-accept price for best offers. |
| best_offer_decline | Float | Auto-decline price for best offers. |
| store_category_external_id | String | Primary store category external ID. |
| store_category_2_external_id | String | Secondary store category external ID. |
| shipping_template_field | String | Shipping template name/identifier. |
| template_id | String | Internal listing template ID. |
| fulfillment_provider_account_id | String | Fulfillment provider account ID. |
| fulfillment_provider_sku | String | Fulfillment provider SKU. |
| marketplace_url | String | Marketplace listing URL. |
| meta_description | String | SEO meta description. |
| who_made | String | Creator (Etsy-style, e.g. i_did). |
| when_made | String | When item was made (e.g. 2020_2023). |
| is_supply | Boolean | Whether item is a supply (Etsy-style). |
| materials | Array | Array of material strings. |
| readiness_state_id | String | Internal readiness state ID (e.g. ready). |
| product_type_1 | String | Primary product type. |
| product_type_2 | String | Secondary product type. |
| release_date | String | Product release date. |
| platform | String | Platform identifier (e.g. web). |
| ships_in_original_packaging | Boolean | If item ships in original packaging. |
| must_ship_alone | Boolean | If item must ship alone. |
| international_shipping_enabled | Boolean | Whether international shipping is enabled. |
| label_preference | String | Label preference (e.g. manufacturer). |
| label_owner | String | Label owner (e.g. SELLER). |
| prep_owner | String | Prep owner (e.g. AMAZON). |
| enable_promo_price | Boolean | Whether promotional pricing is enabled. |
| promo_price | Float | Promotional price. |
| promo_price_starts_at | String | ISO8601 start datetime for promo price. |
| promo_price_ends_at | String | ISO8601 end datetime for promo price. |
| preorder | Boolean | Whether item is available for preorder. |
| preorder_message | String | Preorder messaging shown to buyers. |
| preorder_release_date | String | ISO8601 preorder release date. |
| tags_array | Array | Tags to apply to the product (replaces existing tags). |
| external_ids | Array | External IDs associated with the product. |
| supplier_ids | Array | SellerChamp supplier IDs. |
| item_dimensions | Hash | Item dimensions: {"length": Float, "width": Float, "height": Float, "unit": "in" or "cm"}. |
| package_dimensions | Hash | Package dimensions: {"length": Float, "width": Float, "height": Float, "unit": "in" or "cm"}. |
| item_specifics | Array | Attribute array: [{ "name": String, "value": String, "namespace": String, "type": String }]. |
DELETE product
Deletes a product, optionally ending the listing on the marketplace.
Url format:
/api/products/PRODUCT_ID
curl -X DELETE \
'http://localhost:3000/api/products/5e73df57584085c9820002fe.json?delete_product=true&end_listing_on_marketplace=true&delete_listing_on_marketplace=true&delete_linked_products=true' \
-H 'content-type: application/json' \
-H 'token: YOUR-TOKEN'
Make sure to replace `YOUR-TOKEN` with your API key token.
URL Parameters
| Name | Data Type | Description |
|---|---|---|
| delete_product | Boolean | Indicates if product should be deleted from the SellerChamp database |
| end_listing_on_marketplace | Boolean | Indicates if listing should be ended on the marketplace |
| delete_listing_on_marketplace | Boolean | Indicates if listing should be entirely removed from marketplace |
| delete_linked_products | Boolean | Indicates if linked products should also be removed |
Bulk Update Products
PUT bulk_update_products
Update multiple products by specifying ID, SKU, ALT-SKU, or catalog SKU (custom catalogue SKU). Maximum 1,000 items can be sent per api call.
Url format:
/api/products/bulk_update
curl -X PUT "https://app.sellerchamp.com/api/products/bulk_update.json" \
-H "Token: YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"marketplace_account_id": "5c1902f207b620090a000026",
"products": [
{
"id": "PRODUCT_ID_1",
"sku": "SKU1",
"retail_price": 19.99,
"quantity_available": 5,
"sale_price": 17.99,
"ships_in_original_packaging": true,
"who_made": "i_did"
},
{
"id": "PRODUCT_ID_2",
"sku": "SKU2",
"retail_price": 29.99,
"quantity_available": 0,
"best_offer": "enable",
"best_offer_accept": 25.0,
"best_offer_decline": 20.0
},
{
"catalog_sku": "CAT-001",
"retail_price": 20.00,
"quantity_available": 4,
"sale_price": 17.99,
"ships_in_original_packaging": true,
"who_made": "i_did"
}
],
"relist": false
}'
marketplace_account_id can be sent with bulk updates queue requests to scope SKU-based matching to a specific marketplace account. This is useful when the same SKU exists across multiple marketplaces.
BODY PARAMETERS
| Name | Data Type | Description |
|---|---|---|
| marketplace_account_id | String | Optional. Marketplace account ID used to scope queued bulk updates when matching by sku, alt_sku, or catalog_sku. |
| id | String | Product's id |
| title | String | Product's title |
| sku | String | Product's SKU |
| alt_sku | String | Product's ALT SKU, if any |
| catalog_sku | String | Product's custom catalogue SKU |
| asin | String | Amazon ASIN for this product |
| upc | String | UPC for this product |
| description | String | Product description (can contain HTML) |
| ebay_item_condition_id | Integer | Ebay Item Condition ID for your product. Refer to eBay's documentation for the various values. |
| retail_price | Float | Product's selling price. Example: 9.99 |
| min_price | Float | Product's minimum price. Example: 7.99 |
| max_price | Float | Product's maximum price. Example: 20.99 |
| msrp_price | Float | Product's MSRP |
| map_price | Float | Minimum Advertised Price (MAP) for the product |
| cost_price | Float | Product's cost price |
| shipping_cost | Float | Product's shipping cost |
| handling_cost | Float | Product's handling cost |
| misc_cost | Float | Any miscellaneous cost associated with fulfilling the product |
| handling_time | Integer | Product's handling time (in days) |
| charity_percentage | Float | Product's Charity Percentage |
| charity_id | String | Product's Charity Id |
| item_remarks | String | Product's item remarks |
| quantity_available | Integer | Product quantity available for purchase |
| fulfillment_provider_account_id | String | ID of Fulfillment Provider account Example: '5fdc7195e2d895171f9b87ae'. |
| fulfillment_provider_sku | String | SKU of Fulfillment Provider. Example: S123. |
| use_ebay_business_policies | Boolean | Switch to/from using ebay business policies? |
| ebay_payment_policy_id | String | The eBay Payment Policy ID |
| ebay_payment_policy_name | String | The eBay Payment Policy Name (if updating you can specify ID or name) |
| ebay_shipping_policy_id | String | The eBay Shipping Policy ID |
| ebay_shipping_policy_name | String | The eBay Shipping Policy Name (if updating you can specify ID or name) |
| ebay_return_policy_id | String | The eBay Return Policy ID |
| ebay_return_policy_name | String | The eBay Return Policy Name (if updating you can specify ID or name) |
| store_category_external_id | String | The eBay Store Category ID |
| store_category_2_external_id | String | The eBay Store Category ID |
| tags_array | Array | Product tags to apply (will replace existing tags) |
| custom_catalogue_sku | String | Optional. Specify if you wish to override the default Catalogue SKU |
| alias | String | Optional. Used to identify product with another value |
| brand | String | Brand of the product |
| item_condition | Integer | Provide a number. 11(new), 1(like_new), 2(very_good), 3(good), 4(acceptable), 5(collectible_like_new), 6(collectible_very_good), 7(collectible_good), 8(collectible_acceptable), 10(refurbished), 15(unknown), 16(needs_work), 17(salvage), 18(not_applicable) |
| item_category | String | Category or type of the product |
| item_category_id | String | ID of category of the product |
| item_category_hierarchy | String | Hierarchy of category (ex. Automotive > Parts & Accessories > Motorcycle & Scooter Parts & Accessories > Other Motorcycle & Scooter Parts & Accessories) |
| subtitle | String | Subtitle ($1.50) |
| features_html | String | Features of product with html tags |
| mpn | String | Manufacturer part number |
| starting_price | Float | Starting price of the item. Default is 0 |
| lot_size | Integer | Size of the lot |
| max_quantities_to_list | Integer | Max quantity available for purchase at any given time |
| min_quantity_to_list | Integer | Min quantity available for purchase at any given time |
| reserve_quantity | Integer | Additional quantity in warehouse not available for purchase |
| reserve_quantity_location | String | Specify where these units are stored in warehouse |
| avg_cost_price | Float | Setting this value will reset cost price across all manifests |
| seller_vat_margin | Float | Seller VAT % |
| buyer_vat_margin | Float | Buyer VAT % |
| retail_price_profit_margin | Float | Sell Price Profit % |
| retail_price_add_on_amount | Float | Sell Price Add-on Amount |
| min_price_profit_margin | Float | Min Price Profit % |
| min_price_add_on_amount | Float | Min Price Add-on Amount |
| max_price_profit_margin | Float | Max Price Profit % |
| max_price_add_on_amount | Float | Max Price Add-on Amount |
| apply_marketplace_fee | Boolean | Set true if you want to apply the marketplace fee |
| units_system | String | Optional. Provide any of these values. imperial or metric |
| weight_in_pounds | Float | Item weight in pounds |
| package_weight_in_pounds | Float | Package weight in pounds |
| hs_tariff_number | String | Harmonization Code |
| target_quantity | Integer | Target quantity |
| reorder_level | Integer | Reorder level |
| supplier_ids | Array | SC IDs of suppliers |
| item_dimensions | Hash | Ex. {"length": 1, "width": 2, "height": 3, "unit": "inches"} |
| package_dimensions | Hash | Ex. {"length": 1, "width": 2, "height": 3, "unit": "inches"} |
| item_specifics | Array | Ex. [{"name": "size", "value": "xl", "namespace": "global", "type": "string"}, {"name": "color", "value": "red", "namespace": "global", "type": "string"}] |
Product Images
GET product_images
Returns back product_images for a product
Url format:
/api/products/PRODUCT_ID/product_images
curl -X GET \
https://app.sellerchamp.com/api/products/5e73df57584085c9820002fe/product_images \
-H 'content-type: application/json' \
-H 'token: YOUR-TOKEN' \
Make sure to replace `YOUR-TOKEN` with your API key token.
The above command returns JSON structured like this:
{
"product_images": [
{
"id": "5e73df8a584085c98200030a",
"product_id": "5e73df57584085c9820002fe",
"product_name": "New Title",
"position": 1,
"original_image_url": "https://images-na.ssl-images-amazon.com/images/I/41GAMTpSarL.jpg",
"small_image_url": null,
"medium_image_url": null,
"large_image_url": "https://images-na.ssl-images-amazon.com/images/I/41GAMTpSarL.jpg"
},
{
"id": "5e73df8a584085c98200030b",
"product_id": "5e73df57584085c9820002fe",
"product_name": "New Title",
"position": 1,
"original_image_url": "https://images-na.ssl-images-amazon.com/images/I/31LKUpz0yTL.jpg",
"small_image_url": null,
"medium_image_url": null,
"large_image_url": "https://images-na.ssl-images-amazon.com/images/I/31LKUpz0yTL.jpg"
}
]
}
CREATE product_images
Adds an image to an existing product
Url format:
/api/products/PRODUCT_ID/product_images
curl -X POST \
https://app.sellerchamp.com/api/products/5e29634b07b6201e4d0000d2/product_images \
-H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \
-H 'token: YOUR-TOKEN' \
-F 'product_image[group_name]=primary' \
-F 'product_image[attachment]=@s-l1600 (1).jpg'
Make sure to replace `YOUR-TOKEN` with your API key token.
FORM DATA Parameters
| Name | Data Type | Description |
|---|---|---|
| product_image[group_name] | String | Image group (primary or variant) |
| product_image[attachment] | File | The image attachment |
DELETE product_image
Removes an image from an existing product
Url format:
/api/products/PRODUCT_ID/product_images/PRODUCT_IMAGE_ID
curl -X DELETE \
'http://sellerchamp.com/api/products/5e73df57584085c9820002fe/product_images/5e29634b07b6201e4d0000d2.json?' \
-H 'content-type: application/json' \
-H 'token: YOUR-TOKEN'
Make sure to replace `YOUR-TOKEN` with your API key token.
Variants
Overview
Variants allow you to manage different versions of a product with varying attributes like color, size, style, etc. Each variant can have its own SKU, price, inventory, and other unique properties while being associated with a parent product.
Variant Structure
A variant consists of the following components:
- Options: Up to 5 option types (e.g., Color, Size, Style) with corresponding values
- Identifiers: SKU, Alt SKU, UPC, ASIN
- Inventory: Quantity available, handling time
- Pricing: Retail price, Min price, Max Price, MAP price, MSRP, Cost price
- Images: Variant-specific images
GET variants
Return all variants.
Url format:
/api/variants
Returns all variants for a specific product.
Url format:
/api/products/PRODUCT_ID/variants
curl -X GET \
https://app.sellerchamp.com/api/products/{product_id}/variants \
-H 'token: YOUR-TOKEN' \
Make sure to replace `YOUR-TOKEN` with your API key token.
The above command returns JSON structured like this:
{
"variants": [
{
"id": "61c056275e8edd0b21ffb1f4",
"product_id": "61c056275e8edd0b21ffb133",
"option1_name": "Color",
"option1_value": "Black",
"option2_name": "Size",
"option2_value": "Large",
"option3_name": null,
"option3_value": null,
"option4_name": null,
"option4_value": null,
"option5_name": null,
"option5_value": null,
"sku": "BLACK-LG",
"alt_sku": "",
"position": 1,
"title": null,
"upc": "789862014669",
"asin": "B07GJJK5TF",
"item_location": "A1",
"quantity_available": 15,
"retail_price": 30.0,
"msrp": 20.00,
"min_price": 2.00,
"max_price": 20.00,
"map_price": 15.00,
"weight_in_pounds": 0.0,
"cost_price": 5.00,
"handling_time": 1,
"inventory_locations": [
{
"id": "61d2ac985e8edd1946e8fa1f",
"location": "A1",
"quantity_available": 15,
"awaiting_pick": 0,
"priority": 1,
"delete_if_empty": true
}
]
"images": [
{
"id": "68151e63e951fc2eaabf095b",
"position": 0,
"option_name": "Actual Color",
"option_value": "Orange",
"product_image": {
"id": "6814f880e951fc3033ad5efe",
"product_id": "6814f880e951fc3033ad5efc",
"product_name": "Innova Champion Caiman Disc Golf Midrange Disc, Pick Color/Weight [Stamp & Exact Color May Vary] Orange 167-169 grams",
"position": 1,
"original_image_url": "https://i5.walmartimages.com/asr/b6eddc05-9a21-4171-9ffc-865659b2cae2.73f622a92b1b5db523eead96c66b43ef.jpeg",
"small_image_url": null,
"medium_image_url": "https://i5.walmartimages.com/asr/b6eddc05-9a21-4171-9ffc-865659b2cae2.73f622a92b1b5db523eead96c66b43ef.jpeg",
"large_image_url": "https://i5.walmartimages.com/asr/b6eddc05-9a21-4171-9ffc-865659b2cae2.73f622a92b1b5db523eead96c66b43ef.jpeg"
}
}
]
}
]
}
GET variant
Returns a specific variant by ID.
Url format:
/api/variants/VARIANT_ID
curl -X GET \
https://app.sellerchamp.com/api/variants/{variant_id} \
-H 'token: YOUR-TOKEN' \
Make sure to replace `YOUR-TOKEN` with your API key token.
PUT variant
Updates a specific variant's properties.
Url format:
/api/variants/VARIANT_ID
curl -X PUT \
https://app.sellerchamp.com/api/variants/{variant_id} \
-H 'token: YOUR-TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"variant": {
"option1_value": "Red",
"option2_value": "Medium",
"retail_price": 25.99,
"sku": "RED-MED",
"quantity_available": 20,
"msrp": 20.00,
"min_price": 2.00,
"max_price": 20.00,
"map_price": 15.00,
"item_location": "B2",
"cost_price": 2.00
}
}'
Make sure to replace `YOUR-TOKEN` with your API key token.
BODY Parameters
| Name | Data Type | Description |
|---|---|---|
| option1_value | String | First variant option value (e.g., "Red") |
| option2_value | String | Second variant option value (e.g., "Medium") |
| option3_value | String | Third variant option value |
| option4_value | String | Fourth variant option value |
| option5_value | String | Fifth variant option value |
| retail_price | Float | Retail price of the variant |
| sale_price | Float | Sale price of the variant |
| min_price | Float | Minimum price of the variant |
| max_price | Float | Maximum price of the variant |
| map_price | Float | Minimum Advertised Price of the variant |
| msrp | Float | Variant's MSRP |
| cost_price | Float | Cost price of the variant |
| sku | String | Variant SKU |
| alt_sku | String | Alternative SKU for the variant |
| upc | String | UPC/EAN barcode |
| asin | String | Amazon ASIN |
| lot_size | Integer | Lot size |
| quantity_available | Integer | Available quantity |
| item_location | String | Warehouse location |
| weight_in_pounds | Float | Weight in pounds |
| handling_time | Integer | Variant's handling time (in days) |
POST variant
Creates a new variant for a product.
Url format:
/api/products/PRODUCT_ID/variants
curl -X POST \
https://app.sellerchamp.com/api/products/{product_id}/variants \
-H 'token: YOUR-TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"variant": {
"option1_name": "Color",
"option1_value": "Blue",
"option2_name": "Size",
"option2_value": "Small",
"option3_name": "Style",
"option3_value": "Solid",
"option4_name": "Style",
"option4_value": "Checkered",
"option5_name": "Style",
"option5_value": "Striped",
"sku": "BLUE-SM-SOLID-CHECKERED-STRIPED",
"retail_price": 22.99,
"quantity_available": 10,
"item_location": "C3"
}
}'
Make sure to replace `YOUR-TOKEN` with your API key token.
BODY Parameters
| Name | Data Type | Description |
|---|---|---|
| option1_name | String | First option name (e.g., "Color") |
| option1_value | String | First option value (e.g., "Blue") |
| option2_name | String | Second option name (e.g., "Size") |
| option2_value | String | Second option value (e.g., "Small") |
| option3_name | String | Third option name |
| option3_value | String | Third option value |
| option4_name | String | Fourth option name |
| option4_value | String | Fourth option value |
| option5_name | String | Fifth option name |
| option5_value | String | Fifth option value |
| sku | String | Variant SKU |
| retail_price | Float | Retail price |
| sale_price | Float | Sale price |
| min_price | Float | Min price |
| max_price | Float | Maximum price |
| map_price | Float | Minimum Advertised Price |
| msrp | Float | Variant's MSRP |
| cost_price | Float | Cost price |
| quantity_available | Integer | Available quantity |
| item_location | String | Warehouse location |
| weight_in_pounds | Float | Weight in pounds |
| handling_time | Integer | Number of days required to process and ship the variant |
DELETE variant
Removes a variant from a product.
Url format:
/api/variants/VARIANT_ID
curl -X DELETE \
https://app.sellerchamp.com/api/products/{product_id}/variants/{variant_id} \
-H 'token: YOUR-TOKEN' \
Make sure to replace `YOUR-TOKEN` with your API key token.
Bulk Update Variants
PUT bulk_update
Update multiple variants.
Url format:
/api/variants/bulk_update
curl -X PUT \
https://app.sellerchamp.com/api/variants/bulk_update \
-H 'content-type: application/json' \
-H 'token: YOUR-TOKEN' \
-d '{
"variants":[
{
"id": "62557f505e8edd17829f20ff",
"option1_name": "Color",
"option1_value": "Blue",
"option2_name": "Size",
"option2_value": "Small",
"option3_name": "Style",
"option3_value": "Solid",
"option4_name": "Style",
"option4_value": "Checkered",
"option5_name": "Style",
"option5_value": "Striped",
"sku": "BLUE-SM-SOLID-CHECKERED-STRIPED",
"retail_price": 22.99,
"quantity_available": 10,
"msrp": 20.00,
"min_price": 2.00,
"max_price": 20.00,
"map_price": 15.00,
"cost_price": 2.00
"item_location": "C3",
"handling_time": 1
},
{
"id": "62557f505e8ccdd17829f20ff",
"option1_name": "Color",
"option1_value": "Red",
"option2_name": "Size",
"option2_value": "Large",
"option3_name": "Style",
"option3_value": "Solid",
"option4_name": "Style",
"option4_value": "Checkered",
"option5_name": "Style",
"option5_value": "Striped",
"sku": "RED-LG-SOLID-CHECKERED-STRIPED",
"retail_price": 22.99,
"quantity_available": 10,
"item_location": "C3",
"handling_time": 1
},
]
}'
Make sure to replace `YOUR-TOKEN` with your API key token.
BODY Parameters
| Name | Data Type | Description |
|---|---|---|
| option1_value | String | First variant option value (e.g., "Red") |
| option2_value | String | Second variant option value (e.g., "Medium") |
| option3_value | String | Third variant option value |
| option4_value | String | Fourth variant option value |
| option5_value | String | Fifth variant option value |
| retail_price | Float | Retail price of the variant |
| sale_price | Float | Sale price of the variant |
| min_price | Float | Minimum price of the variant |
| max_price | Float | Maximum price of the variant |
| map_price | Float | Minimum Advertised Price of the variant |
| msrp | Float | Variant's MSRP |
| cost_price | Float | Cost price of the variant |
| sku | String | Variant SKU |
| alt_sku | String | Alternative SKU for the variant |
| upc | String | UPC/EAN barcode |
| asin | String | Amazon ASIN |
| lot_size | Integer | Lot size |
| quantity_available | Integer | Available quantity |
| item_location | String | Warehouse location |
| weight_in_pounds | Float | Weight in pounds |
| handling_time | Integer | Variant's handling time (in days) |
Inventory Locations
GET inventory_locations
Returns back current inventory locations for a product
Url format:
/api/products/PRODUCT_ID/inventory_locations
curl -X GET \
https://app.sellerchamp.com/api/products/5e73df57584085c9820002fe/inventory_locations \
-H 'content-type: application/json' \
-H 'token: YOUR-TOKEN' \
Make sure to replace `YOUR-TOKEN` with your API key token.
The above command returns JSON structured like this:
{
"inventory_locations": [
{
"id": "623ac488827d2931da38a7aa",
"location": "DVD RACK 01-F-2.4.22-10",
"quantity_available": 7,
"awaiting_pick": 0,
"priority": 1,
"delete_if_empty": true
},
{
"id": "623b4abf827d294a0c8aff00",
"location": "A1",
"quantity_available": 1,
"awaiting_pick": 0,
"priority": 2,
"delete_if_empty": true
},
{
"id": "623b4acc827d294a0c8aff06",
"location": "A2",
"quantity_available": 1,
"awaiting_pick": 0,
"priority": 3,
"delete_if_empty": true
}
]
}
POST inventory_location
Creates a new inventory location for an existing product
Url format:
/api/products/PRODUCT_ID/inventory_locations
curl --request POST \
--url https://app.sellerchamp.com/api/products/5e73df57584085c9820002fe/inventory_locations \
--header 'Content-Type: application/json' \
--header 'cache-control: no-cache,no-cache,no-cache' \
--header 'token: YOUR-TOKEN' \
-- data '{ "inventory_location": { "location": "A1", quantity_available: 3, delete_if_empty: true, "priority": 1 } }'
Make sure to replace `YOUR-TOKEN` with your API key token.
FORM DATA Parameters
| Name | Data Type | Description |
|---|---|---|
| location | String | Inventory Location name |
| quantity_available | Number | Quantity available for inventory location |
| delete_if_empty | Boolean | Remove location if and when quantity reaches zero |
| priority | Number | Determines order in which quantity is reduced from locations when item sells. Lower priority locations are used first. |
PUT inventory_location
Updates an existing inventory location for an existing product
Url format:
/api/products/PRODUCT_ID/inventory_locations/INVENTORY_LOCATION_ID
curl --request PUT \
--url https://app.sellerchamp.com/api/products/5e73df57584085c9820002fe/inventory_locations/623b4acc827d294a0c8aff06 \
--header 'Content-Type: application/json' \
--header 'cache-control: no-cache,no-cache,no-cache' \
--header 'token: YOUR-TOKEN' \
-- data '{ "inventory_location": { "location": "A2", quantity_available: 3, delete_if_empty: true, "priority": 1 } }'
Make sure to replace `YOUR-TOKEN` with your API key token.
FORM DATA Parameters
| Name | Data Type | Description |
|---|---|---|
| location | String | Inventory Location name |
| quantity_available | Number | Quantity available for inventory location |
| delete_if_empty | Boolean | Remove location if and when quantity reaches zero |
| priority | Number | Determines order in which quantity is reduced from locations when item sells. Lower priority locations are used first. |
Bulk Update Inventory Locations
PUT bulk_update
Update multiple inventory locations. Maximum 1,000 items can be sent per api call.
Url format:
/api/inventory_locations/bulk_update
curl -X PUT \
https://app.sellerchamp.com/api/inventory_locations/bulk_update \
-H 'content-type: application/json' \
-H 'token: YOUR-TOKEN' \
-d '{
"inventory_locations":[
{
"product_id": '62557f505e8edd17829f20f2',
"location": "A1",
"quantity_available": 2,
"external_id": "ABC",
"external_name: "ABC",
"priority": 1,
"delete_if_empty": false
},
{
"product_id": '62557f505e8edd17829f20f3',
"location": "A1",
"quantity_available": 2,
"external_id": "ABC",
"external_name: "ABC",
"priority": 1,
"delete_if_empty": false
}
]
}'
Make sure to replace `YOUR-TOKEN` with your API key token.
BODY PARAMETERS
| Name | Data Type | Description |
|---|---|---|
| product_id | String | Product's id. Required |
| id | String | The ID of an existing location. Optional. If you specify ID for one element of the "inventory_locations" array, you must specify it for all elements. |
| location | String | Location where inventory is stored. Required. |
| quantity_available | Integer | The quantity of the location. Required. |
| external_id | String | The External ID of the warehouse |
| external_name | String | The External Name of the warehouse |
| priority | Integer | The priority of the location |
| delete_if_empty | Boolean | Should the location be deleted if quantity reaches 0. |
If no ID is specified or if it is specified as "null" and no location exists for the value that is passed in, a new location will be created.
Orders
GET orders w/o parameters
Url format:
/api/orders
# With shell, you can just pass the correct header with each request
curl -X GET \
https://app.sellerchamp.com/api/orders \
-H 'token: YOUR-TOKEN' \
Make sure to replace `YOUR-TOKEN` with your API key token.
Returns back all the orders. Default page size is 50.
The above command returns JSON structured like this:
{
"orders": [
{
"order_number": "132886362059-1538935630003",
"purchase_number": "1234",
"created_at": null,
"updated_at": "2019-01-07T23:02:55.533Z",
"purchased_at": "2018-12-14T00:10:56.000+00:00",
"ship_by_date": "2018-12-14T00:10:56.000+00:00",
"delivery_start_date": "2018-12-16T00:10:56.000+00:00",
"delivery_end_date": "2018-12-18T00:10:56.000+00:00",
"ship_start_date": "2018-12-14T00:10:56.000+00:00",
"ship_end_date": "2018-12-14T00:10:56.000+00:00",
"order_status": "shipped",
"buyer_name": "Ellis Driver",
"buyer_username": "edriver",
"buyer_email": null,
"buyer_notes": "",
"quantity_sold": 2,
"total_amount": 10.00,
"subtotal": 8.00,
"shipped_subtotal": 8.00,
"paid": true,
"amount_paid": 10.00,
"adjustment_amount": 0.00,
"total_tax": 2.00,
"total_shipping": 0.00,
"order_notes": null,
"fulfilled_by": "seller",
"tracking_number": "1Z234324334332",
"carrier_code": "UPS",
"acknowledged": true,
"is_prime": false,
"on_hold": false,
"currency_code": "USD",
"shipping_service_level": "Expedited",
"shipping_method": "NextDay",
"address_type": "Residential",
"store_id": "5c1902f207b620090a000026",
"marketplace_account_id": "5c1902f207b620090a000026",
"marketplace_account_name": "My eBay Store",
"marketplace": "ebay"
"ship_to": {
"name": "ellis driver",
"street1": "1623 NC Highway 86 N",
"street2": null,
"city": "hillsborough",
"state": "NC",
"postal_code": "27278-7516",
"country": "US",
"phone": "1-214-777-8888",
"reference_id": "REF123"
},
"items": [
{
"order_item_id": "5c33da5a07b6203f81000887",
"order_item_number": "112-242-223432",
"sku": "S11LPJMI1BZZT",
"variant_sku": "V123",
"created_at": null,
"ship_by_date": "2018-12-14T00:10:56.000+00:00",
"delivery_start_date": "2018-12-16T00:10:56.000+00:00",
"delivery_end_date": "2018-12-18T00:10:56.000+00:00",
"title": "Premium Rainbow Color Embroidery Floss - Cross Stitch Threads - Friendship Bra..",
"weight": {
"value": 0,
"units": "ounces"
},
"updated_at": null,
"quantity": 1,
"currency_code": "USD",
"tax_amount": 0,
"unit_price": 12.54,
"shipping_amount": 0,
"warehouse_location": null,
"product_id": "",
"fulfillment_sku": "S11LPJMI1BZZT",
"marketplace_fees": 7.35
}
]
}
]
}
GET orders with parameters
Returns back a list of orders that match the specified criteria. All of the available filters are optional. They do not need to be included in the URL. If you do include them, here's what the URL may look like:
Url format with filters:
/api/orders?buyer_name=smith &updated_at_start=2015-01-01T00:00:00&updated_at_end=2015-01-08T00:00:00 &order_status=unshipped &marketplace_accont_id=5e73df8a584085c98200030b &sort=order_status&page=1&page_size=20
curl --request GET \
--url 'https://app.sellerchamp.com/api/orders?order_status=unshipped&marketplace_account_id=5e73df8a584085c98200030b&updated_at_start=2015-01-01T00:00:00&updated_at_end=2015-01-08T00:00:00&page=1&page_size=20' \
-H 'token: YOUR-TOKEN' \
Make sure to replace `YOUR-TOKEN` with your API key token.
URL Parameters
| Name | Data Type | Description |
|---|---|---|
| buyer_name | String | Returns orders that match the specified name. Example: smith. |
| created_at_start | String | Returns orders that were created after the specified date Example: 2015-01-01 00:00:00. |
| created_at_end | String | Returns orders that were created before the specified date Example: 2015-01-08 00:00:00. |
| updated_at_start | String | Returns orders that were modified after the specified date Example: 2015-01-01 00:00:00. |
| updated_at_end | String | Returns orders that were modified before the specified date Example: 2015-01-08 00:00:00. |
| order_number | String | Filter by order number, performs a "starts with" search. Example: 12345. |
| order_status | String | Filter by order status. If left empty, orders of all statuses are returned. Example: shipped, pending, pending_availability, unshipped, partially_shipped, cancelled, canceled, completed |
| purchased_at_start | String | Returns orders that were paid after the specified date Example: 2015-01-01 |
| purchased_at_end | String | Returns orders that were paid before the specified date Example: 2015-01-08 |
| marketplace_account_id | Number | Filters orders to a single marketplace account. Call /marketplace_accounts to obtain list of marketplace account ids. |
| sort | String | Sort the responses by a set value. The response will be sorted based off the ascending dates (oldest to most current.) If left empty, the response will be sorted by ascending order_id. Example: Order_date |
| direction | String | Sets the direction of the sort order. Example: ASC. |
| page | String | Page number Default: 1. |
| page_size | number | Requested page size. Default: 250. |
GET order
Returns a single order by ID. Response shape matches the orders list endpoint.
Url format:
/api/orders/ORDER_ID
curl -X GET \
https://app.sellerchamp.com/api/orders/ORDER_ID \
-H 'token: YOUR-TOKEN'
Make sure to replace `YOUR-TOKEN` with your API key token.
The above command returns JSON structured like this:
{
"orders": [
{
"id": "5c33da5a07b6203f81000880",
"order_number": "132886362059-1538935630003",
"order_status": "unshipped",
"buyer_name": "Ellis Driver",
"paid": true,
"tracking_number": null,
"carrier_code": null,
"store_id": "5c1902f207b620090a000026",
"marketplace_account_id": "5c1902f207b620090a000026",
"ship_to": {
"name": "ellis driver",
"street1": "1623 NC Highway 86 N",
"city": "hillsborough",
"state": "NC",
"postal_code": "27278-7516",
"country": "US"
},
"items": [
{
"order_item_id": "5c33da5a07b6203f81000887",
"sku": "S11LPJMI1BZZT",
"title": "Premium Rainbow Color Embroidery Floss",
"quantity": 1,
"unit_price": 12.54
}
]
}
]
}
URL Parameters
| Name | Data Type | Description |
|---|---|---|
| ORDER_ID | String | The ID of the order to retrieve |
PUT order
Updates an order. If tracking number and carrier code are provided, they are submitted to the respective marketplace.
URL format:
/api/orders/ORDER_ID
curl --request PUT \
--url https://app.sellerchamp.com/api/orders/{order_id} \
--header 'Content-Type: application/json' \
--header 'cache-control: no-cache,no-cache,no-cache' \
--header 'token: YOUR-TOKEN' \
-- data '{ "order": { "id": "{id}", tracking_number: "{tracking_number}", carrier_code: "{carrier_code}" } }'
URL Parameters
| Name | Data Type | Description |
|---|---|---|
| id | String | The ID of the order to update |
| tracking_number | String | The order's tracking number |
| carrier_code | String | The carrier service used to ship the order (UPS, USPS, FedEx, etc.) |
POST Cancel Order
Cancel an order or specific order items.
URL format:
/api/orders/{order_id}/cancel
curl --request POST \
--url https://app.sellerchamp.com/api/orders/{order_id}/cancel \
--header 'Content-Type: application/json' \
--header 'token: YOUR-TOKEN' \
-- data '{
"cancel_reason": "Customer Requested Cancellation",
"order_item_ids": ["{order_item_id1}", "{order_item_id2}"]
}'
URL Parameters
| Name | Data Type | Description |
|---|---|---|
| order_id | String | The ID of the order to cancel |
Request Body Parameters
| Name | Data Type | Description |
|---|---|---|
| cancel_reason | String | Reason for cancellation (required) |
| order_item_ids | Array | Array of order item IDs to cancel (required) |
POST Refund Order
Refund an order or specific order items.
URL format:
/api/orders/{order_id}/refund
Full Refund
curl --request POST \
--url https://app.sellerchamp.com/api/orders/{order_id}/refund \
--header 'Content-Type: application/json' \
--header 'token: YOUR-TOKEN' \
-- data '{
"refund_reason": "Item returned to seller",
"refund_action": "full_refund",
"amount": 100.50,
"order_item_id_qty_pairs": {
"11n50d2c7305811ea5f3e410": 1
}
}'
Partial Refund
curl --request POST \
--url https://app.sellerchamp.com/api/orders/{order_id}/refund \
--header 'Content-Type: application/json' \
--header 'token: YOUR-TOKEN' \
-- data '{
"refund_reason": "Item returned to seller",
"refund_action": "partial_refund",
"amount": 30.00,
"order_item_id_qty_pairs": {
"11n50d2c7305811ea5f3e410": 1
}
}'
URL Parameters
| Name | Data Type | Description |
|---|---|---|
| order_id | String | The ID of the order to refund |
Request Body Parameters
| Name | Data Type | Description |
|---|---|---|
| refund_reason | String | Reason for refund (required) |
| refund_action | String | Type of refund: "full_refund" or "partial_refund" (required) |
| amount | Float | Refund amount (required) |
| order_item_id_qty_pairs | Hash | Hash of order_item_id => quantity for refunds (required for partial refund) |
Acknowledge order
Order Acknowledgment. You can acknowledge Google Merchant and Walmart orders, if the order is in Awaiting Shipment status.
URL format:
/api/orders/ORDER_ID/acknowledge
curl --request POST \
--url https://app.sellerchamp.com/api/orders/{order_id}/acknowledge \
--header 'Content-Type: application/json' \
--header 'cache-control: no-cache,no-cache,no-cache' \
--header 'token: YOUR-TOKEN' \
URL Parameters
| Name | Data Type | Description |
|---|---|---|
| ORDER_ID | String | The ID of the order to acknowledge |
Bulk Update Orders
PUT bulk_update_orders
Update multiple orders asynchronously. Maximum 1,000 orders per request. Identify each order by id or record_number.
Url format:
/api/orders/bulk_update
curl -X PUT "https://app.sellerchamp.com/api/orders/bulk_update" \
-H "token: YOUR-TOKEN" \
-H "Content-Type: application/json" \
-d '{
"orders": [
{
"id": "ORDER_ID_1",
"tracking_number": "1Z999AA10123456784",
"carrier_code": "UPS",
"order_status": "shipped"
},
{
"id": "ORDER_ID_2",
"ship_to_street1": "123 Main St",
"ship_to_city": "Austin",
"ship_to_state": "TX",
"ship_to_zipcode": "78701",
"ship_to_country": "US",
"order_notes": "Leave at door"
}
]
}'
The above command returns JSON structured like this:
{
"message": "your orders will be updated in the background",
"request_id": "5fdc7195e2d895171f9b87ae",
"request_content": [
{
"id": "ORDER_ID_1",
"tracking_number": "1Z999AA10123456784",
"carrier_code": "UPS",
"order_status": "shipped"
}
]
}
BODY PARAMETERS
orders Parameters: A JSON array with the key "orders"
| Name | Data Type | Description |
|---|---|---|
| id | String | Order ID |
| record_number | String | Alternate order identifier when ID is not used |
| tracking_number | String | Tracking number |
| carrier_code | String | Carrier code (UPS, USPS, FedEx, etc.) |
| order_status | String | Order status |
| paid | Boolean | Whether the order is paid |
| order_notes | String | Internal order notes |
| buyer_name | String | Buyer name |
| buyer_email | String | Buyer email |
| ship_to_address_name | String | Ship-to name |
| ship_to_company | String | Ship-to company |
| ship_to_street1 | String | Ship-to street line 1 |
| ship_to_street2 | String | Ship-to street line 2 |
| ship_to_street3 | String | Ship-to street line 3 |
| ship_to_city | String | Ship-to city |
| ship_to_state | String | Ship-to state |
| ship_to_country | String | Ship-to country |
| ship_to_zipcode | String | Ship-to postal code |
| ship_to_phone | String | Ship-to phone |
| total_amount | Float | Order total amount |
| total_tax | Float | Total tax |
| total_shipping | Float | Total shipping |
| marketplace_account_id | String | Marketplace account ID |
| purchase_number | String | Purchase / PO number |
| quantity_sold | Integer | Quantity sold |
Fulfillment Provider Accounts
GET fulfillment_provider_accounts
Returns all fulfillment provider accounts connected to your SellerChamp account.
Url format:
/api/fulfillment_provider_accounts
curl -X GET \
https://app.sellerchamp.com/api/fulfillment_provider_accounts \
-H 'token: YOUR-TOKEN'
Make sure to replace `YOUR-TOKEN` with your API key token.
The above command returns JSON structured like this:
{
"fulfillment_provider_accounts": [
{
"id": "5fdc7195e2d895171f9b87ae",
"name": "My 3PL Warehouse",
"fulfillment_client_id": "client-123",
"fulfillment_method": "deliverr",
"url": "https://example.com"
}
]
}
Master Products
Catalog (master product) endpoints require Catalog Sync to be enabled on your account. If it is not enabled, these endpoints return 422 with { "errors": "Catalog Sync must be enabled." }.
GET master_products
Returns catalog products. Default page size is 50 (max 250).
Unrecognized query parameters are rejected with 400 and
{ "error": "unrecognised query params: ...", "unrecognised": [...] }.
For parent products (or products with children), quantity_available is the sum of child quantities when children are loaded. price is included when a positive retail/list/MSRP price is available.
Url format:
/api/master_products
curl -X GET \
'https://app.sellerchamp.com/api/master_products?page=1&page_size=50&q=Widget&location=A-01' \
-H 'token: YOUR-TOKEN'
Make sure to replace `YOUR-TOKEN` with your API key token.
The above command returns JSON structured like this:
{
"master_products": [
{
"id": "65a1b2c3d4e5f6789012345",
"client_id": "5c1902f207b620090a000001",
"catalogue_sku": "CAT-001",
"title": "Widget",
"description": "A useful widget",
"brand": "Acme",
"asin": "B00EXAMPLE1",
"upc": "012345678905",
"parent_id": "",
"child_products_count": 0,
"product_type": "single",
"marketplace_status": "active",
"quantity_available": 10,
"price": 19.99,
"features": ["Feature one", "Feature two"],
"item_category": "Home & Kitchen",
"weight_in_pounds": 1.5,
"package_weight_in_pounds": 1.75,
"variant_options": [],
"primary_image": "https://cdn.example.com/widget.jpg",
"images": [
{
"id": "65a1b2c3d4e5f6789012346",
"position": 0,
"group_name": "primary",
"stock": false,
"image_url": "https://cdn.example.com/widget.jpg",
"large_url": "https://cdn.example.com/widget-large.jpg"
}
],
"created_at": "2024-01-15T12:00:00.000Z",
"updated_at": "2024-01-16T12:00:00.000Z",
"inventory_locations": [
{
"location": "A-01",
"quantity_available": 10
}
],
"child_products": []
}
]
}
URL Parameters
| Name | Data Type | Description |
|---|---|---|
| catalogue_sku | String (optional) | Case-insensitive prefix match on catalogue SKU (includes exact matches) |
| q | String (optional) | Case-insensitive keyword match on title |
| title | String (optional) | Same as q (title keyword match) |
| asin | String (optional) | Exact filter by ASIN (uppercased) |
| upc | String (optional) | Exact filter by UPC |
| parent_id | String (optional) | Filter by parent master product ID |
| location | String (optional) | Return products that have inventory at this bin location |
| bin | String (optional) | Alias for location |
| created_at_min | String (optional) | Return products created on/after this timestamp |
| updated_at_min | String (optional) | Return products updated on/after this timestamp |
| sort | String (optional) | One of: created_at, updated_at, catalogue_sku, title, id. Default: created_at |
| direction | String (optional) | Sort direction: asc or desc |
| page | Integer (optional) | Page number. Default: 1 |
| page_size | Integer (optional) | Page size. Default: 50, max: 250 |
| per_page | Integer (optional) | Alias for page_size |
GET master_product
Returns a single catalog product, including images, inventory locations, and child products when applicable.
Url format:
/api/master_products/MASTER_PRODUCT_ID
curl -X GET \
https://app.sellerchamp.com/api/master_products/MASTER_PRODUCT_ID \
-H 'token: YOUR-TOKEN'
Make sure to replace `YOUR-TOKEN` with your API key token.
URL Parameters
| Name | Data Type | Description |
|---|---|---|
| MASTER_PRODUCT_ID | String | The ID of the master product to retrieve |
CREATE master_product
Creates a catalog product. product_type may be single, parent, or variant.
You can also create from photo-parse results by sending draft_attrs (AI product details) and optional photos uploads. Explicit master_product fields override matching draft values. Up to 5 photos are accepted and attached as primary images when the product is created.
Url format:
/api/master_products
curl -X POST \
https://app.sellerchamp.com/api/master_products \
-H 'token: YOUR-TOKEN' \
-H 'content-type: application/json' \
-d '{
"master_product": {
"product_type": "single",
"catalogue_sku": "CAT-001",
"title": "Widget",
"description": "A useful widget",
"brand": "Acme",
"asin": "B00EXAMPLE1",
"upc": "012345678905",
"item_category": "Home & Kitchen",
"weight_in_pounds": 1.5,
"package_weight_in_pounds": 1.75,
"features": ["Feature one", "Feature two"],
"lookup_custom_fields": [
{"name": "Color", "values": ["Royal"]}
]
}
}'
Make sure to replace `YOUR-TOKEN` with your API key token.
Create from photo-parse draft details (multipart):
curl -X POST \
https://app.sellerchamp.com/api/master_products \
-H 'token: YOUR-TOKEN' \
-F 'master_product[catalogue_sku]=FON0413RYL' \
-F 'master_product[product_type]=single' \
-F 'draft_attrs={"title":"Widget","brand":"Acme","catalogue_sku":"FON0413RYL","features":["Solid construction"],"lookup_custom_fields":[{"name":"Color","values":["Royal"]}]}' \
-F 'photos[]=@/path/to/photo1.jpg' \
-F 'photos[]=@/path/to/photo2.jpg'
Parent example:
curl -X POST \
https://app.sellerchamp.com/api/master_products \
-H 'token: YOUR-TOKEN' \
-H 'content-type: application/json' \
-d '{
"master_product": {
"product_type": "parent",
"catalogue_sku": "CAT-PARENT",
"title": "Widget Family",
"option_names": ["Color", "Size"]
}
}'
Variant example:
curl -X POST \
https://app.sellerchamp.com/api/master_products \
-H 'token: YOUR-TOKEN' \
-H 'content-type: application/json' \
-d '{
"master_product": {
"product_type": "variant",
"catalogue_sku": "CAT-RED-M",
"title": "Widget - Red / M",
"parent_id": "PARENT_MASTER_PRODUCT_ID",
"option_values": {
"Color": "Red",
"Size": "M"
}
}
}'
BODY Parameters
master_product Parameters: A JSON object with the key "master_product"
| Name | Data Type | Description |
|---|---|---|
| product_type | String (optional) | One of: single, parent, variant. Default: single |
| catalogue_sku | String | Catalogue SKU |
| title | String | Product title |
| description | String (optional) | Product description |
| brand | String (optional) | Brand |
| asin | String (optional) | Amazon ASIN |
| upc | String (optional) | UPC |
| parent_id | String (optional) | Required when product_type is variant |
| item_category | String (optional) | Item category |
| weight_in_pounds | Float (optional) | Item weight in pounds |
| package_weight_in_pounds | Float (optional) | Package weight in pounds |
| features | Array (optional) | Feature bullet points |
| lookup_custom_fields | Array (optional) | Item specifics / custom fields. Example: [{"name": "Color", "values": ["Royal"]}] |
| option_names | Array (optional) | Option names for parent products. Example: ["Color", "Size"] |
| option_values | Hash (optional) | Option values for variant products. Example: {"Color": "Red", "Size": "M"} |
| option_enhancements | Hash (optional) | Optional option enhancements for parent products |
| draft_attrs | Object/String (optional) | Product details from catalog_photo_parse (product_details / ai_draft). May be a JSON object or JSON string. Used as defaults when matching master_product fields are blank. Supported keys: catalogue_sku, title, description, brand, asin, upc, features, lookup_custom_fields, item_category |
| photos[] | File (optional) | Photo uploads to attach on create (max 5). Also accepts a single photo field |
| photo | File (optional) | Single photo upload (used when photos[] is omitted) |
PUT master_product
Updates a catalog product.
Url format:
/api/master_products/MASTER_PRODUCT_ID
curl -X PUT \
https://app.sellerchamp.com/api/master_products/MASTER_PRODUCT_ID \
-H 'token: YOUR-TOKEN' \
-H 'content-type: application/json' \
-d '{
"master_product": {
"title": "Updated Widget",
"description": "Updated description",
"brand": "Acme",
"asin": "B00EXAMPLE1",
"upc": "012345678905",
"item_category": "Home & Kitchen",
"weight_in_pounds": 1.6,
"package_weight_in_pounds": 1.8,
"features": ["Updated feature"]
}
}'
Make sure to replace `YOUR-TOKEN` with your API key token.
BODY Parameters
master_product Parameters: A JSON object with the key "master_product"
| Name | Data Type | Description |
|---|---|---|
| title | String (optional) | Product title |
| description | String (optional) | Product description |
| brand | String (optional) | Brand |
| asin | String (optional) | Amazon ASIN |
| upc | String (optional) | UPC |
| item_category | String (optional) | Item category |
| weight_in_pounds | Float (optional) | Item weight in pounds |
| package_weight_in_pounds | Float (optional) | Package weight in pounds |
| features | Array (optional) | Feature bullet points |
DELETE master_product
Soft-deletes a catalog product.
Url format:
/api/master_products/MASTER_PRODUCT_ID
curl -X DELETE \
https://app.sellerchamp.com/api/master_products/MASTER_PRODUCT_ID \
-H 'token: YOUR-TOKEN'
Make sure to replace `YOUR-TOKEN` with your API key token.
Returns 204 No Content on success.
POST catalog_photo_parse
Upload one or more product photos to extract barcodes/text, suggested catalog lookup candidates, and AI product details. On the API, AI product details are requested whenever AI extraction is enabled (even when a barcode is present).
Url format:
/api/master_products/catalog_photo_parse
curl -X POST \
https://app.sellerchamp.com/api/master_products/catalog_photo_parse \
-H 'token: YOUR-TOKEN' \
-F 'photos[]=@/path/to/photo1.jpg' \
-F 'photos[]=@/path/to/photo2.jpg'
Make sure to replace `YOUR-TOKEN` with your API key token.
You may also send a single file with the form field photo.
The above command returns JSON structured like this:
{
"catalog_photo_parse": {
"status": "success",
"photo_count": 1,
"auto_lookup": true,
"parse_result": {
"barcodes": [
{
"value": "012345678905",
"format": "UPC_A"
}
],
"text": "ACME WIDGET",
"text_lines": ["ACME WIDGET"],
"logos": [],
"labels": []
},
"candidates": [
{
"search_type": "asin_upc_barcode",
"query": "012345678905",
"label": "012345678905 (UPC)",
"default": true
}
],
"default_candidate": {
"search_type": "asin_upc_barcode",
"query": "012345678905",
"label": "012345678905 (UPC)"
},
"product_details": {
"title": "Widget",
"brand": "Acme",
"description": "A useful widget",
"features": ["Solid construction"],
"asin": null,
"upc": "012345678905",
"catalogue_sku": "FON0413RYL",
"lookup_custom_fields": [
{
"name": "Color",
"values": ["Royal"]
}
]
},
"ai_draft": {
"title": "Widget",
"brand": "Acme",
"description": "A useful widget",
"features": ["Solid construction"],
"upc": "012345678905",
"catalogue_sku": "FON0413RYL",
"lookup_custom_fields": [
{
"name": "Color",
"values": ["Royal"]
}
]
}
}
}
product_details and ai_draft contain the same payload. Pass either object back as draft_attrs when creating a master product or batch line.
FORM DATA Parameters
| Name | Data Type | Description |
|---|---|---|
| photos[] | File (optional) | One or more photo uploads |
| photo | File (optional) | Single photo upload (used when photos[] is omitted) |
Master Product Images
Requires Catalog Sync.
GET master_product_images
Returns images for a catalog product.
Url format:
/api/master_products/MASTER_PRODUCT_ID/master_product_images
curl -X GET \
https://app.sellerchamp.com/api/master_products/MASTER_PRODUCT_ID/master_product_images \
-H 'token: YOUR-TOKEN'
Make sure to replace `YOUR-TOKEN` with your API key token.
The above command returns JSON structured like this:
{
"master_product_images": [
{
"id": "65a1b2c3d4e5f6789012346",
"position": 0,
"group_name": "primary",
"stock": false,
"image_url": "https://cdn.example.com/widget.jpg",
"large_url": "https://cdn.example.com/widget-large.jpg"
}
]
}
CREATE master_product_image
Adds an image to a catalog product via image URL or file upload.
Url format:
/api/master_products/MASTER_PRODUCT_ID/master_product_images
curl -X POST \
https://app.sellerchamp.com/api/master_products/MASTER_PRODUCT_ID/master_product_images \
-H 'token: YOUR-TOKEN' \
-H 'content-type: application/json' \
-d '{
"master_product_image": {
"group_name": "primary",
"large_url": "https://cdn.example.com/widget-large.jpg",
"position": 0
}
}'
Make sure to replace `YOUR-TOKEN` with your API key token.
BODY / FORM DATA Parameters
master_product_image Parameters: A JSON object (or form fields) with the key "master_product_image"
| Name | Data Type | Description |
|---|---|---|
| group_name | String (optional) | Image group. Default: primary |
| large_url | String (optional) | Public image URL (required if attachment is omitted) |
| image_url | String (optional) | Alternate image URL field |
| position | Integer (optional) | Display position |
| attachment | File (optional) | Multipart file upload (required if large_url/image_url is omitted) |
PUT master_product_image
Updates a catalog product image.
Url format:
/api/master_products/MASTER_PRODUCT_ID/master_product_images/MASTER_PRODUCT_IMAGE_ID
curl -X PUT \
https://app.sellerchamp.com/api/master_products/MASTER_PRODUCT_ID/master_product_images/MASTER_PRODUCT_IMAGE_ID \
-H 'token: YOUR-TOKEN' \
-H 'content-type: application/json' \
-d '{
"master_product_image": {
"group_name": "primary",
"position": 1,
"large_url": "https://cdn.example.com/widget-updated.jpg"
}
}'
Make sure to replace `YOUR-TOKEN` with your API key token.
DELETE master_product_image
Deletes a catalog product image.
Url format:
/api/master_products/MASTER_PRODUCT_ID/master_product_images/MASTER_PRODUCT_IMAGE_ID
curl -X DELETE \
https://app.sellerchamp.com/api/master_products/MASTER_PRODUCT_ID/master_product_images/MASTER_PRODUCT_IMAGE_ID \
-H 'token: YOUR-TOKEN'
Make sure to replace `YOUR-TOKEN` with your API key token.
Returns 204 No Content on success.
Master Product Inventory Locations
Requires Catalog Sync. Use these endpoints to autocomplete bin locations, list SKUs at a location, and update catalog quantities (add / subtract / replace / transfer).
GET master_product_inventory_locations
Returns distinct catalog bin locations (prefix autocomplete). Default page size is 50 (max 100).
Url format:
/api/master_product_inventory_locations
curl -X GET \
'https://app.sellerchamp.com/api/master_product_inventory_locations?query=A&page=1&page_size=50' \
-H 'token: YOUR-TOKEN'
Make sure to replace `YOUR-TOKEN` with your API key token.
The above command returns JSON structured like this:
{
"locations": [
{
"id": "A-01",
"name": "A-01",
"normalized_name": "A-01",
"item_count": 2
}
],
"pagination": {
"more": false,
"page": 1,
"per_page": 50
}
}
URL Parameters
| Name | Data Type | Description |
|---|---|---|
| query | String (optional) | Location prefix filter. Also accepts q or prefix |
| page | Integer (optional) | Page number. Default: 1 |
| page_size | Integer (optional) | Page size. Default: 50, max: 100 |
GET master_product_inventory_locations/items
Returns catalog SKUs and quantities stored at a single bin location. Default page size is 50 (max 250).
Url format:
/api/master_product_inventory_locations/items
curl -X GET \
'https://app.sellerchamp.com/api/master_product_inventory_locations/items?location=A-01&page=1&page_size=50' \
-H 'token: YOUR-TOKEN'
Make sure to replace `YOUR-TOKEN` with your API key token.
The above command returns JSON structured like this:
{
"location": "A-01",
"items": [
{
"id": "65c1d2e3f4a567890123456",
"master_product_id": "65a1b2c3d4e5f6789012345",
"catalogue_sku": "CAT-001",
"title": "Widget",
"quantity_available": 10,
"reserve_quantity_count": 0,
"primary_image": "https://cdn.example.com/widget.jpg"
}
],
"pagination": {
"more": false,
"page": 1,
"per_page": 50
}
}
URL Parameters
| Name | Data Type | Description |
|---|---|---|
| location | String | Bin location (required). Also accepts id or query |
| page | Integer (optional) | Page number. Default: 1 |
| page_size | Integer (optional) | Page size. Default: 50, max: 250 |
Returns 422 with { "errors": ["location is required"] } when location is blank.
POST update_quantities
Updates catalog inventory at a location. Supports cycle count (replace), add, subtract, and transfer. Same behavior as the Inventory Update Quantities UI.
Url formats:
/api/master_product_inventory_locations/update_quantities
/api/master_products/MASTER_PRODUCT_ID/update_quantities
Parameters may be sent at the top level or nested under master_product_inventory_location.
curl -X POST \
https://app.sellerchamp.com/api/master_product_inventory_locations/update_quantities \
-H 'token: YOUR-TOKEN' \
-H 'content-type: application/json' \
-d '{
"master_product_id": "65a1b2c3d4e5f6789012345",
"inventory_action": "replace",
"location": "A-01",
"quantity": 10
}'
Make sure to replace `YOUR-TOKEN` with your API key token.
Add by barcode/SKU:
curl -X POST \
https://app.sellerchamp.com/api/master_product_inventory_locations/update_quantities \
-H 'token: YOUR-TOKEN' \
-H 'content-type: application/json' \
-d '{
"barcode": "CAT-001",
"inventory_action": "add",
"location": "A-01",
"quantity": 2
}'
Nested on a master product:
curl -X POST \
https://app.sellerchamp.com/api/master_products/MASTER_PRODUCT_ID/update_quantities \
-H 'token: YOUR-TOKEN' \
-H 'content-type: application/json' \
-d '{
"inventory_action": "subtract",
"location": "A-01",
"quantity": 1
}'
Transfer example:
curl -X POST \
https://app.sellerchamp.com/api/master_product_inventory_locations/update_quantities \
-H 'token: YOUR-TOKEN' \
-H 'content-type: application/json' \
-d '{
"master_product_id": "65a1b2c3d4e5f6789012345",
"inventory_action": "transfer",
"from_location": "A-01",
"location": "B-02",
"quantity": 3
}'
Successful response:
{
"success": true,
"inventory_action": "replace",
"location": "A-01",
"from_location": null,
"quantity": 10,
"quantity_assigned": null,
"quantity_available": 10,
"inventory_locations": [
{
"location": "A-01",
"quantity_available": 10
}
],
"master_product": {
"id": "65a1b2c3d4e5f6789012345",
"catalogue_sku": "CAT-001",
"title": "Widget",
"quantity_available": 10,
"inventory_locations": [
{
"location": "A-01",
"quantity_available": 10
}
]
}
}
BODY Parameters
| Name | Data Type | Description |
|---|---|---|
| inventory_action | String (optional) | One of: add, subtract, replace, transfer. Default: add |
| barcode | String (optional) | Barcode / catalogue identifier to resolve the product. Also accepts catalogue_sku |
| master_product_id | String (optional) | Explicit catalog product ID (required when barcode matches multiple products; taken from the path for the nested URL) |
| location | String | Destination / target bin location (required except when resolving other errors first) |
| quantity | Integer | Quantity to add, subtract, set (replace), or transfer |
| from_location | String (optional) | Source location for transfer |
| all_quantity | Boolean (optional) | When transferring, move all available quantity from the source |
| all_locations | Boolean (optional) | When transferring, pull from all source locations |
Error Responses
| Status | When |
|---|---|
| 400 | Unknown inventory_action |
| 404 | Catalog product not found |
| 409 | Multiple products matched the barcode — pass master_product_id to disambiguate. Response includes a master_products array |
| 422 | Validation / quantity / location errors (errors array). Transfer shortfalls may include total_available_quantity and inventory_locations |
Master Product Batches
Requires Catalog Sync. Use batches to scan/add catalog lines and receive inventory.
GET master_product_batches
Returns catalog batches. Archived batches are excluded unless include_archived=true.
Url format:
/api/master_product_batches
curl -X GET \
'https://app.sellerchamp.com/api/master_product_batches?status=active&page=1&page_size=50' \
-H 'token: YOUR-TOKEN'
Make sure to replace `YOUR-TOKEN` with your API key token.
The above command returns JSON structured like this:
{
"master_product_batches": [
{
"id": "65b1c2d3e4f567890123456",
"client_id": "5c1902f207b620090a000001",
"name": "Spring Intake",
"status": "active",
"notes": "Front door delivery",
"line_count": 12,
"pending_qty": 40,
"receivable": true,
"has_received_lines": false,
"fully_received": false,
"listing_manifest_ids": [],
"created_by_id": "api_job",
"created_at": "2024-02-01T12:00:00.000Z",
"updated_at": "2024-02-01T12:00:00.000Z"
}
]
}
URL Parameters
| Name | Data Type | Description |
|---|---|---|
| status | String (optional) | Filter by batch status |
| include_archived | Boolean (optional) | Include archived batches when true |
| sort | String (optional) | One of: created_at, updated_at, name, id. Default: created_at |
| direction | String (optional) | Sort direction: asc or desc |
| page | Integer (optional) | Page number. Default: 1 |
| page_size | Integer (optional) | Page size. Default: 50, max: 250 |
GET master_product_batch
Returns a batch and its lines. Each line includes catalog fields from the linked master product (upc, primary_image, quantity_available, inventory_locations) when available.
Url format:
/api/master_product_batches/BATCH_ID
curl -X GET \
https://app.sellerchamp.com/api/master_product_batches/BATCH_ID \
-H 'token: YOUR-TOKEN'
Make sure to replace `YOUR-TOKEN` with your API key token.
The above command returns JSON structured like this:
{
"master_product_batch": {
"id": "65b1c2d3e4f567890123456",
"name": "Spring Intake",
"status": "active",
"notes": "Front door delivery",
"line_count": 1,
"pending_qty": 5,
"receivable": true,
"has_received_lines": false,
"fully_received": false,
"lines": [
{
"id": "65b1c2d3e4f567890123457",
"master_product_batch_id": "65b1c2d3e4f567890123456",
"master_product_id": "65a1b2c3d4e5f6789012345",
"catalogue_sku": "CAT-001",
"title": "Widget",
"upc": "012345678905",
"primary_image": "https://cdn.example.com/widget.jpg",
"quantity": 5,
"quantity_ordered": 5,
"quantity_received": 0,
"quantity_pending": 5,
"quantity_available": 10,
"inventory_locations": [
{
"location": "A-01",
"quantity_available": 10
}
],
"receive_status": "pending",
"location": "A-01",
"position": 0,
"added_at": "2024-02-01T12:05:00.000Z",
"created_at": "2024-02-01T12:05:00.000Z",
"updated_at": "2024-02-01T12:05:00.000Z"
}
]
}
}
CREATE master_product_batch
Creates a new catalog batch.
Url format:
/api/master_product_batches
curl -X POST \
https://app.sellerchamp.com/api/master_product_batches \
-H 'token: YOUR-TOKEN' \
-H 'content-type: application/json' \
-d '{
"master_product_batch": {
"name": "Spring Intake",
"notes": "Front door delivery"
}
}'
Make sure to replace `YOUR-TOKEN` with your API key token.
BODY Parameters
master_product_batch Parameters: A JSON object with the key "master_product_batch"
| Name | Data Type | Description |
|---|---|---|
| name | String | Batch name |
| notes | String (optional) | Notes |
PUT master_product_batch
Updates a batch. The batch must still be modifiable.
Url format:
/api/master_product_batches/BATCH_ID
curl -X PUT \
https://app.sellerchamp.com/api/master_product_batches/BATCH_ID \
-H 'token: YOUR-TOKEN' \
-H 'content-type: application/json' \
-d '{
"master_product_batch": {
"name": "Spring Intake - Updated",
"notes": "Updated notes",
"status": "active"
}
}'
Make sure to replace `YOUR-TOKEN` with your API key token.
BODY Parameters
| Name | Data Type | Description |
|---|---|---|
| name | String (optional) | Batch name |
| notes | String (optional) | Notes |
| status | String (optional) | Batch status |
DELETE master_product_batch
Archives a batch.
Url format:
/api/master_product_batches/BATCH_ID
curl -X DELETE \
https://app.sellerchamp.com/api/master_product_batches/BATCH_ID \
-H 'token: YOUR-TOKEN'
Make sure to replace `YOUR-TOKEN` with your API key token.
Returns 204 No Content on success.
POST batch catalog_photo_parse
Same photo-parse behavior as master products (including product_details / ai_draft), scoped to a batch that is still modifiable.
Url format:
/api/master_product_batches/BATCH_ID/catalog_photo_parse
curl -X POST \
https://app.sellerchamp.com/api/master_product_batches/BATCH_ID/catalog_photo_parse \
-H 'token: YOUR-TOKEN' \
-F 'photos[]=@/path/to/photo.jpg'
Make sure to replace `YOUR-TOKEN` with your API key token.
PUT receive
Receives selected batch lines into inventory.
Url format:
/api/master_product_batches/BATCH_ID/receive
curl -X PUT \
https://app.sellerchamp.com/api/master_product_batches/BATCH_ID/receive \
-H 'token: YOUR-TOKEN' \
-H 'content-type: application/json' \
-d '{
"receive_line_ids": ["LINE_ID_1", "LINE_ID_2"],
"receive_quantities": {
"LINE_ID_1": 3,
"LINE_ID_2": 2
},
"receive_locations": {
"LINE_ID_1": "A-01",
"LINE_ID_2": "B-02"
},
"default_receive_location": "A-01"
}'
Make sure to replace `YOUR-TOKEN` with your API key token.
The above command returns JSON structured like this:
{
"received_count": 2,
"master_product_batch": {
"id": "65b1c2d3e4f567890123456",
"name": "Spring Intake",
"status": "active",
"pending_qty": 0,
"receivable": false,
"fully_received": true,
"lines": []
}
}
BODY Parameters
| Name | Data Type | Description |
|---|---|---|
| receive_line_ids | Array | Line IDs to receive (required) |
| receive_quantities | Hash (optional) | Map of line_id => quantity. Defaults to pending qty per line |
| receive_locations | Hash (optional) | Map of line_id => location |
| default_receive_location | String (optional) | Fallback location when a line location is not provided |
PUT receive_all_pending
Receives all pending receivable lines on a batch.
Url format:
/api/master_product_batches/BATCH_ID/receive_all_pending
curl -X PUT \
https://app.sellerchamp.com/api/master_product_batches/BATCH_ID/receive_all_pending \
-H 'token: YOUR-TOKEN' \
-H 'content-type: application/json' \
-d '{
"default_receive_location": "A-01"
}'
Make sure to replace `YOUR-TOKEN` with your API key token.
BODY Parameters
| Name | Data Type | Description |
|---|---|---|
| default_receive_location | String (optional) | Location applied when line locations are blank |
POST receive_scan
Scan an identifier to receive inventory against matching batch lines.
Url format:
/api/master_product_batches/BATCH_ID/receive_scan
curl -X POST \
https://app.sellerchamp.com/api/master_product_batches/BATCH_ID/receive_scan \
-H 'token: YOUR-TOKEN' \
-H 'content-type: application/json' \
-d '{
"receive_scan": {
"identifier": "CAT-001",
"quantity": 1,
"location": "A-01",
"search_identifier": "any",
"operator": "is"
}
}'
Make sure to replace `YOUR-TOKEN` with your API key token.
BODY Parameters
receive_scan Parameters: A JSON object with the key "receive_scan" (top-level fields are also accepted)
| Name | Data Type | Description |
|---|---|---|
| identifier | String | Identifier to scan (also accepts query) |
| quantity | Integer (optional) | Quantity to receive |
| location | String (optional) | Receive location |
| search_identifier | String (optional) | Search mode. Default: any |
| operator | String (optional) | Match operator. Default: is |
| master_product_id | String (optional) | Explicit master product when multiple matches exist |
Master Product Batch Lines
Requires Catalog Sync.
CREATE batch line
Adds a line to a batch by scanning/looking up a catalog identifier. May auto-create a master product when no match is found (unless auto_create is false).
When creating from photo-parse results, send draft_attrs and optional photos. Photos are attached to the created/resolved master product when it has no images yet (max 5). Successful responses include the full master_product payload when a product is associated with the line.
Url format:
/api/master_product_batches/BATCH_ID/lines
curl -X POST \
https://app.sellerchamp.com/api/master_product_batches/BATCH_ID/lines \
-H 'token: YOUR-TOKEN' \
-H 'content-type: application/json' \
-d '{
"line": {
"query": "CAT-001",
"search_type": "catalogue_sku",
"quantity": 5,
"location": "A-01",
"auto_create": true,
"receive_inventory": false
}
}'
Make sure to replace `YOUR-TOKEN` with your API key token.
Create from photo-parse draft details (multipart):
curl -X POST \
https://app.sellerchamp.com/api/master_product_batches/BATCH_ID/lines \
-H 'token: YOUR-TOKEN' \
-F 'line[quantity]=1' \
-F 'line[location]=A-01' \
-F 'line[auto_create]=true' \
-F 'line[draft_attrs]={"title":"Widget","brand":"Acme","catalogue_sku":"FON0413RYL","features":["Solid construction"],"lookup_custom_fields":[{"name":"Color","values":["Royal"]}]}' \
-F 'photos[]=@/path/to/photo1.jpg'
The above command returns JSON structured like this:
{
"line": {
"id": "65b1c2d3e4f567890123457",
"master_product_batch_id": "65b1c2d3e4f567890123456",
"master_product_id": "65a1b2c3d4e5f6789012345",
"catalogue_sku": "CAT-001",
"title": "Widget",
"upc": "012345678905",
"primary_image": "https://cdn.example.com/widget.jpg",
"quantity": 5,
"quantity_ordered": 5,
"quantity_received": 0,
"quantity_pending": 5,
"quantity_available": 10,
"inventory_locations": [
{
"location": "A-01",
"quantity_available": 10
}
],
"receive_status": "pending",
"location": "A-01"
},
"line_incremented": false,
"quantity_added": 5,
"created_master_product": false,
"master_product": {
"id": "65a1b2c3d4e5f6789012345",
"catalogue_sku": "CAT-001",
"title": "Widget",
"brand": "Acme",
"product_type": "single",
"price": 19.99,
"quantity_available": 10,
"images": [],
"inventory_locations": [],
"child_products": []
}
}
BODY Parameters
line Parameters: A JSON object with the key "line" (or "master_product_batch_line")
| Name | Data Type | Description |
|---|---|---|
| query | String | Identifier to look up (also accepts identifier) |
| search_type | String (optional) | Lookup type. Default: catalogue_sku |
| master_product_id | String (optional) | Explicit master product ID when selecting among matches |
| amazon_product_id | String (optional) | Amazon product ID for lookup/create flows |
| auto_create | Boolean (optional) | Auto-create catalog SKU when no match. Default: true |
| product_type | String (optional) | Product type when auto-creating. One of: single, parent, variant. Default: single |
| parent_id | String (optional) | Parent ID when creating a variant |
| quantity | Integer (optional) | Quantity to add. Default: 1 |
| location | String (optional) | Inventory location |
| require_location | Boolean (optional) | Require location even when not receiving |
| receive_inventory | Boolean (optional) | Immediately receive inventory for the added quantity |
| catalog_scope | String (optional) | Catalog search scope |
| catalogue_sku | String (optional) | Explicit catalogue SKU for create flows |
| draft_attrs | Object/String (optional) | Product details from catalog_photo_parse (product_details / ai_draft). May be a JSON object or JSON string. Used when auto-creating a catalog product |
| photos[] | File (optional) | Photo uploads to attach to the created/resolved master product (max 5). Also accepts a single photo field |
| photo | File (optional) | Single photo upload (used when photos[] is omitted) |
DELETE batch line
Removes a line from a modifiable batch.
Url format:
/api/master_product_batches/BATCH_ID/lines/LINE_ID
curl -X DELETE \
https://app.sellerchamp.com/api/master_product_batches/BATCH_ID/lines/LINE_ID \
-H 'token: YOUR-TOKEN'
Make sure to replace `YOUR-TOKEN` with your API key token.
Returns 204 No Content on success.
Users
GET User
Get user information for the specified ID.
Url format:
/api/users/USER_ID
curl -X GET \
https://app.sellerchamp.com/api/users/11n50d2c7305811ea5f3e450.json \
-H 'content-type: application/json' \
-H 'token: YOUR-TOKEN'
}'
Make sure to replace `YOUR-TOKEN` with your API key token.
The above command returns JSON structured like this:
{
"user": {
"id": "11n50d2c7305811ea5f3e450",
"name": "Nizar Noorani",
"client_name": "SC-Client",
"user_type": "client",
"push_notifications": {
"order_created": [
"30d12c3473c5cf72gdebe2b1",
"55d2sc337105cf72gde34522"
]
},
"role": "super_user"
}
}
PUT user
Updates the user for the specified ID.
Url format:
/api/users/USER_ID
curl -X PATCH \
https://app.sellerchamp.com/api/users/3273df57584085c12300065.json \
-H 'content-type: application/json' \
-H 'token: YOUR-TOKEN' \
-d '{
"user": {
"push_notifications": {"order_created": ["MARKETPLACE_ACCOUNT_ID", "ANOTHER_MARKETPLACE_ACCOUNT_ID"]}
}
}'
Make sure to replace `YOUR-TOKEN` with your API key token.
BODY PARAMETERS
| Name | Data Type | Description |
|---|---|---|
| name | String | The full name of the user |
| push_notifications | Hash | Hash of values for notification settings containing allowed marketplace ids. Pass-in empty string to clear out marketplace ids for a given notification. Ex: { "order_created": [""] } |
Errors
The SellerChamp API uses the following error codes:
| Error Code | Meaning |
|---|---|
| 400 | Bad Request -- Your request is invalid. |
| 401 | Unauthorized -- Your API key is wrong. |
| 403 | Forbidden -- The kitten requested is hidden for administrators only. |
| 404 | Not Found -- The specified kitten could not be found. |
| 405 | Method Not Allowed -- You tried to access a kitten with an invalid method. |
| 406 | Not Acceptable -- You requested a format that isn't json. |
| 409 | Conflict -- Previous request still in progress. Please wait a bit and try again later. |
| 410 | Gone -- The kitten requested has been removed from our servers. |
| 418 | I'm a teapot. |
| 429 | Too Many Requests -- You're requesting too many kittens! Slow down! |
| 500 | Internal Server Error -- We had a problem with our server. Try again later. |
| 503 | Service Unavailable -- We're temporarily offline for maintenance. Please try again later. |