This document outlines the procedure for making API calls to retrieve brand data from https://easycms.fi/public_api/get_brands/. Utilize various parameters to filter and customize your data retrieval.
Fetch brand data effectively using the below API call. Apply the IN or NOT_IN parameters as an array or a single integer to filter results according to your specific needs.
https://easycms.fi/public_api/get_brands/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.
cid - Filter brands by category ID. Returns only brands that have active products in the specified category. Accepts a single integer (e.g. cid=2) or an array for multiple categories (e.g. cid[]=2&cid[]=3). When multiple categories are provided, brands from ANY of the specified categories are returned (OR logic).
IN - For filtering by brand IDs (optional, array or single integer).
NOT_IN - For excluding specific brand IDs (optional, array or single integer).
search - Search keyword (optional, string). Performs a partial (LIKE) match across multiple brand columns. Supports multi-word queries separated by spaces or + — each word must match at least one column (AND logic between words). Case-insensitive.
brand_name, bNumber, bidshow_invisible: Set to 1 to include brands with visible=0 (hidden) in the response. By default, only visible brands (visible=1) are returned.
return_image_base64: Set to 1 to include the full base64-encoded image data in the image field. By default (0), the image field returns false and the image column is not fetched from the database for better performance. Use image_url instead for displaying images.
The search parameter enables broad keyword matching across all relevant columns of the brand record. This is useful for:
brand_name).bNumber) or internal ID (bid).search=Nike+Air will only return brands where one word matches "Nike" AND another matches "Air" across any searchable columns.Each word in the search query is matched independently across all searchable columns using OR within a word, and AND between words.
# Get all brands (default: first 50, visible only)
curl -X POST 'https://easycms.fi/public_api/get_brands' \
-H 'Authorization1: TOKEN' \
-d 'username=USERNAME&password=PASSWORD&account=ACCOUNT_ID'
# Get brands filtered by a single category (brands with products in category 2)
curl -X POST 'https://easycms.fi/public_api/get_brands' \
-H 'Authorization1: TOKEN' \
-d 'username=USERNAME&password=PASSWORD&account=ACCOUNT_ID&cid=2'
# Get brands filtered by multiple categories (brands with products in category 2 OR 3)
curl -X POST 'https://easycms.fi/public_api/get_brands' \
-H 'Authorization1: TOKEN' \
-d 'username=USERNAME&password=PASSWORD&account=ACCOUNT_ID&cid[]=2&cid[]=3'
# Search brands by keyword (matches brand_name, bNumber, bid)
curl -X POST 'https://easycms.fi/public_api/get_brands' \
-H 'Authorization1: TOKEN' \
-d 'username=USERNAME&password=PASSWORD&account=ACCOUNT_ID&search=Nike'
# Search brands by multiple keywords (AND logic)
curl -X POST 'https://easycms.fi/public_api/get_brands' \
-H 'Authorization1: TOKEN' \
-d 'username=USERNAME&password=PASSWORD&account=ACCOUNT_ID&search=Nike+Air'
# Get brands including hidden ones
curl -X POST 'https://easycms.fi/public_api/get_brands' \
-H 'Authorization1: TOKEN' \
-d 'username=USERNAME&password=PASSWORD&account=ACCOUNT_ID&show_invisible=1'
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://easycms.fi/public_api/get_brands",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => http_build_query(['username' => 'USERNAME', 'password' => 'PASSWORD', 'account' => 'ACCOUNT_ID', 'search' => 'Nike']),
CURLOPT_HTTPHEADER => array("Authorization1: TOKEN"),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://easycms.fi/public_api/get_brands"
headers = {"Authorization1": "TOKEN"}
payload = {'username': 'USERNAME', 'password': 'PASSWORD', 'account': 'ACCOUNT_ID', 'search': 'Nike'}
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_brands"))
.headers("Authorization1", "TOKEN")
.POST(HttpRequest.BodyPublishers.ofString("username=USERNAME&password=PASSWORD&account=ACCOUNT_ID&search=Nike"))
.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',
search: 'Nike'
}).toString();
const options = {
hostname: 'prolasku.fi',
path: '/public_api/get_brands',
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 [categoryData, setCategoryData] = useState('');
useEffect(() => {
const fetchData = async () => {
try {
const response = await fetch('https://easycms.fi/public_api/get_brands', {
method: 'POST',
headers: {'Authorization1': 'TOKEN', 'Content-Type': 'application/x-www-form-urlencoded'},
body: new URLSearchParams({username: 'USERNAME', password: 'PASSWORD', account: 'ACCOUNT_ID', search: 'Nike'}).toString()
});
const data = await response.text();
setCategoryData(data);
} catch (error) {
console.error(error);
}
};
fetchData();
}, []);
return ({categoryData});
}
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")
.add("search", "Nike")
.build()
val request = Request.Builder()
.url("https://easycms.fi/public_api/get_brands")
.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"),
new KeyValuePair("search", "Nike")
});
using (var httpClient = new HttpClient())
{
httpClient.DefaultRequestHeaders.Add("Authorization1", token);
var response = await httpClient.PostAsync("https://easycms.fi/public_api/get_brands", content);
if (response.IsSuccessStatusCode)
{
var responseData = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseData);
}
else
{
Console.WriteLine($"Error: {response.StatusCode}");
}
}
}
}
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:
- `bid`: Brand ID - This is a unique identifier for the brand.
- `visible`: Visibility Status - Indicates whether the brand is visible (1) or not (0).
- `parent_id`: Parent Brand ID - If applicable, this is the ID of the parent brand.
- `bNumber`: Brand Number - A numerical identifier for the brand.
- `brand_name`: Brand Name - This represents the name of the brand names in different languages.
- `fi`: brand name in Finnish.
- `en_gb`: brand name in English (Great Britain).
- `zh`: brand name in Chinese.
- `vi`: brand name in Vietnamese.
- `fa_ir`: brand name in Persian (Iran).
- `es`: brand name in Spanish.
To see available languages please check endpoint /get_languages.
- `image`: Image Data - By default returns `false` (the base64 data is **not fetched** for performance). Pass `return_image_base64=1` to get the full base64-encoded image data URI (e.g. `data:image/jpeg;base64,...`). Returns `false` if no image is uploaded.
- `image_name`: Image Filename - The filename of the uploaded brand image (e.g. `logo_123456-2026-04-14.jpg`). Returns `false` if no image is uploaded.
- `image_url`: Image URL - The full URL to the brand image file on the server (e.g. `https://example.com/uploads/brand/logo_123456-2026-04-14.jpg`). Returns an empty string if no image is uploaded. Use this for displaying images directly without embedding base64 data.
These key-value pairs provide comprehensive information about the brands and can be used for various purposes in your application.
{
"INFO": {
"start": 0,
"limit": 50,
"count": 3,
"total_count": "3",
"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\" "
},
"OUTPUT": {
"0": {
"bid": "1",
"visible": "1",
"parent_id": 0,
"bNumber": "1",
"brand_name": {
"en_gb": "Nike",
"fi": "Nike"
},
"image": false,
"image_name": "nike-2026-04-14-140555839.jpg",
"image_url": "https://example.com/uploads/brand/nike-2026-04-14-140555839.jpg"
},
"1": {
"bid": "2",
"visible": "1",
"parent_id": 0,
"bNumber": "2",
"brand_name": {
"en_gb": "Pepsi",
"fi": "Pepsi"
},
"image": false,
"image_name": false,
"image_url": ""
},
"2": {
"bid": "3",
"visible": "1",
"parent_id": 0,
"bNumber": "3",
"brand_name": {
"en_gb": "CocaCola",
"fi": "CocaCola"
},
"image": false,
"image_name": false,
"image_url": ""
},
"response_type": "success",
"message": "Data returned successfully"
}
}
By default, the image field returns false because the base64 image data is not fetched from the database — this significantly reduces response size and improves performance. Use image_url to display brand images instead.
Default response (return_image_base64 not set or =0):
"image": false,
"image_name": "nike-2026-04-14-140555839.jpg",
"image_url": "https://example.com/uploads/brand/nike-2026-04-14-140555839.jpg"
With base64 data (pass return_image_base64=1):
"image": "data:image/jpeg;base64,/9j/4AAQ...",
"image_name": "nike-2026-04-14-140555839.jpg",
"image_url": "https://example.com/uploads/brand/nike-2026-04-14-140555839.jpg"
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.