Skip to content

Fetch Products List

Mehrdad Pajuhaan edited this page Oct 23, 2026 · 4 revisions

Fetch Products List

Retrieve the products (and, optionally, the category folders) of a shop with filters, sorting, search and pagination. This is the same endpoint the Selldone dashboard uses for its Products Manager. The URL catalog (GET_ALL_MY_PRODUCTS in apis/API.ts) lists the backoffice:product:write scope for this route, so request it together with backoffice:product:read (see Access Token).

Endpoint

GET https://api.selldone.com/shops/{shop_id}/products/all-admin

JavaScript SDK equivalent:

const { products, folders, total } =
  await window.$backoffice.product.list(shop_id, offset, limit, options);

Use the query parameters below to filter, sort and structure your results.

Essential query parameters

Parameter Type Description
offset integer Pagination offset (default: 0).
limit integer Max items to return (default: 20, max: 250).
updated_at ISO 8601 Filter products updated after this timestamp.

Common filtering parameters

Parameter Type Description
search string Search term (for example SKU, title or brand).
search_type string One of: null, category, exact, quote, tax, valuation, new.
dir int/string Category ID or name. Loads products inside this folder.
dirs[] array Filter by multiple category IDs.
statuses[] array Product statuses to include (for example Open).
types[] array Product types to include (for example PHYSICAL, SERVICE).
available boolean Only show in-stock or downloadable products.

Smart options and toggles

Parameter Type Description
with_total boolean Add the total count of matching products.
products_only boolean Return only products, skip folders.
categories_only boolean Return only folders/categories.
with_page boolean Include extra page data for the category.
with_parent boolean Include the full parent category hierarchy.
with_category_translations boolean Include multi-language translations for folders.
with_product_translations boolean Include multi-language translations for products.
with_product_variants boolean Include product variants (digest version).
need_full_variants boolean Load the full details of product variants.
with_extra_pricings boolean Load product custom prices (admin only).
with_category boolean Attach the category to each product.
show_deletes boolean Also show deleted products.

Location and geo filters

Parameter Type Description
map int Filter by map tag ID.
bounds[] array Filter products inside [lng1, lat1, lng2, lat2].
surrounded boolean Show only selected categories if bounds and dirs are set.

Sorting options

Parameter Description
sort One of: most_visited, most_popular, newest, bestselling, cheapest, most_expensive, random, related.
sortBy Any database column (for example created_at, price, sku).
sortDesc true or false (descending or ascending).

Vendor and shop modes

Parameter Description
vendor_id Show products for a specific vendor.
vendor Filter by the current vendor context.
show_vendors Show all vendors.
pos_mode Remove dropshipping items.
only_dropshipping Only show dropship-enabled (reselling) products.

JSON filter field (advanced)

The filter parameter accepts a JSON object for precise filtering:

{
  "only_is_original": true,
  "only_has_discount": true,
  "brands": ["Nike", "Adidas"],
  "limited_offer": 48,
  "prices": {
    "USD": [10, 100]
  },
  "selected_variants": {
    "color": ["Red", "Blue"]
  },
  "selected_spec": {
    "Material": ["Cotton", "Recycled"]
  }
}

Response

Field Description
products Product items for the current directory and filter.
folders Category (folder) items for the current directory. Empty when products_only=true.
parent_folders Breadcrumb and parent folder data (some responses use parent; support both).
total Total number of matching products (with with_total=true).
tax_profile, valuation, time_filter Returned only when a special tax-profile, valuation or time-range search matches.

Example request

GET https://api.selldone.com/shops/12345/products/all-admin?offset=0&limit=50&search=eco&sort=newest&available=true&with_total=true
Authorization: Bearer YOUR_ACCESS_TOKEN

Incremental sync example

Fetch only products changed since your last run, page by page:

GET https://api.selldone.com/shops/12345/products/all-admin?dir=*&products_only=true&with_total=true&offset=0&limit=100&updated_at=2024-01-01T00:00:00Z
Authorization: Bearer YOUR_ACCESS_TOKEN

Increase offset by limit until you have read total products, and keep within the rate limits.

Related

Clone this wiki locally