Inventory & Products | Products | Product Data | Get Products

Getting Product Data

This document outlines the procedure for making API calls to retrieve product data from https://easycms.fi/public_api/get_products/. Utilize various parameters to filter and customize your data retrieval.

Products Data Retrieval

Fetch product data effectively using the below API call. Apply different parameters to filter results according to your specific needs.

Location- and schedule-specific pricing: the product-level price/discount fields (price, discount, price_gross, …) never include multi-code row overrides. Alternative barcodes, per-warehouse prices, scheduled (happy-hour) pricing and the discount ladder flags (discount_lock, ignore_qty_discount, ignore_bxgx) are returned by the separate Get Products Multi endpoint and managed with Set Products Multi.

Endpoint and Method

  • Endpoint: https://easycms.fi/public_api/get_products/
  • Method: POST

Parameters | Payload

Each parameter can be used individually or in combination to refine your data retrieval:

  • TOKEN (api_key): Your unique API key for authentication. How to Create API Credentials.
  • username: Your login username.
  • password: Your login password.
  • account: Your specific account ID.
  • Pagination: To manage data effectively, this endpoint supports fetching up to 50 products at a time.
  • Parameters:
    • start - Specify the starting point of the row from which to begin fetching products.
    • limit - Control the number of products returned in a single request. The maximum limit is 50, but you can opt for a smaller number based on your needs.



Filters

To manage data effectively, this endpoint supports fetching up to 50 products at a time. Each filter parameter is optional and designed to refine your search for products.

  • pid: To filter by a single product ID. The value needs to be an integer. Filter By Product IDs Documentation.
  • cid: To filter products by category ID. The value needs to be an integer. Filter By Category IDs Documentation.
  • bid: To filter products by brand ID. The value needs to be an integer. Filter By Brand IDs Documentation.
  • IN[]: For filtering by multiple product IDs. The values need to be an array of integers (pids). Filter By Product IDs Documentation.
  • NOT_IN[]: To exclude products with specific IDs. The values need to be an array of integers (pids). Filter By Product IDs Documentation.
  • location_id: To filter by location ID. Filter By Location ID Documentation.
  • product_name: To filter by product name. Filter By Product Name Documentation.
  • barcode: To filter by barcode. Searches in product's barcode, boxcode, and multi-location barcodes. Filter By Barcode Documentation.
  • cid[]: For filtering by multiple category IDs. The values need to be an array of integers (cids). Filter By Category IDs Documentation.
  • bid[]: For filtering by multiple brand IDs. The values need to be an array of integers (bids). Filter By Brand IDs Documentation.
  • only_return_discounted_items: To filter only discounted items. The value needs to be boolean. Filter By Discounted Items Documentation.
  • min_price: To filter products by minimum price. The value needs to be a double value with 2 decimal numbers. Filter By Price Range Documentation.
  • max_price: To filter products by maximum price. The value needs to be a double value with 2 decimal numbers. Filter By Price Range Documentation.
  • supplier_id: To filter products by supplier ID. The value needs to be an integer. Note: For products with multi_code_supplier=1, this also checks the tbl_products_multi table for matching supplier IDs. Filter By Supplier Documentation.
  • supplier_id[]: For filtering by multiple supplier IDs. The values need to be an array of integers. Filter By Supplier Documentation.
  • Supplier Filter with location_id: When both supplier_id and location_id are passed, products with multi_code_supplier=1 must have BOTH the supplier_id AND location_id matching in the same row of the tbl_products_multi table.
  • discount_min: To filter products by minimum discount percentage. The value needs to be a float (e.g., 10.5 for 10.5%). Filter By Discount Range Documentation.
  • discount_max: To filter products by maximum discount percentage. The value needs to be a float (e.g., 50.0 for 50%). Filter By Discount Range Documentation.
  • products_tags_id: To filter products by tag ID. The value needs to be an integer. Uses the tbl_product_tag_relations junction table to find products associated with the given tag. Filter By Product Tags Documentation.
  • products_tags_id[]: For filtering by multiple tag IDs. The values need to be an array of integers. Returns products that have any of the specified tags. Filter By Product Tags Documentation.
  • customer_id: To apply customer-specific pricing. When provided, the response prices and discount will reflect the customer's negotiated pricing (including locked prices). The value needs to be an integer (customer ID). Filter By Customer-Specific Pricing Documentation.
  • include_costs: Set to 1 to include product cost data (costs field) in the response. Product costs include items such as customs fees, transportation, warehousing, etc. Default: not included. Filter By Product Costs Documentation.
  • include_stock: Set to 1 to include stock data (stock_data and stockcoming_data fields) in the response. Default: 0 (not included). For better performance, fetch stock data separately using Get Products Stock and Get Products Incoming Stock.
  • include_bottle_deposit: Set to 1 to include the deposit product details for products that have a bottle deposit assigned. Returns a bottle_deposit object.
  • is_bundle: Filter by bundle status. Set to 1 to return only bundle products, 0 for non-bundle products. Omit to return all products.
  • include_bundles: Set to 1 to include bundle child items (bundle_items field) in the response for products that are bundles (is_bundle=1). Each item includes the child product details (pid, name, price, barcode, etc.). Default: not included.
  • where[]: For advanced custom filtering. Pass an array of WHERE conditions. Each condition is an array [column, value] or [column, value, operator]. Supported operators: =, !=, >, <, >=, <=, IN, NOT IN, LIKE, NOT LIKE, BETWEEN, NOT BETWEEN. Default operator is =. Filter By Custom WHERE Conditions Documentation.
  • show_invisible: Set to 1 to include products with prdStatus=0 (unpublished/invisible) in the response. By default, only published products (prdStatus=1) are returned. This is useful for re-publishing products that were previously set to invisible via the set_product endpoint.

API Visibility Filtering

Products are automatically filtered based on which API section key is used for authentication. Each product has three visibility flags:

  • api_visible_b2c_wp (B2C WordPress API) — default: 1 (visible)
  • api_visible_b2b_app (B2B Mobile App API) — default: 1 (visible)
  • api_visible_inventory_app (Inventory Manager App API) — default: 1 (visible)

When authenticating with a WordPress API key, only products where api_visible_b2c_wp=1 are returned. The same applies to B2B Mobile App and Inventory Manager App keys respectively. Products with the flag set to 0 are excluded from the response. These fields are also included in each product object in the response.



Ordering Results

OrderBy Parameters

Control the order of your product results using the following parameters:

  • orderBy: Specify the column to sort by. Supported values:

    • product_name - Sort by product name (respects lang parameter)
    • price - Sort by net price
    • price_gross - Sort by gross price (including VAT)
    • price_net_after_discount - Sort by net price after discount
    • price_gross_after_discount - Sort by gross price after discount
    • discount - Sort by discount percentage
    • category - Sort by category name (respects lang parameter)
    • brand - Sort by brand name (respects lang parameter)
    • supplier - Sort by supplier name
    • pid - Sort by product ID (default)
  • orderDir: Sort direction - ASC (ascending) or DESC (descending). Default: ASC

  • lang: Language code for sorting multilingual fields (e.g., fi_FI, en_GB). Default: MAIN

OrderBy Examples

Order by Product Name (Ascending)

curl -X POST 'https://easycms.fi/public_api/get_products' \
-H 'Authorization1: TOKEN' \
-d 'username=USERNAME&password=PASSWORD&account=ACCOUNT_ID&orderBy=product_name&orderDir=ASC'

Order by Price After Discount (Descending)

curl -X POST 'https://easycms.fi/public_api/get_products' \
-H 'Authorization1: TOKEN' \
-d 'username=USERNAME&password=PASSWORD&account=ACCOUNT_ID&orderBy=price_gross_after_discount&orderDir=DESC&start=0&limit=10'

Order by Product Name in Finnish

curl -X POST 'https://easycms.fi/public_api/get_products' \
-H 'Authorization1: TOKEN' \
-d 'username=USERNAME&password=PASSWORD&account=ACCOUNT_ID&orderBy=product_name&orderDir=ASC&lang=fi_FI'

OrderBy with Filters Example in PHP

$curl = curl_init();
curl_setopt_array($curl, array(
  CURLOPT_URL => "https://easycms.fi/public_api/get_products",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_POST => true,
  CURLOPT_POSTFIELDS => http_build_query([
    'username' => 'USERNAME',
    'password' => 'PASSWORD',
    'account' => 'ACCOUNT_ID',
    'cid' => 5,                           // Filter by category
    'orderBy' => 'price_gross_after_discount',  // Sort by price after discount
    'orderDir' => 'ASC',                  // Ascending order
    'start' => 0,                         // Start from first record
    'limit' => 10                         // Get 10 products
  ]),
  CURLOPT_HTTPHEADER => array("Authorization1: TOKEN"),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;



Combining Multiple Filters

All filters can be combined in a single API call to narrow down your search results. When multiple filters are used together, they are applied with AND logic, meaning products must match all specified criteria.

Example: Combining Filters

Here's an example of combining multiple filters in a single request:

# Filter by product name AND category ID AND barcode
curl -X POST 'https://easycms.fi/public_api/get_products' \
-H 'Authorization1: TOKEN' \
-d 'username=USERNAME&password=PASSWORD&account=ACCOUNT_ID&product_name=coffee&cid=5&barcode=6410'

Common Filter Combinations

  • Search by name within a category: Use product_name + cid
  • Find products by barcode in a specific location: Use barcode + location_id
  • Filter discounted items by brand: Use only_return_discounted_items + bid
  • Price range within category: Use min_price + max_price + cid
  • Exclude specific products from category: Use cid + NOT_IN[]
  • Find products by tag within a category: Use products_tags_id + cid
  • Find products with multiple tags: Use products_tags_id[] with an array of tag IDs
  • Get products with customer-specific pricing: Use customer_id to apply customer discounts and locked prices
  • Get products with cost breakdown: Use include_costs=1 to include product cost data

Combined Filter Example in PHP

$curl = curl_init();
curl_setopt_array($curl, array(
  CURLOPT_URL => "https://easycms.fi/public_api/get_products",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_POST => true,
  CURLOPT_POSTFIELDS => http_build_query([
    'username' => 'USERNAME',
    'password' => 'PASSWORD',
    'account' => 'ACCOUNT_ID',
    'product_name' => 'coffee',    // Filter by name
    'cid' => 5,                     // Filter by category
    'min_price' => 10.00,           // Minimum price
    'max_price' => 50.00            // Maximum price
  ]),
  CURLOPT_HTTPHEADER => array("Authorization1: TOKEN"),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;



Call Examples in Different Languages


curl -X POST 'https://easycms.fi/public_api/get_products' \
-H 'Authorization1: TOKEN' \
-d 'username=USERNAME&password=PASSWORD&account=ACCOUNT_ID'

$curl = curl_init();
curl_setopt_array($curl, array(
  CURLOPT_URL => "https://easycms.fi/public_api/get_products",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_POST => true,
  CURLOPT_POSTFIELDS => http_build_query(['username' => 'USERNAME', 'password' => 'PASSWORD', 'account' => 'ACCOUNT_ID']),
  CURLOPT_HTTPHEADER => array("Authorization1: TOKEN"),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;

import requests
url = "https://easycms.fi/public_api/get_products"
headers = {"Authorization1": "TOKEN"}
payload = {'username': 'USERNAME', 'password': 'PASSWORD', 'account': 'ACCOUNT_ID'}
response = requests.post(url, headers=headers, data=payload)
print(response.text)

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://easycms.fi/public_api/get_products"))
    .headers("Authorization1", "TOKEN")
    .POST(HttpRequest.BodyPublishers.ofString("username=USERNAME&password=PASSWORD&account=ACCOUNT_ID"))
    .build();
HttpResponse response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());

const https = require('https');
const data = new URLSearchParams({ 
  username: 'USERNAME', 
  password: 'PASSWORD', 
  account: 'ACCOUNT_ID'
}).toString();
const options = {
  hostname: 'prolasku.fi',
  path: '/public_api/get_products',
  method: 'POST',
  headers: {
    'Authorization1': 'TOKEN',
    'Content-Type': 'application/x-www-form-urlencoded',
    'Content-Length': data.length
  }
};
const req = https.request(options, (res) => {
  let data = '';
  res.on('data', (chunk) => { data += chunk; });
  res.on('end', () => { console.log(data); });
});
req.on('error', (e) => { console.error(e); });
req.write(data);
req.end();

import React, { useEffect, useState } from 'react';
function App() {
  const [productData, setProductData] = useState('');
  useEffect(() => {
    const fetchData = async () => {
      try {
        const response = await fetch('https://easycms.fi/public_api/get_products', {
          method: 'POST',
          headers: {'Authorization1': 'TOKEN', 'Content-Type': 'application/x-www-form-urlencoded'},
          body: new URLSearchParams({username: 'USERNAME', password: 'PASSWORD', account: 'ACCOUNT_ID'}).toString()
        });
        const data = await response.text();
        setProductData(data);
      } catch (error) {
        console.error(error);
      }
    };
    fetchData();
  }, []);
  return (
{productData}
); } export default App;

// Kotlin example requires using a third-party library like OkHttp for POST requests with a body
// Kotlin Example using OkHttp for POST request
import okhttp3.OkHttpClient
import okhttp3.FormBody
import okhttp3.Request

fun main() {
    val client = OkHttpClient()

    val formBody = FormBody.Builder()
        .add("username", "USERNAME")
        .add("password", "PASSWORD")
        .add("account", "ACCOUNT_ID")
        .build()

    val request = Request.Builder()
        .url("https://easycms.fi/public_api/get_products")
        .post(formBody)
        .addHeader("Authorization1", "TOKEN")
        .build()

    client.newCall(request).execute().use { response ->
        if (!response.isSuccessful) throw IOException("Unexpected code $response")

        println(response.body?.string())
    }
}

using System;
using System.Net.Http;
using System.Threading.Tasks;
class Program
{
    static async Task Main()
    {
        var token = "TOKEN";
        var content = new FormUrlEncodedContent(new[]
        {
            new KeyValuePair("username", "USERNAME"),
            new KeyValuePair("password", "PASSWORD"),
            new KeyValuePair("account", "ACCOUNT_ID")
        });
        using (var httpClient = new HttpClient())
        {
            httpClient.DefaultRequestHeaders.Add("Authorization1", token);
            var response = await httpClient.PostAsync("https://easycms.fi/public_api/get_products", content);
            if (response.IsSuccessStatusCode)
            {
                var responseData = await response.Content.ReadAsStringAsync();
                Console.WriteLine(responseData);
            }
            else
            {
                Console.WriteLine($"Error: {response.StatusCode}");
            }
        }
    }
}




Handling Endpoint Results

When you make a request to the endpoint, you receive a JSON response containing various keys and values. Here's an explanation of the response keys and their meanings:


- `start`: This represents the starting index for the data. In this case, it's set to 0, indicating that the data starts from the first item.

- `limit`: The maximum number of items returned in the response. In this example, the limit is set to 50, meaning that the response will include up to 50 items.

- `count`: The number of items included in the current response. In this case, there is 1 item in the response.

- `total_count`: The total count of items available in the dataset. In this response, there is a total of 1 item available.

- `tip`: This is a helpful tip or instruction related to making requests. It suggests that you can use the table's main column identifier (e.g., city_id, pid, cid) to request specific data. It provides an example parameter, `city_id = 2`, when sending a request for 'get_cities'. This tip guides how to refine your queries.

- `WHERE`: This field specifies a condition for filtering the data. In this case, it indicates a condition where "pid" equals "11292". This condition can be used to filter and retrieve specific data based on the "pid" value.

- `min_price` and `max_price`: These fields represent the minimum and maximum price range for the products. In this response, both are set to 0 and 500000, respectively, indicating the price range within which the products fall.

    

- `pid`: Product ID - This is a unique identifier for the product.
- `barcode`: Product Barcode - This represents the product's barcode or Stock Keeping Unit (SKU).
- `product_name`: Product Name - This represents the name of the product in different languages.
  - `fi`: product name in Finnish.
  - `en_gb`: product name in English (Great Britain).
  - `sv`: product name in Swedish.
  - `th`: product name in Thai.
  - `es`: product name in Spanish.
  - `zh`: product name in Chinese.
  - `vi`: product name in Vietnamese.
  - `fa_ir`: product name in Persian (Iran).
- `product_desc`: Array of Product Descriptions - This object contains product descriptions in various languages.
- `stock_data`: Array of stock information per location.
  - `stock`: Current stock quantity.
  - `location_id`: Location identifier.
  - `shelf_id`: Shelf identifier.
  - `best_before_date`: Best before date for the stock.
  - `default_location`: Whether this is the default location (1) or not (0).
- `stockcoming_data`: Array of upcoming stock information per location.
  - `stock`: Upcoming stock quantity expected to arrive.
  - `location_id`: Location identifier.
  - `shelf_id`: Shelf identifier.
  - `coming_to_stock_date`: Expected date when the stock will arrive (YYYY-MM-DD format).
  - `best_before_date`: Best before date for the upcoming stock.
  - `reason`: Stock reason code (1 = purchase, 2 = refund, 3 = movement, etc.).
  - `price`: Sell price for the upcoming stock.
  - `price_buy`: Buy price for the upcoming stock.
  - `supplier_id`: Supplier identifier for the upcoming stock.
  - `purchase_id`: Linked purchase order ID.
  - `datenew`: Date when the upcoming stock record was created (YYYY-MM-DD HH:MM:SS).
- `price`: Net price of the product (excl. VAT).
- `price_buy`: Buy Price - The price at which the product was bought.
- `price_gross`: Gross Price - The product's gross price including VAT.
- `price_net_after_discount`: Price Net After Discount - The product's net price after applying any discounts.
- `price_gross_after_discount`: Gross Price After Discount - The product's gross price after applying any discounts.
- `crp_id`: UUID identifier for the product.
- `cid`: Category ID - This represents the category to which the product belongs.
- `bid`: Brand ID for the product.
- `min_order`: Minimum order quantity for the product.
- `btn_id`: Button ID.
- `productDelivery`: Array of product delivery information.
- `productDelivery_on_off`: Product delivery status (0 or 1).
- `discount`: Discount percentage applied to the product.
- `vat`: VAT rate ID for selling.
- `vat_buy`: VAT rate ID for buying.
- `productDetails`: Array of additional product details.
- `prdStatus`: Product status (1 or 0).
- `prdNumber`: Product number.
- `barcode_id`: Barcode type identifier.
- `onsale`: Product on sale status (0 or 1).
- `buy_x`: Buy X quantity for promotions.
- `get_x`: Get X quantity for promotions.
- `stock_type_id`: Stock type ID.
- `stock_type_measure`: Stock type measure.
- `stock_alert_qty`: Stock alert quantity threshold.
- `stock_alert_bbd`: Stock alert days before expiry date.
- `supplier_id`: Supplier ID.
- `supplier_reference`: Supplier reference.
- `width`: Width of the product.
- `height`: Height of the product.
- `length`: Length of the product.
- `weight`: Weight of the product.
- `weight_type`: Weight type (e.g., kg).
- `box_qty`: Box quantity.
- `box_code`: Box code status (true or false).
- `pallet_qty`: Pallet quantity.
- `pallet_qty_type`: Pallet quantity type (e.g., box).
- `relation_qty`: Relation quantity.
- `relation_qty_type`: Relation quantity type (e.g., unit).
- `images`: Array of product images.
- `videos`: Array of product videos.
- `stock_data`: *(Only included when `include_stock=1` is passed)* Array of current stock entries per location/shelf. Use [Get Products Stock](get_products_stock.php) for dedicated stock queries.
- `stockcoming_data`: *(Only included when `include_stock=1` is passed)* Array of incoming stock entries per location/shelf. Use [Get Products Incoming Stock](get_products_incoming_stock.php) for dedicated incoming stock queries.
- `costs`: *(Only included when `include_costs=1` is passed)* Flat object of product cost values. Keys include: `customs_fees`, `transportation_costs`, `transit_insurance`, `handling_fees`, `warehousing`, `handling_labor`, `inventory_write_offs`, `shrinkage`, `administrative_overheads`, `utilities`, `taxes_on_inventory`, `packaging_costs`, `marketing_and_promotion`, `returns_management`, `financial_costs`. Values are doubles or null.
- `bottle_deposit_pid`: The CMS product ID of the assigned bottle deposit product. `null` if no deposit is configured.
- `bottle_deposit_included`: Deposit mode flag (0 or 1). `1` = the product's `price` field ALREADY includes the deposit (an order/invoice line for this product is priced `price − deposit` with the deposit on its own line beneath it — the customer total equals `price`). `0` = the deposit is added on top of `price`.
- `bottle_deposit`: *(Only when `include_bottle_deposit=1`)* Contains the deposit product details: `pid`, `product_name`, `price`, `price_buy`, `barcode`, `prdNumber`, plus `included` (boolean mirror of `bottle_deposit_included`). `null` if no deposit is configured.
- `update_date`: Date of the last update for the product.
- `deleted`: Deletion status (0 or 1).

**Note:** Product tags are no longer included in the `get_products` response for performance reasons. To retrieve tags for a product, use the dedicated [Get Product Tags Relations](get_product_tags_relations.php) endpoint with the product's `pid`.

These key-value pairs provide comprehensive information about the product and can be used for various purposes in your application.
    

{
  "INFO": {
    "start": 0,
    "limit": 50,
    "count": 1,
    "total_count": 1,
    "tip": "You may pass the table's main column identifier ex: city_id for tbl_cities, pid for tbl_products, cid for tbl_categories etc... to make a request for a single specific id from your query. EXAMPLE PARAM: city_id = 2 when sending the request for \"get_cities\" ",
    "WHERE": "pid equals18646",
    "min_price": 0,
    "max_price": 500000
  },
  "OUTPUT": [
    {
      "price_gross": 10.5,
      "price_net_after_discount": 6.694,
      "price_gross_after_discount": 8.4,
      "pid": "18646",
      "crp_id": "1767606422-86bcf3d1-97d2-4d5f-8df5-4bc86d7ae84b",
      "cid": "17",
      "product_name": {
        "fi": "HP-02 | Sushi container (maple leaves) 50sets",
        "zh": "HP-02 | Sushi container (maple leaves) 50sets",
        "en_gb": "HP-02 | Sushi container (maple leaves) 50sets"
      },
      "product_desc": {
        "fi": "Untitled",
        "zh": "Untitled",
        "en_gb": "Untitled"
      },
      "bid": "9",
      "price": 8.367,
      "price_buy": 5.19,
      "min_order": 0,
      "btn_id": "17",
      "productDelivery": [],
      "productDelivery_on_off": 0,
      "discount": 20,
      "vat": "55",
      "vat_buy": "3",
      "productDetails": [],
      "prdStatus": "1",
      "prdNumber": "9999968459",
      "barcode": "8459",
      "barcode_id": "8",
      "onsale": 0,
      "buy_x": 0,
      "get_x": 0,
      "stock_type_id": "6",
      "stock_type_measure": 0,
      "stock_alert_qty": 0,
      "stock_alert_bbd": 0,
      "supplier_id": "1",
      "supplier_reference": "0",
      "cn_code_id": 0,
      "country_of_origin": "RW",
      "multi_code_supplier": 0,
      "width": 0,
      "height": 0,
      "length": 0,
      "weight": 0,
      "weight_type": "kg",
      "volume": 0,
      "volume_type": "ml",
      "box_qty": 8,
      "box_code": false,
      "pallet_qty": 0,
      "pallet_qty_type": "box",
      "relation_qty": 1,
      "relation_qty_type": "box",
      "images": [
        {
          "iid": "17283762056704ed8d9fb26",
          "visible": 1,
          "imgName": "17283762056704ed8d9fb26.png",
          "imgdate": 1728376205,
          "iNumber": 1,
          "iLink": "",
          "slider": 0,
          "URL": "https://testdomain.fi/big_17283762056704ed8d9fb26.png"
        }
      ],
      "videos": [],
      "update_date": "2026-02-22 23:16:43",
      "deleted": 0
    }
  ]
}
      

Note: To include stock data in the response, pass include_stock=1. This adds stock_data and stockcoming_data arrays to each product. For better performance with large catalogs, use the dedicated endpoints instead: Get Products Stock, Get Products Incoming Stock, and Get Product Tags Relations.


Error Handling

Here are the possible error messages and their meanings:

  • UN-AUTHORIZED - _user_name_password_is_set_but_wrong_value!: Incorrect username or password.
  • this_account_does_not_exist_or_your_credentials_do_not_match_this_account: The account doesn't exist or mismatched credentials.
  • UN-AUTHORIZED - header is set but the header value is not correct!: Incorrect authorization header value.
  • Maximum query size is 50 rows per query: Exceeded maximum limit of 50 rows per query.