API reference · Products
Get a product
Returns one product with its images, variants and specs. Find it by ProductId or by ProductSourceId + Code.
https://out.stockmount.com/api/Product/GetProduct
If ProductId is above 0, the product is looked up only by that ID across all your sources and Code is ignored. Without ProductId, Code and ProductSourceId are both required. If neither is sent, 00003 is returned (ErrorMessage: ProductId); Code without a source returns 00003 (ErrorMessage: ProductSourceId). An unknown product returns 70005 (Product was not found!). Stopped products (status 3) are returned; products deleted with the retired DeleteProduct are not.
Variants and specs are loaded only when you query by ProductId. When you query by Code, Variants is an empty array and Specs is missing from the response.
Variants also contains variants made passive by UpdateProduct, and the variant status is not returned; variants come in creation order.
Some fields are not read and always come back with a fixed value: Weight, StoreId, Price2–Price5 are 0; UpdateProductByCode and SetProductQuantityFromVariants are false; UpdateProductDescription is true; in variants, CurrencyId, MinSalePrice and Price2–Price5 are 0. VariantName5, VariantName6, VariantValue5, VariantValue6 and Mpn are not returned. Fields whose value is null are omitted from the response.
Accounts without an active Product package get error 70018; if the package cannot be verified, 99999 is returned.
Request fields
| Field | Type | Description |
|---|---|---|
ApiCode
required
|
string |
Session code returned by DoLogin.
|
ProductId
|
integer | Product ID. When sent, the other lookup fields are ignored. |
Code
|
string |
Product code. Used when ProductId is not sent; matched exactly.
|
ProductSourceId
|
integer |
Required when querying by Code: the source to search.
|
Response fields (Response)
| Field | Type | Description |
|---|---|---|
ProductId
|
integer | Product ID. |
ProductSourceId
|
integer | Source of the product. |
Code
|
string | Product code. |
Code2
|
string | Secondary product code. |
Name
|
string | Product name. |
Subtitle
|
string | Subtitle. |
Description
|
string | Description (HTML, cleaned). |
Barcode
|
string | Barcode. If a second (integration-level) barcode is set for the product, that one is returned. |
Brand
|
string | Brand. |
Model
|
string | Model. |
Category
|
string | Category name. |
Price
|
number | Sale price. |
MarketPrice
|
number | Market (list) price; 0 if none. |
CurrencyId
|
integer | Currency ID. |
TaxRate
|
number | VAT rate; 0 if none. |
Quantity
|
integer | Stock quantity. |
SoldCount
|
integer | Sold count. |
Status
|
integer |
Product status.
|
Volume
|
number | Volume / desi (the second value if one is set). |
Width
|
number | Width. |
Length
|
number | Length. |
Height
|
number | Height. |
Weight
|
number | Always 0 (the stored value is not returned). |
Url
|
string | Product page URL; empty if none. |
CreationTime
|
datetime |
Creation time without a time zone suffix (e.g. 2025-11-05T10:22:31.497).
|
VariantName1
|
string |
Name of variant attribute 1 (VariantName2–VariantName4 are returned too; 5 and 6 are not).
|
DispatchPeriod
|
integer | Dispatch time in days; -1 = not set. |
SellerNote
|
string | Seller note. |
Images
|
object[] | Images, up to 12. |
Images[].
Order
|
integer | Zero-based position. |
Images[].
Url
|
string | Image URL. |
Variants
|
object[] |
Variants. Filled only when queried by ProductId; passive variants are included.
|
Variants[].
ProductVariantId
|
integer | Variant ID. |
Variants[].
Code
|
string | Variant code. |
Variants[].
Barcode
|
string | Variant barcode. |
Variants[].
Price
|
number | Variant price. |
Variants[].
Quantity
|
integer | Variant stock. |
Variants[].
ImageUrl
|
string | Variant image URL. |
Variants[].
VariantValue1
|
string | Value of variant attribute 1. |
Variants[].
VariantValue2
|
string | Value of variant attribute 2. |
Variants[].
VariantValue3
|
string | Value of variant attribute 3. |
Variants[].
VariantValue4
|
string | Value of variant attribute 4. |
Variants[].
CurrencyId
|
integer | Always 0 (not read). |
Variants[].
MinSalePrice
|
number | Always 0 (not read). |
Variants[].
Price2
|
number |
Always 0 (so are Price3, Price4, Price5).
|
Specs
|
object[] |
Specs. Returned only when queried by ProductId.
|
Specs[].
Name
|
string | Spec name. |
Specs[].
Value
|
string | Spec value. |
StoreId
|
integer | Always 0 (request-only field). |
Price2
|
number |
Always 0 (so are Price3, Price4, Price5).
|
UpdateProductByCode
|
boolean |
Always false (request-only field).
|
SetProductQuantityFromVariants
|
boolean |
Always false (request-only field).
|
UpdateProductDescription
|
boolean |
Always true (request-only field).
|
Error codes for this endpoint
| Code | When |
|---|---|
70005 |
Product not found (ErrorMessage: Product was not found!). |
70018 |
Your account has no active Product package (ErrorMessage is Turkish: Ürün entegrasyonu için aktif Ürün Paketi gereklidir.). |
99999 |
An unexpected error occurred. |
For session errors (00001, 00006) and every other code see error codes.
Related endpoints
Example request
{
"ApiCode": "API_CODE",
"ProductId": 987654
}
curl -X POST 'https://out.stockmount.com/api/Product/GetProduct' \
-H 'Content-Type: application/json' \
-d '{
"ApiCode": "API_CODE",
"ProductId": 987654
}'
using System.Net.Http;
using System.Text;
using var http = new HttpClient();
var json = """
{
"ApiCode": "API_CODE",
"ProductId": 987654
}
""";
var response = await http.PostAsync(
"https://out.stockmount.com/api/Product/GetProduct",
new StringContent(json, Encoding.UTF8, "application/json"));
var result = await response.Content.ReadAsStringAsync();
// Result == false ise ErrorCode ve ErrorMessage alanlarına bakın.
Console.WriteLine(result);
<?php
$body = <<<'JSON'
{
"ApiCode": "API_CODE",
"ProductId": 987654
}
JSON;
$ch = curl_init('https://out.stockmount.com/api/Product/GetProduct');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => $body,
CURLOPT_RETURNTRANSFER => true,
]);
$result = json_decode(curl_exec($ch), true);
curl_close($ch);
if (!$result['Result']) {
echo $result['ErrorCode'] . ' ' . $result['ErrorMessage'];
}
import requests
payload = {
"ApiCode": "API_CODE",
"ProductId": 987654
}
response = requests.post("https://out.stockmount.com/api/Product/GetProduct", json=payload, timeout=60)
result = response.json()
if not result["Result"]:
print(result["ErrorCode"], result["ErrorMessage"])
const payload = {
"ApiCode": "API_CODE",
"ProductId": 987654
};
const response = await fetch("https://out.stockmount.com/api/Product/GetProduct", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(payload),
});
const result = await response.json();
if (!result.Result) {
console.error(result.ErrorCode, result.ErrorMessage);
}
Example response
{
"Result": true,
"Response": {
"ProductId": 987654,
"ProductSourceId": 1234,
"Description": "<p>%100 pamuk, regular fit.</p>",
"Code": "TSHIRT-001",
"Code2": "",
"Barcode": "8690000000017",
"Name": "Basic Pamuklu Tişört",
"Subtitle": "",
"Price": 249.9,
"Quantity": 30,
"Brand": "Örnek Marka",
"TaxRate": 20.0,
"Model": "BSC-01",
"Category": "Tişört",
"CurrencyId": 4,
"Images": [
{
"Order": 0,
"Url": "https://cdn.example.com/tshirt-001-1.jpg"
},
{
"Order": 1,
"Url": "https://cdn.example.com/tshirt-001-2.jpg"
}
],
"MarketPrice": 299.9,
"Status": 1,
"Volume": 1.0,
"Height": 0.0,
"Length": 0.0,
"Width": 0.0,
"VariantName1": "Renk",
"VariantName2": "Beden",
"Variants": [
{
"ProductVariantId": 5550001,
"Code": "TSHIRT-001-BLK-M",
"Price": 249.9,
"Price2": 0.0,
"Price3": 0.0,
"Price4": 0.0,
"Price5": 0.0,
"Quantity": 10,
"Barcode": "8690000000024",
"CurrencyId": 0,
"ImageUrl": "",
"VariantValue1": "Siyah",
"VariantValue2": "M",
"VariantValue3": "",
"VariantValue4": "",
"MinSalePrice": 0.0
}
],
"Specs": [
{
"Name": "Materyal",
"Value": "Pamuk"
}
],
"Url": "",
"StoreId": 0,
"Weight": 0.0,
"CreationTime": "2025-11-05T10:22:31.497",
"UpdateProductByCode": false,
"SetProductQuantityFromVariants": false,
"DispatchPeriod": 2,
"Price2": 0.0,
"Price3": 0.0,
"Price4": 0.0,
"Price5": 0.0,
"UpdateProductDescription": true,
"SoldCount": 0,
"SellerNote": ""
}
}
Try it
The request goes straight from your browser to out.stockmount.com. The ApiCode is not stored by this site; it is kept only while this tab is open.
Get an ApiCode before sending requests.
Recent requests
Requests sent from this tab; click one to load its body again.