curl --request GET \
--url https://api.dev.shadowchef.co/v1/partner/brands \
--header 'Authorization: Basic <encoded-value>'const url = 'https://api.dev.shadowchef.co/v1/partner/brands';
const options = {method: 'GET', headers: {Authorization: 'Basic <encoded-value>'}};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));import requests
url = "https://api.dev.shadowchef.co/v1/partner/brands"
headers = {"Authorization": "Basic <encoded-value>"}
response = requests.get(url, headers=headers)
print(response.text)package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.dev.shadowchef.co/v1/partner/brands"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Basic <encoded-value>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.dev.shadowchef.co/v1/partner/brands",
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: Basic <encoded-value>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"request_id": "cfba749a4152b56f935e0fdc278d26f0",
"data": [
{
"brands": [
{
"id": 1100,
"business_id": 398,
"title": "TEST - Klikit Healthy Kitchen",
"logo": "/images/977d6c49b04755746ebb77056f6aee1849a9d8b1.png",
"banner": "/images/9a581399bb957a0e6df3a4c7d6bdbb288485bc5f.png"
},
{
"id": 1615,
"business_id": 398,
"title": "(DEMO) Klikit Noodle",
"logo": "/images/0579084ef087f0bbaf9e3b44323e18e879bf8ae5.png",
"banner": "/images/aec090b043c1f26d0b8e811b80db6a355b5a07fc.png"
},
{
"id": 1616,
"business_id": 398,
"title": "(DEMO) Klikit Dimsum",
"logo": "/images/e732d02894b2945019413e1afdcbb8abcc82c3cc.png",
"banner": "/images/152341fcef5557651d25d055015f6cbb5b7d2434.png"
},
{
"id": 4111,
"business_id": 398,
"title": "(DEMO) Wine Boba",
"logo": "/images/eebd97677ed5f067badb603cc3fa859e770644ac.jpg",
"banner": "/images/3251d761aeffde835a2b63736a62ca6476018423.jpg"
},
{
"id": 5297,
"business_id": 398,
"title": "(DEMO) Cimol Bojot AA",
"logo": "/images/1a0cd999ecf8d62acb4f558ff8fb747ae5fe6b61.jpeg",
"banner": "/images/414c40b6dc99e6bf72301f3a6f87168fa43dcb4a.png"
},
{
"id": 5342,
"business_id": 398,
"title": "(DEMO) Paradise Beach Club",
"logo": "/images/db3438354800e7b2386837be71bfdf6aa3aa9eb2.png",
"banner": "/images/0a7d514d0a90c37d087bfd45bd7d9446362e8f77.png"
}
],
"business": {
"id": 398,
"title": "(DEMO) klikit Indonesia",
"address": "Menara Standard Chartered",
"logo": "/images/f8c0ce34f4251f783a05bffdf509bd1a5ae0f69b.jpeg"
}
}
]
}{
"request_id": "req_4d1b7e3f-...",
"data": "<unknown>",
"error": {
"code": "auth_invalid_credential",
"message": "<string>",
"details": "<unknown>"
}
}{
"request_id": "req_4d1b7e3f-...",
"data": "<unknown>",
"error": {
"code": "auth_invalid_credential",
"message": "<string>",
"details": "<unknown>"
}
}List brands
Lists every brand that belongs to your credential’s business.
Use the returned id values as brand_id parameters on menu
and order endpoints.
Shape note. data is an outer array (not the typical
object). Each entry carries a brands[] list and a business
summary; in practice there is one entry per credential (your
business).
curl --request GET \
--url https://api.dev.shadowchef.co/v1/partner/brands \
--header 'Authorization: Basic <encoded-value>'const url = 'https://api.dev.shadowchef.co/v1/partner/brands';
const options = {method: 'GET', headers: {Authorization: 'Basic <encoded-value>'}};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));import requests
url = "https://api.dev.shadowchef.co/v1/partner/brands"
headers = {"Authorization": "Basic <encoded-value>"}
response = requests.get(url, headers=headers)
print(response.text)package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.dev.shadowchef.co/v1/partner/brands"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Basic <encoded-value>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.dev.shadowchef.co/v1/partner/brands",
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: Basic <encoded-value>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"request_id": "cfba749a4152b56f935e0fdc278d26f0",
"data": [
{
"brands": [
{
"id": 1100,
"business_id": 398,
"title": "TEST - Klikit Healthy Kitchen",
"logo": "/images/977d6c49b04755746ebb77056f6aee1849a9d8b1.png",
"banner": "/images/9a581399bb957a0e6df3a4c7d6bdbb288485bc5f.png"
},
{
"id": 1615,
"business_id": 398,
"title": "(DEMO) Klikit Noodle",
"logo": "/images/0579084ef087f0bbaf9e3b44323e18e879bf8ae5.png",
"banner": "/images/aec090b043c1f26d0b8e811b80db6a355b5a07fc.png"
},
{
"id": 1616,
"business_id": 398,
"title": "(DEMO) Klikit Dimsum",
"logo": "/images/e732d02894b2945019413e1afdcbb8abcc82c3cc.png",
"banner": "/images/152341fcef5557651d25d055015f6cbb5b7d2434.png"
},
{
"id": 4111,
"business_id": 398,
"title": "(DEMO) Wine Boba",
"logo": "/images/eebd97677ed5f067badb603cc3fa859e770644ac.jpg",
"banner": "/images/3251d761aeffde835a2b63736a62ca6476018423.jpg"
},
{
"id": 5297,
"business_id": 398,
"title": "(DEMO) Cimol Bojot AA",
"logo": "/images/1a0cd999ecf8d62acb4f558ff8fb747ae5fe6b61.jpeg",
"banner": "/images/414c40b6dc99e6bf72301f3a6f87168fa43dcb4a.png"
},
{
"id": 5342,
"business_id": 398,
"title": "(DEMO) Paradise Beach Club",
"logo": "/images/db3438354800e7b2386837be71bfdf6aa3aa9eb2.png",
"banner": "/images/0a7d514d0a90c37d087bfd45bd7d9446362e8f77.png"
}
],
"business": {
"id": 398,
"title": "(DEMO) klikit Indonesia",
"address": "Menara Standard Chartered",
"logo": "/images/f8c0ce34f4251f783a05bffdf509bd1a5ae0f69b.jpeg"
}
}
]
}{
"request_id": "req_4d1b7e3f-...",
"data": "<unknown>",
"error": {
"code": "auth_invalid_credential",
"message": "<string>",
"details": "<unknown>"
}
}{
"request_id": "req_4d1b7e3f-...",
"data": "<unknown>",
"error": {
"code": "auth_invalid_credential",
"message": "<string>",
"details": "<unknown>"
}
}Authorizations
Authorization: Basic base64(partner_key:secret_key).
Credentials are issued by a klikit operator. The plaintext
secret_key is shown once at issuance and cannot be retrieved
later — store it securely. If lost, ask your operator to rotate
the secret to receive a new one. The old secret stops working
immediately on rotation; there is no overlap window.
Response
Brand list
Canonical response wrapper. Every response — success or error —
carries the request_id so you can quote one id to klikit
support to correlate a request end-to-end.
"req_4d1b7e3f-..."
Endpoint-specific payload on success.
Show child attributes
Show child attributes
Machine-readable error code + human message. The code is stable
across releases — switch on code in your client code rather
than parsing the message text.
Common codes you will encounter as a partner:
| Code | HTTP | Meaning |
|---|---|---|
auth_missing | 401 | Authorization header absent / malformed |
auth_invalid_credential | 401 | partner_key or secret_key did not verify |
auth_revoked | 403 | Credential is revoked |
auth_forbidden | 403 | Credential not authorized for the requested scope |
request_invalid | 400 | Body / query parameters failed validation |
request_missing_idempotency_key | 400 | Write endpoint called without Idempotency-Key |
request_invalid_range | 400 | Date range > 90 days |
resource_not_found | 404 | Order / store / mapping does not exist |
resource_unmapped | 404 | Stock / availability call referenced an unknown SKU |
state_invalid_transition | 409 | Order PATCH not allowed by current state |
state_idempotency_conflict | 409 | Same Idempotency-Key reused with a different body |
rate_limit_exceeded | 429 | Per-credential rate cap hit |
downstream_unavailable | 502 | An internal klikit dependency is unreachable |
Show child attributes
Show child attributes