Browse Products
curl --request GET \
--url https://api.{tenant}.getomneo.com/api/v3/productsimport requests
url = "https://api.{tenant}.getomneo.com/api/v3/products"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.{tenant}.getomneo.com/api/v3/products', 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://api.{tenant}.getomneo.com/api/v3/products",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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://api.{tenant}.getomneo.com/api/v3/products"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.{tenant}.getomneo.com/api/v3/products")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.{tenant}.getomneo.com/api/v3/products")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"data": [
{
"id": 123,
"title": "<string>",
"handle": "<string>",
"type": "<string>",
"external_id": "<string>",
"status": "<string>",
"brand": "<string>",
"department": "<string>",
"link_brand": "<string>",
"link_department": "<string>",
"web_url": "<string>",
"description": "<string>",
"currency": "<string>",
"position": 123,
"images": "<string>",
"systems": [
"<string>"
],
"channels": [
"<string>"
],
"tags": [
"<string>"
],
"options": "<string>",
"custom_fields": [
{
"name": "<string>",
"handle": "<string>",
"namespace": "<string>",
"value": "<string>",
"type": "<string>",
"custom_fieldable_type": "<string>",
"custom_fieldable": {
"id": "<string>",
"external_id": "<string>",
"profile_id": "<string>",
"meta": "<string>",
"total": "<string>",
"total_original": "<string>",
"rounding": "<string>",
"margin": "<string>",
"is_void": "<string>",
"transacted_at": "<string>",
"timezone": "<string>",
"payments": "<string>",
"receipt_is_email": "<string>",
"receipt_ref": "<string>",
"linked_receipt_ref": "<string>",
"claimed_at": "<string>",
"receipt_email": "<string>",
"currency_id": "<string>",
"currency_rate": "<string>",
"currency": "<string>",
"type": "<string>",
"status": "<string>",
"order_number": "<string>",
"order_id": "<string>",
"external_order_id": "<string>",
"created_at": "<string>",
"updated_at": "<string>"
},
"created_at": "<string>",
"updated_at": "<string>",
"is_index": 123
}
],
"variants": [
{
"id": 123,
"product_id": 123,
"sku": "<string>",
"external_id": "<string>",
"barcode": "<string>",
"web_url": "<string>",
"handle": "<string>",
"title": "<string>",
"description": "<string>",
"position": 123,
"price": 123,
"price_discounted": 123,
"price_comparison": 123,
"price_cost": 123,
"available_quantity": 123,
"images": "<string>",
"meta": [
"<unknown>"
],
"tags": [
"<string>"
],
"options": [
{
"name": "<string>",
"value": "<string>",
"sort_order": 123
}
],
"created_at": "<string>",
"updated_at": "<string>",
"deleted_at": "<string>"
}
],
"organisation": {
"id": 123,
"name": "<string>",
"handle": "<string>",
"description": "<string>",
"short_description": "<string>",
"icon": "<string>",
"image_url": "<string>",
"notes": "<string>",
"type": "<string>",
"status": "<string>",
"is_tenant": 123,
"is_active": 123,
"phone": "<string>",
"email": "<string>",
"secondary_phone": "<string>",
"domain": "<string>",
"authorised_domains": [
"<unknown>"
],
"meta": [
"<unknown>"
],
"locations": [
{
"id": 123,
"type": "<string>",
"name": "<string>",
"handle": "<string>",
"description": "<string>",
"phone": "<string>",
"email": "<string>",
"timezone": "<string>",
"external_id": "<string>",
"external_code": "<string>",
"is_published": true,
"is_permanently_closed": true,
"address": {
"id": 123,
"address_line_1": "<string>",
"address_line_2": "<string>",
"address_line_3": "<string>",
"company": "<string>",
"latitude": 123,
"longitude": 123,
"city": "<string>",
"postcode": "<string>",
"state": "<string>",
"country": "<string>",
"notes": "<string>",
"external_id": "<string>",
"is_default": true,
"created_at": "<string>",
"updated_at": "<string>",
"meta": [
"<unknown>"
],
"name": "<string>",
"type": "<string>",
"phone": "<string>",
"iso": "<string>",
"iso_state": "<string>",
"profile_id": "<string>",
"custom_fields": {}
},
"normal_hours": [
[
"<unknown>"
]
],
"special_hours": [
[
"<unknown>"
]
],
"tags": [
"<string>"
],
"custom_fields": {},
"icon": "<string>",
"country_iso_3": "<string>",
"image_url": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"departments": [
{
"id": 123,
"name": "<string>",
"handle": "<string>",
"external_id": "<string>",
"external_code": "<string>",
"description": "<string>",
"short_description": "<string>",
"url": "<string>",
"image_url": "<string>",
"internal_note": "<string>",
"meta": [
"<unknown>"
],
"brand_id": 123,
"location_id": 123,
"brand": {
"name": "<string>",
"handle": "<string>"
},
"created_at": "<string>",
"updated_at": "<string>"
}
]
}
],
"address": {
"id": 123,
"address_line_1": "<string>",
"address_line_2": "<string>",
"address_line_3": "<string>",
"company": "<string>",
"latitude": 123,
"longitude": 123,
"city": "<string>",
"postcode": "<string>",
"state": "<string>",
"country": "<string>",
"notes": "<string>",
"external_id": "<string>",
"is_default": true,
"created_at": "<string>",
"updated_at": "<string>",
"meta": [
"<unknown>"
],
"name": "<string>",
"type": "<string>",
"phone": "<string>",
"iso": "<string>",
"iso_state": "<string>",
"profile_id": "<string>",
"custom_fields": {}
},
"custom_fields": {},
"created_at": "<string>",
"updated_at": "<string>"
},
"meta": [
"<unknown>"
],
"created_at": "<string>",
"updated_at": "<string>"
}
]
}{
"message": "<string>"
}{
"message": "<string>"
}Product
Browse Products
A GET to the /products endpoint allows your application to retrieve all a tenants Product records.
GET
/
v3
/
products
Browse Products
curl --request GET \
--url https://api.{tenant}.getomneo.com/api/v3/productsimport requests
url = "https://api.{tenant}.getomneo.com/api/v3/products"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.{tenant}.getomneo.com/api/v3/products', 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://api.{tenant}.getomneo.com/api/v3/products",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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://api.{tenant}.getomneo.com/api/v3/products"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.{tenant}.getomneo.com/api/v3/products")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.{tenant}.getomneo.com/api/v3/products")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"data": [
{
"id": 123,
"title": "<string>",
"handle": "<string>",
"type": "<string>",
"external_id": "<string>",
"status": "<string>",
"brand": "<string>",
"department": "<string>",
"link_brand": "<string>",
"link_department": "<string>",
"web_url": "<string>",
"description": "<string>",
"currency": "<string>",
"position": 123,
"images": "<string>",
"systems": [
"<string>"
],
"channels": [
"<string>"
],
"tags": [
"<string>"
],
"options": "<string>",
"custom_fields": [
{
"name": "<string>",
"handle": "<string>",
"namespace": "<string>",
"value": "<string>",
"type": "<string>",
"custom_fieldable_type": "<string>",
"custom_fieldable": {
"id": "<string>",
"external_id": "<string>",
"profile_id": "<string>",
"meta": "<string>",
"total": "<string>",
"total_original": "<string>",
"rounding": "<string>",
"margin": "<string>",
"is_void": "<string>",
"transacted_at": "<string>",
"timezone": "<string>",
"payments": "<string>",
"receipt_is_email": "<string>",
"receipt_ref": "<string>",
"linked_receipt_ref": "<string>",
"claimed_at": "<string>",
"receipt_email": "<string>",
"currency_id": "<string>",
"currency_rate": "<string>",
"currency": "<string>",
"type": "<string>",
"status": "<string>",
"order_number": "<string>",
"order_id": "<string>",
"external_order_id": "<string>",
"created_at": "<string>",
"updated_at": "<string>"
},
"created_at": "<string>",
"updated_at": "<string>",
"is_index": 123
}
],
"variants": [
{
"id": 123,
"product_id": 123,
"sku": "<string>",
"external_id": "<string>",
"barcode": "<string>",
"web_url": "<string>",
"handle": "<string>",
"title": "<string>",
"description": "<string>",
"position": 123,
"price": 123,
"price_discounted": 123,
"price_comparison": 123,
"price_cost": 123,
"available_quantity": 123,
"images": "<string>",
"meta": [
"<unknown>"
],
"tags": [
"<string>"
],
"options": [
{
"name": "<string>",
"value": "<string>",
"sort_order": 123
}
],
"created_at": "<string>",
"updated_at": "<string>",
"deleted_at": "<string>"
}
],
"organisation": {
"id": 123,
"name": "<string>",
"handle": "<string>",
"description": "<string>",
"short_description": "<string>",
"icon": "<string>",
"image_url": "<string>",
"notes": "<string>",
"type": "<string>",
"status": "<string>",
"is_tenant": 123,
"is_active": 123,
"phone": "<string>",
"email": "<string>",
"secondary_phone": "<string>",
"domain": "<string>",
"authorised_domains": [
"<unknown>"
],
"meta": [
"<unknown>"
],
"locations": [
{
"id": 123,
"type": "<string>",
"name": "<string>",
"handle": "<string>",
"description": "<string>",
"phone": "<string>",
"email": "<string>",
"timezone": "<string>",
"external_id": "<string>",
"external_code": "<string>",
"is_published": true,
"is_permanently_closed": true,
"address": {
"id": 123,
"address_line_1": "<string>",
"address_line_2": "<string>",
"address_line_3": "<string>",
"company": "<string>",
"latitude": 123,
"longitude": 123,
"city": "<string>",
"postcode": "<string>",
"state": "<string>",
"country": "<string>",
"notes": "<string>",
"external_id": "<string>",
"is_default": true,
"created_at": "<string>",
"updated_at": "<string>",
"meta": [
"<unknown>"
],
"name": "<string>",
"type": "<string>",
"phone": "<string>",
"iso": "<string>",
"iso_state": "<string>",
"profile_id": "<string>",
"custom_fields": {}
},
"normal_hours": [
[
"<unknown>"
]
],
"special_hours": [
[
"<unknown>"
]
],
"tags": [
"<string>"
],
"custom_fields": {},
"icon": "<string>",
"country_iso_3": "<string>",
"image_url": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"departments": [
{
"id": 123,
"name": "<string>",
"handle": "<string>",
"external_id": "<string>",
"external_code": "<string>",
"description": "<string>",
"short_description": "<string>",
"url": "<string>",
"image_url": "<string>",
"internal_note": "<string>",
"meta": [
"<unknown>"
],
"brand_id": 123,
"location_id": 123,
"brand": {
"name": "<string>",
"handle": "<string>"
},
"created_at": "<string>",
"updated_at": "<string>"
}
]
}
],
"address": {
"id": 123,
"address_line_1": "<string>",
"address_line_2": "<string>",
"address_line_3": "<string>",
"company": "<string>",
"latitude": 123,
"longitude": 123,
"city": "<string>",
"postcode": "<string>",
"state": "<string>",
"country": "<string>",
"notes": "<string>",
"external_id": "<string>",
"is_default": true,
"created_at": "<string>",
"updated_at": "<string>",
"meta": [
"<unknown>"
],
"name": "<string>",
"type": "<string>",
"phone": "<string>",
"iso": "<string>",
"iso_state": "<string>",
"profile_id": "<string>",
"custom_fields": {}
},
"custom_fields": {},
"created_at": "<string>",
"updated_at": "<string>"
},
"meta": [
"<unknown>"
],
"created_at": "<string>",
"updated_at": "<string>"
}
]
}{
"message": "<string>"
}{
"message": "<string>"
}Filtering
This endpoint accepts
filter and sort query parameters. See Filtering, sorting, and search for paging and for the shared search_with, custom_field, and json_contains filters.Examples
curl -X GET "https://api.[tenant].getomneo.com/api/v3/products?filter[external_id]={external_id}" \
-H "Authorization: Bearer ${TOKEN}"
curl -X GET "https://api.[tenant].getomneo.com/api/v3/products?filter[id][nullable]=0" \
-H "Authorization: Bearer ${TOKEN}"
curl -X GET "https://api.[tenant].getomneo.com/api/v3/products?filter[tags.handle]={handle}" \
-H "Authorization: Bearer ${TOKEN}"
Operators
| Operator | Meaning | Example |
|---|---|---|
eq | Equal to. Applied when you give no operator. | filter[external_id]={external_id} |
ne | Not equal to. | filter[external_id][ne]={external_id} |
gt | Greater than. | filter[external_id][gt]={external_id} |
gte | Greater than or equal to. | filter[external_id][gte]={external_id} |
lt | Less than. | filter[external_id][lt]={other-external_id} |
lte | Less than or equal to. | filter[external_id][lte]={other-external_id} |
in | Matches any value in a comma separated list. | filter[id][in]=123,456 |
not_in | Excludes every value in a comma separated list. | filter[id][not_in]=123,456 |
nullable | 1 returns records where the attribute is empty. Any other value returns records where it is set. | filter[id][nullable]=1 |
not_has | Excludes records that have a matching related record. Related attributes only. | filter[tags.handle][not_has]={handle} |
Filter attributes
| Attribute | Attribute | Attribute |
|---|---|---|
id | title | type |
handle | external_id | status |
brand | description | currency |
position | department |
sort key, for example ?sort=-id for descending order.
Related attributes
Dot notation filters on a related record. Usenot_has to exclude rows that have a matching related record. Related attributes are filter only, not sort keys.
| Attribute | Relationship |
|---|---|
tags.handle | tags |
Search attributes
filter[search] runs one partial match term across title, handle, external_id, brand, description, department. A record matches when any one of those attributes contains the term.
curl -X GET "https://api.[tenant].getomneo.com/api/v3/products?filter[search]={term}" \
-H "Authorization: Bearer ${TOKEN}"
Custom field filters
Product records carry custom fields, so this endpoint also acceptsfilter[custom_field][namespace:handle].
curl -X GET "https://api.[tenant].getomneo.com/api/v3/products?filter[custom_field][{namespace}:{handle}]={value}" \
-H "Authorization: Bearer ${TOKEN}"
Slow response time?the /products endpoint retrieves all configured products in your Omneo system.
Expect a longer response time if you have lots of items.
If you know the product you are after, consider using Read Product
⌘I