Legacy (v0)
List products
List every active product for the authenticated company, newest first, as a bare JSON array. Products are limited to those available in the company’s default country; pass country_id to use another country. Prices reflect the caller’s pricing tier. Not paginated: use GET /api/v1.1/products for filtered, paginated results. Admin users, company API tokens, and partner tokens need the products view permission.
GET
/
api
/
products
List products
curl --request GET \
--url https://api.fluid.app/api/products \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.fluid.app/api/products"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.fluid.app/api/products', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.fluid.app/api/products",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.fluid.app/api/products"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.fluid.app/api/products")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/products")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body[
{
"id": 48213,
"active": true,
"average_rating": 4.8,
"commission": "10.0",
"countries": [
{
"id": 214,
"active": true,
"address3": false,
"certified": false,
"configuration": {},
"created_at": "2026-09-02T14:05:11.482Z",
"currency_code": "USD",
"currency_symbol": "$",
"default": true,
"delimiter": ",",
"geo_entity_id": null,
"iso": "US",
"iso3": "USA",
"iso_name": "UNITED STATES",
"name": "United States",
"numcode": 840,
"separator": ".",
"settings": {},
"updated_at": "2026-09-02T14:05:11.482Z",
"uuid_v7": "0192f3a8-6c1e-7b42-9d0a-5e8f14c2b7d3",
"tax_enabled": null,
"tax_inclusive": null,
"tax_standard_rate": null,
"tax_name": null,
"tax_local_name": null,
"tax_local_abbreviation": null,
"tax_provinces": null,
"tax_rates": null,
"tax_invoice_required": null,
"checkout_requires_terms": null,
"address_requires_province": null,
"eu": null
}
],
"country_code": "us",
"currency_code": "USD",
"currency_symbol": "$",
"default_variant": {
"id": 90417,
"active": true,
"allow_subscription": true,
"bar_code": 718604291153,
"country_of_origin_id": null,
"created_at": "2026-09-02T14:12:40.117Z",
"customer_limit": 0,
"discarded_at": null,
"display_name": "Case of 10 reams",
"external_id": null,
"height": null,
"hs_code": "4802.56",
"image_path": null,
"image_url": null,
"inventory_policy": "none",
"is_master": true,
"keep_selling": false,
"length": null,
"limit_subscription": false,
"metafields_collection": [],
"option_attrs": [],
"physical": true,
"position": 1,
"price": "54.99",
"product_id": 48213,
"shipping_included_in_price": false,
"size": null,
"sku": "DM-20LB-CASE",
"subscription_interval": 1,
"subscription_max_qty": null,
"subscription_only": false,
"taxable": true,
"title": null,
"track_quantity": true,
"unit_of_size": null,
"unit_of_weight": "lb",
"updated_at": "2026-09-02T14:12:40.117Z",
"uuid_v7": "0192f3af-2b91-7c05-8e3d-a61b04f9d2e8",
"variant_country_id": null,
"weight": "50.0",
"width": null
},
"description": null,
"display_price": "$54.99",
"display_subscription_price": "$49.99",
"display_tag": null,
"display_wholesale_price": "$46.99",
"display_wholesale_subscription_price": "$44.99",
"enroll_products": [],
"enrollment_packs": [],
"external_id": null,
"hide_rating?": false,
"hide_reviews?": false,
"image": {
"mini": "https://cdn.fluid.app/dunder-mifflin/products/20lb-copy-paper.jpg?tr=n-split_mobile",
"detail": "https://cdn.fluid.app/dunder-mifflin/products/20lb-copy-paper.jpg?tr=n-video_poster",
"full": "https://cdn.fluid.app/dunder-mifflin/products/20lb-copy-paper.jpg"
},
"image_url": "https://cdn.fluid.app/dunder-mifflin/products/20lb-copy-paper.jpg",
"images": [
{
"id": 66120,
"image_url": "https://cdn.fluid.app/dunder-mifflin/products/20lb-copy-paper.jpg",
"image_path": "dunder-mifflin/products/20lb-copy-paper.jpg",
"position": 1
}
],
"in_stock": true,
"label": null,
"leads": 3,
"low_in_stock": false,
"option_values": null,
"options": [],
"out_of_stock": false,
"price": "54.99",
"price_range": [
"$54.99",
"$54.99"
],
"price_range_formatted": "$54.99",
"product_type": "product",
"prompts": [],
"prompts_enabled": false,
"public": true,
"publish_to_mobile_store": true,
"publish_to_portal_shop": true,
"publish_to_retail_store": true,
"publish_to_share_tab": true,
"share_link": "https://shop.dundermifflin.com/s/4d9e2b",
"shipping": "0.0",
"sku": "DM-20LB-CASE",
"stripped": "Bright white 20lb multipurpose copy paper, ten reams per case.",
"subscription_only": false,
"subscription_price": "49.99",
"title": "Dunder Mifflin 20lb Copy Paper",
"total_reviews": 27,
"unlimited_inventory": false,
"variants": [
{
"id": 90417,
"buyable": true,
"display_name": "Case of 10 reams",
"image_url": null,
"is_master": true,
"option_value_ids": [],
"shipping_included_in_price": false,
"sku": "DM-20LB-CASE",
"subscription_only": false,
"title": null,
"weight": "50.0",
"variant_countries": [
{
"id": 130552,
"country": {
"id": 214,
"iso": "US",
"iso3": "USA",
"iso_name": "UNITED STATES",
"name": "United States",
"tax_rates": null
},
"country_iso": "US",
"currency_code": "USD",
"currency_symbol": "$",
"cv": "40.00",
"display_price": "$54.99",
"display_subscription_price": "$49.99",
"display_wholesale_price": "$46.99",
"display_wholesale_subscription_price": "$44.99",
"pc_cv": "40.00",
"pc_qv": "40.00",
"price": "54.99",
"qv": "40.00",
"shipping": "8.95",
"subscription_price": "49.99",
"tax": "0.0",
"wholesale_price": "46.99",
"wholesale_subscription_price": "44.99"
}
]
}
],
"vendor": "Dunder Mifflin Paper Company",
"views": 18,
"wholesale_cv": "40.00",
"wholesale_price": "46.99",
"wholesale_qv": "40.00",
"wholesale_subscription_price": "44.99"
}
]{
"message": "<string>"
}Query Parameters
Response
Success
⌘I
List products
curl --request GET \
--url https://api.fluid.app/api/products \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.fluid.app/api/products"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.fluid.app/api/products', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.fluid.app/api/products",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.fluid.app/api/products"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.fluid.app/api/products")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/products")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body[
{
"id": 48213,
"active": true,
"average_rating": 4.8,
"commission": "10.0",
"countries": [
{
"id": 214,
"active": true,
"address3": false,
"certified": false,
"configuration": {},
"created_at": "2026-09-02T14:05:11.482Z",
"currency_code": "USD",
"currency_symbol": "$",
"default": true,
"delimiter": ",",
"geo_entity_id": null,
"iso": "US",
"iso3": "USA",
"iso_name": "UNITED STATES",
"name": "United States",
"numcode": 840,
"separator": ".",
"settings": {},
"updated_at": "2026-09-02T14:05:11.482Z",
"uuid_v7": "0192f3a8-6c1e-7b42-9d0a-5e8f14c2b7d3",
"tax_enabled": null,
"tax_inclusive": null,
"tax_standard_rate": null,
"tax_name": null,
"tax_local_name": null,
"tax_local_abbreviation": null,
"tax_provinces": null,
"tax_rates": null,
"tax_invoice_required": null,
"checkout_requires_terms": null,
"address_requires_province": null,
"eu": null
}
],
"country_code": "us",
"currency_code": "USD",
"currency_symbol": "$",
"default_variant": {
"id": 90417,
"active": true,
"allow_subscription": true,
"bar_code": 718604291153,
"country_of_origin_id": null,
"created_at": "2026-09-02T14:12:40.117Z",
"customer_limit": 0,
"discarded_at": null,
"display_name": "Case of 10 reams",
"external_id": null,
"height": null,
"hs_code": "4802.56",
"image_path": null,
"image_url": null,
"inventory_policy": "none",
"is_master": true,
"keep_selling": false,
"length": null,
"limit_subscription": false,
"metafields_collection": [],
"option_attrs": [],
"physical": true,
"position": 1,
"price": "54.99",
"product_id": 48213,
"shipping_included_in_price": false,
"size": null,
"sku": "DM-20LB-CASE",
"subscription_interval": 1,
"subscription_max_qty": null,
"subscription_only": false,
"taxable": true,
"title": null,
"track_quantity": true,
"unit_of_size": null,
"unit_of_weight": "lb",
"updated_at": "2026-09-02T14:12:40.117Z",
"uuid_v7": "0192f3af-2b91-7c05-8e3d-a61b04f9d2e8",
"variant_country_id": null,
"weight": "50.0",
"width": null
},
"description": null,
"display_price": "$54.99",
"display_subscription_price": "$49.99",
"display_tag": null,
"display_wholesale_price": "$46.99",
"display_wholesale_subscription_price": "$44.99",
"enroll_products": [],
"enrollment_packs": [],
"external_id": null,
"hide_rating?": false,
"hide_reviews?": false,
"image": {
"mini": "https://cdn.fluid.app/dunder-mifflin/products/20lb-copy-paper.jpg?tr=n-split_mobile",
"detail": "https://cdn.fluid.app/dunder-mifflin/products/20lb-copy-paper.jpg?tr=n-video_poster",
"full": "https://cdn.fluid.app/dunder-mifflin/products/20lb-copy-paper.jpg"
},
"image_url": "https://cdn.fluid.app/dunder-mifflin/products/20lb-copy-paper.jpg",
"images": [
{
"id": 66120,
"image_url": "https://cdn.fluid.app/dunder-mifflin/products/20lb-copy-paper.jpg",
"image_path": "dunder-mifflin/products/20lb-copy-paper.jpg",
"position": 1
}
],
"in_stock": true,
"label": null,
"leads": 3,
"low_in_stock": false,
"option_values": null,
"options": [],
"out_of_stock": false,
"price": "54.99",
"price_range": [
"$54.99",
"$54.99"
],
"price_range_formatted": "$54.99",
"product_type": "product",
"prompts": [],
"prompts_enabled": false,
"public": true,
"publish_to_mobile_store": true,
"publish_to_portal_shop": true,
"publish_to_retail_store": true,
"publish_to_share_tab": true,
"share_link": "https://shop.dundermifflin.com/s/4d9e2b",
"shipping": "0.0",
"sku": "DM-20LB-CASE",
"stripped": "Bright white 20lb multipurpose copy paper, ten reams per case.",
"subscription_only": false,
"subscription_price": "49.99",
"title": "Dunder Mifflin 20lb Copy Paper",
"total_reviews": 27,
"unlimited_inventory": false,
"variants": [
{
"id": 90417,
"buyable": true,
"display_name": "Case of 10 reams",
"image_url": null,
"is_master": true,
"option_value_ids": [],
"shipping_included_in_price": false,
"sku": "DM-20LB-CASE",
"subscription_only": false,
"title": null,
"weight": "50.0",
"variant_countries": [
{
"id": 130552,
"country": {
"id": 214,
"iso": "US",
"iso3": "USA",
"iso_name": "UNITED STATES",
"name": "United States",
"tax_rates": null
},
"country_iso": "US",
"currency_code": "USD",
"currency_symbol": "$",
"cv": "40.00",
"display_price": "$54.99",
"display_subscription_price": "$49.99",
"display_wholesale_price": "$46.99",
"display_wholesale_subscription_price": "$44.99",
"pc_cv": "40.00",
"pc_qv": "40.00",
"price": "54.99",
"qv": "40.00",
"shipping": "8.95",
"subscription_price": "49.99",
"tax": "0.0",
"wholesale_price": "46.99",
"wholesale_subscription_price": "44.99"
}
]
}
],
"vendor": "Dunder Mifflin Paper Company",
"views": 18,
"wholesale_cv": "40.00",
"wholesale_price": "46.99",
"wholesale_qv": "40.00",
"wholesale_subscription_price": "44.99"
}
]{
"message": "<string>"
}