Skip to content

API: Product V2

Catalogues

You can use the Catalogue get API for getting info about the catalogue(s) available.

Note: We have a public catalogue with alias default which is available for all clients.

GET https://api.gelato.com/v2/catalogues/{{catalogueId|catalogueAlias}}

Request

Query Parameters

Parameter Type Description
catalogueId | catalogueAlias (required) string Id or alias of the catalogue

Response Parameters

Parameter Type Description
id (required) string Id of the catalogue.
title (required) string Title of the catalogue.
alias (required) string Alias of the catalogue. Can be used instead of id for getting a catalogue.
clientId (required) string Id of an owner of the catalogue.
rootNodeId (required) string Id of the root node of the catalogue. For internal usage.
isPublic (required) bool Is the catalogue public? Public catalogues are available for all clients.
status (required) string Status of the catalogue. Can be "enabled" or "disabled"
createdAt (required) string Date and time of creating the catalogue. Represented by the ISO 8601 format YYYY-MM-DDThh:mm:ss±hh:mm
updatedAt (required) string Date and time of the last update of the catalogue. Represented by the ISO 8601 format YYYY-MM-DDThh:mm:ss±hh:mm

Response Messages

Error response example:

{
  "message": "Catalogue not found."
}
HTTP Status Code Message
200 Success catalogue response.
404 The catalogue not found.

Example

Request example:

$ curl -X GET \
    https://api.gelato.com/v2/catalogues/default \
    -H 'X-API-KEY: {{apiKey}}'

Response example:

{
    "id": "e848ac36-1350-4527-a80e-0ee0c3913bc2",
    "title": "Default catalogue",
    "alias": "default",
    "clientId": null,
    "rootNodeId": "25a47b2c-bf8b-4d14-bb03-50e95dff7138",
    "isPublic": true,
    "status": "enabled",
    "createdAt": "2019-08-27T19:58:56+00:00",
    "updatedAt": "2019-08-27T19:58:56+00:00"
}

Catalogue nodes

Use the Catalogue node GET API call for finding nodes in the catalogue.

Note: We have the public catalogue with alias default which is available for all clients.

GET https://api.gelato.com/v2/catalogues/{{catalogueId|catalogueAlias}}/nodes

Request

Query Parameters

Parameter Type Description
catalogueId | catalogueAlias (required) string Id or alias of the catalogue

Response Parameters

Response data is represented by an array of the CatalogueNode object with these params

Parameter Type Description
id (required) string Id of the catalogue node.
title (required) string Title of the catalogue node.
parentId (required) string Id of the parent catalogue node.

Response Messages

Error response example:

{
  "message": "Catalogue not found."
}
HTTP Status Code Message
200 Success catalogue response.
404 The catalogue not found.

Example

Request example:

$ curl -X GET \
    https://api.gelato.com/v2/catalogues/default/nodes \
    -H 'X-API-KEY: {{apiKey}}'

Response example:

[
    {
        "id": "929c12ca-1004-4118-adb3-60d726f69718",
        "title": "Business Cards",
        "parentId": "25a47b2c-bf8b-4d14-bb03-50e95dff7138"
    },
    {
        "id": "d36dd041-dee6-4d5b-8f2b-3a18976245d1",
        "title": "Roll ups",
        "parentId": "25a47b2c-bf8b-4d14-bb03-50e95dff7138"
    },
    {
        "id": "9cb92a98-1401-4aa7-a179-a6305ebdc45a",
        "title": "Calendars",
        "parentId": "25a47b2c-bf8b-4d14-bb03-50e95dff7138"
    },
    {
        "id": "bdaf1b21-56fe-4c69-9948-48415ed39d45",
        "title": "Folders",
        "parentId": "25a47b2c-bf8b-4d14-bb03-50e95dff7138"
    },
    {
        "id": "6d8c6cd6-5a43-4865-8176-1ed6459bd579",
        "title": "Flyers",
        "parentId": "25a47b2c-bf8b-4d14-bb03-50e95dff7138"
    },
    {
        "id": "74205fd5-988e-415c-a735-b099b5a60803",
        "title": "Letterheads",
        "parentId": "25a47b2c-bf8b-4d14-bb03-50e95dff7138"
    },
    {
        "id": "abe0b2f9-a258-4553-84e6-81154aaa6a42",
        "title": "Brochures",
        "parentId": "25a47b2c-bf8b-4d14-bb03-50e95dff7138"
    },
    {
        "id": "aa7bb863-ae0f-4f81-880a-bd940db425a3",
        "title": "Posters",
        "parentId": "25a47b2c-bf8b-4d14-bb03-50e95dff7138"
    },
    {
        "id": "3f9765fc-b03d-44fd-8ad5-76971eb85d3d",
        "title": "Test Category",
        "parentId": "25a47b2c-bf8b-4d14-bb03-50e95dff7138"
    },
    {
        "id": "aaded6f4-9e6a-4d9a-b534-bca648a0f5b0",
        "title": "Cards",
        "parentId": "25a47b2c-bf8b-4d14-bb03-50e95dff7138"
    },
    {
        "id": "39b19e7a-77f2-474a-b9cd-5e8cab4c48da",
        "title": "Notebooks",
        "parentId": "25a47b2c-bf8b-4d14-bb03-50e95dff7138"
    }
]

Catalogue sub-nodes

Use the Catalogue sub-nodes GET API call for getting child nodes in the catalogue.

Note: We have the public catalogue with alias default which is available for all clients.

GET https://api.gelato.com/v2/catalogues/{{catalogueId|catalogueAlias}}/nodes/{{nodeId}}/subnodes

Request

Query Parameters

Parameter Type Description
catalogueId | catalogueAlias (required) string Id or alias of the catalogue
nodeId (required) string Id of parent node

Response

Response Parameters

Response data is represented by an array of the CatalogueNode object, similar to Catalogue nodes API

Parameter Type Description
id (required) string Id of the catalogue node.
title (required) string Title of the catalogue node.
parentId (required) string Id of the parent catalogue node.

Response Messages

Error response example: Catalogue not found

{
  "message": "Catalogue not found"
}

Error response example: Node does not exist in the catalogue

{
  "message": "This node not exists in the catalogue"
}
HTTP Status Code Message
200 Success catalogue response.
404 The catalogue not found.
404 The node not found in the catalogue.

Example

Request example:

$ export NODE_ID='929c12ca-1004-4118-adb3-60d726f69718' && \  
   curl -X GET "https://api.gelato.com/v2/catalogues/default/nodes/${NODE_ID}/subnodes" \
    -H 'X-API-KEY: {{apiKey}}'

Response example:

[
    {
        "id": "0e7576ba-a842-4f90-872e-8ecc276c0db9",
        "title": "Single-sided",
        "parentId": "929c12ca-1004-4118-adb3-60d726f69718"
    },
    {
        "id": "1e2e8f0d-1dfb-4419-a607-6f6353e8ec45",
        "title": "Double-sided",
        "parentId": "929c12ca-1004-4118-adb3-60d726f69718"
    }
]

Catalogue products

Use the Catalogue product's GET API to return the products list in their catalogue nodes.

Note: We have the public catalogue with alias default which available for all clients.

GET https://api.gelato.com/v2/catalogues/{{catalogueId|catalogueAlias}}/nodes/{{nodeId}}/products?limit={{limit}}&offset={{offset}}

Request

Query Parameters

Parameter Type Description
catalogueId | catalogueAlias (required) string Id or alias of the catalogue
nodeId (required) string Id of parent node
limit (optional) int Limit of the list size. Default value: 50. Max value: 200.
offset (optional) int Offset from beginning of the list. Default value: 0.

Response

Response Parameters

Response data represented by an array of the Product object

Parameter Type Description
id (required) string Id of the product.
modelId (required) string Id of the product model.

Response Messages

Error response example: Catalogue not found

{
  "message": "Catalogue not found"
}

Error response example: Node doesn't exist in the catalogue

{
  "message": "This node not exists in the catalogue"
}
HTTP Status Code Message
200 Success catalogue response.
404 The catalogue not found.
404 The node not found in the catalogue.

Example

Request example:

$ export NODE_ID='929c12ca-1004-4118-adb3-60d726f69718' && \  
   curl -X GET "https://api.gelato.com/v2/catalogues/default/nodes/${NODE_ID}/products" \
    -H 'X-API-KEY: {{apiKey}}'

Response example:

[
    {
        "id": "cards_pf_bb_pt_110-lb-cover-uncoated_cl_4-0_hor",
        "modelId": "flat_product"
    },
    {
        "id": "cards_pf_bb_pt_110-lb-cover-uncoated_cl_4-4_hor",
        "modelId": "flat_product"
    },
    {
        "id": "cards_pf_bb_pt_130-lb-cover-uncoated_cl_4-0_hor",
        "modelId": "flat_product"
    },
    {
        "id": "cards_pf_bb_pt_130-lb-cover-uncoated_cl_4-4_hor",
        "modelId": "flat_product"
    },
    {
        "id": "cards_pf_bb_pt_300-gsm-uncoated_cl_4-0_hor",
        "modelId": "flat_product"
    }
]

Product info

Use the Product info GET API for getting product details.

GET https://api.gelato.com/v2/products/{{productId}}

Request

Query Parameters

Parameter Type Description
productId (required) string Id of the product

Response

Response Parameters

Parameter Type Description
id (required) string Id of the product.
modelId (required) string Id of the product model.
attributes (required) AttributeObject[] Array of product attributes.
weight (required) WeightObject Weight of the product.
supportedCountries (required) string[] Codes array of supported countries. Each string is the two-character ISO 3166-1 code that identifies the country or region. Please note: the country code for United Kingdom is GB and not UK as used in the top-level domain names for that country.
Pattern: ^[A-Z]{2}$
notSupportedCountries (required) string[] Code array of countries that are not supported. Each string is the two-character ISO 3166-1 code that identifies the country or region. Please note: the country code for United Kingdom is GB and not UK as used in the top-level domain names for that country.
Pattern: ^[A-Z]{2}$

AttributeObject parameters

Parameter Type Description
key (required) string Attribute key.
value (required) string Attribute value.

WeightObject parameters

Parameter Type Description
value (required) double Weight value.
measureUnit (required) string Unit of measurement - grams or lbs.

Response Messages

Error response example: Product not found

{
  "message": "This product does not exist"
}
HTTP Status Code Message
200 Success catalogue response.
404 The product does not exist.

Example

Request example:

$ curl -X GET "https://api.gelato.com/v2/products/cards_pf_bb_pt_110-lb-cover-uncoated_cl_4-0_hor" \
    -H 'X-API-KEY: {{apiKey}}'

Response example:

{
    "id": "cards_pf_bb_pt_110-lb-cover-uncoated_cl_4-0_hor",
    "modelId": "flat_product",
    "attributes": [
        {
            "key": "PaperFormat",
            "value": "BB"
        },
        {
            "key": "ColorType",
            "value": "4-0"
        },
        {
            "key": "SpotFinishingType",
            "value": "none"
        },
        {
            "key": "Variable",
            "value": "no"
        },
        {
            "key": "ProductStatus",
            "value": "activated"
        },
        {
            "key": "PaperType",
            "value": "110-lb-cover-uncoated"
        },
        {
            "key": "Orientation",
            "value": "hor"
        },
        {
            "key": "ProtectionType",
            "value": "none"
        },
        {
            "key": "CoatingType",
            "value": "none"
        },
        {
            "key": "ShapeEdgeType",
            "value": "none"
        }
    ],
    "weight": {
        "value": 1.341,
        "measureUnit": "grams"
    },
    "supportedCountries": [
        "US",
        "CA"
    ],
    "notSupportedCountries": [
        "BD",
        "BM",
        "BR",
        "AI",
        "DO",
        "IS"
    ]
}

Product prices

Use the Product prices GET API to return prices for the product

GET https://api.gelato.com/v2/products/{{productUid}}/prices

Request

Query Parameters

Parameter Type Description
productUid (required) string Product Uid
country (optional) string Country ISO code
currency (optional) string Currency ISO code
pageCount (optional) int Page count for multipage products

Response

Response Parameters

Response data is represented by an array of the Price object with these parameters

Parameter Type Description
productUid (required) string Product Uid
country (required) string Country ISO code
quantity (required) int Quantity of the product
price (required) float Final price of the product
currency (required) string Currency ISO code
pageCount (required) int Page count for multipage products

Response Messages

Error response example: Prices not found for product

{
  "message": "Prices not found for product"
}
HTTP Status Code Message
200 Success catalogue response.
404 Prices not found for product.

Example

Request example:

$ curl -X GET "https://api.gelato.com/v2/products/{{productUid}}/prices" \
    -H 'X-API-KEY: {{apiKey}}'

Response example:

[
  {
    "productUid": "{{productUid}}",
    "country": "US",
    "quantity": 700,
    "price": 2151.28277,
    "currency": "USD",
    "pageCount": null
  },
  {
    "productUid": "{{productUid}}",
    "country": "US",
    "quantity": 20,
    "price": 87.883871,
    "currency": "USD",
    "pageCount": null
  },
  {
    "productUid": "{{productUid}}",
    "country": "US",
    "quantity": 400,
    "price": 1365.982879,
    "currency": "USD",
    "pageCount": null
  }
]