Flowwow Seller API
The Flowwow API enables sellers to automate operations with their shops and items: retrieve a list of shops, manage assortment, pricing, and stock levels, and process orders, non-pickups, and returns.
Creating and using an API key token
The Seller API is currently in closed beta testing. Once it becomes publicly available, this information will be updated.
Ping
API status check methods. Designed to verify API availability and test how different types of server responses are handled.
API validation
Returns the server response type based on the value of the say query parameter.
Request
API availability check method: GET /apiseller/ping/check.
Parameter
Type
Required
Description
say
string
yes
Specifies the type of response the server will return.
Example: say=Hello
Allowed values say: hello, error400, error401, error403, error404, error429, error500.
Parameter value
Description
Action
hello
Campaign is active
Standard server response (200)
error400
Client error 400
Simulates a 400 client error
error401
Client error 401
Simulates a 401 client error
error403
Client error 403
Simulates a 403 client error
error404
Client error 404
Simulates a 404 client error
error429
Client error 429
Simulates a 429 client error
error500
Server error 500
Simulates a 500 client error
Responses
Server response types: 200 Success, 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found, 429 Too Many Requests, 500 Internal Server Error.
Format: application/json.
Status
Field
Type
Required
Description
Example response
200 Success
say
string
yes
Server response
{ "say": "hello" }
400 Bad Request
message
string
yes
General error description
{ "message": "Query param 'say' is empty", "fields": [ { "path": "say", "messages": [ "Query param 'say' is empty" ] } ] }
fields
array of objects (fields)
no
List of additional field validation errors
fields[].path
string
yes
Field where the error occurred
fields[].messages
array of string
yes
List of field error messages
trace
object / null
no
Error trace (not available in LIVE environment)
401 Unauthorized
message
string
yes
General error description
{ "message": "Missing or invalid token" }
fields
array of objects (fields)
no
List of additional field validation errors
fields[].path
string
yes
Field where the error occurred
fields[].messages
array of strings
yes
List of field error messages
trace
object / null
no
Error trace (not available in LIVE environment)
403 Forbidden
message
string
yes
General error description
{ "message": "Access denied", "fields": [] }
fields
array of objects (fields)
no
List of additional field validation errors
fields[].path
string
yes
Field where the error occurred
fields[].messages
array of strings
yes
List of field error messages
trace
object / null
no
Error trace (not available in LIVE environment)
404 Not Found
message
string
yes
General error description
{ "message": "Resource not found", "fields": [] }
fields
array of objects (fields)
no
List of additional field validation errors
fields[].path
string
yes
Field where the error occurred
fields[].messages
array of strings
yes
List of field error messages
trace
object / null
no
Error trace (not available in LIVE environment)
429 Too Many Requests
Retry-After (header)
integer ≥ 0
no
Number of seconds before retrying the request
{ "message": "Too Many Requests", "fields": [] }
message
string
yes
General error description
fields
array of objects (fields)
no
List of additional field validation errors
fields[].path
string
yes
Field where the error occurred
fields[].messages
array of strings
yes
List of field error messages
trace
object / null
no
Error trace (not available in LIVE environment)
500 Internal Server Error
message
string
yes
General error description
{ "message": "Internal server error" }
fields
array of objects (fields)
no
List of additional field validation errors
fields[].path
string
yes
Field where the error occurred
fields[].messages
array of strings
yes
List of field error messages
trace
object / null
no
Error trace (not available in LIVE environment)
Shop
Warehouses or holding shops information.
View shop list
Returns a list of shops for a holding, or a single shop in other cases.
To use the API, you must authenticate using a bearerToken that allows the server to identify the seller.
HTTP:
bearerToken.Authorization scheme:
bearer.Token format:
JWT.
Request
Example:
{
"status": "moderation",
"shopIds": [
101
],
"page": 0,
"limit": 10
}
Format: application/json.
The request structure is shown below:
Field
Type
Required
Description
Example response
status
string (ShopStatus)
yes
Shop status. Allowed values: "moderation", "active", "disabled".
moderation – under review
active – active
disabled – deactivated
{ "status": "moderation", "shopIds": [ 101 ], "page": 0, "limit": 10 }
shopIds
array of integers (ShopId) [ 1 .. 1000 ] items [ items ]
no
List of shop IDs
page
integer ≥ 0
no
Page number. Pagination starts from 0. Default: 0
limit
integer [1..50]
no
Number of items in the response. Maximum – 50, minimum – 1. Default: 10
Responses
Server response types: 200 Success, 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found, 429 Too Many Requests, 500 Internal Server Error.
Format: application/json.
Status
Field
Type
Required
Description
Example response
200 Success
shops
array of objects (ShopItem)
yes
List of shops
{ "shops": [ { "shopId": 101, "name": "Мой магазин", "status": "moderation", "address": "г. Москва, ул. Ленина, д. 1", "currency": "RUB", "isVerified": true, "workingDays": [ "1", "2", "3", "4", "5" ] } ], "total": 0 }
shops[].shopId
integer <int32>(ShopId)
yes
Flowwow platform shop ID
shops[].name
string
yes
Shop name on the Flowwow platform
shops[].status
string (ShopStatus)
yes
Shop status:"moderation" – under review, "active" – active, "disabled" –deactivated
shops[].address
string
yes
Shop address on the Flowwow platform
shops[].currency
string
no
Shop currency in ISO 4217 format
shops[].isVerified
boolean
no
Indicates whether the shop is verified on the Flowwow platform
shops[].workingDays
array of string
no
Working days (Allowed values: "1".."7"). If not specified, an empty array is returned
total
integer
no
Total number of shops
400 Bad Request
message
string
yes
General error description
{ "message": "Query param 'say' is empty", "fields": [ { "path":
"say", "messages":
[ "Query param 'say' is empty" ] } ] }
fields
array of objects (fields)
no
List of additional field validation errors
fields[].path
string
yes
Field where the error occurred
fields[].messages
array of string
yes
List of field error messages
trace
object / null
no
Error trace (not available in LIVE environment)
401 Unauthorized
message
string
yes
General error description
{ "message": "Missing or invalid token" }
fields
array of objects (fields)
no
List of additional field validation errors
fields[].path
string
yes
Field where the error occurred
fields[].messages
array of strings
yes
List of field error messages
trace
object / null
no
Error trace (not available in LIVE environment)
403 Forbidden
message
string
yes
General error description
{ "message": "Access denied", "fields": [] }
fields
array of objects (fields)
no
List of additional field validation errors
fields[].path
string
yes
Field where the error occurred
fields[].messages
array of strings
yes
List of field error messages
trace
object / null
no
Error trace (not available in LIVE environment)
404 Not Found
message
string
yes
General error description
{ "message": "Resource not found", "fields": [] }
fields
array of objects (fields)
no
List of additional field validation errors
fields[].path
string
yes
Field where the error occurred
fields[].messages
array of strings
yes
List of field error messages
trace
object / null
no
Error trace (not available in LIVE environment)
429 Too Many Requests
Retry-After (header)
integer ≥ 0
no
Number of seconds before retrying the request
{ "message": "Too Many Requests", "fields": [] }
message
string
yes
General error description
fields
array of objects (fields)
no
List of additional field validation errors
fields[].path
string
yes
Field where the error occurred
fields[].messages
array of strings
yes
List of field error messages
trace
object / null
no
Error trace (not available in LIVE environment)
500 Internal Server Error
message
string
yes
General error description
{ "message": "Internal server error" }
fields
array of objects (fields)
no
List of additional field validation errors
fields[].path
string
yes
Field where the error occurred
fields[].messages
array of strings
yes
List of field error messages
trace
object / null
no
Error trace (not available in LIVE environment)
Products
Adding, viewing, editing, and managing the visibility of items.
To use the API, you must authenticate using a bearerToken that allows the server to identify the seller.
HTTP:
bearerToken.Authorization scheme:
bearer.Token format:
JWT.
The item list is determined by the value of the shopId. The shopId is also available in the Flowwow seller dashboard.
Parameter
Type
Required
Description
shopId
integer <int32> [1 .. 4294967295]
yes
Warehouse or shop ID
Example: shopId=123456
Retrieve shop items
Returns a list of shop items with filtering options. Pagination is supported.
Request
API request method: POST /apiseller/products.
The request structure is shown below. Format: application/json:
Field
Type
Required
Description
Example
offerIds
array of strings or null (OfferId) [1 .. 1000], items ≤ 50 символов
no
List of item IDs in the shop system
{ "offerIds": [ "FLOW-001", "FLOW-002" ], "productIds": [ 123, 456 ], "categoryIds": [ 1, 2 ], "type": 1, "page": 0, "limit": 20 }
productIds
array of integers or null <int32> (ProductId) [1 .. 1000], items ≥ 1
no
Item IDs in the Flowwow system
categoryIds
array of integers <int64> (CategoryId) [1 .. 1000]
no
Category IDs in the Flowwow system
type
integer
no
Item type in the Flowwow system
page
integer ≥ 0
no
Page number. Pagination starts from 0. Default: 0
limit
integer [1 .. 1000]
no
Number of items in the response. Minimum – 1, maximum – 1000. Default: 10
Responses
Server response types: 200 OK, 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found, 429 Too Many Requests, 500 Internal Server Error.
Format: application/json.
Status
Field
Type
Required
Description
Example response
200 OK
items
array of objects (ProductItem)
yes
List of items
{ "items": [ { "offerId": "FLOW-0001", "productId": 123, "isActive": true, "type": 1, "categoryId": 1002001, "subCategoryId": 100200101, "name": "Букет роз «Классика»", "description": "Классический букет из 21 красной розы", "url": "https://flowwow.com/product/buket-roz-klassika", "available": 99999, "stock": 100, "minOrder": 1, "price": "1990.00", "discount": "10", "currencyCode": "RUB", "images": [ "https://cdn.example.com/images/flow-0001-1.png" ], "productionTime": 60, "shipmentTime": 120, "canRent": 0, "originalId": 0, "isDeliveryPost": false, "isStarred": true, "vat": "20" } ], "total": 150 }
items[].offerId
string or null (OfferId) ≤ 50 characters
yes
Item ID in the seller’s system
items[].productId
integer or null <int32> ≥ 1
yes
Item ID in the Flowwow system
items[].isActive
boolean
yes
Indicates whether the item is active. Default: true
items[].type
integer <int32> ≥ 0
yes
Item type. Allowed values: 1–3. 1 – regular item 2 – ready-made item (no assembly required) 3 – add-on item (can be bundled with another item)
items[].categoryId
integer <int64> (CategoryId)
yes
Category ID
items[].subCategoryId
integer <int64> (SubCategoryId)
no
Subcategory ID
items[].name
string ≤ 500 characters
yes
Item name
items[].description
string or null ≤ 20000 characters
yes
Detailed item description
items[].url
string ≤ 20000 characters
no
Item page URL on Flowwow (customer-facing)
items[].available
integer ≥ 0
no
Item availability
items[].stock
integer ≥ 0
no
Stock quantity
items[].minOrder
integer ≥ 0
no
Minimum order quantity
items[].price
string (PriceString) ^[0-9]+(.[0-9]{1,2})?$
yes
Price before discount. Decimal separator: dot
items[].discount
string (DiscountString) ^[0-9]+$
no
Discount percentage
items[].currencyCode
string (CurrencyCode)
no
Shop currency code (ISO 4217). Allowed values: "AED" "AFN" "ALL" "AMD" "ANG" "AOA" "ARS" "AUD" "AWG" "AZN" "BAM" "BBD" "BDT" "BGN" "BHD" "BIF" "BMD" "BND" "BOB" "BRL" "BSD" "BTC" "BTN" "BWP" "BYN" "BYR" "BZD" "CAD" "CDF" "CHF" "CLF" "CLP" "CNY" "COP" "CRC" "CUC" "CUP" "CVE" "CZK" "DJF" "DKK" "DOP" "DZD" "EEK" "EGP" "ERN" "ETB" "EUR" "FJD" "FKP" "GBP" "GEL" "GGP" "GHS" "GIP" "GMD" "GNF" "GTQ" "GYD" "HKD" "HNL" "HRK" "HTG" "HUF" "IDR" "ILS" "IMP" "INR" "IQD" "IRR" "ISK" "JEP" "JMD" "JOD" "JPY" "KES" "KGS" "KHR" "KMF" "KPW" "KRW" "KWD" "KYD" "KZT" "LAK" "LBP" "LKR" "LRD" "LSL" "LTL" "LVL" "LYD" "MAD" "MDL" "MGA" "MKD" "MMK" "MNT" "MOP" "MRO" "MTL" "MUR" "MVR" "MWK" "MXN" "MYR" "MZN" "NAD" "NGN" "NIO" "NOK" "NPR" "NZD" "OMR" "PAB" "PEN" "PGK" "PHP" "PKR" "PLN" "PYG" "QAR" "RON" "RSD" "RUB" "RWF" "SAR" "SBD" "SCR" "SDG" "SEK" "SGD" "SHP" "SLL" "SOS" "SRD" "STD" "SVC" "SYP" "SZL" "THB" "TJS" "TMT" "TND" "TOP" "TRY" "TTD" "TWD" "TZS" "UAH" "UGX" "USD" "UYU" "UZS" "VEF" "VND" "VUV" "WST" "XAF" "XAG" "XAU" "XCD" "XDR" "XOF" "XPD" "XPF" "XPT" "YER" "ZAR" "ZMK" "ZMW" "ZWL"
items[].images
array of strings <uri> [ items <uri > ]
no
Image URLs
items[].productionTime
integer ≥ 0
no
Production time in minutes
items[].shipmentTime
integer ≥ 0
no
Delivery time in minutes
items[].canRent
integer <int32> ≥ 0
no
Rental status. Allowed values: 0–2. 0 – rental disabled by owner (default) 1 – rental enabled by owner 2 – rental disabled by Flowwow
items[].originalId
integer <int32> ≥ 0
no
Original item ID. If ≠ 0, the item is rented
items[].isDeliveryPost
boolean
no
Delivered by post. Default: false
items[].isStarred
boolean
no
Indicates whether the item is starred. Default: false
items[].vat
string
no
VAT percentage rate. Default: 0
total
integer
no
Total number of items (without pagination)
400 Bad Request
message
string
yes
General error description
{ "message": "Query param 'say' is empty", "fields": [ { "path": "say", "messages": [ "Query param 'say' is empty" ] } ] }
fields
array of objects (fields)
no
List of additional field validation errors
fields[].path
string
yes
Field where the error occurred
fields[].messages
array of string
yes
List of field error messages
trace
object / null
no
Error trace (not available in LIVE environment)
401 Unauthorized
message
string
yes
General error description
{ "message": "Missing or invalid token" }
fields
array of objects (fields)
no
List of additional field validation errors
fields[].path
string
yes
Field where the error occurred
fields[].messages
array of strings
yes
List of field error messages
trace
object / null
no
Error trace (not available in LIVE environment)
403 Forbidden
message
string
yes
General error description
{ "message": "Access denied", "fields": [] }
fields
array of objects (fields)
no
List of additional field validation errors
fields[].path
string
yes
Field where the error occurred
fields[].messages
array of strings
yes
List of field error messages
trace
object / null
no
Error trace (not available in LIVE environment)
404 Not Found
message
string
yes
General error description
{ "message": "Resource not found", "fields": [] }
fields
array of objects (fields)
no
List of additional field validation errors
fields[].path
string
yes
Field where the error occurred
fields[].messages
array of strings
yes
List of field error messages
trace
object / null
no
Error trace (not available in LIVE environment)
429 Too Many Requests
Retry-After (header)
integer ≥ 0
no
Number of seconds before retrying the request
{ "message": "Too Many Requests", "fields": [] }
message
string
yes
General error description
fields
array of objects (fields)
no
List of additional field validation errors
fields[].path
string
yes
Field where the error occurred
fields[].messages
array of strings
yes
List of field error messages
trace
object / null
yes
Error trace (not available in LIVE environment)
500 Internal Server Error
message
string
yes
General error description
{ "message": "Internal server error" }
fields
array of objects (fields)
no
List of additional field validation errors
fields[].path
string
yes
Field where the error occurred
fields[].messages
array of strings
yes
List of field error messages
trace
object / null
no
Error trace (not available in LIVE environment)
Link items from the seller’s shop
Imports items from the seller’s shop into the Flowwow marketplace by linking them to existing items using their identifiers.
If an item with the specified
productIddoes not exist for the shop in the Flowwow system, an error will be returned for that item.If duplicate
offerIdorproductId, pairs are included in the same request, all such pairs are considered invalid and will not be processed. Partial processing is not performed for conflicting pairs — each pair will be returned in theerrorsarray.If ID pairs that have already been linked are submitted again, those pairs will not be processed.
Request
API request method: POST /apiseller/products/offersMappings.
The request structure is shown below. Format: application/json:
Field
Type
Required
Description
Example
offers
array of objects [0 .. 1000]
yes
Shop item to Flowwow item link
{ "offers": [ { "offerId": "FLOW-0001", "productId": 83418243 } ] }
offers[].offerId
string or null (OfferId) ≤ 50 characters
yes
Item ID in the seller system
offers[].productId
integer or null <int32> (ProductId) ≥ 1
yes
Item ID in the Flowwow system
Responses
Server response types: 200 OK, 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found, 429 Too Many Requests, 500 Internal Server Error.
Format: application/json.
Status
Field
Type
Required
Description
Example response
200 OK
shopId
integer
yes
ID of the requested shop. Processing of offerId and productId pairs is performed only within this shop
{ "shopId": 0, "summary": { "total": 13, "success": 8, "failed": 5, "created": 4, "updated": 0, "relinked": 2, "unchanged": 2 }, "data": [ { "offerId": "FLOW-0001", "productId": 83418243, "isActive": true, "type": 1, "categoryId": 54, "subCategoryId": 112, "name": "Букет из роз", "description": "Красивый букет из свежих роз.", "url": "https://flowwow.com/product/12345", "available": 1, "stock": 10, "minOrder": 1, "price": "1990.00", "discount": "20", "currencyCode": "RUB", "images": [ "http://example.com " ], "productionTime": 0, "shipmentTime": 0, "canRent": 1, "originalId": 7123456, "isDeliveryPost": true, "isStarred": true, "vat": "10" } ], "errors": [ { "offerId": "FLOW-0001", "productId": 83418243, "message": "У данной пары есть дубль с другим productId или offerId в запросе" } ] }
summary
object
yes
Summary statistics of processed records
summary[].total
integer
yes
Total number of processed records (success + failed)
summary[].success
integer
yes
Number of successfully processed records (created + updated + relinked + unchanged)
summary[].failed
integer
yes
Number of records that failed processing
summary[].created
integer
yes
Number of newly created links
summary[].updated
integer
yes
Number of updated records without changing the link pair
summary[].relinked
integer
yes
Number of updated link pairs
summary[].unchanged
integer
yes
Number of unchanged records and links
data
array of objects (ProductItem)
yes
Set of items with shortened information
data[].offerId
string or null (OfferId) ≤ 50 characters
yes
Item ID in the seller system
data[].productId
integer or null ≥ 1
yes
Item ID in the Flowwow system
data[].isActive
boolean
yes
Whether the item is active. Default: true
data[].type
integer ≥ 0
yes
Item type. Allowed values: 1–3. 1 – regular item, 2 – ready-made item (no assembly required), 3 – add-on item that can be bundled with another item
data[].categoryId
integer <int64> (CategoryId)
yes
Category ID
data[].subCategoryId
integer <int64> (SubCategoryId)
no
Subcategory ID
data[].name
string ≤ 500 characters
yes
Item name
data[].description
string or null ≤ 20000 characters
yes
Detailed item description
data[].url
string ≤ 20000 characters
no
Customer-facing item URL on Flowwow
data[].available
integer ≥ 0
no
Item availability
data[].stock
integer ≥ 0
no
Stock quantity
data[].minOrder
integer ≥ 0
no
Minimum order quantity
data[].price
string (PriceString) ^[0-9]+(\.[0-9]{1,2})?$
yes
Price before discount. Decimal separator: dot
data[].discount
string (DiscountString) ^[0-9]+$
no
Discount percentage (integer)
data[].currencyCode
string (CurrencyCode)
no
Shop currency code (ISO 4217). Allowed values: "AED" "AFN" "ALL" "AMD" "ANG" "AOA" "ARS" "AUD" "AWG" "AZN" "BAM" "BBD" "BDT" "BGN" "BHD" "BIF" "BMD" "BND" "BOB" "BRL" "BSD" "BTC" "BTN" "BWP" "BYN" "BYR" "BZD" "CAD" "CDF" "CHF" "CLF" "CLP" "CNY" "COP" "CRC" "CUC" "CUP" "CVE" "CZK" "DJF" "DKK" "DOP" "DZD" "EEK" "EGP" "ERN" "ETB" "EUR" "FJD" "FKP" "GBP" "GEL" "GGP" "GHS" "GIP" "GMD" "GNF" "GTQ" "GYD" "HKD" "HNL" "HRK" "HTG" "HUF" "IDR" "ILS" "IMP" "INR" "IQD" "IRR" "ISK" "JEP" "JMD" "JOD" "JPY" "KES" "KGS" "KHR" "KMF" "KPW" "KRW" "KWD" "KYD" "KZT" "LAK" "LBP" "LKR" "LRD" "LSL" "LTL" "LVL" "LYD" "MAD" "MDL" "MGA" "MKD" "MMK" "MNT" "MOP" "MRO" "MTL" "MUR" "MVR" "MWK" "MXN" "MYR" "MZN" "NAD" "NGN" "NIO" "NOK" "NPR" "NZD" "OMR" "PAB" "PEN" "PGK" "PHP" "PKR" "PLN" "PYG" "QAR" "RON" "RSD" "RUB" "RWF" "SAR" "SBD" "SCR" "SDG" "SEK" "SGD" "SHP" "SLL" "SOS" "SRD" "STD" "SVC" "SYP" "SZL" "THB" "TJS" "TMT" "TND" "TOP" "TRY" "TTD" "TWD" "TZS" "UAH" "UGX" "USD" "UYU" "UZS" "VEF" "VND" "VUV" "WST" "XAF" "XAG" "XAU" "XCD" "XDR" "XOF" "XPD" "XPF" "XPT" "YER" "ZAR" "ZMK" "ZMW" "ZWL"
data[].images
Array of strings <uri> [ items <uri > ]
no
Image URLs
data[].productionTime
integer ≥ 0
no
Production time in minutes
data[].shipmentTime
integer ≥ 0
no
Delivery time in minutes
data[].canRent
integer ≥ 0
no
Rental status. Allowed values: 0–2. 0 – rental disabled by owner (default), 1 – rental enabled by owner, 2 – rental disabled by Flowwow
data[].originalId
integer ≥ 0
no
Original item ID. If not 0, the item is rented
data[].isDeliveryPost
boolean
no
Delivered by post. Default: false
data[].isStarred
boolean
no
Starred item. Promoted more actively
data[].vat
string
no
VAT rate percentage. Default: "0"
errors
array of objects
no
Set of items with shortened information
400 Bad Request
message
string
yes
General error description
{ "message": "Query param 'say' is empty", "fields": [ { "path": "say", "messages": [ "Query param 'say' is empty" ] } ] }
fields
array of objects (fields)
no
List of additional field validation errors
fields[].path
string
yes
Field where the error occurred
fields[].messages
array of string
yes
List of field error messages
trace
object / null
no
Error trace (not available in LIVE environment)
401 Unauthorized
message
string
yes
General error description
{ "message": "Missing or invalid token" }
fields
array of objects (fields)
no
List of additional field validation errors
fields[].path
string
yes
Field where the error occurred
fields[].messages
array of strings
yes
List of field error messages
trace
object / null
no
Error trace (not available in LIVE environment)
403 Forbidden
message
string
yes
General error description
{ "message": "Access denied", "fields": [] }
fields
array of objects (fields)
no
List of additional field validation errors
fields[].path
string
yes
Field where the error occurred
fields[].messages
array of strings
yes
List of field error messages
trace
object / null
no
Error trace (not available in LIVE environment)
404 Not Found
message
string
yes
General error description
{ "message": "Resource not found","fields": [ ] }
fields
array of objects (fields)
no
List of additional field validation errors
fields[].path
string
yes
Field where the error occurred
fields[].messages
array of strings
yes
List of field error messages
trace
object / null
no
Error trace (not available in LIVE environment)
429 Too Many Requests
Retry-After (header)
integer ≥ 0
no
Number of seconds before retrying the request
{ "message": "Too Many Requests", "fields": [] }
message
string
yes
General error description
fields
array of objects (fields)
no
List of additional field validation errors
fields[].path
string
yes
Field where the error occurred
fields[].messages
array of strings
yes
List of field error messages
trace
object / null
no
Error trace (not available in LIVE environment)
500 Internal Server Error
message
string
yes
General error description
{ "message": "Internal server error" }
fields
array of objects (fields)
no
List of additional field validation errors
fields[].path
string
yes
Field where the error occurred
fields[].messages
array of strings
yes
List of field error messages
trace
object / null
no
Error trace (not available in LIVE environment)
Stocks
Item stock levels in shop warehouses.
To use the API, you must authenticate with a bearer token that allows the server to identify the seller.
HTTP:
bearerToken.Authorization scheme:
bearer.Token format:
JWT.
The item list depends on the value of the shopId query parameter. The shopId is also available in the Flowwow seller dashboard.
Parameter
Type
Required
Description
shopId
integer <int32> [1 .. 4294967295]
yes
Warehouse or shop ID
Exapmle: shopId=123456
View item stock levels
Returns stock information for items in the seller’s shop from the Flowwow marketplace.
Request
API request method: POST /apiseller/stocks/get.
The request structure is shown below. Format: application/json:
Field
Type
Required
Description
Example
offers
array of objects [1 .. 1000]
yes
Information about items in warehouses
{ "offers": [ { "offerId": "FLOW-0001" } ] }
offers[].offerId
string or null (OfferId) ≤ 50 characters
yes
Item ID in the seller system
Responses
Server response types: 200 OK, 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found, 429 Too Many Requests, 500 Internal Server Error.
Format: application/json.
Status
Field
Type
Required
Description
Example response
200 OK
shopId
integer <int32> (schemas-ShopId) ≥ 1
yes
Shop ID
{ "shopId": 260, "data": [ { "offerId": "FLOW-0001", "productId": 83418243, "stock": 13 } ], "errors": [ null ] }
data
array of objects [ 0 .. 1000 ] items
yes
List of items with stock information
data[].offerId
string or null (OfferId) ≤ 50 characters
no
Item ID in the seller system
data[].productId
integer or null <int32> (ProductId) ≥ 1
no
Item ID in the Flowwow system
data[].stock
integer <int32> (StockCount) ≥ 0
yes
Available stock quantity, excluding reserved items
errors
array
yes
List of errors
400 Bad Request
message
string
yes
General error description
{ "message": "Query param 'say' is empty", "fields": [ { "path": "say", "messages": [ "Query param 'say' is empty" ] } ] }
fields
array of objects (fields)
no
List of additional field validation errors
fields[].path
string
yes
Field where the error occurred
fields[].messages
array of string
yes
List of field error messages
trace
object / null
no
Error trace (not available in LIVE environment)
401 Unauthorized
message
string
yes
General error description
{ "message": "Missing or invalid token" }
fields
array of objects (fields)
no
List of additional field validation errors
fields[].path
string
yes
Field where the error occurred
fields[].messages
array of strings
yes
List of field error messages
403 Forbidden
trace
object / null
no
Error trace (not available in LIVE environment)
{ "message": "Access denied", "fields": [] }
message
string
yes
General error description
fields
array of objects (fields)
no
List of additional field validation errors
fields[].path
string
yes
Field where the error occurred
fields[].messages
array of strings
yes
List of field error messages
trace
object / null
no
Error trace (not available in LIVE environment)
404 Not Found
message
string
yes
General error description
{ "message": "Resource not found", "fields": [] }
fields
array of objects (fields)
no
List of additional field validation errors
fields[].path
string
yes
Field where the error occurred
fields[].messages
array of strings
yes
List of field error messages
trace
object / null
no
Error trace (not available in LIVE environment)
429 Too Many Requests
Retry-After (header)
integer ≥ 0
no
Number of seconds before retrying the request
{ "message": "Too Many Requests", "fields": [] }
message
string
yes
General error description
fields
array of objects (fields)
no
List of additional field validation errors
fields[].path
string
yes
Field where the error occurred
fields[].messages
array of strings
yes
List of field error messages
trace
object / null
no
Error trace (not available in LIVE environment)
500 Internal Server Error
message
string
yes
General error description
{ "message": "Internal server error" }
fields
array of objects (fields)
no
List of additional field validation errors
fields[].path
string
yes
Field where the error occurred
fields[].messages
array of strings
yes
List of field error messages
trace
object / null
no
Error trace (not available in LIVE environment)
Update item stock levels
Updates stock information for items in the seller’s shop in the Flowwow marketplace.
Request
API request method: PUT /apiseller/stocks/put.
The request structure is shown below. Format: application/json
Field
Type
Required
Description
Example
offers
array of objects [0 .. 1000]
yes
Item stock data
{ "offers": [ { "offerId": "FLOW-0001", "stock": 13 } ] }
offers[].offerId
string or null (OfferId) ≤ 50 characters
yes
Item ID in the seller system
offers[].stock
integer <int32> (StockCount) ≥ 0
yes
Available stock quantity, excluding reserved items
Responses
Server response types: 200 OK, 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found, 429 Too Many Requests, 500 Internal Server Error.
Format: application/json.
Status
Field
Type
Required
Description
Example response
200 OK
shopId
integer <int32> (ShopId) ≥ 1
yes
Shop ID
{ "shopId": 260, "data": [ { "offerId": "FLOW-0001", "productId": 83418243, "stock": 13, "updated": true } ], "errors": [ { "offerId": "FLOW-0001", "productId": 83418243, "stock": 13, "message": "string" } ] }
data
array of objects [1 .. 1000]
yes
List of processed item stock records
data[].offerId
string or null (OfferId) ≤ 50 characters
no
Item ID in the seller system
data[].productId
integer or null <int32> (ProductId) ≥ 1
no
Item ID in the Flowwow system
data[].stock
integer <int32> (StockCount) ≥ 0
yes
Available stock quantity, excluding reserved items
data[].updated
boolean
yes
Indicates whether the item stock was updated
errors
array of objects [0 .. 1000]
no
List of errors
errors[].offerId
string or null (OfferId) ≤ 50 characters
no
Item ID in the seller system
errors[].productId
integer or null <int32> (ProductId) ≥ 1
no
Item ID in the Flowwow system
errors[].stock
integer <int32> (StockCount) ≥ 0
no
Submitted stock quantity
errors[].message
string
yes
Error description
400 Bad Request
message
string
yes
General error description
{ "message": "Query param 'say' is empty", "fields": [ { "path": "say", "messages": [ "Query param 'say' is empty" ] } ] }
fields
array of objects (fields)
no
List of additional field validation errors
fields[].path
string
yes
Field where the error occurred
fields[].messages
array of string
yes
List of field error messages
trace
object / null
no
Error trace (not available in LIVE environment)
401 Unauthorized
message
string
yes
General error description
{ "message": "Missing or invalid token" }
fields
array of objects (fields)
no
List of additional field validation errors
fields[].path
string
yes
Field where the error occurred
fields[].messages
array of strings
yes
List of field error messages
trace
object / null
no
Error trace (not available in LIVE environment)
403 Forbidden
message
string
yes
General error description
{ "message": "Access denied", "fields": [] }
fields
array of objects (fields)
no
List of additional field validation errors
fields[].path
string
yes
Field where the error occurred
fields[].messages
array of strings
yes
List of field error messages
trace
object / null
no
Error trace (not available in LIVE environment)
404 Not Found
message
string
yes
General error description
{ "message": "Resource not found", "fields": [] }
fields
array of objects (fields)
no
List of additional field validation errors
fields[].path
string
yes
Field where the error occurred
fields[].messages
array of strings
yes
List of field error messages
trace
object / null
no
Error trace (not available in LIVE environment)
Retry-After (header)
integer ≥ 0
no
Number of seconds before retrying the request
429 Too Many Requests
message
string
yes
General error description
{ "message": "Too Many Requests", "fields": [] }
fields
array of objects (fields)
no
List of additional field validation errors
fields[].path
string
yes
Field where the error occurred
fields[].messages
array of strings
yes
List of field error messages
trace
object / null
no
Error trace (not available in LIVE environment)
500 Internal Server Error
message
string
yes
General error description
{ "message": "Internal server error" }
fields
array of objects (fields)
no
List of additional field validation errors
fields[].path
string
yes
Field where the error occurred
fields[].messages
array of strings
yes
List of field error messages
trace
object / null
no
Error trace (not available in LIVE environment)
Last updated

