Limio
WebsiteHelp Desk
  • Home
  • Custom Components
    • Getting Started with Custom Components
    • Connecting External CI
    • Development Guidelines
    • Prop Types
    • Custom subcomponents
    • Connecting to External Service
  • Limio SDK
    • Getting Started with Limio SDK
    • Basket (Cart), Promo Code
    • Page, Offer, and Add-On
    • User, Subscription, Invoice & Address
    • Advanced Methods
      • Express Checkout
      • Core Utilities and Helpers
  • API Docs
    • Authentication Schemes
      • OAuth Bearer Token
      • API Key (Catalog API-only)
    • Catalog API
    • Promo Codes API
    • Order API
    • Objects API
    • Shop Build & Publish API
    • External Identities API
  • Webhooks
    • Using Webhooks
    • Webhooks Overview
  • I want to...
    • Retrieve abandoned baskets
    • Enable self-service on a CPQ order
Powered by GitBook
On this page

Was this helpful?

  1. API Docs

Catalog API

PreviousAPI Key (Catalog API-only)NextPromo Codes API

Last updated 13 days ago

Was this helpful?

You can get catalog data from your Limio app via our Catalog REST API.

See below for full documentation:

Limio Catalog REST API Documentation

Get Campaigns

get

Retrieves all the campaigns in the Catalog matching the specified queries. It will retrieve an object containing a number for the amount of hits that responded to the query, an array with the details of these campaigns (limited to the pageSize property, default to 50) and a queryMore object for continuing query if the amount of hits exceeded the retrieved campaigns and pagination is activated.

Authorizations
Query parameters
pathstringOptional

Exact path to the object

tagsstringOptional

To filter by associated tag to the object

reducedDatabooleanOptional

Indicate true to receive a response with less attributes in the offer object (ideal to reduce payloads size)

opt.pageSizenumberOptional

Set the page size for the array response (default is 50 records). Bear in mind that response size limit is 6Mb so if you need to retrieve lots of data is probably best practice to use the queryMore functionality

opt.modifiedAfterstring · date-timeOptional

Filter items modified after the indicated date or date-time (ISO-date format, i.e '2020-12-01' or '2020-12-01T16:00')

Example: 2020-12-01T16:00
opt.allbooleanOptional

Indicate true to activate the pagination

opt.queryMoreFromstringOptional

The From Hash for the query more functionality. Use it to fetch next page of the query (obtained from queryMore.from in the response)

opt.queryMoreAliasstringOptional

The Alias for the query more functionality. Use it to fetch next page of the query (obtained from queryMore.alias in the response)

attributes.YOUR_ATTRIBUTE_HEREstringOptional

To query with attributes, replace 'YOUR_ATTRIBUTE_HERE' with your attribute. Attributes are defined by your templates.

Example: Due Upon Receipt
Responses
200
OK
application/json
401
Unauthorized
application/json
get
GET /api/campaigns HTTP/1.1
Host: your-environment.prod.limio.com
Authorization: YOUR_API_KEY
Accept: */*
{
  "hits": 1,
  "header": {
    "commitId": "e44d0795e9d0aa78ddea15c3e925cfd581adfb04"
  },
  "items": [],
  "queryMore": {
    "from": "DnF1ZXJ5VGhlbkZldGNoBQAAAAAAGH_TFnZndVVMaWN4VFZDbnVIbGpRRDFaaUEAAAAAABh_1BZ2Z3VVTGljeFRWQ251 SGxqUUQxWmlBAAAAAAAYf9YWdmd1VUxpY3hUVkNudUhsalFEMVppQQAAAAAAGH_XFnZndVVMaWN4VFZDbnVIbGpRRDFa aUEAAAAAABh_1RZ2Z3VVTGljeFRWQ251SGxqUUQxWmlB",
    "alias": "catalog_test.test0.dev.limio.com"
  }
}

Get Assets

get

Retrieves all the assets in the Catalog matching the specified queries. It will retrieve an object containing a number for the amount of hits that responded to the query, an array with the details of these assets (limited to the pageSize property, default to 50) and a queryMore object for continuing query if the amount of hits exceeded the retrieved assets and pagination is activated.

Authorizations
Query parameters
pathstringOptional

Exact path to the object

opt.pageSizenumberOptional

Set the page size for the array response (default is 50 records). Bear in mind that response size limit is 6Mb so if you need to retrieve lots of data is probably best practice to use the queryMore functionality

opt.modifiedAfterstring · date-timeOptional

Filter items modified after the indicated date or date-time (ISO-date format, i.e '2020-12-01' or '2020-12-01T16:00')

Example: 2020-12-01T16:00
opt.allbooleanOptional

Indicate true to activate the pagination

opt.queryMoreFromstringOptional

The From Hash for the query more functionality. Use it to fetch next page of the query (obtained from queryMore.from in the response)

opt.queryMoreAliasstringOptional

The Alias for the query more functionality. Use it to fetch next page of the query (obtained from queryMore.alias in the response)

attributes.YOUR_ATTRIBUTE_HEREstringOptional

To query with attributes, replace 'YOUR_ATTRIBUTE_HERE' with your attribute. Attributes are defined by your templates.

Example: Due Upon Receipt
Responses
200
OK
application/json
401
Unauthorized
application/json
get
GET /api/assets HTTP/1.1
Host: your-environment.prod.limio.com
Authorization: YOUR_API_KEY
Accept: */*
{
  "hits": 1,
  "items": [
    {
      "id": "d89c80cd3919a193da90c6a141b0040b3663a8d0.97d170e1550eee4afc0af065b78cda302a97674c",
      "name": "MyImage",
      "parent_path": "/assets/image",
      "path": "/assets/image/MyImage",
      "data": {
        "attributes": {},
        "baseTemplate": "/config/templates/assets",
        "key": "1e1f1dd8-7609-4bb5-8ec0-7e0ec83abadd.png"
      }
    }
  ],
  "queryMore": {
    "from": "DnF1ZXJ5VGhlbkZldGNoBQAAAAAAGH_TFnZndVVMaWN4VFZDbnVIbGpRRDFaaUEAAAAAABh_1BZ2Z3VVTGljeFRWQ251 SGxqUUQxWmlBAAAAAAAYf9YWdmd1VUxpY3hUVkNudUhsalFEMVppQQAAAAAAGH_XFnZndVVMaWN4VFZDbnVIbGpRRDFa aUEAAAAAABh_1RZ2Z3VVTGljeFRWQ251SGxqUUQxWmlB",
    "alias": "catalog_test.test0.dev.limio.com"
  },
  "commitId": "e44d0795e9d0aa78ddea15c3e925cfd581adfb04"
}

Get Products

get

Retrieves all the products in the Catalog matching the specified queries. It will retrieve an object containing a number for the amount of hits that responded to the query, an array with the details of these products (limited to the pageSize property, default to 50) and a queryMore object for continuing query if the amount of hits exceeded the retrieved products and pagination is activated.

Authorizations
Query parameters
pathstringOptional

Exact path to the object

opt.pageSizenumberOptional

Set the page size for the array response (default is 50 records). Bear in mind that response size limit is 6Mb so if you need to retrieve lots of data is probably best practice to use the queryMore functionality

opt.modifiedAfterstring · date-timeOptional

Filter items modified after the indicated date or date-time (ISO-date format, i.e '2020-12-01' or '2020-12-01T16:00')

Example: 2020-12-01T16:00
opt.allbooleanOptional

Indicate true to activate the pagination

opt.queryMoreFromstringOptional

The From Hash for the query more functionality. Use it to fetch next page of the query (obtained from queryMore.from in the response)

opt.queryMoreAliasstringOptional

The Alias for the query more functionality. Use it to fetch next page of the query (obtained from queryMore.alias in the response)

attributes.YOUR_ATTRIBUTE_HEREstringOptional

To query with attributes, replace 'YOUR_ATTRIBUTE_HERE' with your attribute. Attributes are defined by your templates.

Example: Due Upon Receipt
Responses
200
OK
application/json
401
Unauthorized
application/json
get
GET /api/products HTTP/1.1
Host: your-environment.prod.limio.com
Authorization: YOUR_API_KEY
Accept: */*
{
  "hits": 1,
  "items": [
    {
      "id": "d89c80cd3919a193da90c6a141b0040b3663a8d0.97d170e1550eee4afc0af065b78cda302a97674c",
      "name": "Entertainment Pass",
      "parent_path": "/products/Streaming",
      "path": "/products/Streaming/Entertainment Pass",
      "data": {
        "attributes": {},
        "baseTemplate": "/config/templates/products"
      }
    }
  ],
  "queryMore": {
    "from": "DnF1ZXJ5VGhlbkZldGNoBQAAAAAAGH_TFnZndVVMaWN4VFZDbnVIbGpRRDFaaUEAAAAAABh_1BZ2Z3VVTGljeFRWQ251 SGxqUUQxWmlBAAAAAAAYf9YWdmd1VUxpY3hUVkNudUhsalFEMVppQQAAAAAAGH_XFnZndVVMaWN4VFZDbnVIbGpRRDFa aUEAAAAAABh_1RZ2Z3VVTGljeFRWQ251SGxqUUQxWmlB",
    "alias": "catalog_test.test0.dev.limio.com"
  },
  "commitId": "e44d0795e9d0aa78ddea15c3e925cfd581adfb04"
}

Get Segments

get

Retrieves all the segments in the Catalog matching the specified queries. It will retrieve an object containing a number for the amount of hits that responded to the query, an array with the details of these segments (limited to the pageSize property, default to 50) and a queryMore object for continuing query if the amount of hits exceeded the retrieved segments and pagination is activated.

Authorizations
Query parameters
pathstringOptional

Exact path to the object

opt.pageSizenumberOptional

Set the page size for the array response (default is 50 records). Bear in mind that response size limit is 6Mb so if you need to retrieve lots of data is probably best practice to use the queryMore functionality

opt.modifiedAfterstring · date-timeOptional

Filter items modified after the indicated date or date-time (ISO-date format, i.e '2020-12-01' or '2020-12-01T16:00')

Example: 2020-12-01T16:00
opt.allbooleanOptional

Indicate true to activate the pagination

opt.queryMoreFromstringOptional

The From Hash for the query more functionality. Use it to fetch next page of the query (obtained from queryMore.from in the response)

opt.queryMoreAliasstringOptional

The Alias for the query more functionality. Use it to fetch next page of the query (obtained from queryMore.alias in the response)

attributes.YOUR_ATTRIBUTE_HEREstringOptional

To query with attributes, replace 'YOUR_ATTRIBUTE_HERE' with your attribute. Attributes are defined by your templates.

Example: Due Upon Receipt
Responses
200
OK
application/json
401
Unauthorized
application/json
get
GET /api/segments HTTP/1.1
Host: your-environment.prod.limio.com
Authorization: YOUR_API_KEY
Accept: */*
{
  "hits": 1,
  "items": [
    {
      "id": "d89c80cd3919a193da90c6a141b0040b3663a8d0.97d170e1550eee4afc0af065b78cda302a97674c",
      "name": "Finance",
      "parent_path": "/segments/Interest",
      "path": "/segments/Interest/Finance",
      "data": {
        "attributes": {},
        "baseTemplate": "/config/templates/segments"
      }
    }
  ],
  "queryMore": {
    "from": "DnF1ZXJ5VGhlbkZldGNoBQAAAAAAGH_TFnZndVVMaWN4VFZDbnVIbGpRRDFaaUEAAAAAABh_1BZ2Z3VVTGljeFRWQ251 SGxqUUQxWmlBAAAAAAAYf9YWdmd1VUxpY3hUVkNudUhsalFEMVppQQAAAAAAGH_XFnZndVVMaWN4VFZDbnVIbGpRRDFa aUEAAAAAABh_1RZ2Z3VVTGljeFRWQ251SGxqUUQxWmlB",
    "alias": "catalog_test.test0.dev.limio.com"
  },
  "commitId": "e44d0795e9d0aa78ddea15c3e925cfd581adfb04"
}

Get Journeys

get

Retrieves all the journeys in the Catalog

Authorizations
Responses
200
OK
application/json
401
Unauthorized
application/json
get
GET /api/journeys HTTP/1.1
Host: your-environment.prod.limio.com
Authorization: YOUR_API_KEY
Accept: */*
{
  "starting_point": "/cancel-now/",
  "fallback_tag": "/cancel/",
  "journeys": [
    {
      "id": "0dd1b0b0-22b1-400e-8590-301aabd50a69",
      "conditions": [
        {
          "id": "c10cb349-e06a-4a13-bd87-edb40aae77dc",
          "type": "segment",
          "value": "/segments/123abc"
        }
      ],
      "actions": [
        {
          "id": "a9e2204a-8fa0-4d17-83cc-1f6c0838daaf",
          "type": "destination",
          "values": [
            {
              "id": "a5113403-7e7d-4c46-9d08-13d79e9df9d1",
              "tag": "/tags/cancel-discount",
              "split": "100"
            }
          ]
        }
      ]
    }
  ]
}
  • GETGet Campaigns
  • GETGet Offers
  • GETGet Offers V2
  • GETGet Assets
  • GETGet Products
  • GETGet Segments
  • GETGet Journeys
  • PUTBulk Update

Bulk Update

put

This API allows you to perform bulk update operations on Limio catalog items (such as offers, add-ons etc.). This can be useful for updating multiple items at once, for example, when you want to update the price of multiple offers at the same time.

Authorizations
Body
Responses
200
OK
application/json
401
Unauthorized
application/json
404
Not found
put
PUT /api/limio/catalogs/1/bulk-update HTTP/1.1
Host: your-environment.prod.limio.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 78

{
  "diffs": [
    {
      "path": "text",
      "diff": {
        "attributes": {
          "example_attribute": "text"
        }
      }
    }
  ]
}
{
  "success": "text",
  "failed": []
}

Get Offers

get

Retrieves all the offers in the Catalog matching the specified queries. It will retrieve an object containing a number for the amount of hits that responded to the query, an array with the details of these offers (limited to the pageSize property, default to 50) and a queryMore object for continuing query if the amount of hits exceeded the retrieved offers and pagination is activated.

Note: this API will return all offers in the catalog, including legacy offers (that contain the path /offers AKA campaigns), and standalone offers (that contain the path /offers2). If you want to retrieve only V2 offers, please use the .

Authorizations
Query parameters
pathstringOptional

Exact path to the object

tagsstringOptional

To filter by associated tag to the object

reducedDatabooleanOptional

Indicate true to receive a response with less attributes in the offer object (ideal to reduce payloads size)

opt.pageSizenumberOptional

Set the page size for the array response (default is 50 records). Bear in mind that response size limit is 6Mb so if you need to retrieve lots of data is probably best practice to use the queryMore functionality

opt.modifiedAfterstring · date-timeOptional

Filter items modified after the indicated date or date-time (ISO-date format, i.e '2020-12-01' or '2020-12-01T16:00')

Example: 2020-12-01T16:00
opt.allbooleanOptional

Indicate true to activate the pagination

opt.queryMoreFromstringOptional

The From Hash for the query more functionality. Use it to fetch next page of the query (obtained from queryMore.from in the response)

opt.queryMoreAliasstringOptional

The Alias for the query more functionality. Use it to fetch next page of the query (obtained from queryMore.alias in the response)

attributes.YOUR_ATTRIBUTE_HEREstringOptional

To query with attributes, replace 'YOUR_ATTRIBUTE_HERE' with your attribute. Attributes are defined by your templates.

Example: Due Upon Receipt
Responses
200
OK
application/json
401
Unauthorized
application/json
get
GET /api/offers HTTP/1.1
Host: your-environment.prod.limio.com
Authorization: YOUR_API_KEY
Accept: */*
{
  "hits": 2,
  "items": [
    {
      "id": "d89c80cd3919a193da90c6a141b0040b3663a8d0.97d170e1550eee4afc0af065b78cda302a97674c",
      "name": "Regular Subscription",
      "parent_path": "/offers/2019 Winter Campaign",
      "path": "/offers/2019 Winter Campaign/Regular Subscription",
      "data": {
        "attributes": {
          "price": [
            {
              "name": "charge_1",
              "label": "Charge 1",
              "currencyCode": "GBP",
              "value": "75",
              "type": "onetime",
              "trigger": "subscription_start",
              "repeat_interval": 1,
              "repeat_interval_type": "months",
              "repeat_count": 12,
              "delay_trigger": null,
              "delay_interval": 1,
              "delay_interval_type": "months",
              "attributes": {}
            }
          ]
        },
        "products": [
          {
            "id": "prod_abc123",
            "name": "Digital"
          }
        ],
        "segments": [
          "/segments/regions/UK/UK/GB"
        ],
        "tags": [
          "/tags/test"
        ]
      }
    },
    {
      "id": "fab052ce94fbfd0d3663ec0cb9d9773676593684",
      "name": "Digital offer",
      "path": "/offers2/Digital offer",
      "created": "2024-02-08T09:54:10+00:00",
      "modified": "2024-03-08T10:53:37+00:00",
      "version": "101d166f7386bb9f1c76354124a4b51bbe393ccc",
      "version_date": "2024-03-11T15:33:12.072Z",
      "record_type": "offer",
      "duplicatedFrom": "/offers2/Delivery offer",
      "baseTemplate": "/config/templates/offers/default",
      "priceReference": "/offers2/Delivery offer",
      "user": "user@limio.com",
      "data": {
        "attributes": {
          "checkout_description__limio": "<p>Description</p>",
          "display_name__limio": "Delivery Offer",
          "allowed_countries__limio": [
            "GB"
          ],
          "checkout__limio": {
            "checkout_type": "external",
            "external_url": "/checkout"
          },
          "label__limio": [
            "offers"
          ],
          "term__limio": {
            "renewal_type": "TERMED",
            "renewal_trigger": "EXTERNAL"
          },
          "push_to_checkout__limio": true,
          "initial_term__limio": {
            "renewal_type": "TERMED",
            "renewal_trigger": "EXTERNAL"
          }
        },
        "price": [
          {
            "delay_interval_type": "months",
            "delay_interval": null,
            "label": "Charge 1",
            "trigger": "order_date",
            "repeat_count": 1,
            "type": "onetime",
            "name": "charge_1",
            "repeat_interval": 1,
            "attributes": {},
            "repeat_interval_type": "months",
            "value": "1.00",
            "currencyCode": "GBP"
          }
        ],
        "productBundles": [
          {
            "product_path": "/products/Digital",
            "revenue_split": "100",
            "rate_plan": "Canada Annual"
          }
        ],
        "products": [
          {
            "baseTemplate": "/config/templates/products/default",
            "path": "/products/Digital",
            "lastSynced": "2024-03-07T15:03:10.427Z",
            "synced": true,
            "created": "2024-02-01T10:09:30+00:00",
            "syncedFrom": "2c92c0f9778c090d0177aa4f357d043b",
            "modified": "2024-03-07T15:03:10+00:00",
            "attributes": {
              "display_name__limio": "Digital",
              "has_delivery__limio": false,
              "product_code__limio": "LI.DIGITAL"
            },
            "record_type": "product"
          }
        ]
      }
    }
  ],
  "queryMore": {
    "from": "DnF1ZXJ5VGhlbkZldGNoBQAAAAAAGH_TFnZndVVMaWN4VFZDbnVIbGpRRDFaaUEAAAAAABh_1BZ2Z3VVTGljeFRWQ251 SGxqUUQxWmlBAAAAAAAYf9YWdmd1VUxpY3hUVkNudUhsalFEMVppQQAAAAAAGH_XFnZndVVMaWN4VFZDbnVIbGpRRDFa aUEAAAAAABh_1RZ2Z3VVTGljeFRWQ251SGxqUUQxWmlB",
    "alias": "catalog_test.test0.dev.limio.com"
  },
  "commitId": "e44d0795e9d0aa78ddea15c3e925cfd581adfb04"
}

Get Offers V2

get

Retrieves all the standalone offers in the Catalog matching the specified queries. It will retrieve an object containing a number for the amount of hits that responded to the query, an array with the details of these offers (limited to the pageSize property, default to 50) and a queryMore object for continuing query if the amount of hits exceeded the retrieved offers and pagination is activated.

Note: this API will return only standalone offers (that contain the path /offers2). If you want to retrieve all offers in the catalog, including legacy offers (that contain the path /offers AKA campaigns), please use the .

V2 offers are offers that are created using the new offer creation flow. They are standalone offers that are not part of a campaign, but can be attached to campaigns / pages using labels. They are created using the new offer creation flow and are more flexible than legacy offers.

V2 offers can also be versioned - you can find out more about offer versioning at the following resources:

If you have the enabled, the API will, by default, return only the published offersV2. To retrieve all offersV2 in your catalog, including both published and unpublished, you can use the offersSource query parameter.

Authorizations
Query parameters
offersSourcestring · enumOptional

Specifies the source for fetching offers. catalog Retrieves all offersV2 from your catalog. published Retrieves only published offers.

Possible values:
pathstringOptional

Exact path to the object

tagsstringOptional

To filter by associated tag to the object

reducedDatabooleanOptional

Indicate true to receive a response with less attributes in the offer object (ideal to reduce payloads size)

opt.pageSizenumberOptional

Set the page size for the array response (default is 50 records). Bear in mind that response size limit is 6Mb so if you need to retrieve lots of data is probably best practice to use the queryMore functionality

opt.modifiedAfterstring · date-timeOptional

Filter items modified after the indicated date or date-time (ISO-date format, i.e '2020-12-01' or '2020-12-01T16:00')

Example: 2020-12-01T16:00
opt.allbooleanOptional

Indicate true to activate the pagination

opt.queryMoreFromstringOptional

The From Hash for the query more functionality. Use it to fetch next page of the query (obtained from queryMore.from in the response)

opt.queryMoreAliasstringOptional

The Alias for the query more functionality. Use it to fetch next page of the query (obtained from queryMore.alias in the response)

attributes.YOUR_ATTRIBUTE_HEREstringOptional

To query with attributes, replace 'YOUR_ATTRIBUTE_HERE' with your attribute. Attributes are defined by your templates.

Example: Due Upon Receipt
Responses
200
OK
application/json
401
Unauthorized
application/json
get
GET /api/offers/v2 HTTP/1.1
Host: your-environment.prod.limio.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "hits": 1,
  "items": [],
  "queryMore": {
    "from": "DnF1ZXJ5VGhlbkZldGNoBQAAAAAAGH_TFnZndVVMaWN4VFZDbnVIbGpRRDFaaUEAAAAAABh_1BZ2Z3VVTGljeFRWQ251 SGxqUUQxWmlBAAAAAAAYf9YWdmd1VUxpY3hUVkNudUhsalFEMVppQQAAAAAAGH_XFnZndVVMaWN4VFZDbnVIbGpRRDFa aUEAAAAAABh_1RZ2Z3VVTGljeFRWQ251SGxqUUQxWmlB",
    "alias": "catalog_test.test0.dev.limio.com"
  },
  "commitId": "e44d0795e9d0aa78ddea15c3e925cfd581adfb04"
}
getOffersV2 endpoint
getOffers endpoint
Published Offers API and Versioned Offers v2
Set or Update an Offer Version
Published Offers API