Retirieving Product Information
Opportunity
Product data changes constantly - from pricing adjustments and stock updates to new additions and discontinued items. Having reliable, flexible access to this information is essential for maintaining compliance, keeping menus accurate, and delivering a positive shopping experience. With the right product data tools, you can pull detailed records, manage entire catalogs, or focus only on recent changes, ensuring every system, platform, and customer touchpoint stays perfectly in sync.
Flow
Retrieving information for a specific product
To get detailed information for a specific product, use the Get product by ID endpoint:
https://api.indicaonline.com/open_api/v2.3/products/id
This endpoint returns all key details (pricing, strain type, weight, descriptions, lab results, tax settings, etc.), so you can view or use the exact, up-to-date configuration of that product in your own systems or applications. It would be particularly useful for populating detailed product pages on your wewbsite or in an app, syncing accurate product information to e-commerce platforms, and ensuring compliance by displaying correct lab results, pricing, and regulatory attributes.w
Specify the required Body Parameters:
-
id: The ID of the product to retrieve data about. This may be manually verified on IndicaOnline Web directly in the link for the product:
And send the request. As a result, IndicaOnline Open API should return a 200 code response with the following response body:
{
"id": 2,
"class": "Custom",
"brand_id": 321,
"integrations": [
{
"provider": "weedmaps",
"data": {
"brand_id": "WM-001",
"brand_product_id": "WM-98765",
"name": "Blue Dream 3.5g",
"SKU": "BD-3.5G",
"UPC": "123456789012",
"photo": "https://example.com/product.jpg"
}
}
],
"category_id": 12,
"strain_type_id": 2,
"is_marijuana": true,
"measurement": "weight",
"price_groups": [
{
"office_ids": [],
"prices": {
"recreational_price": 45.0,
"medical_price": 40.0,
"recreational_special_price": 40.0,
"medical_special_price": 35.0
}
}
],
"net_weight": 3.5,
"net_weight_unit_of_measure": 1,
"is_tax_exempt": false,
"ingredients": "Cannabis flower",
"description": "Premium Sativa strain with uplifting effects.",
"directions_for_use": "Smoke or vaporize as desired.",
"is_hidden": false,
"lab_results": [
{
"lab_result_id": 1001,
"unit_of_measure": 1,
"value_min": 18.5,
"value_max": 18.5
}
],
"is_published_on_weedmaps": true
}This response contains the following information:
- Core product identifiers (
id,SKU,UPC,brand_id,category_id) - Product attributes (
strain type,marijuana type,measurement,net weight,description,ingredients) - Pricing details including recreational and medical prices and special prices
- Integration data with external providers such as Weedmaps
- Compliance and tax settings (
excise tax,package control,free shipping,tax exemption) - Lab results with measurement units and value ranges
- Status information (
deleted,hidden,published). For deleted products it also includes date and time of deletion.
In case of requesting an invalid product ID, the API will return 400 error.
In case the product was not able to be found, the API will return 404 error
Retrieve Data about Multiple Products (Product List)
To retrieve information about multiple or all the products in your Product List, use the Get products endpoint:
https://api.indicaonline.com/open_api/v2.3/products
This endpoint returs returns the same set of details provided by the Get product by ID endpoint (identifiers, pricing, strain type, lab results, tax settings, etc.) but for multiple products in your account, making it ideal for syncing entire menus or managing large product datasets. You may find this one particularly useful for building or updating an entire product menu, syncing product data to e-commerce platforms, filtering items by status or platform publication, and performing bulk inventory checks.
There are no required body parameters, however, you may the following optional parameters:
limit: Maximum number of records to return. Must be less or equal to 500.offest: Maximum number of records to skip.brand_id: Specify to return only products from that specified brand.is_published_on_weedmaps: Specify to filer the output by Weedmaps publishing status, where 0 = unpublished and 1 = published.is_hidden: Filter by visibility, where 0 = unhidden and 1 = hidden.is_deleted: Filter by deletion status, where 0 = active and 1 = deleted.
And send the request. As a result, IndicaOnline Open API should return a 200 code response with the following response body:
{
"products": [
{
"id": 98765,
"class": "Custom",
"brand_id": 321,
"category_id": 12,
"strain_type_id": 2,
"is_marijuana": true,
"measurement": "weight",
"price_groups": [
{
"office_ids": [],
"prices": {
"recreational_price": 45.0,
"medical_price": 40.0
}
}
],
"is_tax_exempt": false,
"description": "Premium Sativa strain with uplifting effects.",
"is_hidden": false,
"is_published_on_weedmaps": true
},
{
"id": 87654,
"class": "Branded",
"brand_id": 222,
"category_id": 14,
"strain_type_id": 1,
"is_marijuana": true,
"measurement": "unit",
"price_groups": [
{
"office_ids": [],
"prices": {
"recreational_price": 25.0,
"medical_price": 20.0
}
}
],
"is_tax_exempt": true,
"description": "Relaxing Indica pre-rolls.",
"is_hidden": false,
"is_published_on_weedmaps": false
}
],
"count": 2,
"total": 154
}This response contains the same set of information as the previously described Get product by ID, but for a select set of products or the whole product list, depending on the specified optional parameters.
Retrieve information about recently updates products
To retrieve information only about the products that have changed since the specified date and time, use the Get products last updated endpoint:
https://api.indicaonline.com/open_api/v2.3/products/updated/timestamp
This endpoint returs returns the same set of details provided by the Get product by ID endpoint (identifiers, pricing, strain type, lab results, tax settings, etc.) but only for the products that had any modifications to them since the specified timestamp. This makes it ideal for incremental syncs, reducing API calls and processing time compared to reloading the entire catalog. Thus, it would be particularly useful for keeping product data in sync with external systems in near real-time, updating online menus without a full reload, and improving performance by only fetching what has changed since your last update.
Specify the required Body parameters:
timestamp: Timestamp to filter by last update. Must follow the Unix Timestamp convention.
You may also specify the following optional parameters:
limit: Maximum number of records to return. Must be less or equal to 500.offest: Maximum number of records to skip.
And send the request. As a result, IndicaOnline Open API should return a 200 code response with the following response body:
{
"products": [
{
"id": 98765,
"class": "Custom",
"brand_id": 321,
"category_id": 12,
"strain_type_id": 2,
"is_marijuana": true,
"measurement": "weight",
"price_groups": [
{
"office_ids": [],
"prices": {
"recreational_price": 45.0,
"medical_price": 40.0
}
}
],
"is_tax_exempt": false,
"description": "Premium Sativa strain with uplifting effects.",
"is_hidden": false,
"is_published_on_weedmaps": true
},
{
"id": 87654,
"class": "Branded",
"brand_id": 222,
"category_id": 14,
"strain_type_id": 1,
"is_marijuana": true,
"measurement": "unit",
"price_groups": [
{
"office_ids": [],
"prices": {
"recreational_price": 25.0,
"medical_price": 20.0
}
}
],
"is_tax_exempt": true,
"description": "Relaxing Indica pre-rolls.",
"is_hidden": false,
"is_published_on_weedmaps": false
}
],
"count": 2,
"total": 18
}The set of data returned by this response is once again similar to the previously described Get product by ID endpoint.
Updated 7 months ago
