# Catalog

Retrieve published catalog content — campaigns, offers, pages, products, segments, assets, and add-ons. Supports filtering by path, tags, attributes, and pagination.

## Get Catalog Items

> Returns all catalog items, including unpublished working copies. Replaces the individual getAddOns, getOffers, getOffers2, getProducts, getPages, getCampaigns, and getSegments endpoints with a single entry point.\
> \
> The \`record\_type\` parameter determines which type of item is returned. All record types are available. For only published (live) items, use the \`/published\_catalog\_items\` endpoint instead.

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"tags":[{"name":"Catalog","description":"Retrieve published catalog content — campaigns, offers, pages, products, segments, assets, and add-ons. Supports filtering by path, tags, attributes, and pagination."}],"servers":[{"url":"https://{tenant}/api","description":"Limio environment API","variables":{"tenant":{"default":"your-environment.prod.limio.com","description":"Your Limio environment hostname, e.g. `acme.prod.limio.com` or `acme-sandbox.prod.limio.com`."}}}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"OAuth 2.0 Bearer token for authenticated API access. Required for order submission, object management, and administrative operations.\n\nObtain a token via the OAuth flow described in [OAuth Bearer Token](https://docs.limio.com/developers/api-documentation/authentication-overview/oauth-bearer-token).\n\nPass the token in the `Authorization` header: `Bearer <token>`"}},"parameters":{"catalogRecordType":{"in":"query","name":"record_type","required":true,"description":"The type of catalog item to retrieve.","schema":{"type":"string","enum":["add_on","offers","offers2","discount","product","page","campaign","segment"]}},"catalogId":{"in":"query","name":"id","description":"Filter items by Elasticsearch document ID.","schema":{"type":"string"}},"path":{"in":"query","name":"path","description":"Filter by the exact catalog path of the item, e.g. `/offers/2024 Summer Campaign` or `/pages/Homepage`.","schema":{"type":"string"}},"referencedLabel":{"in":"query","name":"referencedLabel","description":"Filter items by referenced label.","schema":{"type":"string"}},"reducedData":{"in":"query","name":"reducedData","description":"Indicate true to receive a response with less attributes in the offer object (ideal to reduce payloads size)","schema":{"type":"boolean"}},"optPageSize":{"in":"query","name":"opt.pageSize","description":"Number of items per page (default 50, maximum 160). The response size limit is 6 MB, so use smaller page sizes with `queryMore` pagination when retrieving large datasets. Note: this parameter cannot be used in combination with `opt.all=true` — once `opt.all` is set, the page size cannot be increased.","schema":{"type":"integer","default":50}},"optModifiedAfter":{"in":"query","name":"opt.modifiedAfter","description":"Filter items modified after the indicated date or date-time (ISO-date format, i.e '2020-12-01' or '2020-12-01T16:00:00Z')","schema":{"type":"string","format":"date-time"}},"optAll":{"in":"query","name":"opt.all","description":"Set to `true` to enable cursor-based pagination. When enabled, the response includes a `queryMore` object with `from` and `alias` fields that can be passed to subsequent requests to retrieve the next page. A maximum of 100 items will be returned per page when active.","schema":{"type":"boolean","default":false}},"optQueryMoreFrom":{"in":"query","name":"opt.queryMoreFrom","description":"The From Hash for the query more functionality. Use it to fetch next page of the query (obtained from queryMore.from in the response)","schema":{"type":"string"}},"optQueryMoreAlias":{"in":"query","name":"opt.queryMoreAlias","description":"The Alias for the query more functionality. Use it to fetch next page of the query (obtained from queryMore.alias in the response)","schema":{"type":"string"}},"attributes":{"in":"query","name":"attributes.YOUR_ATTRIBUTE_HERE","description":"To query with attributes, replace 'YOUR_ATTRIBUTE_HERE' with your attribute. Attributes are defined by your templates.","schema":{"type":"string"}}},"schemas":{"ElasticOffer":{"properties":{"id":{"type":"string","description":"Offer id in the Elastic index"},"name":{"type":"string","description":"Offer name"},"parent_path":{"type":"string","description":"Parent Path"},"path":{"type":"string","description":"Path to the offer"},"data":{"type":"object","description":"Data attached to offer","properties":{"attributes":{"type":"object"},"price":{"type":"array","description":"Prices of offer","items":{"type":"object","description":"Price item","properties":{"attributes":{"type":"object"},"name":{"type":"string","description":"Charge name"},"label":{"type":"string","description":"Label for charge"},"currencyCode":{"type":"string","description":"Currency of charge"},"value":{"type":"string","description":"Value of charge"},"type":{"type":"string","description":"Pricing type"},"trigger":{"type":"string","description":"Trigger for the charge"},"repeat_interval":{"type":"integer","description":"Number of repeat_interval_type between charges"},"repeat_interval_type":{"type":"string","description":"The unit between charges"},"repeat_count":{"type":"integer","description":"The number of times the charge will be repeated"},"delay_trigger":{"type":"string","description":"Delay to charge trigger"},"delay_interval":{"type":"integer","description":"Number of delay_interval_type that charge will be delayed"},"delay_interval_type":{"type":"string","description":"The unit charge will be delayed"}}}},"products":{"type":"array","description":"Products attached to offer","items":{"$ref":"#/components/schemas/ElasticProduct"}},"segments":{"type":"array","description":"Segments attached to offer","items":{"type":"string","description":"Path to segment"}},"tags":{"type":"array","description":"Tags attached to campaign","items":{"type":"string","description":"tag path"}},"status":{"type":"string","description":"Offer status"},"description":{"type":"string","description":"Offer description"},"validFrom":{"type":"string","description":"Date offer is valid from"},"validTo":{"type":"string","description":"Date offer is valid until"}}}}},"ElasticProduct":{"type":"object","properties":{"id":{"type":"string","description":"Product id in the Elastic index"},"name":{"type":"string","description":"Name of product"},"parent_path":{"type":"string","description":"Parent Path"},"path":{"type":"string","description":"Product path"},"data":{"type":"object","properties":{"attributes":{"type":"object","description":"Attributes for product"},"baseTemplate":{"type":"string","description":"Template for product attributes"}}}}}},"responses":{"401Response":{"description":"Unauthorized — the request lacks valid authentication credentials. Verify your Bearer token or API key is correct and has not expired.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}}}}},"paths":{"/catalog_items":{"get":{"operationId":"getCatalogItems","summary":"Get Catalog Items","tags":["Catalog"],"description":"Returns all catalog items, including unpublished working copies. Replaces the individual getAddOns, getOffers, getOffers2, getProducts, getPages, getCampaigns, and getSegments endpoints with a single entry point.\n\nThe `record_type` parameter determines which type of item is returned. All record types are available. For only published (live) items, use the `/published_catalog_items` endpoint instead.","parameters":[{"$ref":"#/components/parameters/catalogRecordType"},{"$ref":"#/components/parameters/catalogId"},{"$ref":"#/components/parameters/path"},{"$ref":"#/components/parameters/referencedLabel"},{"$ref":"#/components/parameters/reducedData"},{"$ref":"#/components/parameters/optPageSize"},{"$ref":"#/components/parameters/optModifiedAfter"},{"$ref":"#/components/parameters/optAll"},{"$ref":"#/components/parameters/optQueryMoreFrom"},{"$ref":"#/components/parameters/optQueryMoreAlias"},{"$ref":"#/components/parameters/attributes"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"hits":{"type":"number","description":"Total number of matching records in the index."},"items":{"type":"array","description":"The catalog items matching the query.","items":{"$ref":"#/components/schemas/ElasticOffer"}},"queryMore":{"type":"object","description":"Pagination cursor for fetching additional results.","properties":{"from":{"type":"string"},"alias":{"type":"string"}}},"commitId":{"type":"string","description":"The commit ID of the index that was queried."}}}}}},"400":{"description":"Bad request. Returned when query parameters fail validation, e.g. missing `record_type`."},"401":{"$ref":"#/components/responses/401Response"}}}}}}
```

## Get Published Catalog Items

> Returns only published (live) catalog items. Only publishable record types (add\_on, offers2, discount) are available from this endpoint.\
> \
> For all catalog items including unpublished working copies, use the \`/catalog\_items\` endpoint instead.

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"tags":[{"name":"Catalog","description":"Retrieve published catalog content — campaigns, offers, pages, products, segments, assets, and add-ons. Supports filtering by path, tags, attributes, and pagination."}],"servers":[{"url":"https://{tenant}/api","description":"Limio environment API","variables":{"tenant":{"default":"your-environment.prod.limio.com","description":"Your Limio environment hostname, e.g. `acme.prod.limio.com` or `acme-sandbox.prod.limio.com`."}}}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"OAuth 2.0 Bearer token for authenticated API access. Required for order submission, object management, and administrative operations.\n\nObtain a token via the OAuth flow described in [OAuth Bearer Token](https://docs.limio.com/developers/api-documentation/authentication-overview/oauth-bearer-token).\n\nPass the token in the `Authorization` header: `Bearer <token>`"}},"parameters":{"publishedCatalogRecordType":{"in":"query","name":"record_type","required":true,"description":"The type of published item to retrieve. Only publishable types are accepted.","schema":{"type":"string","enum":["add_on","offers2","discount"]}},"catalogId":{"in":"query","name":"id","description":"Filter items by Elasticsearch document ID.","schema":{"type":"string"}},"path":{"in":"query","name":"path","description":"Filter by the exact catalog path of the item, e.g. `/offers/2024 Summer Campaign` or `/pages/Homepage`.","schema":{"type":"string"}},"referencedLabel":{"in":"query","name":"referencedLabel","description":"Filter items by referenced label.","schema":{"type":"string"}},"reducedData":{"in":"query","name":"reducedData","description":"Indicate true to receive a response with less attributes in the offer object (ideal to reduce payloads size)","schema":{"type":"boolean"}},"optPageSize":{"in":"query","name":"opt.pageSize","description":"Number of items per page (default 50, maximum 160). The response size limit is 6 MB, so use smaller page sizes with `queryMore` pagination when retrieving large datasets. Note: this parameter cannot be used in combination with `opt.all=true` — once `opt.all` is set, the page size cannot be increased.","schema":{"type":"integer","default":50}},"optModifiedAfter":{"in":"query","name":"opt.modifiedAfter","description":"Filter items modified after the indicated date or date-time (ISO-date format, i.e '2020-12-01' or '2020-12-01T16:00:00Z')","schema":{"type":"string","format":"date-time"}},"optAll":{"in":"query","name":"opt.all","description":"Set to `true` to enable cursor-based pagination. When enabled, the response includes a `queryMore` object with `from` and `alias` fields that can be passed to subsequent requests to retrieve the next page. A maximum of 100 items will be returned per page when active.","schema":{"type":"boolean","default":false}},"optQueryMoreFrom":{"in":"query","name":"opt.queryMoreFrom","description":"The From Hash for the query more functionality. Use it to fetch next page of the query (obtained from queryMore.from in the response)","schema":{"type":"string"}},"optQueryMoreAlias":{"in":"query","name":"opt.queryMoreAlias","description":"The Alias for the query more functionality. Use it to fetch next page of the query (obtained from queryMore.alias in the response)","schema":{"type":"string"}},"attributes":{"in":"query","name":"attributes.YOUR_ATTRIBUTE_HERE","description":"To query with attributes, replace 'YOUR_ATTRIBUTE_HERE' with your attribute. Attributes are defined by your templates.","schema":{"type":"string"}}},"schemas":{"ElasticOffer":{"properties":{"id":{"type":"string","description":"Offer id in the Elastic index"},"name":{"type":"string","description":"Offer name"},"parent_path":{"type":"string","description":"Parent Path"},"path":{"type":"string","description":"Path to the offer"},"data":{"type":"object","description":"Data attached to offer","properties":{"attributes":{"type":"object"},"price":{"type":"array","description":"Prices of offer","items":{"type":"object","description":"Price item","properties":{"attributes":{"type":"object"},"name":{"type":"string","description":"Charge name"},"label":{"type":"string","description":"Label for charge"},"currencyCode":{"type":"string","description":"Currency of charge"},"value":{"type":"string","description":"Value of charge"},"type":{"type":"string","description":"Pricing type"},"trigger":{"type":"string","description":"Trigger for the charge"},"repeat_interval":{"type":"integer","description":"Number of repeat_interval_type between charges"},"repeat_interval_type":{"type":"string","description":"The unit between charges"},"repeat_count":{"type":"integer","description":"The number of times the charge will be repeated"},"delay_trigger":{"type":"string","description":"Delay to charge trigger"},"delay_interval":{"type":"integer","description":"Number of delay_interval_type that charge will be delayed"},"delay_interval_type":{"type":"string","description":"The unit charge will be delayed"}}}},"products":{"type":"array","description":"Products attached to offer","items":{"$ref":"#/components/schemas/ElasticProduct"}},"segments":{"type":"array","description":"Segments attached to offer","items":{"type":"string","description":"Path to segment"}},"tags":{"type":"array","description":"Tags attached to campaign","items":{"type":"string","description":"tag path"}},"status":{"type":"string","description":"Offer status"},"description":{"type":"string","description":"Offer description"},"validFrom":{"type":"string","description":"Date offer is valid from"},"validTo":{"type":"string","description":"Date offer is valid until"}}}}},"ElasticProduct":{"type":"object","properties":{"id":{"type":"string","description":"Product id in the Elastic index"},"name":{"type":"string","description":"Name of product"},"parent_path":{"type":"string","description":"Parent Path"},"path":{"type":"string","description":"Product path"},"data":{"type":"object","properties":{"attributes":{"type":"object","description":"Attributes for product"},"baseTemplate":{"type":"string","description":"Template for product attributes"}}}}}},"responses":{"401Response":{"description":"Unauthorized — the request lacks valid authentication credentials. Verify your Bearer token or API key is correct and has not expired.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}}}}},"paths":{"/published_catalog_items":{"get":{"operationId":"getPublishedCatalogItems","summary":"Get Published Catalog Items","tags":["Catalog"],"description":"Returns only published (live) catalog items. Only publishable record types (add_on, offers2, discount) are available from this endpoint.\n\nFor all catalog items including unpublished working copies, use the `/catalog_items` endpoint instead.","parameters":[{"$ref":"#/components/parameters/publishedCatalogRecordType"},{"$ref":"#/components/parameters/catalogId"},{"$ref":"#/components/parameters/path"},{"$ref":"#/components/parameters/referencedLabel"},{"$ref":"#/components/parameters/reducedData"},{"$ref":"#/components/parameters/optPageSize"},{"$ref":"#/components/parameters/optModifiedAfter"},{"$ref":"#/components/parameters/optAll"},{"$ref":"#/components/parameters/optQueryMoreFrom"},{"$ref":"#/components/parameters/optQueryMoreAlias"},{"$ref":"#/components/parameters/attributes"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"hits":{"type":"number","description":"Total number of matching records in the index."},"items":{"type":"array","description":"The published catalog items matching the query.","items":{"$ref":"#/components/schemas/ElasticOffer"}},"queryMore":{"type":"object","description":"Pagination cursor for fetching additional results.","properties":{"from":{"type":"string"},"alias":{"type":"string"}}},"commitId":{"type":"string","description":"The commit ID of the index that was queried."}}}}}},"400":{"description":"Bad request. Returned when query parameters fail validation, e.g. non-publishable record_type or missing required parameters."},"401":{"$ref":"#/components/responses/401Response"}}}}}}
```

## Get Campaigns

> 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.

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"tags":[{"name":"Catalog","description":"Retrieve published catalog content — campaigns, offers, pages, products, segments, assets, and add-ons. Supports filtering by path, tags, attributes, and pagination."}],"servers":[{"url":"https://{tenant}/api","description":"Limio environment API","variables":{"tenant":{"default":"your-environment.prod.limio.com","description":"Your Limio environment hostname, e.g. `acme.prod.limio.com` or `acme-sandbox.prod.limio.com`."}}}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","name":"Authorization","in":"header","description":"Publishable API key for read-only catalog access. Suitable for client-side or public-facing integrations where only catalog data (campaigns, offers, products, pages, segments, assets) is needed.\n\nGenerate a key in the Limio dashboard. See [Authentication](https://docs.limio.com/developers/api-documentation/authentication-overview#api-keys-legacy) for details."}},"parameters":{"path":{"in":"query","name":"path","description":"Filter by the exact catalog path of the item, e.g. `/offers/2024 Summer Campaign` or `/pages/Homepage`.","schema":{"type":"string"}},"tags":{"in":"query","name":"tags","description":"Filter items by an associated tag path, e.g. `/tags/uk-uk/default`.","schema":{"type":"string"}},"reducedData":{"in":"query","name":"reducedData","description":"Indicate true to receive a response with less attributes in the offer object (ideal to reduce payloads size)","schema":{"type":"boolean"}},"optPageSize":{"in":"query","name":"opt.pageSize","description":"Number of items per page (default 50, maximum 160). The response size limit is 6 MB, so use smaller page sizes with `queryMore` pagination when retrieving large datasets. Note: this parameter cannot be used in combination with `opt.all=true` — once `opt.all` is set, the page size cannot be increased.","schema":{"type":"integer","default":50}},"optModifiedAfter":{"in":"query","name":"opt.modifiedAfter","description":"Filter items modified after the indicated date or date-time (ISO-date format, i.e '2020-12-01' or '2020-12-01T16:00:00Z')","schema":{"type":"string","format":"date-time"}},"optAll":{"in":"query","name":"opt.all","description":"Set to `true` to enable cursor-based pagination. When enabled, the response includes a `queryMore` object with `from` and `alias` fields that can be passed to subsequent requests to retrieve the next page. A maximum of 100 items will be returned per page when active.","schema":{"type":"boolean","default":false}},"optQueryMoreFrom":{"in":"query","name":"opt.queryMoreFrom","description":"The From Hash for the query more functionality. Use it to fetch next page of the query (obtained from queryMore.from in the response)","schema":{"type":"string"}},"optQueryMoreAlias":{"in":"query","name":"opt.queryMoreAlias","description":"The Alias for the query more functionality. Use it to fetch next page of the query (obtained from queryMore.alias in the response)","schema":{"type":"string"}},"attributes":{"in":"query","name":"attributes.YOUR_ATTRIBUTE_HERE","description":"To query with attributes, replace 'YOUR_ATTRIBUTE_HERE' with your attribute. Attributes are defined by your templates.","schema":{"type":"string"}}},"schemas":{"GetCampaignResponse":{"type":"object","properties":{"hits":{"type":"number","description":"Amount of records found on the catalog responding the query"},"header":{"description":"header with information about the requested data","type":"object","properties":{"commitId":{"description":"the commitId from the index used to query","type":"string"}}},"items":{"type":"array","description":"Campaigns retrieved","items":{"$ref":"#/components/schemas/ElasticCampaign"}},"queryMore":{"type":"object","description":"query more object used for pagination","properties":{"from":{"type":"string","description":"Cursor for the next page of results"},"alias":{"type":"string","description":"The Alias used to fetch next page of the query"}}}}},"ElasticCampaign":{"properties":{"id":{"type":"string","description":"Campaign id in the Elastic index"},"parent_path":{"type":"string","description":"Parent Path"},"path":{"type":"string","description":"Path to the campaigns"},"attributes":{"type":"object","description":"Attribures of campaign"},"name":{"type":"string","description":"Name of campaign"},"data":{"type":"object","description":"data object","properties":{"description":{"type":"string","description":"Description of campaign"},"headline":{"type":"string","description":"Headline of campaign"},"subline":{"type":"string","description":"Subline of campaign"},"assets":{"type":"array","description":"Assets attached to campaign","items":{"$ref":"#/components/schemas/ElasticAsset"}},"tags":{"type":"array","description":"Tags attached to campaign","items":{"type":"string","description":"tag path"}},"status":{"type":"string","description":"Campaign status"},"validFrom":{"type":"string","description":"Date campaign is valid from"},"validTo":{"type":"string","description":"Date campaign is valid until"},"associatedOffers":{"type":"array","description":"Different offers associated with this campaign eg. 'cross-sell', 'upsell'  or 'save'","items":{"$ref":"#/components/schemas/AssociatedOffer"}}}}}},"ElasticAsset":{"type":"object","properties":{"id":{"type":"string","description":"Asset id in the Elastic index"},"name":{"type":"string","description":"Name of asset"},"parent_path":{"type":"string","description":"Parent Path"},"path":{"type":"string","description":"Asset path"},"data":{"type":"object","properties":{"attributes":{"type":"object","description":"Attributes for asset"},"baseTemplate":{"type":"string","description":"Template for asset attributes"},"key":{"type":"string","description":"S3 key for asset"}}}}},"AssociatedOffer":{"properties":{"type":{"type":"string","description":"The type of associated offer can be of type \"cross-sell\", \"upsell\" or \"save\""},"offer":{"$ref":"#/components/schemas/ElasticOffer"}}},"ElasticOffer":{"properties":{"id":{"type":"string","description":"Offer id in the Elastic index"},"name":{"type":"string","description":"Offer name"},"parent_path":{"type":"string","description":"Parent Path"},"path":{"type":"string","description":"Path to the offer"},"data":{"type":"object","description":"Data attached to offer","properties":{"attributes":{"type":"object"},"price":{"type":"array","description":"Prices of offer","items":{"type":"object","description":"Price item","properties":{"attributes":{"type":"object"},"name":{"type":"string","description":"Charge name"},"label":{"type":"string","description":"Label for charge"},"currencyCode":{"type":"string","description":"Currency of charge"},"value":{"type":"string","description":"Value of charge"},"type":{"type":"string","description":"Pricing type"},"trigger":{"type":"string","description":"Trigger for the charge"},"repeat_interval":{"type":"integer","description":"Number of repeat_interval_type between charges"},"repeat_interval_type":{"type":"string","description":"The unit between charges"},"repeat_count":{"type":"integer","description":"The number of times the charge will be repeated"},"delay_trigger":{"type":"string","description":"Delay to charge trigger"},"delay_interval":{"type":"integer","description":"Number of delay_interval_type that charge will be delayed"},"delay_interval_type":{"type":"string","description":"The unit charge will be delayed"}}}},"products":{"type":"array","description":"Products attached to offer","items":{"$ref":"#/components/schemas/ElasticProduct"}},"segments":{"type":"array","description":"Segments attached to offer","items":{"type":"string","description":"Path to segment"}},"tags":{"type":"array","description":"Tags attached to campaign","items":{"type":"string","description":"tag path"}},"status":{"type":"string","description":"Offer status"},"description":{"type":"string","description":"Offer description"},"validFrom":{"type":"string","description":"Date offer is valid from"},"validTo":{"type":"string","description":"Date offer is valid until"}}}}},"ElasticProduct":{"type":"object","properties":{"id":{"type":"string","description":"Product id in the Elastic index"},"name":{"type":"string","description":"Name of product"},"parent_path":{"type":"string","description":"Parent Path"},"path":{"type":"string","description":"Product path"},"data":{"type":"object","properties":{"attributes":{"type":"object","description":"Attributes for product"},"baseTemplate":{"type":"string","description":"Template for product attributes"}}}}}},"responses":{"401Response":{"description":"Unauthorized — the request lacks valid authentication credentials. Verify your Bearer token or API key is correct and has not expired.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}}}}},"paths":{"/campaigns":{"get":{"operationId":"getCampaigns","summary":"Get Campaigns","tags":["Catalog"],"description":"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.","parameters":[{"$ref":"#/components/parameters/path"},{"$ref":"#/components/parameters/tags"},{"$ref":"#/components/parameters/reducedData"},{"$ref":"#/components/parameters/optPageSize"},{"$ref":"#/components/parameters/optModifiedAfter"},{"$ref":"#/components/parameters/optAll"},{"$ref":"#/components/parameters/optQueryMoreFrom"},{"$ref":"#/components/parameters/optQueryMoreAlias"},{"$ref":"#/components/parameters/attributes"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetCampaignResponse"}}}},"401":{"$ref":"#/components/responses/401Response"}}}}}}
```

## Get Pages

> Retrieves published pages that match the supplied query parameters. The response includes metadata about the total matches, paging details, and the matching page definitions.

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"tags":[{"name":"Catalog","description":"Retrieve published catalog content — campaigns, offers, pages, products, segments, assets, and add-ons. Supports filtering by path, tags, attributes, and pagination."}],"servers":[{"url":"https://{tenant}/api","description":"Limio environment API","variables":{"tenant":{"default":"your-environment.prod.limio.com","description":"Your Limio environment hostname, e.g. `acme.prod.limio.com` or `acme-sandbox.prod.limio.com`."}}}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","name":"Authorization","in":"header","description":"Publishable API key for read-only catalog access. Suitable for client-side or public-facing integrations where only catalog data (campaigns, offers, products, pages, segments, assets) is needed.\n\nGenerate a key in the Limio dashboard. See [Authentication](https://docs.limio.com/developers/api-documentation/authentication-overview#api-keys-legacy) for details."}},"parameters":{"path":{"in":"query","name":"path","description":"Filter by the exact catalog path of the item, e.g. `/offers/2024 Summer Campaign` or `/pages/Homepage`.","schema":{"type":"string"}},"tags":{"in":"query","name":"tags","description":"Filter items by an associated tag path, e.g. `/tags/uk-uk/default`.","schema":{"type":"string"}},"optPageSize":{"in":"query","name":"opt.pageSize","description":"Number of items per page (default 50, maximum 160). The response size limit is 6 MB, so use smaller page sizes with `queryMore` pagination when retrieving large datasets. Note: this parameter cannot be used in combination with `opt.all=true` — once `opt.all` is set, the page size cannot be increased.","schema":{"type":"integer","default":50}},"optModifiedAfter":{"in":"query","name":"opt.modifiedAfter","description":"Filter items modified after the indicated date or date-time (ISO-date format, i.e '2020-12-01' or '2020-12-01T16:00:00Z')","schema":{"type":"string","format":"date-time"}},"optAll":{"in":"query","name":"opt.all","description":"Set to `true` to enable cursor-based pagination. When enabled, the response includes a `queryMore` object with `from` and `alias` fields that can be passed to subsequent requests to retrieve the next page. A maximum of 100 items will be returned per page when active.","schema":{"type":"boolean","default":false}},"optQueryMoreFrom":{"in":"query","name":"opt.queryMoreFrom","description":"The From Hash for the query more functionality. Use it to fetch next page of the query (obtained from queryMore.from in the response)","schema":{"type":"string"}},"optQueryMoreAlias":{"in":"query","name":"opt.queryMoreAlias","description":"The Alias for the query more functionality. Use it to fetch next page of the query (obtained from queryMore.alias in the response)","schema":{"type":"string"}},"attributes":{"in":"query","name":"attributes.YOUR_ATTRIBUTE_HERE","description":"To query with attributes, replace 'YOUR_ATTRIBUTE_HERE' with your attribute. Attributes are defined by your templates.","schema":{"type":"string"}}},"schemas":{"GetPagesResponse":{"type":"object","description":"Paginated list of published pages.","properties":{"items":{"type":"array","description":"Pages returned for the current query window.","items":{"$ref":"#/components/schemas/ElasticPage"}},"hits":{"type":"integer","description":"Total number of pages that matched the query."},"queryMore":{"type":"object","description":"Cursor information for retrieving the next page of results.","properties":{"from":{"type":"string","description":"Cursor token for the next request."},"alias":{"type":"string","description":"Elastic alias used to continue the query."}}},"commitId":{"type":"string","description":"Commit identifier for the source index."},"buildId":{"type":"string","description":"Build identifier of the index queried."},"indexName":{"type":"string","description":"Name of the Elastic index queried."}}},"ElasticPage":{"type":"object","description":"A published page stored in the Limio catalog index.","properties":{"id":{"type":"string","description":"Page identifier within the catalog index."},"parent_path":{"type":"string","description":"Parent path for the page."},"path":{"type":"string","description":"Full path to the page."},"name":{"type":"string","description":"Human readable page name."},"type":{"type":"string","description":"Catalog record type."},"version":{"type":"string","description":"Version identifier for the page definition."},"attributes":{"type":"object","description":"Additional metadata stored with the page."},"data":{"type":"object","description":"Page configuration payload as stored in the catalog."}}}},"responses":{"401Response":{"description":"Unauthorized — the request lacks valid authentication credentials. Verify your Bearer token or API key is correct and has not expired.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}}}}},"paths":{"/pages":{"get":{"operationId":"getPages","summary":"Get Pages","tags":["Catalog"],"description":"Retrieves published pages that match the supplied query parameters. The response includes metadata about the total matches, paging details, and the matching page definitions.","parameters":[{"$ref":"#/components/parameters/path"},{"$ref":"#/components/parameters/tags"},{"$ref":"#/components/parameters/optPageSize"},{"$ref":"#/components/parameters/optModifiedAfter"},{"$ref":"#/components/parameters/optAll"},{"$ref":"#/components/parameters/optQueryMoreFrom"},{"$ref":"#/components/parameters/optQueryMoreAlias"},{"$ref":"#/components/parameters/attributes"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetPagesResponse"}}}},"401":{"$ref":"#/components/responses/401Response"}}}}}}
```

## Get Offers V2

> 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, a maximum of 160 items will be returned) and a queryMore object for  continuing query if the amount of hits exceeded the retrieved offers and pagination  is activated.\
> \
> 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:\
> &#x20; \- \[Published Offers API and Versioned Offers v2]\(<https://limio.zendesk.com/hc/en-gb/articles/10026477323421-Published-Offers-API-and-Versioned-Offers-v2)\\>
> &#x20; \- \[Set or Update an Offer Version]\(<https://limio.zendesk.com/hc/en-gb/articles/4641968133917-How-to-create-Offers-v2-to-Attach-to-Campaigns-Pages#h\\_01HCEYQE26NJSQSCDNQ7EAVZFJ)\\>
> \
> If you have the \[Published Offers API]\(<https://limio.zendesk.com/hc/en-gb/articles/10026477323421-Published-Offers-API-and-Versioned-Offers-v2>) 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.

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"tags":[{"name":"Catalog","description":"Retrieve published catalog content — campaigns, offers, pages, products, segments, assets, and add-ons. Supports filtering by path, tags, attributes, and pagination."}],"servers":[{"url":"https://{tenant}/api","description":"Limio environment API","variables":{"tenant":{"default":"your-environment.prod.limio.com","description":"Your Limio environment hostname, e.g. `acme.prod.limio.com` or `acme-sandbox.prod.limio.com`."}}}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"OAuth 2.0 Bearer token for authenticated API access. Required for order submission, object management, and administrative operations.\n\nObtain a token via the OAuth flow described in [OAuth Bearer Token](https://docs.limio.com/developers/api-documentation/authentication-overview/oauth-bearer-token).\n\nPass the token in the `Authorization` header: `Bearer <token>`"}},"parameters":{"offersSource":{"in":"query","name":"offersSource","description":"Specifies the source for fetching offers. `catalog` Retrieves all offersV2 from your catalog. `published` Retrieves only published offers.","schema":{"type":"string","enum":["catalog","published"]}},"path":{"in":"query","name":"path","description":"Filter by the exact catalog path of the item, e.g. `/offers/2024 Summer Campaign` or `/pages/Homepage`.","schema":{"type":"string"}},"tags":{"in":"query","name":"tags","description":"Filter items by an associated tag path, e.g. `/tags/uk-uk/default`.","schema":{"type":"string"}},"reducedData":{"in":"query","name":"reducedData","description":"Indicate true to receive a response with less attributes in the offer object (ideal to reduce payloads size)","schema":{"type":"boolean"}},"optPageSize":{"in":"query","name":"opt.pageSize","description":"Number of items per page (default 50, maximum 160). The response size limit is 6 MB, so use smaller page sizes with `queryMore` pagination when retrieving large datasets. Note: this parameter cannot be used in combination with `opt.all=true` — once `opt.all` is set, the page size cannot be increased.","schema":{"type":"integer","default":50}},"optModifiedAfter":{"in":"query","name":"opt.modifiedAfter","description":"Filter items modified after the indicated date or date-time (ISO-date format, i.e '2020-12-01' or '2020-12-01T16:00:00Z')","schema":{"type":"string","format":"date-time"}},"optAll":{"in":"query","name":"opt.all","description":"Set to `true` to enable cursor-based pagination. When enabled, the response includes a `queryMore` object with `from` and `alias` fields that can be passed to subsequent requests to retrieve the next page. A maximum of 100 items will be returned per page when active.","schema":{"type":"boolean","default":false}},"optQueryMoreFrom":{"in":"query","name":"opt.queryMoreFrom","description":"The From Hash for the query more functionality. Use it to fetch next page of the query (obtained from queryMore.from in the response)","schema":{"type":"string"}},"optQueryMoreAlias":{"in":"query","name":"opt.queryMoreAlias","description":"The Alias for the query more functionality. Use it to fetch next page of the query (obtained from queryMore.alias in the response)","schema":{"type":"string"}},"attributes":{"in":"query","name":"attributes.YOUR_ATTRIBUTE_HERE","description":"To query with attributes, replace 'YOUR_ATTRIBUTE_HERE' with your attribute. Attributes are defined by your templates.","schema":{"type":"string"}}},"schemas":{"GetOffersV2Response":{"type":"object","properties":{"hits":{"type":"number","description":"Amount of records found on the catalog in response to the query"},"items":{"type":"array","description":"Offers retrieved","items":{"$ref":"#/components/schemas/ElasticOfferV2"}},"queryMore":{"type":"object","description":"query more object used for pagination","properties":{"from":{"type":"string","description":"Cursor for the next page of results"},"alias":{"type":"string","description":"The Alias used to fetch next page of the query"}}},"commitId":{"description":"the commitId from the index used to query","type":"string"}}},"ElasticOfferV2":{"properties":{"id":{"type":"string","description":"Offer id in the Elastic index"},"name":{"type":"string","description":"Offer name"},"path":{"type":"string","description":"Path to the offer"},"created":{"type":"string","description":"Offer creation date"},"modified":{"type":"string","description":"Offer last modification date"},"version":{"type":"string","description":"Offer version"},"version_date":{"type":"string","description":"Offer version date"},"record_type":{"type":"string","description":"Record type"},"duplicatedFrom":{"type":"string","description":"Path of offer duplicated from"},"baseTemplate":{"type":"string","description":"Base template path"},"priceReference":{"type":"string","description":"Reference price path"},"user":{"type":"string","description":"User associated with offer"},"data":{"type":"object","description":"Data attached to offer","properties":{"attributes":{"type":"object","properties":{"display_name__limio":{"type":"string","description":"Display name"},"checkout_description__limio":{"type":"string","description":"Checkout description"},"allowed_countries__limio":{"type":"array","description":"Allowed countries"},"checkout__limio":{"type":"object","properties":{"checkout_type":{"type":"string"},"external_url":{"type":"string"}}},"allow_multibuy__limio":{"type":"boolean","description":"Whether multiple purchases of this offer are allowed"},"label__limio":{"type":"array","description":"Labels"},"term__limio":{"type":"object","properties":{"renewal_type":{"type":"string"},"renewal_trigger":{"type":"string"}}},"push_to_checkout__limio":{"type":"boolean","description":"Push to checkout"},"initial_term__limio":{"type":"object","properties":{"renewal_type":{"type":"string"},"renewal_trigger":{"type":"string"}}},"cross_sell_addons__limio":{"type":"object","description":"Cross-sell add-ons such as additional services","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"path":{"type":"string"}}}},"item_label":{"type":"string"},"item_type":{"type":"string"}}},"upsell_offers__limio":{"type":"object","description":"Upsell offers to higher SaaS tiers","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"path":{"type":"string"}}}},"item_label":{"type":"string"},"item_type":{"type":"string"}}},"cross_sell_offers__limio":{"type":"object","description":"Cross-sell offers such as complementary SaaS solutions","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"path":{"type":"string"}}}},"item_label":{"type":"string"},"item_type":{"type":"string"}}},"upsell_display_name__limio":{"type":"string","description":"Upsell display name"},"upsell_display_description__limio":{"type":"string","description":"Upsell display description"},"cross_sell_display_description__limio":{"type":"string","description":"Cross-sell display description"},"cross_sell_display_name__limio":{"type":"string","description":"Cross-sell display name"}}},"price":{"type":"array","description":"Prices of offer","items":{"type":"object","description":"Price item","properties":{"name":{"type":"string","description":"Charge name"},"label":{"type":"string","description":"Label for charge"},"value":{"type":"string","description":"Value of charge"},"currencyCode":{"type":"string","description":"Currency of charge"},"type":{"type":"string","description":"Pricing type"},"trigger":{"type":"string","description":"Trigger for the charge"},"repeat_interval":{"type":"integer","description":"Number of repeat_interval_type between charges"},"repeat_interval_type":{"type":"string","description":"The unit between charges"},"repeat_count":{"type":"integer","description":"The number of times the charge will be repeated"},"delay_interval":{"type":"integer","description":"Number of delay_interval_type that charge will be delayed"},"delay_interval_type":{"type":"string","description":"The unit charge will be delayed"},"attributes":{"type":"array","items":{}},"subscription_start_day":{"type":"string","description":"When the subscription starts"}}}},"productBundles":{"type":"array","description":"Product bundles attached to offer","items":{"type":"object","properties":{"product_path":{"type":"string","description":"Path to product"},"revenue_split":{"type":"string","description":"Revenue split percentage"},"rate_plan":{"type":"string","description":"Rate plan"}}}},"products":{"type":"array","description":"Products attached to offer","items":{"type":"object","properties":{"baseTemplate":{"type":"string","description":"Base template path"},"path":{"type":"string","description":"Path to product"},"lastSynced":{"type":"string","description":"Last synced timestamp"},"synced":{"type":"boolean"},"created":{"type":"string","description":"Product creation date"},"syncedFrom":{"type":"string","description":"Synced from id"},"modified":{"type":"string","description":"Product last modification date"},"attributes":{"type":"object","properties":{"display_name__limio":{"type":"string","description":"Display name"},"has_delivery__limio":{"type":"boolean","description":"Has delivery"},"product_code__limio":{"type":"string","description":"Product code"}}},"record_type":{"type":"string"}}}}}}}}},"responses":{"401Response":{"description":"Unauthorized — the request lacks valid authentication credentials. Verify your Bearer token or API key is correct and has not expired.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}}}}},"paths":{"/offers/v2":{"get":{"operationId":"getOffers2","summary":"Get Offers V2","tags":["Catalog"],"description":"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, a maximum of 160 items will be returned) and a queryMore object for  continuing query if the amount of hits exceeded the retrieved offers and pagination  is activated.\n\nV2 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.\n\nV2 offers can also be versioned - you can find out more about offer versioning at the following resources:\n  - [Published Offers API and Versioned Offers v2](https://limio.zendesk.com/hc/en-gb/articles/10026477323421-Published-Offers-API-and-Versioned-Offers-v2)\n  - [Set or Update an Offer Version](https://limio.zendesk.com/hc/en-gb/articles/4641968133917-How-to-create-Offers-v2-to-Attach-to-Campaigns-Pages#h_01HCEYQE26NJSQSCDNQ7EAVZFJ)\n\nIf you have the [Published Offers API](https://limio.zendesk.com/hc/en-gb/articles/10026477323421-Published-Offers-API-and-Versioned-Offers-v2) 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.","parameters":[{"$ref":"#/components/parameters/offersSource"},{"$ref":"#/components/parameters/path"},{"$ref":"#/components/parameters/tags"},{"$ref":"#/components/parameters/reducedData"},{"$ref":"#/components/parameters/optPageSize"},{"$ref":"#/components/parameters/optModifiedAfter"},{"$ref":"#/components/parameters/optAll"},{"$ref":"#/components/parameters/optQueryMoreFrom"},{"$ref":"#/components/parameters/optQueryMoreAlias"},{"$ref":"#/components/parameters/attributes"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetOffersV2Response"}}}},"401":{"$ref":"#/components/responses/401Response"}}}}}}
```

## Get Add Ons

> Retrieves all the standalone add ons 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 add ons (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.

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"tags":[{"name":"Catalog","description":"Retrieve published catalog content — campaigns, offers, pages, products, segments, assets, and add-ons. Supports filtering by path, tags, attributes, and pagination."}],"servers":[{"url":"https://{tenant}/api","description":"Limio environment API","variables":{"tenant":{"default":"your-environment.prod.limio.com","description":"Your Limio environment hostname, e.g. `acme.prod.limio.com` or `acme-sandbox.prod.limio.com`."}}}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"OAuth 2.0 Bearer token for authenticated API access. Required for order submission, object management, and administrative operations.\n\nObtain a token via the OAuth flow described in [OAuth Bearer Token](https://docs.limio.com/developers/api-documentation/authentication-overview/oauth-bearer-token).\n\nPass the token in the `Authorization` header: `Bearer <token>`"}},"parameters":{"path":{"in":"query","name":"path","description":"Filter by the exact catalog path of the item, e.g. `/offers/2024 Summer Campaign` or `/pages/Homepage`.","schema":{"type":"string"}},"addOnsSource":{"in":"query","name":"addOnsSource","description":"Specifies the source for fetching Add Ons. `catalog` Retrieves all add ons from your catalog. `published` Retrieves only published add ons.","schema":{"type":"string","enum":["catalog","published"]}},"reducedData":{"in":"query","name":"reducedData","description":"Indicate true to receive a response with less attributes in the offer object (ideal to reduce payloads size)","schema":{"type":"boolean"}},"optPageSize":{"in":"query","name":"opt.pageSize","description":"Number of items per page (default 50, maximum 160). The response size limit is 6 MB, so use smaller page sizes with `queryMore` pagination when retrieving large datasets. Note: this parameter cannot be used in combination with `opt.all=true` — once `opt.all` is set, the page size cannot be increased.","schema":{"type":"integer","default":50}},"optModifiedAfter":{"in":"query","name":"opt.modifiedAfter","description":"Filter items modified after the indicated date or date-time (ISO-date format, i.e '2020-12-01' or '2020-12-01T16:00:00Z')","schema":{"type":"string","format":"date-time"}},"optAll":{"in":"query","name":"opt.all","description":"Set to `true` to enable cursor-based pagination. When enabled, the response includes a `queryMore` object with `from` and `alias` fields that can be passed to subsequent requests to retrieve the next page. A maximum of 100 items will be returned per page when active.","schema":{"type":"boolean","default":false}},"optQueryMoreFrom":{"in":"query","name":"opt.queryMoreFrom","description":"The From Hash for the query more functionality. Use it to fetch next page of the query (obtained from queryMore.from in the response)","schema":{"type":"string"}},"optQueryMoreAlias":{"in":"query","name":"opt.queryMoreAlias","description":"The Alias for the query more functionality. Use it to fetch next page of the query (obtained from queryMore.alias in the response)","schema":{"type":"string"}},"attributes":{"in":"query","name":"attributes.YOUR_ATTRIBUTE_HERE","description":"To query with attributes, replace 'YOUR_ATTRIBUTE_HERE' with your attribute. Attributes are defined by your templates.","schema":{"type":"string"}}},"schemas":{"ElasticAddOn":{"properties":{"id":{"type":"string","description":"Add On id in the Elastic index"},"name":{"type":"string","description":"Add On name"},"path":{"type":"string","description":"Path to the Add On"},"created":{"type":"string","description":"Add On creation date"},"modified":{"type":"string","description":"Add On last modification date"},"version":{"type":"string","description":"Add On version"},"version_date":{"type":"string","description":"Add On version date"},"record_type":{"type":"string","description":"Record type"},"duplicatedFrom":{"type":"string","description":"Path of Add On duplicated from"},"baseTemplate":{"type":"string","description":"Base template path"},"user":{"type":"string","description":"User associated with Add On"},"data":{"type":"object","description":"Data attached to Add On","properties":{"attributes":{"type":"object","properties":{"display_name__limio":{"type":"string","description":"Display name"},"label__limio":{"type":"array","description":"Labels"}}},"price":{"type":"array","description":"Prices of Add On","items":{"type":"object","description":"Price item","properties":{"attributes":{"type":"object"},"name":{"type":"string","description":"Charge name"},"label":{"type":"string","description":"Label for charge"},"currencyCode":{"type":"string","description":"Currency of charge"},"value":{"type":"string","description":"Value of charge"},"type":{"type":"string","description":"Pricing type"},"trigger":{"type":"string","description":"Trigger for the charge"},"repeat_interval":{"type":"integer","description":"Number of repeat_interval_type between charges"},"repeat_interval_type":{"type":"string","description":"The unit between charges"},"repeat_count":{"type":"integer","description":"The number of times the charge will be repeated"},"delay_interval":{"type":"integer","description":"Number of delay_interval_type that charge will be delayed"},"delay_interval_type":{"type":"string","description":"The unit charge will be delayed"}}}},"productBundles":{"type":"array","description":"Product bundles attached to Add On","items":{"type":"object","properties":{"product_path":{"type":"string","description":"Path to product"},"revenue_split":{"type":"string","description":"Revenue split percentage"},"rate_plan":{"type":"string","description":"Rate plan"}}}},"products":{"type":"array","description":"Products attached to Add On","items":{"type":"object","properties":{"baseTemplate":{"type":"string","description":"Base template path"},"path":{"type":"string","description":"Path to product"},"lastSynced":{"type":"string","description":"Last synced timestamp"},"synced":{"type":"boolean"},"created":{"type":"string","description":"Product creation date"},"syncedFrom":{"type":"string","description":"Synced from id"},"modified":{"type":"string","description":"Product last modification date"},"attributes":{"type":"object","properties":{"display_name__limio":{"type":"string","description":"Display name"},"has_delivery__limio":{"type":"boolean","description":"Has delivery"},"product_code__limio":{"type":"string","description":"Product code"}}},"record_type":{"type":"string"}}}}}}}}},"responses":{"401Response":{"description":"Unauthorized — the request lacks valid authentication credentials. Verify your Bearer token or API key is correct and has not expired.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}}}}},"paths":{"/add_ons":{"get":{"operationId":"getAddOns","summary":"Get Add Ons","tags":["Catalog"],"description":"Retrieves all the standalone add ons 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 add ons (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.","parameters":[{"$ref":"#/components/parameters/path"},{"$ref":"#/components/parameters/addOnsSource"},{"$ref":"#/components/parameters/reducedData"},{"$ref":"#/components/parameters/optPageSize"},{"$ref":"#/components/parameters/optModifiedAfter"},{"$ref":"#/components/parameters/optAll"},{"$ref":"#/components/parameters/optQueryMoreFrom"},{"$ref":"#/components/parameters/optQueryMoreAlias"},{"$ref":"#/components/parameters/attributes"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"hits":{"type":"number","description":"Amount of records found on the catalog in response to the query"},"items":{"type":"array","description":"Add Ons retrieved","items":{"$ref":"#/components/schemas/ElasticAddOn"}},"queryMore":{"type":"object","description":"query more object used for pagination","properties":{"from":{"type":"string","description":"Cursor for the next page of results"},"alias":{"type":"string","description":"The Alias used to fetch next page of the query"}}},"commitId":{"description":"the commitId from the index used to query","type":"string"}}}}}},"401":{"$ref":"#/components/responses/401Response"}}}}}}
```

## Get Assets

> 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.

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"tags":[{"name":"Catalog","description":"Retrieve published catalog content — campaigns, offers, pages, products, segments, assets, and add-ons. Supports filtering by path, tags, attributes, and pagination."}],"servers":[{"url":"https://{tenant}/api","description":"Limio environment API","variables":{"tenant":{"default":"your-environment.prod.limio.com","description":"Your Limio environment hostname, e.g. `acme.prod.limio.com` or `acme-sandbox.prod.limio.com`."}}}],"security":[{"ApiKey":[]},{"bearerAuth":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","name":"Authorization","in":"header","description":"Publishable API key for read-only catalog access. Suitable for client-side or public-facing integrations where only catalog data (campaigns, offers, products, pages, segments, assets) is needed.\n\nGenerate a key in the Limio dashboard. See [Authentication](https://docs.limio.com/developers/api-documentation/authentication-overview#api-keys-legacy) for details."},"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"OAuth 2.0 Bearer token for authenticated API access. Required for order submission, object management, and administrative operations.\n\nObtain a token via the OAuth flow described in [OAuth Bearer Token](https://docs.limio.com/developers/api-documentation/authentication-overview/oauth-bearer-token).\n\nPass the token in the `Authorization` header: `Bearer <token>`"}},"parameters":{"path":{"in":"query","name":"path","description":"Filter by the exact catalog path of the item, e.g. `/offers/2024 Summer Campaign` or `/pages/Homepage`.","schema":{"type":"string"}},"optPageSize":{"in":"query","name":"opt.pageSize","description":"Number of items per page (default 50, maximum 160). The response size limit is 6 MB, so use smaller page sizes with `queryMore` pagination when retrieving large datasets. Note: this parameter cannot be used in combination with `opt.all=true` — once `opt.all` is set, the page size cannot be increased.","schema":{"type":"integer","default":50}},"optModifiedAfter":{"in":"query","name":"opt.modifiedAfter","description":"Filter items modified after the indicated date or date-time (ISO-date format, i.e '2020-12-01' or '2020-12-01T16:00:00Z')","schema":{"type":"string","format":"date-time"}},"optAll":{"in":"query","name":"opt.all","description":"Set to `true` to enable cursor-based pagination. When enabled, the response includes a `queryMore` object with `from` and `alias` fields that can be passed to subsequent requests to retrieve the next page. A maximum of 100 items will be returned per page when active.","schema":{"type":"boolean","default":false}},"optQueryMoreFrom":{"in":"query","name":"opt.queryMoreFrom","description":"The From Hash for the query more functionality. Use it to fetch next page of the query (obtained from queryMore.from in the response)","schema":{"type":"string"}},"optQueryMoreAlias":{"in":"query","name":"opt.queryMoreAlias","description":"The Alias for the query more functionality. Use it to fetch next page of the query (obtained from queryMore.alias in the response)","schema":{"type":"string"}},"attributes":{"in":"query","name":"attributes.YOUR_ATTRIBUTE_HERE","description":"To query with attributes, replace 'YOUR_ATTRIBUTE_HERE' with your attribute. Attributes are defined by your templates.","schema":{"type":"string"}}},"schemas":{"GetAssetsResponse":{"type":"object","properties":{"hits":{"type":"number","description":"Amount of records found on the catalog in response to the query"},"items":{"type":"array","description":"Assets retrieved","items":{"$ref":"#/components/schemas/ElasticAsset"}},"queryMore":{"type":"object","description":"query more object used for pagination","properties":{"from":{"type":"string","description":"Cursor for the next page of results"},"alias":{"type":"string","description":"The Alias used to fetch next page of the query"}}},"commitId":{"description":"the commitId from the index used to query","type":"string"}}},"ElasticAsset":{"type":"object","properties":{"id":{"type":"string","description":"Asset id in the Elastic index"},"name":{"type":"string","description":"Name of asset"},"parent_path":{"type":"string","description":"Parent Path"},"path":{"type":"string","description":"Asset path"},"data":{"type":"object","properties":{"attributes":{"type":"object","description":"Attributes for asset"},"baseTemplate":{"type":"string","description":"Template for asset attributes"},"key":{"type":"string","description":"S3 key for asset"}}}}}},"responses":{"401Response":{"description":"Unauthorized — the request lacks valid authentication credentials. Verify your Bearer token or API key is correct and has not expired.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}}}}},"paths":{"/assets":{"get":{"description":"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.","operationId":"getAssets","summary":"Get Assets","tags":["Catalog"],"parameters":[{"$ref":"#/components/parameters/path"},{"$ref":"#/components/parameters/optPageSize"},{"$ref":"#/components/parameters/optModifiedAfter"},{"$ref":"#/components/parameters/optAll"},{"$ref":"#/components/parameters/optQueryMoreFrom"},{"$ref":"#/components/parameters/optQueryMoreAlias"},{"$ref":"#/components/parameters/attributes"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAssetsResponse"}}}},"401":{"$ref":"#/components/responses/401Response"}}}}}}
```

## Get Products

> 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.

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"tags":[{"name":"Catalog","description":"Retrieve published catalog content — campaigns, offers, pages, products, segments, assets, and add-ons. Supports filtering by path, tags, attributes, and pagination."}],"servers":[{"url":"https://{tenant}/api","description":"Limio environment API","variables":{"tenant":{"default":"your-environment.prod.limio.com","description":"Your Limio environment hostname, e.g. `acme.prod.limio.com` or `acme-sandbox.prod.limio.com`."}}}],"security":[{"ApiKey":[]},{"bearerAuth":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","name":"Authorization","in":"header","description":"Publishable API key for read-only catalog access. Suitable for client-side or public-facing integrations where only catalog data (campaigns, offers, products, pages, segments, assets) is needed.\n\nGenerate a key in the Limio dashboard. See [Authentication](https://docs.limio.com/developers/api-documentation/authentication-overview#api-keys-legacy) for details."},"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"OAuth 2.0 Bearer token for authenticated API access. Required for order submission, object management, and administrative operations.\n\nObtain a token via the OAuth flow described in [OAuth Bearer Token](https://docs.limio.com/developers/api-documentation/authentication-overview/oauth-bearer-token).\n\nPass the token in the `Authorization` header: `Bearer <token>`"}},"parameters":{"path":{"in":"query","name":"path","description":"Filter by the exact catalog path of the item, e.g. `/offers/2024 Summer Campaign` or `/pages/Homepage`.","schema":{"type":"string"}},"optPageSize":{"in":"query","name":"opt.pageSize","description":"Number of items per page (default 50, maximum 160). The response size limit is 6 MB, so use smaller page sizes with `queryMore` pagination when retrieving large datasets. Note: this parameter cannot be used in combination with `opt.all=true` — once `opt.all` is set, the page size cannot be increased.","schema":{"type":"integer","default":50}},"optModifiedAfter":{"in":"query","name":"opt.modifiedAfter","description":"Filter items modified after the indicated date or date-time (ISO-date format, i.e '2020-12-01' or '2020-12-01T16:00:00Z')","schema":{"type":"string","format":"date-time"}},"optAll":{"in":"query","name":"opt.all","description":"Set to `true` to enable cursor-based pagination. When enabled, the response includes a `queryMore` object with `from` and `alias` fields that can be passed to subsequent requests to retrieve the next page. A maximum of 100 items will be returned per page when active.","schema":{"type":"boolean","default":false}},"optQueryMoreFrom":{"in":"query","name":"opt.queryMoreFrom","description":"The From Hash for the query more functionality. Use it to fetch next page of the query (obtained from queryMore.from in the response)","schema":{"type":"string"}},"optQueryMoreAlias":{"in":"query","name":"opt.queryMoreAlias","description":"The Alias for the query more functionality. Use it to fetch next page of the query (obtained from queryMore.alias in the response)","schema":{"type":"string"}},"attributes":{"in":"query","name":"attributes.YOUR_ATTRIBUTE_HERE","description":"To query with attributes, replace 'YOUR_ATTRIBUTE_HERE' with your attribute. Attributes are defined by your templates.","schema":{"type":"string"}}},"schemas":{"GetProductsResponse":{"type":"object","properties":{"hits":{"type":"number","description":"Amount of records found on the catalog responding the query"},"items":{"type":"array","description":"Products retrieved","items":{"$ref":"#/components/schemas/ElasticProduct"}},"queryMore":{"type":"object","description":"query more object used for pagination","properties":{"from":{"type":"string","description":"Cursor for the next page of results"},"alias":{"type":"string","description":"The Alias used to fetch next page of the query"}}},"commitId":{"description":"the commitId from the index used to query","type":"string"}}},"ElasticProduct":{"type":"object","properties":{"id":{"type":"string","description":"Product id in the Elastic index"},"name":{"type":"string","description":"Name of product"},"parent_path":{"type":"string","description":"Parent Path"},"path":{"type":"string","description":"Product path"},"data":{"type":"object","properties":{"attributes":{"type":"object","description":"Attributes for product"},"baseTemplate":{"type":"string","description":"Template for product attributes"}}}}}},"responses":{"401Response":{"description":"Unauthorized — the request lacks valid authentication credentials. Verify your Bearer token or API key is correct and has not expired.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}}}}},"paths":{"/products":{"get":{"operationId":"getProducts","summary":"Get Products","description":"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.","tags":["Catalog"],"parameters":[{"$ref":"#/components/parameters/path"},{"$ref":"#/components/parameters/optPageSize"},{"$ref":"#/components/parameters/optModifiedAfter"},{"$ref":"#/components/parameters/optAll"},{"$ref":"#/components/parameters/optQueryMoreFrom"},{"$ref":"#/components/parameters/optQueryMoreAlias"},{"$ref":"#/components/parameters/attributes"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetProductsResponse"}}}},"401":{"$ref":"#/components/responses/401Response"}}}}}}
```

## Get Segments

> 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.

```json
{"openapi":"3.1.0","info":{"title":"Limio Commerce API","version":"1.0.0"},"tags":[{"name":"Catalog","description":"Retrieve published catalog content — campaigns, offers, pages, products, segments, assets, and add-ons. Supports filtering by path, tags, attributes, and pagination."}],"servers":[{"url":"https://{tenant}/api","description":"Limio environment API","variables":{"tenant":{"default":"your-environment.prod.limio.com","description":"Your Limio environment hostname, e.g. `acme.prod.limio.com` or `acme-sandbox.prod.limio.com`."}}}],"security":[{"ApiKey":[]},{"bearerAuth":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","name":"Authorization","in":"header","description":"Publishable API key for read-only catalog access. Suitable for client-side or public-facing integrations where only catalog data (campaigns, offers, products, pages, segments, assets) is needed.\n\nGenerate a key in the Limio dashboard. See [Authentication](https://docs.limio.com/developers/api-documentation/authentication-overview#api-keys-legacy) for details."},"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"OAuth 2.0 Bearer token for authenticated API access. Required for order submission, object management, and administrative operations.\n\nObtain a token via the OAuth flow described in [OAuth Bearer Token](https://docs.limio.com/developers/api-documentation/authentication-overview/oauth-bearer-token).\n\nPass the token in the `Authorization` header: `Bearer <token>`"}},"parameters":{"path":{"in":"query","name":"path","description":"Filter by the exact catalog path of the item, e.g. `/offers/2024 Summer Campaign` or `/pages/Homepage`.","schema":{"type":"string"}},"optPageSize":{"in":"query","name":"opt.pageSize","description":"Number of items per page (default 50, maximum 160). The response size limit is 6 MB, so use smaller page sizes with `queryMore` pagination when retrieving large datasets. Note: this parameter cannot be used in combination with `opt.all=true` — once `opt.all` is set, the page size cannot be increased.","schema":{"type":"integer","default":50}},"optModifiedAfter":{"in":"query","name":"opt.modifiedAfter","description":"Filter items modified after the indicated date or date-time (ISO-date format, i.e '2020-12-01' or '2020-12-01T16:00:00Z')","schema":{"type":"string","format":"date-time"}},"optAll":{"in":"query","name":"opt.all","description":"Set to `true` to enable cursor-based pagination. When enabled, the response includes a `queryMore` object with `from` and `alias` fields that can be passed to subsequent requests to retrieve the next page. A maximum of 100 items will be returned per page when active.","schema":{"type":"boolean","default":false}},"optQueryMoreFrom":{"in":"query","name":"opt.queryMoreFrom","description":"The From Hash for the query more functionality. Use it to fetch next page of the query (obtained from queryMore.from in the response)","schema":{"type":"string"}},"optQueryMoreAlias":{"in":"query","name":"opt.queryMoreAlias","description":"The Alias for the query more functionality. Use it to fetch next page of the query (obtained from queryMore.alias in the response)","schema":{"type":"string"}},"attributes":{"in":"query","name":"attributes.YOUR_ATTRIBUTE_HERE","description":"To query with attributes, replace 'YOUR_ATTRIBUTE_HERE' with your attribute. Attributes are defined by your templates.","schema":{"type":"string"}}},"schemas":{"GetSegmentsResponse":{"type":"object","properties":{"hits":{"type":"number","description":"Amount of records found on the catalog responding the query"},"items":{"type":"array","description":"Segments retrieved","items":{"$ref":"#/components/schemas/ElasticSegment"}},"queryMore":{"type":"object","description":"query more object used for pagination","properties":{"from":{"type":"string","description":"Cursor for the next page of results"},"alias":{"type":"string","description":"The Alias used to fetch next page of the query"}}},"commitId":{"description":"the commitId from the index used to query","type":"string"}}},"ElasticSegment":{"type":"object","properties":{"id":{"type":"string","description":"Segment id in the Elastic index"},"name":{"type":"string","description":"Name of segment"},"parent_path":{"type":"string","description":"Parent Path"},"path":{"type":"string","description":"Segment path"},"data":{"type":"object","properties":{"attributes":{"type":"object","description":"Attributes for segment"},"baseTemplate":{"type":"string","description":"Template for segment attributes"}}}}}},"responses":{"401Response":{"description":"Unauthorized — the request lacks valid authentication credentials. Verify your Bearer token or API key is correct and has not expired.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}}}}},"paths":{"/segments":{"get":{"operationId":"getSegments","summary":"Get Segments","tags":["Catalog"],"description":"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.","parameters":[{"$ref":"#/components/parameters/path"},{"$ref":"#/components/parameters/optPageSize"},{"$ref":"#/components/parameters/optModifiedAfter"},{"$ref":"#/components/parameters/optAll"},{"$ref":"#/components/parameters/optQueryMoreFrom"},{"$ref":"#/components/parameters/optQueryMoreAlias"},{"$ref":"#/components/parameters/attributes"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetSegmentsResponse"}}}},"401":{"$ref":"#/components/responses/401Response"}}}}}}
```
