Retrieve a product
curl --request GET \
--url https://server.chataigne.ai/v1/locations/{location_id}/catalogs/{catalog_id}/products/{product_id} \
--header 'x-api-key: <api-key>'import requests
url = "https://server.chataigne.ai/v1/locations/{location_id}/catalogs/{catalog_id}/products/{product_id}"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://server.chataigne.ai/v1/locations/{location_id}/catalogs/{catalog_id}/products/{product_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://server.chataigne.ai/v1/locations/{location_id}/catalogs/{catalog_id}/products/{product_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://server.chataigne.ai/v1/locations/{location_id}/catalogs/{catalog_id}/products/{product_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://server.chataigne.ai/v1/locations/{location_id}/catalogs/{catalog_id}/products/{product_id}")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://server.chataigne.ai/v1/locations/{location_id}/catalogs/{catalog_id}/products/{product_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"id": "burger-classic",
"name": "Classic Burger",
"category_id": "burgers",
"price": {
"amount": 12.9,
"currency": "EUR"
},
"modifier_group_ids": [
"<string>"
],
"disabled": false,
"out_of_stock": false,
"restrictions": [],
"price_overrides": [],
"bundle_only": false,
"order": 1,
"object": "product",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"description": "<string>",
"image_url": "<string>"
}{
"error": {
"type": "invalid_request_error",
"code": "resource_missing",
"message": "<string>",
"request_id": "req_8f2c…",
"param": "<string>",
"details": {}
}
}{
"error": {
"type": "invalid_request_error",
"code": "resource_missing",
"message": "<string>",
"request_id": "req_8f2c…",
"param": "<string>",
"details": {}
}
}{
"error": {
"type": "invalid_request_error",
"code": "resource_missing",
"message": "<string>",
"request_id": "req_8f2c…",
"param": "<string>",
"details": {}
}
}{
"error": {
"type": "invalid_request_error",
"code": "resource_missing",
"message": "<string>",
"request_id": "req_8f2c…",
"param": "<string>",
"details": {}
}
}Catalog categories and products
Retrieve a product
GET
/
v1
/
locations
/
{location_id}
/
catalogs
/
{catalog_id}
/
products
/
{product_id}
Retrieve a product
curl --request GET \
--url https://server.chataigne.ai/v1/locations/{location_id}/catalogs/{catalog_id}/products/{product_id} \
--header 'x-api-key: <api-key>'import requests
url = "https://server.chataigne.ai/v1/locations/{location_id}/catalogs/{catalog_id}/products/{product_id}"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://server.chataigne.ai/v1/locations/{location_id}/catalogs/{catalog_id}/products/{product_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://server.chataigne.ai/v1/locations/{location_id}/catalogs/{catalog_id}/products/{product_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://server.chataigne.ai/v1/locations/{location_id}/catalogs/{catalog_id}/products/{product_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://server.chataigne.ai/v1/locations/{location_id}/catalogs/{catalog_id}/products/{product_id}")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://server.chataigne.ai/v1/locations/{location_id}/catalogs/{catalog_id}/products/{product_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"id": "burger-classic",
"name": "Classic Burger",
"category_id": "burgers",
"price": {
"amount": 12.9,
"currency": "EUR"
},
"modifier_group_ids": [
"<string>"
],
"disabled": false,
"out_of_stock": false,
"restrictions": [],
"price_overrides": [],
"bundle_only": false,
"order": 1,
"object": "product",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"description": "<string>",
"image_url": "<string>"
}{
"error": {
"type": "invalid_request_error",
"code": "resource_missing",
"message": "<string>",
"request_id": "req_8f2c…",
"param": "<string>",
"details": {}
}
}{
"error": {
"type": "invalid_request_error",
"code": "resource_missing",
"message": "<string>",
"request_id": "req_8f2c…",
"param": "<string>",
"details": {}
}
}{
"error": {
"type": "invalid_request_error",
"code": "resource_missing",
"message": "<string>",
"request_id": "req_8f2c…",
"param": "<string>",
"details": {}
}
}{
"error": {
"type": "invalid_request_error",
"code": "resource_missing",
"message": "<string>",
"request_id": "req_8f2c…",
"param": "<string>",
"details": {}
}
}Authorizations
Location/organization API key.
Response
The product.
A sellable product. Internal SKU details are never exposed.
Pattern:
^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$Example:
"burger-classic"
Example:
"Classic Burger"
Example:
"burgers"
Show child attributes
Show child attributes
Whether the resource is hidden and cannot be ordered.
Whether the resource is temporarily unavailable while remaining visible.
Availability windows. The resource is available when any restriction matches.
Maximum array length:
100Show child attributes
Show child attributes
Conditional prices. The matching override with the most specific conditions wins.
Maximum array length:
100Show child attributes
Show child attributes
Whether the product can only be selected inside a bundle.
Optional sort order. Omitted products are placed after explicitly ordered products in their category.
Required range:
x >= 0Available options:
product